Whiteboard exercises are a terrible way to investigate coding ability (2012)
exratione.com
exratione.com
It's about how well you ask questions, how well you listen to instructions, how well you work with others and interpret the specs and information you're given. Then it's about how well you adapt to changing or incomplete requirements, and how well you can explain yourself and your thought process.
Like so many tests in life it's not about the "answer", it's about the process you used to get there.
This is not the case 100% of the time, but it is often enough that if you’re interviewing in SF, particularly at startups, you will see it at least every few interviews. It’s ridiculous.
That's the great thing about an on-site interview, the evaluation goes both way.
When someone asks me to do then on a whiteboard in an interview setting they might as well dismiss me immediately.
Agreed.
But asking an algorithmic problem is usually not what you're going to solve on the whiteboard for the vast majority of jobs.
In most jobs, it's usually some variant of:
- We have some new feature, what's a good way to design it - We're trying to add this feature to this existing thing, what's the lowest impact way of modifying the existing code. - We've got an existing feature that has some problem (bug, complexity, performance), Is there a way to solve that, and perhaps the same entire class of problems across the application by implementing a known design pattern.
There's not a huge amount of novel thinking other than how to specifically glue existing libraries, design patterns and so forth, together with business specific logic.
Most whiteboard coding questions tend to be of the "Design an algorithm to solve an anagram" or "Implement a sort function" which don't relate to the job at all, and tell you nothing about the candidate's ability to do any of the things they're going to do day to day.
In a normal environment, when given a tough problem to solve, a whiteboard is like a scratch pad for ideas.
Out of that amalgamation of insights, comes the final solution.
When given a whiteboard, the interviewer ought to assess the thought process the interviewee is going through. Even if the outcome is wrong, if the thought process in acceptable, the solution will present itself eventually.
As an interviewer, I would also ask to list out the many ways one can solve a problem.
To me this is utmost important because in the real world, choosing one of the many ways to solve a problem is an important skill. The theoretically correct solution is not always the practical / implementable / cost-effective solution.
I do mind having to recall arbitrary algorithms on the spot.
Even then, you can avoid asking trickier algorithms as an interviewer.
But as soon as you have to write in an actual language it just becomes too painful.
Which is what most interviewers expect.
There is just no way for me to stay on point for all of four or five hours of successive grilling. It's a lot more exhausting than thinking about anything on my own
Anyway, I don't think those boards are there to investigate ability. They are basically useless for that. If they have a rational motive at all, it's probably because the most strict schools teach the "assemble everything in your head, then write it" method, so they accidentally select people with good credentials.
It depends.
I recently had an onsite interview where I was handed a laptop to write code on, which was great. What was not great was that the interviewer was shadowed by 2 other developers and had to write the code while screensharing to the meeting room's screen. It was basically a meeting where people were looking at me go. It was by far the weirdest experience ever (and I've been doing this for decades). I kind of missed the 1:1 with the interviewer and a whiteboard.
I'd be OK with an Interview like that, just don't laugh about the fact that my laptop is a still functional but otherwise aging smart terminal for securely connecting to my real workstations when I'm somewhere I don't trust.
It's bad enough when you are in a position of power like in a presentation or a class. It's nearly unthinkable when you are in a position of weakness.
An even more waste of time is actually learning framework A, B, C, D, database A, B, C, D, bundler A, B, C, D.
The more and more I think about it, as a fullstack developer, I continuously forget documentations and how a specific technology works, but I was always able to solve problems using those in the past. I did Angular, Vue, jQuery, React, Webpack 1, 2, 3, 4, Grunt, Gulp. I did MongoDB, MySQL, S3, DynamoDB, Go, Python. Those things change all the time and I always forget how they worked. Because I genuinely like fullstack development I always switch back and forth between different technologies and I can't remember them all.
Whenever a company interview me, I'd really appreciate it if they just ask whiteboard algorithm questions instead, at the very least I don't have to scramble brushing up X if I got interviewed as an X developer. At least whiteboard algorithm and data structures questions make me stronger fundamentally as an all around developer and I just need to grind those. And after a while, grinding those aren't that difficult anymore.
P.S. I still failed FAANG interview, but I still keep grinding Leetcode. I am definitely a believer in whiteboard algorithm and data structure questions. It is simple, to the point, saves everyone time. If I were an interviewer I would also ask data structures and algorithm questions instead of nitty bitty of React hooks or Javascript promises or Golang's concurrency pattern. Those things can be learned easily if you are a decent all around developer.
I'm an average developer. I don't have the creative capability or the insights that 10x programmer has. Those people are not only good with programming, but also at mentoring, at business, at finance, at swimming, at hunting bears, at predicting the future, etc. So, in my resume I often don't have those quantitative accomplishment "implement X in Y minutes that resulted in Z performance and A savings for the company". So, whiteboard algorithm questions fits me better.
A few months ago I had my first go at ASP.NET Core, specifically Razor. Hadn't touched it for months, now I'm trying it again and I already forget intricacies of the syntax (when to put curly braces etc.), all stuff you only really remember through continued practice. Most of all: its just knowledge you can find on the internet. The case isn't unique enough to not have a creative solution or find a source on. In fact, the information is so easy to find, its almost a waste of brain space to remember rather than figuring out the pattern to uncover the solution next time.
I also find webdev to be more and more complex by the year. Not because of the frameworks introduced, but due to the increasing demands from users, the competition and security issues, while there's still very little to streamline the process for the developer. It takes a lot of steps to get to the point where your site is online, with certified security, connected to a domain instead of an IPaddress, coming as someone who primarily did desktop development.
Ultimately, pen and paper tests are about pen and paper tests. Take-home tests are about take-home tests. Algorithm tests are about algorithm tests, and chess tests are about chess tests. But among these, I would argue that the whiteboard is better at facilitating general communication.
If you have anything to say about anything, whiteboards are the most flexible way to say it. What ends up on the whiteboard doesn't have to be some toy problem, it can be about anything. It's probably one of the most flexible programming languages in the world, because you use a combination of words, arrows, and drawings to communicate however you want, and your ideas don't even have to make sense.
I don't think so. There is a reason we use text editors instead of whiteboard and OCR for our daily programming. Insert/delete/copy/paste is really cumbersome on a whiteboard.
So a whiteboard is a pretty natural medium for interviewing for me.
Being good at white boarding puzzles require IQ.
-----> White board puzzles filter for good coders.
Its not perfect, but its the best way to scale it. Sorry everyone, this isn't going away
IQ tests scale a lot better than one-to-one whiteboard interviews do. They are specifically designed for that purpose.
How is an expensive, labor-intensive, never-validated approximation of an IQ test "better scaled" than a cheap, easy-to-administer, thoroughly validated IQ test?
But I think your correspondent is underselling work sample tests. They are not perfectly correlated with IQ testing, and do in fact measure something beyond IQ; on it's own work sample tests are only slightly worse than IQ testing, and combining IQ testing and work sample testing improves predictions of hiring outcomes vs just IQ testing.
That said, very few workplaces have well calibrated whiteboard interviews, or take home interviews, or pair programming screenings.