Coding Interviews On Whiteboards

Coding Interviews On Whiteboards


John: Hey, this is John Sonmez from simpleprogrammer.com.
So I’ve got another non-question video for you today. This time I thought I’d talk
about something that seems to come up quite a bit on my blog. It’s a topic that a lot
of people have very high emotions about in the programmer/developer community so don’t
get too crazy about this. I’ve been asked my opinion on this quite a bit, so I thought
I’d give it to you today. A lot of times whenever the subject of interviews
comes up, developer interviews inevitably someone brings into the idea of writing code
or especially writing code on a whiteboard, right? If you go and you interview for one
of these top tech companies like Microsoft or Google or Amazon or probably Apple, most
of the time they’re going to have you go in and write some code on a whiteboard. I
think a lot of people are split on this, right? There’s a lot of people that are really
upset that—this doesn’t prove what I know. This doesn’t make sense to me. When I code,
I go and I Google what I need to find out or I’m typing an IDE, why do I have to solve
these kinds of obscure problems on a whiteboard? I can see the point to this, right? I’m
actually on the other side of that, right? The thing is this. Well, just backing up a
little bit. Does it really matter what you or I think about the process? A lot of times
in life you have to take this approach, right? When you’re sitting in traffic you can get
all pissed off that you’re sitting at a light or that there’s a big traffic jam
but that doesn’t help your situation. The reality of the situation is you can deal with
that. You could be listening to an audio book instead of fuming. You know this is going
to happen all the time. You have to deal with the situation, with the reality. Becoming
good at identifying and dealing with reality is a really important life skill in general.
That’s where I fall into this. Now, I agree with a lot of you that say, “Oh,
this doesn’t really prove my skills as a developer. This isn’t like the work that
I do everyday.” It’s true. Granted, it is very true, but the reality of the situation
is if you want to get a job at Microsoft and this is how Microsoft interviews people, who
are you to fight that? You can try and fight that. You can go and you can call up Bill
Gates and send email campaigns and say, “You shouldn’t interview people like that.”
That’s fine. Maybe you’ll have some success with that, but if you actually want to get
the job today and you’re going to go for that interview you have to adapt to what they’re
doing. So with that said I’m for learning how to
do the whiteboard interviews, right? If you decide that you want to get a job at one of
these companies you need to go out there and you need to figure out how to do this. Go
and practice this. I just went to a code camp this weekend where someone did a great talk
on cracking the coding interview and he talked about—he’s actually a Microsoft employee
and he talked about how he interviewed for a job at Microsoft and how he interviews people
now and he said that he actually trained. He went on weekends and he spent 4 to 5 hours
training by writing on an actual whiteboard and trying to solve some of these difficult
brain teaser algorithm problems, the kind that we typically hate.
He got to the point where he did this over 3 months and he became good at it. He figured
out that there’s really just a handful of classes of problems that you would eventually
have and that if you could figure out how to solve these problems and you can get good
at doing this on a whiteboard then when you go into that interview you’re not sweating
and you’re not nervous and scared because you’re actually—in fact, he said, he said
you’re arrogant, but keep that arrogance inside which I totally agreed with him. You’re
super, super confident. Don’t project that arrogance projected as confidence but you
can get to the point where this is cake walk, right?
You can fight this, like I said, you can keep on fighting it. Heck, I’ll even agree with
you that sometimes these whiteboard interviews are ridiculous, but it’s reality. Are you
going to adapt to reality? Here’s another piece for this to take the other side of it.
How many people are willing to learn what it takes to be able to do one of these whiteboard
interviews and willing to do the training and practice? It kind of does set you aside.
If you’re willing to take those extra steps and that’s probably, I would have to guess,
if I had to guess why Microsoft and Google still do this even though they know it’s
not really a reflection of how the person’s going to work, it’s a reflection of their
persistence and their ability to do something really hard into practice and prepare for
that. Anyway, that’s my take on the whole issue.
I know it’s a big debated issue. If you’ve got some comments, if you’ve got some ideas
leave them below and I definitely will get back to you. If you’ve got a question or
a topic even that you’d like me to do a video on just email me at [email protected]
and I do most of the—I can’t promise I’ll do your video, but for the most part I get
to a lot of them especially if you have a good question or idea here. Thanks a lot.
Take care and I’ll see you next time.

43 thoughts to “Coding Interviews On Whiteboards”

  1. Thanks man.. I have my first Whiteboard interview coming up. This will be my third interview with a top tech company in my area.

  2. I have to admit the algorithms section of your Pluralsight course "Preparing For a Job Interview" really helped me in my last few interviews. Until lately I had always been a freelance developer and haven't had a 9-5 programming before. Thanks.

  3. I think it's more about thinking in code and thinking on your feet. A person who is good at a whiteboard interview would probably handle tasks faster and plan out his work in a more coherent way.

  4. My Professor told me if you can't write code on a deserted island with a pen and paper, you can't write code PERIOD. You shouldn't need the compiler/IDE to tell you what's right or wrong for the most part

  5. Complaining about whiteboard coding is just laziness. I know it isn't part of the day to day job, but it is easy to practice. I had to do this in all of the exams for my degree and now if I have interviews I just brush up on it by practicing. They usally let you do it in a language of your choice too.

    I have a bigger problem with recruiters who won't put someone forward for, say a C# job, because their main day-job experienbce is in VB .Net or Java.
    It is trivially easy to pick up programming language syntax in another language if you're an experienced programmer. I've helped people with college assignments in langauges I had never used before. That's how I learnt Java, PHP and JSP. All languages I have never used in my day job.

    It's even easier if its a language you did know in the past but haven't used for a long time. I hadn't written code in Pascal, for instance, since highschool, but recently I had to use it and after a couple of hours of fumbling it all came flooding back.

    In an ideal world, companies would just advertise for a "programmer" and specify only the level of language. Obviously Matlab doesn't help you code in Java and Java doesn't help you code in C++. But a Matlab developer could pick up R or Octave easily and a Java dev could pick up C# even quicker.

  6. Your videos are great and very insightful really makes me think about things, I've never really though of or about, and awesome too see that you like bodybuilding too haha since I do as well and am in school for computer engineering I can really relate to your videos!

  7. maybe do some neck/trap exercises

    you look kinda silly (maybe you fixed this imbalance as this video was a year ago)

  8. Company's who are doing whiteboard interview obviously never heard about test driven development and don't practice it. You ALWAYS write a failing test first, there is absolutely no excuse to do something else. So this is actually a good indicator to filter out bad companies with very fragile code bases (e.g. Microsoft).

  9. You mention attending a code camp in this video – noting the focus on white boarding. Which camp was it and/or who was the Microsoft person who discussed his whiteboarding "technique"?

  10. You must be one of those guys who say if you're being raped just sit back and enjoy it. I walk away from interviews like this. Their loss.

  11. The problem with whiteboard coding is that while it's good for weeding out programmers who are not up to the job (reduces false positives of your recruitment process), it also filters out programmers who are competent and productive in day-2-day coding but whose thinking process isn't aligned with whiteboard coding (increases false negatives). In today's world, where competent developers are scarce to come by and many tech companies are competing for them. It makes sense to use a screening approach that has as low false negatives as possible. It is ok to allow some false positives to go through, and fire them during probation.

  12. Whiteboard interviews can be tough, but I prefer them over pen and paper interviews which are brutal. From the few that I've done, it seems like the important part is communicating even when it's stressful.
    Also, good interviewers will give you the answer to something that you answered wrong, and give you questions that require that learned knowledge later on in the interview to see if you've assimilated the information well.

  13. Whiteboard interviews are like asking to do a second-degree integral even you're never ever going to solve a coding problem thinking in terms of calculus (unless you work for Wall Street and want to create an obscure derivative to awe HR people who barely took basic math back at college)

    Not dissing the Microsoft dude who invested his weekends on perfecting this useless (for me) craft, but 99% of people I see doing this are persons with communications problems that try to look like the hip guru by drawing meaningless doodles.

  14. I agree to certain extends as solving problem on whiteboard makes us think quicker (when you practice enough). I would appreciate if you anyone could share their way of whiteboard coding practice 🙂

  15. I always think that it is good to speak your thought process out loud and ask for help, the interviewers always seem to like that and I typically got the offer after.

  16. Microsoft, a company that puts out buggy crap does this? Well I can say that I would never want to work for that sh*thole. Look at the layoffs they pulled a couple years ago. Why even bother with them.

  17. Are a fucking nightmare my recent one was 6+hrs of algorithms, data structures and analysis.

    The most stressful interviews ever.

  18. Whiteboard interview are stupid and pointless.

    The End.

    and i don't fight it when i got asked to do sorting and some other algorithms on a whiteboard i just left. i don't need to work for people who think that's useful.

  19. i'm learning cobol at the moment and I'm not scared of a whiteboard interview my big problem is I don't have experience or a resume that's very good, I've had precisely ONE job in the past working retail and I only lasted like 2 weeks and If I had to explain what happened to a Tech interviewer it'd be easy, I was in a lot of pain, I can't stand on my feet 8 hours a day every day constantly in a row I'm slightly out of shape and that's PART of why I want one of these jobs. They're desk jobs. <3 It's just a matter of getting my FOOT in the DOOR to get an interview and I'm not even going to TRY to get one before I know how to write the code. That's far off from where I am today.

  20. I can tell you're not a very experienced and skilled programmer! Any decent programmer who has taken these tests can clearly see that there's a bad way of hiring. It is so bad, Google has stopped using them. These tests not only have a bunch of false negatives, but they have even more false positives. Microsoft uses these whiteboard interviews and it shows in the quality of their software. A programmer who has a ton of experience can look like a complete idiot next to a novice who happened to stumble onto a the same or similar question when preparing for developer interview questions.

    A skilled programmer can see many possible avenues for solving a difficult programming problem. They usually try to workout the most efficient algorithm from scratch because they think the interviewer is testing their algorithmic prowess. For instance, if asked to implement copying a string, they would implement the function from scratch using for loops, etc. This is a very tricky function to write. A novice programmer, however, would just call strcpy() and look like a genius to the interviewer. The good programmer looks like an idiot because he ruled out an answer because he felt it didn't test his programming skills.

Leave a Reply

Your email address will not be published. Required fields are marked *