Whiteboard coding in software developer interviews.

[)roi(]

Executive Member
Joined
Apr 15, 2005
Messages
6,282
How do you show the interviewer that you can actually code?

@Droid
Also, I have spoken to doctors that did their specialist exams and they had to do pretty much the equivalent of whiteboard tests.

But I agree one has to be careful about the questions asked. "Trick" questions like inverting a tree, some people will know, while others will not know how to do it. The people that know it, will do well, while others will fail it badly. In my opinion these trick questions are not an indication of skill, rather an indication of whether the candidate has accidentally studied that algorithm. Good whiteboard questions, which require programming skill but do not require knowing a very specific algorithm, are tough to find, which is in my opinion why interviewers sometimes reach for the trick questions. Interviewers at big tech companies are also people and they make the same mistakes, often more so that at smaller companies in my opinion, because at these big companies the interviewers take part of the blame for hiring bad candidates, so they might "play it safe".
If the company / medical practice is recruiting for a specific skill-set, then maybe some specific validation is required, but its still a very difficult thing to get right and not offend or more importantly to not inadvertently overlook real talent by being too dogmatic.

But honestly I still think the let's use this standard WB test for all our interviews approach is a lazy and impersonal one; it's trying to turn a personal thing into something as clinical as picking a TV (HDMI = check, ..,). Everyone interviews differently, some people are just better at it than others, but that doesn't directly correlate to ability.
 

cguy

Executive Member
Joined
Jan 2, 2013
Messages
8,527
I looked up the problem statement for "inverting a binary tree" - it seems as though this means: reflect the tree such that it is the mirror image (i.e., for each level the nodes read left to right should read right to left). If this is indeed the problem statement (and please, correct me if I'm wrong!), and someone got this wrong or regards this as special knowledge/"a trick", especially during an interactive interview, I would also disqualify them - it shows a total inability to think about algorithms.
 

biometrics

Honorary Master
Joined
Aug 7, 2003
Messages
71,858
I looked up the problem statement for "inverting a binary tree" - it seems as though this means: reflect the tree such that it is the mirror image (i.e., for each level the nodes read left to right should read right to left). If this is indeed the problem statement (and please, correct me if I'm wrong!), and someone got this wrong or regards this as special knowledge/"a trick", especially during an interactive interview, I would also disqualify them - it shows a total inability to think about algorithms.

tree.invert
 

cguy

Executive Member
Joined
Jan 2, 2013
Messages
8,527
I guess it depends on what you're trying to achieve. If I was on the cutting edge of algorithmic development like Google for example, I would be inclined to hire the best computer scientists possible, in which case this sort of thing might very well be applicable. If I was hiring for a digital agency who just requires developers churning out CMS-based websites all day long then this would be overkill.

This is a very good point. At companies like Google, by the time someone has been selected for phone screen and has also passed the phone screen(s), the candidate is either fairly experienced at a well respected company, an IOI or TopCoder or some such high ranker, a graduate with postgraduate qualifications from top a top university, a well respected researcher or some combination of the above. Ability to code given the right resources is pretty much a given.

The goal of the interview becomes about establishing what it is like to work with person, whether they fit the culture, and if they bring the average in the team/company up or down. This is generally done by asking technical questions (including WB coding), as a springboard to deeper discussions, which is where the real interview happens. Often a simple litmus test is thrown in just to make sure that HR didn't mess up, and you don't have a fraud in front of you (this happens!).

Although I am sure that the Homebrew guy was just rusty on his algorithms, this is a bit of a red flag, after a bit of discussion and question asking about the problem, if it isn't solved, or more likely the "Don't you know who I am???" button is pressed, I would be very worried about the hire. My guess is that he wasn't a culture fit precisely because they determined that he was the kind of person who without any actual knowledge of why he was booted, would go on Twitter and post that not being able to immediately code a tree inversion was the reason he wasn't hired, despite all his fame and awesomeness.
 
Last edited:

biometrics

Honorary Master
Joined
Aug 7, 2003
Messages
71,858
The comments here sound horrendous. Thank god I've been self employed most of my life.

Seems there is a huge difference between building a company and building a career.
 

rorz0r

Executive Member
Joined
Feb 10, 2006
Messages
7,968
I did an interview recently with a whiteboard but drawing an ERD for a conceptual system, then adding onto it for additional requirements (I thought it went quite well because I pretty much "see" every system as its database model). Strangely they declined my application due to lack of experience in a particular language, when they never asked a thing about that language or anything. Who knows, either I missed the boat completely on something or they just didn't ask the questions they should have.
Another company made me do a 3hr technical test as well as a technically focussed panel interview (in addition to another 3 interviews) and gave me the job. While it's a pain to do at least once it's done and assessed positively you've essentially proven yourself and you can move on. At my previous company the first stage was the technical test (you were allowed to Google/whatever). I was the lucky guy to assess these and 70% of candidates fared dismally.
 

gkm

Expert Member
Joined
May 10, 2005
Messages
1,519
I looked up the problem statement for "inverting a binary tree" - it seems as though this means: reflect the tree such that it is the mirror image (i.e., for each level the nodes read left to right should read right to left). If this is indeed the problem statement (and please, correct me if I'm wrong!), and someone got this wrong or regards this as special knowledge/"a trick", especially during an interactive interview, I would also disqualify them - it shows a total inability to think about algorithms.

Sorry, I did not look it up. If that is indeed the problem statement, then it should be very doable for a strong developer. I kind of assumed it was one of those more crazy ones, where one has to rotate the nodes in a certain way etc.
 

cguy

Executive Member
Joined
Jan 2, 2013
Messages
8,527
Sorry, I did not look it up. If that is indeed the problem statement, then it should be very doable for a strong developer. I kind of assumed it was one of those more crazy ones, where one has to rotate the nodes in a certain way etc.

For sure. What's a bit bizarre is that out of what was almost certainly a whole panel of interviewers, and likely 10's of questions, he felt that this one question from one interviewer was what failed him. Sure, it's a silly question to get wrong, but it's not like they give you details on why they don't accept you, so the whole thing just sounds like sour grapes to me.
 

[)roi(]

Executive Member
Joined
Apr 15, 2005
Messages
6,282
Also think about ability vs. knowledge for a second; these are not some tyoe of locked in generic traits. So disqualification of someone who is unfamiliar with binary trees assumes the persons is incapable of acquiring this knowledge.

Coming back to the example of Max Howell, he had developed not only 1 of the most popular package managers but also a very popular Promises & Futures Framework; both are complex topics and challenging to get right. Binary tree applications can be considered quite topic specific, e.g. search engines, AI decision trees, parser combinators, path finding, etc... Hence it would seem strange to want to interview someone who had not yet demonstrated expertise in fields you would normally associate with binary tree structures + if you were recruiting ability, then why would you disqualify someone based on something that could so easily be mastered.

That for me is just short-sighted and is very indicative of what's wrong with WB interviews.
 
Last edited:

freddster

Expert Member
Joined
Dec 13, 2013
Messages
2,470
How do you show the interviewer that you can actually code?

@Droid
Also, I have spoken to doctors that did their specialist exams and they had to do pretty much the equivalent of whiteboard tests.

But I agree one has to be careful about the questions asked. "Trick" questions like inverting a tree, some people will know, while others will not know how to do it. The people that know it, will do well, while others will fail it badly. In my opinion these trick questions are not an indication of skill, rather an indication of whether the candidate has accidentally studied that algorithm. Good whiteboard questions, which require programming skill but do not require knowing a very specific algorithm, are tough to find, which is in my opinion why interviewers sometimes reach for the trick questions. Interviewers at big tech companies are also people and they make the same mistakes, often more so that at smaller companies in my opinion, because at these big companies the interviewers take part of the blame for hiring bad candidates, so they might "play it safe".
Isn't 5, 8, or 10 years experience enough of a sign? Though, there are many areas to coding, and stuff that get used daily, others once in 2 years unless you do the same stuff everyday. If you develop window apps every day you're not going to be great at your web page stuff if you've done a web page 3 times a year.
 

icyrus

Executive Member
Joined
Oct 5, 2005
Messages
8,600
[)roi(];17530513 said:
That for me is just short-sighted and is very indicative of what's wrong with WB interviews.

All these types of interviews are is the techbro equivalent of hazing, and as such the most ardent advocates of it are people who have been through the hazing themselves and now want their turn to do it to someone else.
 

Ancalagon

Honorary Master
Joined
Feb 23, 2010
Messages
18,140
I think the problem mentioned in the article is not actually the whiteboard - it is the specific knowledge requested. In other words, whether they asked the candidate to implement a reversal of a binary tree using Notepad++, Visual Studio, paper or a whiteboard, the point is that reversing a binary tree is a highly specific piece of knowledge. If you happen to have studied it or worked with it, then great. If not, you're in trouble. Knowing how to reverse a binary tree does not mean you are a good programmer - neither does not knowing how to reverse one imply you are a bad programmer.

You see the same thing in South Africa when you have interviews in which you are asked very specific questions about technology. Such as, what is the viewstate, or what does the internal modifier mean? All stuff you could discover on Google in 2 seconds flat.
 

krycor

Honorary Master
Joined
Aug 4, 2005
Messages
18,546
Asking you to regurgitate algorithms - bullscht

Asking you to solve a simple problem on a white board to see if you can think on your feet or shy AF - encouraged

My 2c. Stop being a wuss and write some pseudo code.

This.. if you think code the whiteboard is the reason for the code on the whiteboard & code evaluation part of the interview you are missing the point badly. It's lesser about the actual problem and more about figuring out how you go about solving the problem, how you stand up to adversity in review, communicate ideas with peers, go from idea to code, learn from mistakes (a lot of questions repeat themselves in smaller ways showing if you really know what u claim to or a really good reciter) and of course pressure. Yes concepts and theory help determine what training is needed and how good/bad your but also how trainable you are.

Now if you go for an Amazon interview good luck if you don't brush up on all your theory. Personally I don't think a theory test is really worth much as its merely a swot test (they have 2 of these and then the thinking one to the extreme) nor do i think you awesome GitHub profile means much more than another person who has worked in Corporate with zero Public domain code. I see people are very polar on this with some thinking that if you code in your spare time you more awesome than a corporate dev but here's the thing.. not everyone has the same spare time, interesting projects or objectives in life. 2ndly loads of public domain code also means you may have an issue with workload as you doing lots of things in your personal time instead of unplugging.. <-- see what i did there, your major positive just turned into something really bad.

Anyway.. if you ask why this is needed, look at your peer around you.. look carefully and hard throughout organisation if your recruitment process is good.. remember that dev that disappeared after a few months or that one that struggles with shoelaces.. thats why. In IT, where people are like.. yah i don't need to go to university/college/cert and i can just wing it and climb from there.. well it has a cost associated with it. The sucky interview process is this cost.
 
Last edited:

porchrat

Honorary Master
Joined
Sep 11, 2008
Messages
34,277
Never had to do any significant whiteboard coding. Have been asked to write some code that does something (inverts a list or arranges things alphabetically or CRUDs to a database or something) but always using an IDE on a machine for an initial interview.

Makes more sense than sitting and doing it on a whiteboard I suppose but it takes more time than jotting down some pseudo code.

As has been said though it is about problem solving not writing flawless detailed code.
 
Last edited:

krycor

Honorary Master
Joined
Aug 4, 2005
Messages
18,546
BTW in SA there are a few companies that, if you worked at, you automatically get recruited and work with without major tech interviews. Know which these are?

Now ask/find out what recruitment process these companies do and you find that these companies are very thorough. i.e. I see once you get though it all and your reputation grows, companies in Sa seem to negate it more often than not and just go for the normal HR process interview.

I've been thru some hard ones, ones which do apptitutde tests, computer based ones etc and i must say.. language based & algorithm skills assessments are the easiest for a skilled dev. Companies that do algorithmic theory heavy ones they do warn you about it and the ones with a specific framework asking framework questions are pretty much expected. I dunno.. not sure what the fuss is about but then i am a very pragmatic person so getting in the think of things i see as a challenge and fun, very deterministic as far as results go unlike the 'Culture fit was wrong' type of interviews.. bleh. my 2c
 

Nerfherder

Honorary Master
Joined
Apr 21, 2008
Messages
29,703
What is the alternative?

I had an interview where they let me code at a PC. I got stuck at some point (had been out of the coding game for a while) and they asked me after why I didn't Google it.

I had a big fat laugh after that, but I have to say out of all the interviews I have had their process was the best from start to finish.


Honest to god, the next interview I do, if they ask me to code on a white board i'm going to ask them if their white board can compile. IF not then I'm going to end the interview.
 

gkm

Expert Member
Joined
May 10, 2005
Messages
1,519
Isn't 5, 8, or 10 years experience enough of a sign? Though, there are many areas to coding, and stuff that get used daily, others once in 2 years unless you do the same stuff everyday. If you develop window apps every day you're not going to be great at your web page stuff if you've done a web page 3 times a year.

Not always. I have interviewed people with that much experience and while they know all the buzzwords, only during the coding session one discovers that what they actually did was upload some files very day or something like that, and did not do much actual coding.
 
Top