loading...

re: Tech Interviews Are Broken. Let's Fix Them! VIEW POST

FULL DISCUSSION
 

I was just mentioning in another post how Google's whiteboard interview terrifies me. And it doesn't matter if you want to work frontend, everyone goes through the same whiteboard test. The packet I have to study involves BigO Notation which I promptly forgot after my final exams 6 years ago, but it's just a lot of stuff to study so I can pass the "exam"... probably not gonna use any of that stuff for what I want to do.

 

There are so many people who can’t deal with whiteboard interviews. Do we normally code on a whiteboard? No. The context switching is enough to cripple some folks so practice at home. Get a big pad of paper or whatever you have to simulate the experience.

You are totally right! There is at times content on the interview that is not applicable. I go back and forth about BigO. It’s an abstract concept first off and tends to restrict candidates to those who have a 4 year degree. But it is an essential concept I wish more junior level or self taught developers understood when using so many Array mutations. BigO is certainly something that can be recited or memorized and if I’m already using methods that are geared toward performance in the code I just wrote why is the interviewer pressing me to explain BigO? Honestly no one will probably know, but there maybe bias at play.

 

At my company, we only use the whiteboard in both interviews and on the job for diagramming ideas. Proposed system architecture, very loose pseudocode, proposed json schemas, etc. We would never have an interviewee write code on the board, that's ridiculous.

I hate that so many companies do this. As someone who is dislexic and has a hard time spelling and reading, writing code without spell check and autocomplete is very difficult. I'm self taught, no degree, was team lead on my first job, filed for my first patent (and was granted) at my second job on a proprietary OCR technology along side my mentor who has a PhD in neuroscience from Stanford, now I am a Machine learning engineer working with health care data. I don't say this to brag, but to highlight that I think I'm a pretty smart guy but I've failed a LOT of interviews. There is so much focus on crap that isn't used on the job. I will almost certainly never have to implement my own sort algorithm because every standard language library has a highly efficient sort function picked out. I failed a Facebook interview because I don't know how to solve Grid search problems when interviewing for an ANDROID position! Where in the Facebook Android app do they use Grid search? They don't.

I think big O isn't as important as the process by which you evaluate the complexity. Knowing that you have to loop over your entire dataset 3 times to solve your problem when a solution exists that can do it with one iteration. Being able to compare efficiency like this is more important than being able to specifically score a function. Ultimately, you're never going to actually score functions on the job. You'll profile code and compare processing time, sure. You may even look for inefficiencies in a code block that has been identified as a bottleneck, but you'll never actually score the code.

 

The only exception I can think of where having a good understanding of Big O is crucial is when you will be tasked with implementing a product from scratch, for example the storage engine under Amazon S3 using R-B tree or something.

Having said that, it still doesn't explain the rationale behind whiteboard interviews, apart from the common argument of testing how someone deals with pressure... except it's induced pressure so highly unrealistic to those we'll face day to day.

 

I think it should depend on the industry and what the do. For example, google employees don't build websites right? They invent and improve algorithms, build platforms, do research to build libraries and frameworks etc. For this, only knowing how to build a website in a specific programming language is not enough. The candidates must have super deep understanding of the existing algorithms and data structures in order to identify problems in them.

On the other hand, companies that depend on building websites, may not require the candidates to know what a big o is. The most important skill they should care about is that the candidate is able to build website using the language they use.

Code of Conduct Report abuse