There seems to be a growing and vocal subgroup of programmers who think solving algorithm problems is about memorization. That worries me. Don't they understand that problems can be solved by thinking? That they're being asked about the most timeless and beautiful parts of programming, which don't depend on the technology of the day, and whose beauty is that you <i>can</i> figure out everything from scratch? Or that solving such problems gave us computers and the internet in the first place?<p>...I must be getting old. I have nothing but ugly things to say about that attitude. Sorry, HN.
The first twitter response is pretty great IMO "Hopefully we won't get to the point where people take as much pride in ignorance about CS as they currently do about math."<p>Maybe you don't use bubble sort, but it is truly trivial and these arguments seem quite anti-intellectual.
I recently experienced this filter when I applied to one of the big tech companies without bothering to re-memorize my undergraduate-level algorithms. I figured having run two companies and fifteen years of industry experience with a dozen languages was good enough.<p>I didn't get an offer. But the filter worked: I wouldn't have been happy at a place that places value on the ability to memorize and regurgitate search results.<p>We just raised a seed round on the back of a deeply technical demo I wrote in my spare time.
While I think the focus on knowing undergraduate level algorithms verbatim and gotcha riddles are silly and a waste of time, they're exaggerations of very useful techniques. Something like fizz buzz is simple enough and trips up a surprising number of people that were able to talk their way into the interview. Puzzles allow you to assess their critical thing skills without letting them get caught up in semantics that tends to happen if you make it about programming (too many questions about libraries, coding style, etc).<p>An immediate answer, even if correct, tells you nothing because it was something they memorized. I'm much more interested in how they assess and approach--I don't even care if they come up with an answer.<p>Completely unstructured interviews seem to be meandering and often you walk away with gaps in your assessment.<p>This approach is only really applicable to jobs where those skills are needed and isn't the whole interview.
How many times in your career have you needed to implement bubble sort without the ability to google it? In my experience I can say never and imagine that's what other people would say too.<p>I don't think the point is that we should take pride in not knowing things so much as that perhaps this way of evaluating potential hires is not very good. Doesn't seem controversial to point out that doing a technical interview that tests skills not required on the actual job might not work well for finding the people you need.
While I don't think you should know how to implement bubble sort on the fly in an interview, you should probably understand what it is at a conversational level, along with merge sort and quick sort, especially if the position is senior or lead and requires a CS degree.
If you're hiring for "great", you need to realize it is a two way street.<p>As an employer, if you really think a white board quiz is the best way to see if you want to work with someone, ask the candidate to bring a couple of questions for the interviewer to solve, you know, so the candidate can tell if they want to work with you.<p>An interview is a <i>date</i> - you want to find out if you're compatible without coming off as a jerk.<p>That said, white board stuff never bothered me. I don't remember caring that much if I got the job and talking to other developers is kinda enjoyable.
Fwiw I think the emphasis on the ability to write code instead of ability to read and understand it has been given disproportionate importance when the reality is that we spend a lot of time (perhaps even more time) reading rather that than writing.<p>I blogged about this at length here: <a href="http://lonetwin.github.io/blog/html/2016/07/01/code_reviews_instead_of_whiteboard_for_interviews.html" rel="nofollow">http://lonetwin.github.io/blog/html/2016/07/01/code_reviews_...</a>
Does anyone agreeing with this tweet know what bubble sort is? It's fine if you don't but if it's explained to you it should be pretty trivial.<p>It's like saying "why should I have to write fizz buzz for an interview." Of course you'll never have to write it. You won't even have to use it.<p>I just need to know if you can write software <i>at all</i> for this software developing job you applied for. Sure, we'll evaluate other, more important, things too.
they could just as well ask to do multiplication without a calculator. many programing languages already have a sorting function in its standard library.
Agreed, the stupid quiz culture is getting old. I suspect people who cling to this tradition wouldn't be able to code their way out of a paper bag outside the sphere of well defined problems with canned solutions.