They will even give you a study guide!
Being really good at programming on a whiteboard is the name of the game. And studying for this is absolutely useful, and not "cheating" because everyone does it and is expected to do it.
They will even give you a study guide!
Being really good at programming on a whiteboard is the name of the game. And studying for this is absolutely useful, and not "cheating" because everyone does it and is expected to do it.
The other day, I read a rant about an algorithms interview question at some big company (it might have been Google, but I'm not sure and it doesn't matter). Essentially the rant was that the candidate had been asked to implement an obscure version of some widely known and well described function that has O(n) time where all the standard and widely studied and likely to be crammed versions have O(n log n) time -- more or less the question was based on an algorithm of the sort that probably appears in a research journal or conference proceedings and no where else. Essentially, the question was uncrammable.
That's what makes it a great interview question. It identifies true genius when the candidate can figure it out on the fly. It identifies ordinary engineering talent when the candidate starts with what they know [an O(n log n) solution] and reasons from there (and perhaps asks for help!] and it identifies people candidates who are applying at Google because it is Google and not because they enjoy challenging problems.
Except they filter those who "doesn't do algorithms" for free (the prep/cramming takes about 6 months I believe)...
Other people do though.
Perhaps you are one of those people who could just walk in and Ace the final exam for an intermediate data structures and algorithms class taught at colleges.
And finally, it would be fascinating to plot career performance at Google vs time spent interviewing. Intuitively I would expect those who got an offer without studying to do better (higher latent intelligence), but I could also see it going the other way (lots of studying correlates with willingness to work hard on boring problems, which is what most Google engineers actually have to do day-to-day).
I don't see how this process is useful to the candidate. I mean it is useful if he is actually hired but is there any other usefulness beyond this? Does it improve your skill? Makes you a better person? Is it fun? I don't think so.
Also refer to my other comment.
I sharpend my skills and learned new stuff.
When I say "program on a whiteboard", I am mostly talking about the google style algorithms questions.
The way to practice for those is to just do a whole bunch of them, and talk to yourself, like you are in an interview.
It is just CS 201 material. All the material is out there for anybody to study.
The best materials are Cracking the Code interview, as well as the Google University github page.
There are also free resources out there for doing real life practice interviews, and pairing you up with people who do that.
Preparing for the Google Style interview is a whole entire industry.
They've got the most common algorithm questions asked at the various Big Tech companies.
Go through them, and learn to solve/implemented at least 250 of their problems, and you'll be able to able to breeze through most algo interviews.