News for hackers. Stuff that matters.
Re:Technical and non-technical tips for rocking your coding ... by kafkaesq on Tuesday September 26, 2017 @04:51PM (#15342399)
2. What happens between you typing a URL into your browser address bar, hitting enter and seeing a web page?

"What happens when I'm asked a question like X? I spout a mutated form of some canned response I cribbed from a list I found on HN a while back. Because I hear that's how you're supposed to 'rock your coding interview', these days."

3. What are the things you should consider if you were writing your own database server?

"Look, you know as well as I that this job has nothing -- as in, nothing whatsoever -- to do with actually building production-grade database servers. Or anything even remotely analogous to it. Debugging that tangled mess of poorly conceived, never-reviewed JSON APIs left behind by the other developer (while you were pestering them about 'disruption' and 'just needing to get this thing to market') is more like it."

"But hey, since you're playing that game, I can play too: here's a bunch of catchphrases like 'non-blocking I/O, sharding, blah blah.' Because I hear that's the killer answer to give to questions like these. And BTW, if you really think that people Michael Widenius or Salvatore Sanfilippo would be interviewing for this job, then your problems are way bigger than I could ever hope to help you with."

Re:Technical and non-technical tips for rocking your coding ... by wh-uws on Tuesday September 26, 2017 @06:26PM (#15343128)
Some permutation of this comment is made litterally everytime any coding interview resource is posted.

I'm sorry man no cares that you and everyone who upvoted this comment are Super God programmers with 30 offers everytime they say they are looking who can afford to tell every company where they can stuff their interview.

Us mere mortals are willing to do whatever it takes to get our dream gigs.

These guides are largely targeted are getting into the some of the best, thus pickiest and most selective, companies in the world.

And if getting on means being a dsalgo monkey in front of a whiteboard for a few hours so be it.

Let us share interview tips in peace please.

This "hurr durr technical interviews suck" but I have no real alternative and have never built a company nor seen any really flourish at the top without this is monotonous.

Put your money where your mouth is and start and only support companies that skip these kinds of interviews.

Like these fine people

https://github.com/poteto/hiring-without-whiteboards

But the snarky comments are beyond annoying.

Re:Technical and non-technical tips for rocking your coding ... by booleandilemma on Tuesday September 26, 2017 @07:15PM (#15343471)
I think the parent is implying they’re not a Super God programmer, and some of these interviewers are expecting them to be, when in fact their company has no need of such a programmer.

My own opinion is let’s ignore companies that make us jump through hoops, as it only encourages them to become increasingly ridiculous.

Re:Technical and non-technical tips for rocking your coding ... by rifung on Tuesday September 26, 2017 @07:42PM (#15343646)
> My own opinion is let’s ignore companies that make us jump through hoops, as it only encourages them to become increasingly ridiculous.

Unfortunately not everyone is in a position to do that.. "beggars can't be choosers"

Re:Technical and non-technical tips for rocking your coding ... by taurath on Tuesday September 26, 2017 @07:59PM (#15343721)
I find it interesting that in the span of 3 comments it’s gone from “this company is only looking for the best of the best” to “beggars can’t be choosers”.

I’m of the opinion that if you are a company having trouble hiring people (everyone other than google/amazon) you should not copy their interview process.

There are great developers out there that do not do well in these interview environments, who are not worse than those who do well in them.

If you are going for a high power attorney partner job at a big firm they do not ask you to recite obscure case law. Id you are a master carpenter they do not ask you to build a cabinet using a hand lathe.

IMO provable previous work experience if a candidate has it should trump conceptual knowledge spewing, and interviews that ignore experience and give the same theoretical knowledge quiz as they do a new grad are shooting themselves in the foot. And I think everyone knows it, but most engineering orgs are terrified of letting a bad hire through so they blindly do whatever the “top” companies do.

Re:Technical and non-technical tips for rocking your coding ... by kafkaesq on Tuesday September 26, 2017 @11:00PM (#15344587)
Tut most engineering orgs are terrified of letting a bad hire through so they blindly do whatever the “top” companies do.

Yup, that seems to be it.

As if there's some "secret sauce" to interviewing that all the other shops know except their own.

Re:Technical and non-technical tips for rocking your coding ... by bogomipz on Wednesday September 27, 2017 @02:42PM (#15350945)
Yes and this logic is essentially "if it works for a publicly traded company that has 25,000 full time engineers then surely it's the right approach for our start up of 25 people total."
Re:Technical and non-technical tips for rocking your coding ... by kafkaesq on Friday September 29, 2017 @07:15PM (#15370067)
Whether it actually works for those companies (beyond a placebo-like effect) is open to question.

But the bigger point is that - even assuming for the sake of argument that these questions actually do "work", on some leel - they've become such a huge fad that people are just adopting them solely on the basis of authority, without intrinsically understanding why these questions work, or more importantly, how to interpret candidates' responses to them

In other words, they're just following a script. I wouldn't say quite it's on "blind faith", per se (because the companies do have some reputation). But it's not much better than blind faith. Such that this precious quote of yours, from just a few days ago, seems quite apt here:

This practice of blindly adopting ideas just because they work for Google needs to stop.

Re:Technical and non-technical tips for rocking your coding ... by taurath on Wednesday September 27, 2017 @03:15AM (#15345548)
The truth is you just don’t know, and you have to go off of hunches - the google panel rejects on hunches all the time, regardless of the systems they put in place to minimize it.
Re:Technical and non-technical tips for rocking your coding ... by kafkaesq on Wednesday September 27, 2017 @12:50PM (#15349687)
Yup - the hunch factor isn't a "bug"; it's absolutely intrinsic to the process. Not only is fundamentally irreducible - you wouldn't want to completely remove it from the process, even if you could.

So I guess the problem with objective-seeming (and often just simply gratuitously hard) "filter" questions like those suggested here is that their real purpose seems to be give the process an appearance of objectivity - "We had a guy in here, his code samples looked great, and he talked a great game and all -- but would ya believe, he totally froze on that Lego robot puzzle question! What a poser!" -- when of course it's never going to be anything of the sort.

Re:Technical and non-technical tips for rocking your coding ... by rifung on Thursday September 28, 2017 @01:00AM (#15354764)
> I find it interesting that in the span of 3 comments it’s gone from “this company is only looking for the best of the best” to “beggars can’t be choosers”.

Why is that weird? The "beggars" I was referring to are people looking for jobs, not employers, so those actually seem like things that would go hand in hand, since if all companies only want the best of the best there will be many people without a job. Thankfully it seems like companies all have a different idea of what the "best" is so I am still employed

Re:Technical and non-technical tips for rocking your coding ... by bogomipz on Wednesday September 27, 2017 @02:37PM (#15350895)
>"Us mere mortals are willing to do whatever it takes to get our dream gigs."

How do you know it is you "dream gig" until you have actually worked there? Have you never been excited to accept an offer from a company only to get there and realize its just the same old bag of petty politics, egos, kool-aid drinking and grunt work?

Google, Facebook and the rest of the big SV companies that "only hire the best" are no different than any other big corporation. Also not everyone that works at these big SV companies gets to work on the really interesting and sexy projects.

There seems to be this myth that if you can just pass the Google or FB white board interview you will have it made and your "dream job" awaits. The propagation of this myth has given life to a whole cottage industry of prep courses and books on how to pass them.

I also think you have misunderstood the OPs position, I don't think they were saying that they were a programming god who can't dictate where they work, quite the opposite.

Re:Technical and non-technical tips for rocking your coding ... by matthewmacleod on Tuesday September 26, 2017 @05:23PM (#15342639)
I'm not quite sure what you're complaining about.

What happens between you typing a URL into your browser address bar? isn't a question that requires a canned response to be parroted back – it's a starting point for a conversation about your knowledge of the web technology stack. It's not at all like there is a 'correct' answer, but demonstrating that you have a vague idea of how parts work, can identify gaps in your own knowledge, and make reasonable choices about how you might fill them.

Maybe what are the things you should consider if you were writing your own database server? is somewhat less directly applicable to most jobs, but I'd argue much the same sort of thing applies – it's a kicking-off point for a conversation about systems that you should have at least rudimentary knowledge about.

I'm curious as to what you would prefer in a technical interview - more directly relevant questions about the specific systems you would be working on?

Re:Technical and non-technical tips for rocking your coding ... by vonmoltke on Tuesday September 26, 2017 @07:16PM (#15343481)
> What happens between you typing a URL into your browser address bar? isn't a question that requires a canned response to be parroted back – it's a starting point for a conversation about your knowledge of the web technology stack. It's not at all like there is a 'correct' answer, but demonstrating that you have a vague idea of how parts work, can identify gaps in your own knowledge, and make reasonable choices about how you might fill them.

The one time I have actually been asked this question it sure felt like the interviewer was expecting a certain explanation rather than trying to start a conversation. Hard to tell, since that was the only technical question I got asked in that phone interview and they rejected me after that.

Re:Technical and non-technical tips for rocking your coding ... by kafkaesq on Tuesday September 26, 2017 @07:20PM (#15343510)
Yeah that's the thing - the vibe I get from these questions is, "Uh, I actually have no idea what to ask these candidates. I just know I better not fuck this up. So how about that question everyone was talking about on HN the other day? That way, if they don't give an answer as detailed as the one I vaguely read about, at least I'll know right away they're a complete moron."
Re:Technical and non-technical tips for rocking your coding ... by marcosdumay on Tuesday September 26, 2017 @08:02PM (#15343744)
A thousand times this.

If somebody is going to ask those questions in an interview, at the bare minimum this person must know deeply about the subject, so they can recognize a correct answer and judge their quality. Instead, from how people talk about this (I've personally stopped interviewing for a while) it looks like everybody asking those has no idea what a correct answer looks like, and just expects candidates to follow a script.

There are two things to note. First, it is incredibly unlikely that your interviewer knows deeply about both the HTTP protocol and databases implementation. Thus, anybody asking both is already full of bullshit. Second, it may be valuable to get a hold of the interviewer script and study it. People full of bullshit are not normally very creative, so the scripted answer should be easy to find at Google.

Re:Technical and non-technical tips for rocking your coding ... by roguecoder on Tuesday September 26, 2017 @07:37PM (#15343624)
I like demonstration code reviews, personally, especially in combination with a short pairing session so I can see how they code too. I will happily take a short (2-3 hour) long take home, so I can demonstrate my skills in a quasi-realistic way.

If I have to study things unrelated to my job for some shibboleth interview, that's time I could have spent on my actual skills instead. Besides, any interview that does not demonstrate my ability to write a unit test and encapsulate data and functionality means I know what horrors I'm likely to encounter when I get to the code.

Re:Technical and non-technical tips for rocking your coding ... by ptero on Tuesday September 26, 2017 @05:25PM (#15342655)
I think many technical interviews are simply trying to assess whether the candidate has his head screwed on straight and the ability to do basic engineering. As such, the specific topics are practically irrelevant.

At least that's what I try to do when I end up interviewing someone. For example, can he suggest what sensors would be good for a Lego robot that would knock a tennis ball off the ping pong table without itself falling off? Can he describe the logic? How would he test this? How long, on average, would it take? What position of robot and ball would give the worst case performance (success or time)? His job will not involve Lego robots, but IME the person who can give sane answers on those would do a lot better than a coder who knows one toolkit well and nothing else.

Re:Technical and non-technical tips for rocking your coding ... by kafkaesq on Tuesday September 26, 2017 @06:24PM (#15343111)
For example, can he suggest what sensors would be good for a Lego robot that would knock a tennis ball off the ping pong table without itself falling off?

Right off the bat, this is very muddled question to ask.

For one, "sensors"? I think you meant to say "actuators". Because a sensor by itself can't knock anything off a table.

More fundamentally, "Legos", for those of a certain age, were entirely non-mechanical components in their day. So (even though yes, we've also vaguely seen and heard about, and rolled our eyes at, the newer kind), this just sounds like asking them to (seriously) consider the question of how to build a logical circuit out of tinker toys. Yes, it can be done - but on the face of it, that kind of a question comes off as an invitation to join a mental masturbation session. Not the kind of question you'd ask of someone you respect, and whose time you know to be as invaluably precious as you own.

The person who can give sane answers on those would do a lot better than a coder who knows one toolkit well and nothing else.

This is of course a false dichotomy. Especially given that it was -- not sure how else to put this -- a silly question to ask in the first place.

Re:Technical and non-technical tips for rocking your coding ... by ptero on Wednesday September 27, 2017 @09:21AM (#15347513)
I think you nailed the disconnect between our views.

What I personally am looking for is an engineer -- someone who can look at problems formulated in a fuzzy fashion (this is critical), figure out what technical solutions exist, probing the customer/user to flesh out the initially vague requirements and come up with a few different ways to implement this.

You are looking for coders: someone who can take well posed, unambiguous problem and algorithm descriptions and turn those into a working code. That is probably a better fit for a "coding interview" referred to in the title. It is just my experience that I get much better code and value for $ by hiring engineers even though I have to pay them higher salaries. That's just me though, YMMV.

Re:Technical and non-technical tips for rocking your coding ... by kafkaesq on Wednesday September 27, 2017 @12:27PM (#15349418)
You are looking for coders:

No I'm not - I'm very much looking for engineers in the mindset you describe. I just don't think your Lego robot question is a good tool for sniffing out that mindset. (For the simple reason that "muddled interview question" != "fuzzy real-world problem" - in fact there's a world of difference between the two).

But then again, we have a disconnect. Which is of course totally fine.

Re:Technical and non-technical tips for rocking your coding ... by chrismcb on Wednesday September 27, 2017 @01:52AM (#15345226)
Doesn't seem like a very middle question to enjoy. The question basically sats you have "Lego robot that can knock A tennis ball off the long long table." So you already have a robot that can knock this off the table, it really isn't important that if it's made of Legos or not. Now what sort of sensor would you add so it won't fall off the table as well. It specifically asks about the sensors. Don't make questions harder than they are
Re:Technical and non-technical tips for rocking your coding ... by kafkaesq on Wednesday September 27, 2017 @12:34PM (#15349509)
Don't make questions harder than they are.

There's no need to make it any "harder" - the point is that just wasn't well-articulated to begin with. (Noting again that "well-articulated" is very different from fuzzy / ambiguous, in the engineering sense).

And given that the people you want to hire, by definition, are generally very busy (and have many, many important things to do with their time) -- even when they aren't currently working (despite the urban legend that "they always have jobs") -- as such, it just isn't a good use of their time.

Re:Technical and non-technical tips for rocking your coding ... by watwut on Wednesday September 27, 2017 @02:10AM (#15345285)
I have no ideal what the question asks for. What kind of sensor are there? And I did lego robot a while back for optional credit in college (mine worked well).
Re:Technical and non-technical tips for rocking your coding ... by majormajor on Tuesday September 26, 2017 @05:28PM (#15342686)
FWIW, though I'm just one datapoint, if I'm going to have a "this isn't the day to day job" question thrown at me, I'd rather it be something more off the wall like this than most of the "do you remember this from your textbook/reference materials" style of trivia. Then I feel like approaching it from first principles is what's desired, and free to bounce ideas around, rather than being expected to remember the optimal log(n) "right" answer.
Re:Technical and non-technical tips for rocking your coding ... by watwut on Wednesday September 27, 2017 @02:01AM (#15345256)
The lego question has as much to do with programming as biology question. You literally test whether the person played with lego or othrr robot kit somewhere. Why would you expect programmer to do so?

The database question seems better, because any programmer should have slight experience with it.

Re:Technical and non-technical tips for rocking your coding ... by kafkaesq on Wednesday September 27, 2017 @12:45PM (#15349628)
Exactly - and not just whether they've played with Legos, but whether you've played with (or at least been curious about) the new modern (and incredibly expensive) robotic kind (or robot kits generally).

Which inevitably leads to outcomes like:

"Oh I see you're from Kazakhstan, and got top grades at one of the top schools there. And your GitHub account just blew our team away, the minute we saw it. And we can tell, from talking to you for 5 minutes, that you obviously know FP and SQL/NoSQL and database internals and caching and consensus protocols inside and out."

"But wait -- what's that look in your face when we ask you about solving this little Lego problem? Do you not like puzzles? Or wait - you mean you've never heard of Legos, for chrissake? We'll, what can I say. Sorry to break this to you, but we're looking for engineers here, not mere 'coders'. And how do you tell if someone has the soul of an engineer? It's because they dig shit like Legos and robot kits and stuff. They totally geek out and go to town on problems like this, in fact!"

"But then again, that kind of person obviously isn't you. Feel free to apply again in 6 months (after you've passed another 3-hour HackerRank test and our mandatory Skype session on culture fit, of course)."

Re:Technical and non-technical tips for rocking your coding ... by gumby on Tuesday September 26, 2017 @05:35PM (#15342724)
I agree these kinds of open ended questions are good since they can go in lots of different useful directions (specs, performance, algorithms, generality) and give you some idea what it's like to work with this person (and for them to get an idea if you're jerks or not).
Re:Technical and non-technical tips for rocking your coding ... by brian-armstrong on Tuesday September 26, 2017 @06:17PM (#15343043)
He?
Re:Technical and non-technical tips for rocking your coding ... by rifung on Tuesday September 26, 2017 @07:54PM (#15343698)
> "Look, you know as well as I that this job has nothing -- as in, nothing whatsoever -- to do with actually building production-grade database servers. Or anything even remotely analogous to it. Debugging that tangled mess of poorly conceived, never-reviewed JSON APIs left behind by the other developer (while you were pestering them about 'disruption' and 'just needing to get this thing to market') is more like it."

I was asked a similar type of question at Microsoft once about operating systems. I don't think the interviewer expected that I know the answer to what he was asking but rather explain what I do know, and then based off my limited understanding work backwards to see what might be done and what tradeoffs are being considered.

At least that's what the interviewer said to me when I responded with "Oh God I have no idea I have never done anything like that before." For what it's worth I did get the offer despite not knowing anything.

That being said, I did interview at another company where I was asked something that I guess the interviewer thought was very basic and I responded with something similar. His advice to me was to never say I don't know something, which I don't really agree with. I didn't pass that one.

Re:Technical and non-technical tips for rocking your coding ... by kafkaesq on Tuesday September 26, 2017 @10:15PM (#15344368)
I didn't pass that one.

Sounds like they're the ones who messed that one up - not you.

Re:Technical and non-technical tips for rocking your coding ... by _jordan on Tuesday September 26, 2017 @05:02PM (#15342478)
regarding the database question:

I hear it as:

"Tell me how detailed your understanding is of database internals in a conversational format; here is a talking prompt to help..."

regarding typing in the url question:

"Tell me the level in which you understand networking protocols"

In the real world I would hope these questions would be more of a discussion; "ah, you mention ACID, what kind of pattern can you employ to help implement that", "MVCC" etc..

This format of interview is hard to pass on simply regurgitation alone and does a pretty decent job of vetting technical understanding in a natural, conversational way.

Re:Technical and non-technical tips for rocking your coding ... by SilasX on Tuesday September 26, 2017 @06:59PM (#15343363)
This seems to happen every time the question comes up:

1) Everyone swears up and down that it's an absolutely vital, fair question.

2) Everyone justifies 1) by giving conflicting (to others' answers) criteria they're judging it by, such that no answer could possibly satisfy them all, except by saying something smart that impresses the interviewer and might not correspond to rigorous judgment criteria.

Re:Technical and non-technical tips for rocking your coding ... by methodover on Tuesday September 26, 2017 @05:07PM (#15342526)
The URL question is a really good one though. You should absolutely understand every step of that process if you're working on web applications. The database one is weird. You don't need to know how to create a good database system yourself in order to effectively use one, I think. Neither do you need to know how to make a web browser to know how HTTP requests work.
Re:Technical and non-technical tips for rocking your coding ... by majormajor on Tuesday September 26, 2017 @05:22PM (#15342634)
Every step? Keyboard interrupts and the browser going from DOM to OS drawing APIs included? ;)

Many of these questions are very vaguely scoped which gives the confident and familiar plenty of room to show how clever they are, but also makes it more intimidating for those who haven't seen them before.

Or, to put it another way, the linked site looks like a great way to make yourself look like you have a junior-to-mid-level understanding of a lot of different areas. But the process it's optimizing for starts to break down the more senior a developer you either (a) are or (b) are trying to hire.

Re:Technical and non-technical tips for rocking your coding ... by IncRnd on Tuesday September 26, 2017 @06:16PM (#15343041)
If it's a job to work on a haptic feedback system, they may very well want to plumb your understanding of when interrupts fire, without prompting for canned answers.

If you're interviewing for a front end position, you can make a nod to interrupts and continue on with BGP, ARP, DNS, TCP, IP, routers, etc. If you want to show your knowledge of security you could mention heartbleed, poodle, or even say why this isn't vulnerable to shellshock. An overview will take a minute, and the interviewer will follow up with more targeted questions if needed. It's a chance for the candidate to shine.

Re:Technical and non-technical tips for rocking your coding ... by majormajor on Tuesday September 26, 2017 @06:36PM (#15343205)
I think it's worth being aware that the more open-ended you make the question, the more you might freeze a less-practiced-at-interviewing candidate on not knowing where to start.

I'm always ready when asking something very open ended to follow up after 15 seconds or so to say "let's talk about [area X] first." For URLs, maybe this is "let's talk about what the actual network request, if you sniffed the traffic, looks like."

Re:Technical and non-technical tips for rocking your coding ... by IncRnd on Tuesday September 26, 2017 @07:00PM (#15343374)
That's perfectly reasonable. I interview candidates to let them shine not to fail them.
Re:Technical and non-technical tips for rocking your coding ... by eradicatethots on Tuesday September 26, 2017 @09:18PM (#15344138)
In the real world people like to tell you useful things that you’re genuinely interested to hear.
Re:Technical and non-technical tips for rocking your coding ... by IncRnd on Wednesday September 27, 2017 @05:06AM (#15346044)
> In the real world people like to tell you useful things that you’re genuinely interested to hear.

Exactly :)

Re:Technical and non-technical tips for rocking your coding ... by rimliu on Wednesday September 27, 2017 @04:03AM (#15345731)
You deal with BGP and ARP as often in frontend as you do with hardware interrupts. Heartbleed and co. may or may not be your concern depending how much that frontend is into devops.
Re:Technical and non-technical tips for rocking your coding ... by IncRnd on Wednesday September 27, 2017 @04:51AM (#15345975)
Heartbleed should be understood by frontend devs. In 2017 there is a minimum set of knowledge that frontend devs really need to have. That includes pki, client and server certificates, routing, network caching, and a whole host of other topics. Layers of the stack interoperate, and lack of knowledge of the stack leads to security vulnerabilities.
Re:Technical and non-technical tips for rocking your coding ... by rimliu on Wednesday September 27, 2017 @04:00AM (#15345719)
Good first follow up question would be "I am typing this URL on the mechanical keyboard, bluetooth keyboard or touchscreen?" I think the whole time for the interview could be used to discuss what happens inside the keyboard without even reaching the OS :)
Re:Technical and non-technical tips for rocking your coding ... by gaius on Wednesday September 27, 2017 @03:19AM (#15345573)
Every step? Keyboard interrupts and the browser going from DOM to OS drawing APIs included? ;)

Well if someone claims to be "full stack" - yes.

Re:Technical and non-technical tips for rocking your coding ... by kafkaesq on Tuesday September 26, 2017 @06:50PM (#15343308)
You should absolutely understand every step of that process if you're working on web applications.

"Every step?" Not at all true, in my experience.

What you need is a reasonable sense for the breadth and depth of the topic -- which quickly reveals itself to be far broader and deeper than what most engineers (including many very capable people I know) can hope to "absolutely understand every step of". And the ability to drill down (and go down rabbit holes) when needed. Combined with the experience of actually having gone down more than a few (and having from relatively unscathed, eventually).

In fact, if anything, your observation isn't just overstated - it actually misses the point of what makes some of the most effective people as effective as they are: their ability to manage complexity, and in particular, their ability to (reasonably) "connect the dots" in a complex system despite not "absolutely" knowing, at every level of detail, how every component in that system works.

Mind you, for the right value of "reasonably". It's when knowing when their level of understanding, while imperfect, is still good enough to solve the problem at hand - and when it isn't - is that makes these people so effective.

Re:Technical and non-technical tips for rocking your coding ... by aidos on Tuesday September 26, 2017 @05:58PM (#15342877)
While that's mostly true, to use a db efficiently you need to have a bit of an idea of what it does inside.

I don't see that question as being any different really. They're both just ways of guiding a conversation around the area we work in to gauge what candidates know / are interested in.

Personally, I've poked around in Postgres a bit because I find it interesting. And having deeper knowledge means that when you're about about to add a new not null column with a default value to a massive table you can stop and reason through how you're about to shoot yourself in the face :-)

Re:Technical and non-technical tips for rocking your coding ... by kafkaesq on Tuesday September 26, 2017 @06:38PM (#15343220)
To use a db efficiently you need to have a bit of an idea of what it does inside.

You need to have a bit of an idea, sure.

But in order to give any kind of a meaningful answer to the question, you need to have not just a "bit of" an idea, but in act, a deeply solid and intuitive idea. Either that or -- crib the answer from websites like these, know that it's one of the top 30 questions you're likely to be asked.

Which, very sadly, is exactly what the modern interview process (greatly) incentives people to do, these days.

Re:Technical and non-technical tips for rocking your coding ... by aidos on Tuesday September 26, 2017 @07:19PM (#15343504)
Don't get me wrong - it's not a question I'd ask myself, but I think you'd get some interesting answers. I'm fairly sure with that starting question I'd be able to have a conversation that gave me a pretty good idea about how well someone knew databases.

Do they talk about tables? What about indexes? How about sql? Do they ask enquire about the requirements / data model?

Re:Technical and non-technical tips for rocking your coding ... by marcosdumay on Tuesday September 26, 2017 @08:12PM (#15343807)
> Do they talk about tables? What about indexes? How about sql?

Interesting, because as soon as I got over the "why the hell do you want to create a new DBMS?" question, my first thought was about filesystems. I haven't digged into any DBMS to look at, but all those you point look so easy when compared to atomic data writing...

Re:Technical and non-technical tips for rocking your coding ... by mlnj on Wednesday September 27, 2017 @04:05AM (#15345741)
If someone started with 'How would you write a database?', I would just talk about simple csv reader n writer with no other promises and be done with it. Everything else is a feature.
Re:Technical and non-technical tips for rocking your coding ... by neeleshs on Tuesday September 26, 2017 @07:09PM (#15343441)
"Meaningful" in an interview question does not have to be "correct". These questions can be used to evaluate the thought process, rather than for "ha! Wrong answer!".

Questions are not inherently bad. It's how the interviewer interprets the answer, and whether it's used as a gateway to a discussion or a one way q&a session.

Re:Technical and non-technical tips for rocking your coding ... by bsder on Tuesday September 26, 2017 @09:34PM (#15344195)
> The database one is weird. You don't need to know how to create a good database system yourself in order to effectively use one, I think.

If your default answer is "Just use PostgreSQL until something screams at us that we shouldn't" then you are correct, you don't need to know about database systems.

Yet, these will be the same people screaming to use <flavoroftheweekQL> instead just using PostgreSQL.

Re:Technical and non-technical tips for rocking your coding ... by eradicatethots on Tuesday September 26, 2017 @05:19PM (#15342610)
Could you not just ask the direct question? Eliminate the nonsense..
Re:Technical and non-technical tips for rocking your coding ... by IncRnd on Tuesday September 26, 2017 @06:18PM (#15343062)
Of course, but that isn't always as efficient. Candidates bone up on canned responses the weekend prior, and it's also good to see which candidates are independent learners.

You'd be surprised how many senior developers freeze when they are asked to reverse a list using any language of choice.

Re:Technical and non-technical tips for rocking your coding ... by eradicatethots on Tuesday September 26, 2017 @09:28PM (#15344170)
I’m sure asking them the direct question won’t stop them from spewing out memorizes garbage.

The better question is why you think that’s a good thing

Re:Technical and non-technical tips for rocking your coding ... by IncRnd on Wednesday September 27, 2017 @05:05AM (#15346037)
Why do I think what is a good thing?

Asking easy and qualifying questions upfront saves money for the company.

Re:Technical and non-technical tips for rocking your coding ... by SilasX on Tuesday September 26, 2017 @07:05PM (#15343417)
But since this is a standard one now, they can bone up on it too.
Re:Technical and non-technical tips for rocking your coding ... by IncRnd on Tuesday September 26, 2017 @08:47PM (#15343992)
It's been a standard one for a long time, but many people have difficulty with it.
Re:Technical and non-technical tips for rocking your coding ... by gwbas1c on Tuesday September 26, 2017 @06:25PM (#15343120)
(Downvoted)

That's a really nasty attitude to take when someone is trying to evaluate paying you a large sum of money for many years of work.

Considering that I've run a ton of technical interviews, there's no good way to evaluate someone for competency without these kind of hypothetical questions. (This is how I screen out the morons who don't know how to use a database.) It's a two-way street, though. You can learn a lot about an organization by the kinds of questions they ask and the direction they send you down.

Re:Technical and non-technical tips for rocking your coding ... by hpcjoe on Tuesday September 26, 2017 @07:24PM (#15343536)
In my previous search, I had two interviews scheduled, one day after another, with different organizations which were diametrically opposite in outcome, though asked similar questions. It was the way they asked the questions, the body language of the interviewers, and for one of the interview sessions, a seeming desire to show that the interviewers were "smarter" than me.

In the first case, I got a nice offer. In the second case, I cut short the interview.

The questions were virtually the same. In the good interview, some silly fizzbuzz stuff, followed by "how do you do X", and me doing it. In the bad interview, do this thing, in bash. Had to read a man page on it, asked the interviewer if they had man pages, found out they didn't, asked if I could use the interwebs, at which point he became more flustered and overtly hostile. I then proceeded to solve the problem, while typing in vim, while talking him through the whole process. He was visibly angry and shaking after this. Tried a few networking questions, some of which I've known, some of which are far outside my domain, have never had a reason to study/investigate, and were completely unrelated to the task at hand.

The good interview asked me similar things, and when I indicated some of the boundaries of my knowledge, proceeded to work with me on how quickly I could learn something and become useful.

There is a huge difference in these organizations. One of them is thoughtful, has great people, and would be a terrific place to work at.

The other ... not so much. Later confirmed by talking to people who worked there.

Many people are justifying "hard" problems using various reasoning. When I ran my own company and hired, I never used this. What I wanted to see, was how something thought through something they've not seen/done before. This is what I cared about. Could they learn, and apply this learning, in situ, at high speed, and grow as a worker.

It seems my viewpoint is in the minority here, with a number of people preferring to test random knowledge fragments, as compared to actual ability to learn and apply what you learn. This is a shame. This generates groups whom are really good at recall, but possibly less so at applying this (as the "applying this" is not tested/measured).

I've seen the focus on velocity and accuracy of regurgitation in grad school. Test scores from people who focused on that were high. Capabilities as researchers ... quite low, with very rare exceptions.

The same effect is likely to occur in this scenario.

Technical interviews are hard. Probing depth of knowledge is challenging. Getting a sense of thought processes requires creating things that people can learn from, and apply.

I've had precious few interviews like this. Happy my current position is one of them.

Re:Technical and non-technical tips for rocking your coding ... by eradicatethots on Tuesday September 26, 2017 @10:02PM (#15344311)
Wish there were more like that. It’s really obnoxious the other way.
Re:Technical and non-technical tips for rocking your coding ... by methodover on Tuesday September 26, 2017 @05:05PM (#15342508)
> What are the things you should consider if you were writing your own database server?

"How did I get to this situation? Why am I here? Why am I writing my own database system instead of using an existing one? Where should I leave my resignation letter? Should I give them two weeks notice or just quit right now?"

Re:Technical and non-technical tips for rocking your coding ... by kafkaesq on Tuesday September 26, 2017 @10:29PM (#15344421)
Why am I writing my own database system instead of using an existing one?

Not only is this a perfectly reasonable question to ask - one is almost tempted to fault someone for not coming back with this as the very first question to ask in response to the question that was initially asked.

Given that 99.99% of the time you're tempted to go that route (as with, similarly: your own ORM, "scripting language", whatever) - you're going to wind up with, at the very least, way more of a challenge than you initially bargained for.

Re:Technical and non-technical tips for rocking your coding ... by gaius on Wednesday September 27, 2017 @03:22AM (#15345584)
Why am I writing my own database system instead of using an existing one?

My last job was to work on a proprietary, in house database, and while the case for it wasn't quite as strong as when it was originally written, it still did things that no external offering did that were considered important to our business. I probably wouldn't want to repeat the experience, but I learnt a lot there, and that company is wildly successful, not least because they make truly strategic decisions about buy or build.

Re:Technical and non-technical tips for rocking your coding ... by IncRnd on Tuesday September 26, 2017 @05:49PM (#15342826)
These types of questions aren't about playing a game of catchphrases but are meant to let the candidate shine through demonstrating their thought processes. They are also used as behavioral questions to assess how a candidate deals with situations in which they are not familiar, even if the task itself is incredibly easy or not directly applicable to the job.

You'd be surprised how many people freeze when they are asked to reverse a list of elements.

Another reason to ask fundamental questions is to ensure that an otherwise fit candidate understands the tradeoffs involved.

Re:Technical and non-technical tips for rocking your coding ... by spatley on Wednesday September 27, 2017 @12:25AM (#15344916)
The question we ought to ask though is: Is a candidate that freezes when asked to reverse a list be an employee that would be incapable of basic coding? Or more interestingly (to me) is the candidate that can easily write the reverse pseudocode on an interview whiteboard one that will be a good employee?

When I interview, I ask for her to write some code, yes. But I make it very simple: fizzbuzz, or reverse a string. But then inform the canditate that I am looking for style, craft and personality. Somewhat akin to a chef being asked to fry an egg

Re:Technical and non-technical tips for rocking your coding ... by IncRnd on Wednesday September 27, 2017 @04:42AM (#15345935)
> Or more interestingly (to me) is the candidate that can easily write the reverse pseudocode on an interview whiteboard one that will be a good employee?

You're looking at it backwards. That type of question catches people who misstated their qualifications. It's a buy-in to sit at the table.

People can debate whether they should have to answer questions, but in the real world one or two small qualifying questions of this nature save the employer a lot of money and time in the hiring process.

Re:Technical and non-technical tips for rocking your coding ... by onikolas on Wednesday September 27, 2017 @01:46AM (#15345208)
And how do you quantify "style, craft and personality" ?

I ask about quantification because I see it as the only way to reduce/eliminate bias.

Re:Technical and non-technical tips for rocking your coding ... by neeleshs on Tuesday September 26, 2017 @06:58PM (#15343360)
#2 is a great filter question. You'll be surprised how many people don't have a clue on this. I'm more than willing to answer that question. It tells the interviewer I have a basic understanding and can expand on it later
Re:Technical and non-technical tips for rocking your coding ... by cbanek on Thursday September 28, 2017 @01:55AM (#15354972)
> 3. What are the things you should consider if you were writing your own database server?

Answer: I would consider why I'm writing my own database server, as opposed to using something off the shelf.