6 ms·
It's unfortunate, but all the companies are doing this. Here's what a Google lead said in a tweet: > Hello, my name is Tim. I'm a lead at Google with over 30
by Mutinix 9y ago
It's unfortunate, but all the companies are doing this.
Here's what a Google lead said in a tweet:
> Hello, my name is Tim. I'm a lead at Google with over 30 years coding experience and I need to look up how to get length of a python string.
DHH:
> Hello, my name is David. I would fail to write bubble sort on a whiteboard. I look code up on the internet all the time. I don't do riddles.
Max Howell:
> Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off.
And yet, everyone is asking these questions about print a string in zigzag fashion or something silly like that.
Engineers are gaming the system because the system is garbage. None of us are looking forward to waking up and solving HackerRank, LeetCode and CtCI problems till the joy of programming leaves our bodies.
- j2kun 9y agoThere's a difference between not being able to write bubble sort and realizing that looking it up is a better use of your time. But when it actually comes time to do something you can't copy/paste off the internet, what do you expect a programmer who can't reinvent a half-decent bubble sort to do? The interview is to convince the other person that you can think logically about programs. Bubble sort is a low, low bar, and basic data structures are not much higher.
- Mutinix 9y agoMaybe he's being hyperbolic, maybe not. But that's entirely besides the point. I'm absolutely certain that there are many, many engineers who failed interviews because they couldn't write a zig-zag string and could yet come up with good solutions to problems at a real company. > what do you expect a programmer who can't reinvent a half-decent bubble sort to do But interviews aren't testing for that. The guy who invented Homebrew was judged by a Google engineer to be not good enough. Heck, I bet the engineer interviewing him probably had his/her entire dev machine setup via Homebrew. DHH invented Ruby on Rails, which was used at Twitter for what, 4+ years? And yet if he anonymously gave an interview at Twitter they would probably reject him because he can't find a cycle in a linked list in 30 minutes. > The interview is to convince the other person that you can think logically about programs. It's supposed to be about that. The modern CS interview is, however, absolutely not about that. It's whether or not you've grinded through CtCI enough to be able to answer something taken from a vast pool of useless questions. Tell me, is the Homebrew guy just really not good enough? Do you really think he does not know how to think about programs logically?
- narak 9y agoGood CS fundamentals are important because they are transferable skill to a wide array of problems a startup may face. Just because someone wrote an impressive framework or library doesn't mean given a complex problem outside of their known domain (web framework design or package management tool), they would be have the necessary background to solve it. With strong math and CS knowledge, you can reason through almost any problem.
- Mutinix 9y ago> Good CS fundamentals are important Yes they are. Except, these interviews aren't testing for that. Finding the maximum sum subarray isn't testing for any fundamental. > Just because someone wrote an impressive framework or library doesn't mean given a complex problem outside of their known domain Why are you even hiring them for something that's not their expertise? Seriously, that's literally the whole point of the interview. I don't think Max Howell was trying to get in to the DeepMind team. Calling these just some other web framework or package management tools is doing them an incredible disservice. Twitter used Rails. Airbnb uses Rails. If Airbnb hired DHH, it would be Airbnb's fault if they made him tune hyperparameters of some ML model rather than see how their web performance could be improved. Honestly, at this point I'm convinced I could get HN to talk poorly about John Carmack's programming skills.
- j2kun 9y ago> Finding the maximum sum subarray isn't testing for any fundamental. There is quite literally nothing more fundamental to computer science than data organization and access. And for what it's worth, Google and others are very open about their hiring process: they want generalists. I assume they have the data to justify that's a better investment. So maybe DHH or whoever gave the impression they weren't interested in doing anything they haven't already mastered. We have at least a little bit of evidence that attitude could be the problem: many of these anecdotes are disgruntled people who (often profanely) publicly vent when a company rejects them. Maybe that attitude comes out during the interview when they're asked to do something they deem to be beneath them.
- fencepost 9y agoI'm sure I could do it in something pseudocodish, but it'd probably take an embarrassing amount of time. Honestly I could probably do almost as good a job of implementing quicksort, at least in a naive version based on the stack. Seems to me that what interviewers should be looking for is not savants who can whack out particular odd bits of code but developers who can look up some things to use as reference as they go and most important who know how to determine what it is that they need. Proper evaluation and decision making is at least as important as actually writing the code, because those are the skills that can keep you from writing the wrong code.
- brooklyn_ashey 9y agoWith all due respect, I hear what you mean, but further supporting an interview system so divorced from actual problem solving (because most everyone who really really wants a job just endures the empty tediusness and memorizes these algorithmic puzzles from CTCI and Interview Cake and other sources) just enforces a kind of innane candy-empty arms race just like the SAT did, before it was clear that there were proven ways to master it. (the SAT has become just another pay wall at this point) The ultimate effect of this race is to render every programmer with the money and time to practice this equal. It is, forgive me, an infinite loop (sorry) -- and the bar will just get higher and new innane hoops will be added to the performing monkey obstacle course. Then, employers will be (or already are) selecting for a kind of navy seal squad of pedantry-- coders who like to submit and follow directions and behave themselves. Creative problem solving requires a bit of the rebel/subversive spirit. These kinds of interviews may test for an intrepid spirit. But honestly, There is no more intrepid spirit than that of an actual well-programmed machine. This popular interview method reveals that we are merely looking for programmers to be as similar to intrepid, well-programmed machines as possible. It results in machine-like workers working on machines. In effect, perhaps, the blind leading the blind. Is that what we want? I could be wrong, but I think we need to more highly value what humans bring to the task/process/team that computers can't. It seems less nihilistic, anyway. Or do we not know what that is? Maybe that is the real problem. Ironically, so many job ads say they are looking for "passion" in their programmers. Passion is at odds with what they select for. I wonder if the employers even realize this. My puzzle for them is: Given n programmers (all have memorized CTCI etc) ... so how do you decide what to select for and how would you implement an efficient, blind process that is more likely to include a diverse array of programmers who could work together hapily?
- smnscu 9y agoAh, the perennial apologetics of weaponized mediocrity. If you can't write a simple recursive algorithm that swaps two values (Max Howell), two nested for loops (DHH), or show me that you used Python at least once (uhh length? yes, there is this builtin, I forgot its name...), why would I want to hire you over someone who has seen a computer before? And to avoid being called hypocritical, here's off the top of my head how the answers would look like (I don't use Python very often either): 1. len(thingie) 2. def bubsort(arr): if not arr: return None for i in range(len(arr)): for j in range(i+1, len(arr)): if arr[i] > arr[j]: arr[i], arr[j] = arr[j], arr[i] return arr 3. def revtree(node): if not node: return None node.left, node.right = revtree(node.right), revtree(node.left) return node edit: works well for something coded on the toilet: https://gist.github.com/andreis/69a242330617b2a62753ce604e276c0d https://gist.github.com/andreis/69a242330617b2a62753ce604e27...
- Mutinix 9y ago> why would I want to hire you over someone who has seen a computer before? Because, you know, they invented Ruby on Rails and Homebrew? Incredible, really. You were so adamant on being hostile that you managed to put yourself over Max Howell and DHH in a couple of sentences. These people have made valuable contributions to the tech industry as it stands today. This is a fact and not an opinion. They invented Homebrew and Ruby on Rails. Good job, you solved the problems and are more likely to be hired by Google than Max Howell. Except he created the most popular package manager in OSX history and companies still can't see that.
- cakedoggie 9y agoNot everybody can say that though.
- dozzie 9y ago> Except he created the most popular package manager in OSX history and companies still can't see that. First, Homebrew is just a rehash of package managers that were available on unices for more than a decade. Then, from what I hear, Homebrew was (still is?) badly designed and implemented for quite a long time, which is not an evidence of author's high skills (as a programmer, anyway).