Thanks for going ahead and expressing what you think may be an unpopular point of view. Your points are fair, and are a bit part of why I feel so ambivalent about technical interviews. While I don't really like how they're handled, I think they may be necessary, and they may be an unfortunate byproduct of a good thing.
For instance, I majored in math, not CS. I took some basic computer science, but much of my programming was done in math classes, sometimes informally, sometimes as part of the course itself, and sometimes as part of those optional 1-2 unit pass/fail labs.
When I first opened a data structures and algorithms book, I was slightly amused by what I'd already covered and what I hadn't. For instance, I'd written DFS and BFS code for my graph theory class in college, and I'd done a lot of the linear programming at the end of the algorithms book. Various numerical programming exercises had touched on a lotos other things, recursion, lists, and so forth. But there were gaps, and I've studied a lot on my own for them.
Now, in most fields that wouldn't be possible. You can't study something that overlaps quite a bit with law, nursing, or medicine, and then fill in the gaps on your own, demonstrate knowledge to an employer's satisfaction, and go off to work as a lawyer, nurse or physician. I think this is a pretty wonderful thing about software development, and things like the google "entrance exams" are actually part of why it is possible.
I didn't get an offer from google, and reading these threads, I'm realizing that I should have taken months, not weeks, to review. However, I didn't encounter any of the arrogance or hostility, I found that the interviewers did a good job keeping things friendly and collaborative.
That said, it's stressful. People in other fields are often kind of astounded to hear what we go through. You have nowhere to hide, you are at the whiteboard, with a pen, getting grilled technically, and you only have 45 minutes to solve the problem. You fear looking like an idiot, even if the interviewer tries to be positive. You may feel like an idiot, even if the interviewer had no intention of making you feel this way and made an effort to make sure you didn't. And of course, there are plenty of interviewers who may actually kind of enjoy making someone squirm a bit.
So while I may have a somewhat more positive view of the tech "exam" than a lot of people here, I still think something is broken here. I've discussed this a few times with people here on HN, and I honestly do think that three big interviews may be roughly equivalent to taking the bar exam. Seriously. I could have studied for several months (though like I said, I have bigger gaps to plug than a CS major probably would). I read a blog post about a guy who passed the California bar with 100 hours of study. People talk about the "grueling" three days of exams. Well, interview at google, amazon, and microsoft. Between phone interviews, in person interviews, and so forth, sure it can get to that level. Even if it falls short of "bar exam" level effort, the fact that we're starting to talk about it reasonably in the same breath shows just how much effort goes into it.
And here's the problem - it's just an interview. You get no feedback, no credential, nothing. You might do well enough to "pass" under a reasonable set of scoring criteria, but all you get is a "no hire" with very minimal information about how you did.
I've heard people say (again here on HN) that they'd happily take a bar exam for software if it meant that they could be done, for once and for all, with the never-ending series of technical exams that we have to do over and over. I'd be ok with studying three months, six, hell, even a year. Because the exam would be consistent, rigorous, and would provide me with a lasting credential. I'm just not willing to put this sort of effort into a single interview that may be decided very capriciously.
So, all in all, I see merit in these difficult technical exams (first step, let's stop calling them interviews). I think the whole thing could be handled vastly better, though.
For instance, I majored in math, not CS. I took some basic computer science, but much of my programming was done in math classes, sometimes informally, sometimes as part of the course itself, and sometimes as part of those optional 1-2 unit pass/fail labs.
When I first opened a data structures and algorithms book, I was slightly amused by what I'd already covered and what I hadn't. For instance, I'd written DFS and BFS code for my graph theory class in college, and I'd done a lot of the linear programming at the end of the algorithms book. Various numerical programming exercises had touched on a lotos other things, recursion, lists, and so forth. But there were gaps, and I've studied a lot on my own for them.
Now, in most fields that wouldn't be possible. You can't study something that overlaps quite a bit with law, nursing, or medicine, and then fill in the gaps on your own, demonstrate knowledge to an employer's satisfaction, and go off to work as a lawyer, nurse or physician. I think this is a pretty wonderful thing about software development, and things like the google "entrance exams" are actually part of why it is possible.
I didn't get an offer from google, and reading these threads, I'm realizing that I should have taken months, not weeks, to review. However, I didn't encounter any of the arrogance or hostility, I found that the interviewers did a good job keeping things friendly and collaborative.
That said, it's stressful. People in other fields are often kind of astounded to hear what we go through. You have nowhere to hide, you are at the whiteboard, with a pen, getting grilled technically, and you only have 45 minutes to solve the problem. You fear looking like an idiot, even if the interviewer tries to be positive. You may feel like an idiot, even if the interviewer had no intention of making you feel this way and made an effort to make sure you didn't. And of course, there are plenty of interviewers who may actually kind of enjoy making someone squirm a bit.
So while I may have a somewhat more positive view of the tech "exam" than a lot of people here, I still think something is broken here. I've discussed this a few times with people here on HN, and I honestly do think that three big interviews may be roughly equivalent to taking the bar exam. Seriously. I could have studied for several months (though like I said, I have bigger gaps to plug than a CS major probably would). I read a blog post about a guy who passed the California bar with 100 hours of study. People talk about the "grueling" three days of exams. Well, interview at google, amazon, and microsoft. Between phone interviews, in person interviews, and so forth, sure it can get to that level. Even if it falls short of "bar exam" level effort, the fact that we're starting to talk about it reasonably in the same breath shows just how much effort goes into it.
And here's the problem - it's just an interview. You get no feedback, no credential, nothing. You might do well enough to "pass" under a reasonable set of scoring criteria, but all you get is a "no hire" with very minimal information about how you did.
I've heard people say (again here on HN) that they'd happily take a bar exam for software if it meant that they could be done, for once and for all, with the never-ending series of technical exams that we have to do over and over. I'd be ok with studying three months, six, hell, even a year. Because the exam would be consistent, rigorous, and would provide me with a lasting credential. I'm just not willing to put this sort of effort into a single interview that may be decided very capriciously.
So, all in all, I see merit in these difficult technical exams (first step, let's stop calling them interviews). I think the whole thing could be handled vastly better, though.