News for hackers. Stuff that matters.
Re:I will not do a tech interview by tocomment on Wednesday August 21, 2013 @12:13PM (#6251332)
If only there were some way an employee could learn about btree's after taking a job...
Re:I will not do a tech interview by falcolas on Wednesday August 21, 2013 @12:26PM (#6251437)
On the job training? Heresy! Shun the unbeliever, shun!

In my own current position, I would not have gotten the job if they had interviewed me then like they interview new hires now.

Don't know how to find and recover active but deleted files? Goodbye. Don't know how to follow strace around a distributed environment? See ya. No idea how the elevator works? Why are you even applying?

I know how to do all of those things now, because I asked questions of my colleagues and the internet. I'm now the lead developer, not because I knew everything coming in, but because I am able to learn.

Re:I will not do a tech interview by hvs on Wednesday August 21, 2013 @12:18PM (#6251374)
I don't want my employees to have to learn everything just-in-time. By that logic, the people you hire wouldn't need to know anything. In addition, they don't know what they don't know, so they may not even know that they need a btree index.
Re:I will not do a tech interview by toomuchtodo on Wednesday August 21, 2013 @12:24PM (#6251416)
I hire people based on their ability to learn, not what they know.

If you're asking interview questions that can be googled in 20-30 seconds, you're wasting your time and theirs.

Re:I will not do a tech interview by hvs on Wednesday August 21, 2013 @01:27PM (#6251916)
You have a pretty low opinion of our field if you think everything that you need to know about our field can be googled in 20-30 seconds. I'm not arguing about minutia questions, but if you can't be bothered to understand how and why to optimize a database or the difference between TCP and UDP (really?) and that's what the job requires, then I don't want to hire you.
Re:I will not do a tech interview by toomuchtodo on Wednesday August 21, 2013 @03:18PM (#6252688)
My argument is don't play puzzles, don't ask stupid questions about "What does this command do with these flags?".

An interview should be the same as a discussion about concepts you'd have with a colleague. Does the person know the concepts? That's all that matters.

Re:I will not do a tech interview by bqe on Wednesday August 21, 2013 @01:32PM (#6251953)
Basic computer science knowledge (and yes, B-Trees qualifies) cannot be learned in 20 seconds. Most of this knowledge is actually a prerequisite to being able to search Google properly.
Re:I will not do a tech interview by toomuchtodo on Wednesday August 21, 2013 @04:07PM (#6252987)
Fair point. I was unfamiliar with B-Trees because most of my time is spent as DevOps/Networking/Sysadmin. It took me 15 minutes to learn and understand what they are and how they work.

http://slady.net/java/bt/view.php?w=800&h=600 http://en.wikipedia.org/wiki/B-tree http://en.wikipedia.org/wiki/B%2B_tree http://guide.couchdb.org/draft/btree.html

Now if you make understanding B-trees a prerequisite for the job, I can at least learn it ahead of time for the position.

Re:I will not do a tech interview by bobbbinsIII on Wednesday August 21, 2013 @01:58PM (#6252170)
how often does a normal software developer find himself in a situation where he has to know about B-Trees in depth?
Re:I will not do a tech interview by bqe on Wednesday August 21, 2013 @03:11PM (#6252640)
Basic computer science problems creep up often enough (about once a month) at my mostly normal job. We had to implement a prefix trie (specifically a modified radix trie with extra caching) to solve an interesting problem.

If you don't know about these data structures or algorithms, you won't even know where to look.

Re:I will not do a tech interview by dmatlack on Wednesday August 21, 2013 @02:33PM (#6252406)
When he works for the company that this whole conversation is stemming from.
Re:I will not do a tech interview by cheald on Wednesday August 21, 2013 @04:26PM (#6253102)
Database indexes are very frequently btrees; understanding how a btree works can inform how you structure and query data, resulting in substantially better software. They're also a generalization of the binary search pattern, which every programmer should be able to describe and utilize.
Re:I will not do a tech interview by kevingibbon on Wednesday August 21, 2013 @12:25PM (#6251428)
This is a popular opinion which still makes hiring an art. The best people I have ever worked with are the people who are fast to learn, have amazing problem solving skills and are socially intelligent. That's it. No knowledge of btree required.
Re:I will not do a tech interview by marknutter on Wednesday August 21, 2013 @12:23PM (#6251410)
> I don't want my employees to have to learn everything just-in-time

What about just some things. And in most cases, it's not learning for the first time but brushing up on the topic. To expect people to have encyclopedic knowledge of every edge-case problem your company deals with on a day-to-day basis is ridiculous.

Re:I will not do a tech interview by dmatlack on Wednesday August 21, 2013 @02:35PM (#6252415)
As OP said, you would not be able to google the specific B-Tree question because if you don't know about B-Trees you wouldn't know that you need to google it.

There's a difference between things you know you don't know (and therefore can google), and things you don't know you don't know (and therefore will not google).

Re:I will not do a tech interview by marknutter on Wednesday August 21, 2013 @03:39PM (#6252816)
"I can see you're a bright individual and you have a great track record for writing and shipping good software, which is clear from your github account and your previous employers' endorsements. I have no doubt you'll be able to come up to speed on <insert obscure discipline> which is something we use a lot around here. We're looking for people who can learn quickly. Welcome aboard!"
Re:I will not do a tech interview by Tichy on Wednesday August 21, 2013 @12:22PM (#6251400)
Except that in my experience, software development is mostly about learning things just-in-time. Most projects pose new challenges, or you want to use new technologies, and so on.

Imagine you hired some Cobol developers some decades ago, and therefore you would still be stuck using Cobol on your projects.

Re:I will not do a tech interview by MartinCron on Wednesday August 21, 2013 @01:26PM (#6251904)
No, you would just fire all of the Cobol developers to bring in the experienced Pascal developers.

How does one become an experienced Pascal developer? That's somebody else's problem.

Re:I will not do a tech interview by nawitus on Wednesday August 21, 2013 @12:34PM (#6251506)
>I don't want my employees to have to learn everything just-in-time.

You can require knowledge without using dealbreakers like "you must know b-trees". A better alternative would be to say "you need to know 30% of the following group of things: b-trees, tcp/ip vs udp, ..." and so on.

Re:I will not do a tech interview by bcoates on Wednesday August 21, 2013 @12:41PM (#6251561)
This is a lot like what I try to do in interviews, because I'm mostly just trying to filter out liars. I pick projects out of the candidate's resume and ask them about things they had to have learned to do the job they did.
Re:I will not do a tech interview by geebee on Wednesday August 21, 2013 @02:12PM (#6252264)
What if they could explain what a b-tree is, and why they are useful, but that they'd have trouble implementing one on the spot. If they told you the name of a good book they know that has an explanation of b-trees. That they read the chapter a while ago, which is why they can generally explain what a b-tree is, and that that's where they'd go if b-trees came up and they needed to write/implement one?

I don't mean to imply that this wouldn't be acceptable to you. I do "know" that I've been screened out after giving an answer like this (to the extent that I can really know the reason, legally they aren't allowed to say).

Re:I will not do a tech interview by arjie on Wednesday August 21, 2013 @12:22PM (#6251401)
The truth of the matter is that, for most of us, when faced with a problem we work with what we know. If you ensure breadth of knowledge, you can get better at each aspect, but if you only know a few fundamental ideas, that means that you have to be capable of looking at a problem and rediscovering the right data structure to handle it with. Essentially, you have to be as smart as the guys who came up with it in the first place and more. Better to know the data structures and how they work.

Recognition is easier than rediscovery.