4 ms·
Well said. If I ever did actually have to implement a red/black tree or a TCP stack for my job as a software engineer (which has somehow never come up yet), I w
by pjlegato 10y ago
Well said. If I ever did actually have to implement a red/black tree or a TCP stack for my job as a software engineer (which has somehow never come up yet), I wouldn't do it by standing at a whiteboard racking my brain for the details, and I certainly wouldn't set a one-hour timer. I'd pick up a book or read some reputable websites to refresh my memory first, and I'd take my time writing it, since it'd have to be an important corner case to necessitate rewriting something complex that's already pretty well implemented.
- solipsism 10y agoYou seem to think you'd lose points in a Google interview for not knowing some specific concept. That's not how it works. Interviewers want to know how your brain works, even when presented with something you don't already know.
- pjlegato 10y agoI admit I have never interviewed at Google. I have interviewed at a number of companies that use the "CS trivia" style interview process. I got some of these jobs and didn't get others. In the cases where I didn't get the job, I naturally asked why. Despite repeatedly having assured me that they just wanted to know how my brain works and not whether I'd memorized specific concepts, I am usually flat-out told the rejection was because I had implemented some minor detail of algorithm X incorrectly; that my implementation failed in some corner case. I've also passed and worked at companies which do CS trivia style interviews. When they later interviewed other candidates while I was there, I sometimes observed how the people conducting the interview would first study algorithms and data structures for hours on Wikipedia prior to going in -- because they themselves can't recite any of that without preloading. Maybe Google works differently; I don't know. At most places, the "CS trivia" style interview seems to primarily serve as a vehicle for bolstering the egos of the people conducting the interview -- they get to feel superior and ding people for not knowing the gotchas of algorithm X.
- xiphias 10y agoI'm working on Google ads where a ,,minor detail'' in an algorithm implementation can easily cost $50000/day loss. It also means that the experiment has to be stopped, everything fixed, tested, approved again, which can easily take a month to get correctly, so a lot of time is lost. I'm not saying the interviewing system is perfect, but getting edge cases right in a big system is critical.
- kayge 10y agoWhen you're working on getting those edge cases right, are you allowed to use a book or a computer for reference? :)
- alexgorbatchev 10y agoThat's where peer-review comes in. Hopefully you aren't committing to master all by yourself these kind of changes.
- umbs 10y agoFrom my experience, I agree with this. I interviewed at Google in 2014. I prepared extensively. However, I bombed the interview. The interviewers genuinely wanted to see how I think. I am not brightest guy around and couldn't provide great insights in my solutions. I got same feedback from recruiter. Just came here to say that from my limited experience, I concur with this comment. Google also has improved their feedback loop after the interview, which I find severely lacking in other companies with similar interviewing styles.
- nostrademons 10y agoThe real use-case for algorithm knowledge at Google isn't implementing standard libraries, it's in distributed computing. Okay, you know how to implement a shortest-path algorithm. Do you know how to implement a shortest-path algorithm when the data is spread over 10,000 computers? How about when paths become blocked by traffic jams or accidents? Could you adapt it so you can update that shortest-path in real-time as weights changed? In these cases, most of your head-space is focused on the problem, which isn't written down anywhere other than PM's requirements doc. It's pretty critical that you understand the algorithm really well, because if you have to look it up you're going to have to unload all the messy problem-domain stuff that's in your brain.
- manigandham 10y agoDistributed storage/compute is a different problem/abstraction from an adaptive shortest-path algorithm. Also, you can learn the algorithm first then figure out the problem. No need to do it on the fly, although sometimes that can help too.
- alexgorbatchev 10y ago> I wouldn't do it by standing at a whiteboard racking my brain for the details, and I certainly wouldn't set a one-hour timer. That...