Hacker News new | comments | show | ask | jobs | submit login

Let's just see how this might work. Here's a question phrased both ways.

When do you use traceroute?

How does traceroute work?

In my experience, anyone can make up some kind of answer for the first one. There's enough wiggle room in the language to let them say "when you need to trace a route", only using different words. This establishes nothing in terms of the candidate's abilities.

The second question is harder to answer without actually knowing something about the problem domain. Granted, I've had plenty of people flat out lie and make things up rather than saying "I don't know", but there are ways to catch that. If they try to memorize the answer, perhaps because a question is becoming too popular, then they'd better hope they learned it all the way down to the bare metal, since that's where I'm going to take them.

Incidentally, for candidates who say "I don't know" to the second one, a good followup question is "Okay, how would you build one from scratch?". The people who know the domain but simply haven't dissected that particular tool will be able to reinvent it on the spot. That's when you say "are you sure you didn't know this?" to make them feel better about themselves.

Those who don't have any idea about what goes on with IP will be stumped.

This assumes perfect performance on the part of all involved. Bad food, butterflies, jet lag, and other human anomalies can and will affect you.

So, bringing this back full circle, maybe you don't know how a B+Tree works internally for whatever reason, but could you build one if you had to?

From reading the Wiki page on B+Trees, it seems they are just a way to store data so that is is always sorted. If I ever needed to store data in such a way that it is always stored, I'd use a database+index. I don't know B+Trees because I've always reached for a database when I needed to do what B+Trees are good for. I've never had the need to learn B+Trees.

I haven't had the need to learn many low level things. Not having a computer science background, there are tons of things I don't know, but those things just don't come up ever in my day to day programming life (other than interviews).

The pragmatic maxim:

"Consider what effects, that might conceivably have practical bearings, we conceive the object of our conception to have. Then, our conception of these effects is the whole of our conception of the object." --C.S. Pierce

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact