Can't believe Google is still doing this crap. 5 whiteboarding exercises, seriously? How dumb is that. One OK, two why not. But maybe part of the interview could be spend talking about, you know, architecture, past experience, workflow, etc.
Can't believe Google is still doing this crap. 5 whiteboarding exercises, seriously? How dumb is that. One OK, two why not. But maybe part of the interview could be spend talking about, you know, architecture, past experience, workflow, etc.
Google does to do that for many candidates, but if you're a recent school grad, you probably don't have as much past experience to talk about, so the interviewer will instead tend to focus on coding questions.
Basically, the longer your work history is, the more questions you'll get about what you have done versus demonstrating what you can do.
There are exceptions, of course: Google Zero, Google X, but I maintain for SWE and SRE, it's all about the whiteboarding.
It must be perfectly fine if it's meant to draw figures and overall ideas about the solution. That's what whiteboards are for. Sometimes a picture's worth a thousand words, and drawing diagrams or illustrations is frequently indispensable for actually solving a complex problem (as opposed to having a picture in the head, or described in writing).
But I'd say it's borderline offensive to ask a person to write any realistic code (i.e. not very-high-level pseudocode that's more of a human-readable notes than something for a machine) on a whiteboard.
Never been to Google, so no idea what they ask for.
I don't think they necessarily care if it compiles, or if you forgot whether it was Set.has() or Set.contains(), but for some reason they do not allow pseudocode.
That being said, everyone knows you need to have a solid understanding of data structures and algorithms to be seriously considered, but I don't think Google is necessarily looking for software prodigies.
Whilst explaining verbally to others your every single step of your thought processes while you are doing fine-grained analysis the problem (something which one almost never has to do in real engineering environments), and under incredibly unrealistic time pressure ("these people will either love me or hate me, depending on what I say in the next 5 seconds.") And typically to solve "problems" that bear little or no resemblance to the kind of problems that you'd actually be tasked with solving on a day-to-day basis at most of these roles. But which instead seem to solve other, ulterior purposes -- in particular, to shore up the interviewer's own insecurities:
"Gosh, I wish I knew how to find good people for this job. And heaven forbid if the candidate should ask me to explain our business model... But if we ask a bunch of Google-style questions at the whiteboard... I guess that means we must be in same league as Google."
In Google's case, for example -- to establish their "brand."
Fine-grained analysis? Again, you're not expected to be a master, but it's not asking a lot for you to break down a seemingly complex problem into something workable (e.g. The maze solver example above could be approached with choosing a right turn whenever you approach an intersection...does that seem very fine-grained to you?).
Incredibly unrealistic time pressure? Again, in most interviews I've had/conducted, you're not expected to just know the answer. If you do, that's great, but you make it seem like they're waiting to pounce on you the moment you struggle. I've never seen that in interviews for larger companies.
Seriously, we could get this done in three steps:
1. Phone screen including Fizzbuzz-level programming challenge.
2. IQ Test
3. Personality/Culture-fit interview.
You can get around this by conducting a study that finds IQ is better correlated to performance on a particular role than any other nondiscriminatory measure, but good luck with that, and good luck proving that when you get sued by someone. It's just too risky, despite not being illegal.
There is a popular myth that it is illegal because of a case where it was found to be illegal in the specific manner in which it was used.
https://www.hiresuccess.com/blog/is-employment-testing-legal
Google and similar companies aren't in the business of hiring anyone who can just learn anything. Given enough time anyone can develop skills to be a programmer. However, google is in the business of hiring people who are intellectually superior. People who can do things that can't necessarily be taught.
You complain about 5 whiteboard problems because most likely you won't be able to solve 5 whiteboard problems. This does not mean you're a bad programmer. However, the guy who can solve those problems without an issue has a higher probability of having higher intelligence and better programming skills than you.
You solved the problem if you give them the O(n^2) answer, but they're looking for the more complicated O(n) answer, because then they'll get to present you with the 2nd and 3rd variations on the question, rather than spending time refining the first.
If I wanted to put a negative spin on it: Google is filtering for people with lots of free time on their hands and spend that free time on intellectual pursuits. This makes them more likely to spend their free time staying at work rather than going home and doing something else.