4 ms·
I've done a lot of recruitment over the years. In fact in a previous role I spent an entire year doing nothing but recruitment. This sort of thing is sadly comm
by bartread 9y ago
I've done a lot of recruitment over the years. In fact in a previous role I spent an entire year doing nothing but recruitment. This sort of thing is sadly commonplace.
It's not trendy or popular at the moment but asking somebody to write some simple code on a whiteboard is a really good indicator of whether or not they're a good programmer. Even if they're nervous and uncomfortable doing it you'll find out if they're a good programmer or not.
That being said you want to try and weed out the people who definitely aren't good programmers before you invest the time in interviewing them. Things like Codility can be helpful, or you can do a 20 - 30 minute telescreen/Skype call and ask them to write out some code in a shared Google Doc.
Honestly, if you can't reliably write some simple code on spec - e.g., write a function to reverse a string in a C-like language (if you're recruiting for Java, C#, C, C++, Go) - you may be many things, but programmer is not one of them.
An argument I often hear against this sort of question is that it's not "realistic", but that misses the point. The point with problems like this (also Fizz Buzz, and the simple data structure problem in the article) is not to be "realistic" but to cut to the essence of a person's skillset and leave very little room for blagging. If you can't handle these things I don't believe you can handle more "realistic" problems either.
Being a software developer is obviously more than "just programming", but the fundamentals matter, and programming is absolutely fundamental to software development. Do not accept any hand-waving or flannel from anyone on this point, ever.
- collyw 9y agoI would disagree. I was far better at that sort of thing straight out of university where we did a lot of small scale coding problems. Now I think a lot more about architecture and avoiding clever coding, more about database design and how everything fits together. I write far better code than I did 15 years ago, but I am poorer at white board style problems.
- akvadrako 9y agoAny decent programmer without a major handicap should be able to come up with a simple algorithm on the fly and write it on a whiteboard. That doesn't mean you have to be good at it; you may take your time, the syntax doesn't matter and it'll likely not be totally correct. But if you can't do it at all, which many candidates can't, I find it hard to believe you could be a useful programmer in any capacity.
- rkangel 9y agoIf we were talking about Google interview style problems - data structures and algorithms I might agree. If you can't do something as simple as FizzBuzz, or reverse a string (in a language of your choice) then you aren't a programmer. You might be something else - a system engineer, possibly an architect - but you are not going to be useful in the role of writing code.
- collyw 9y agoI am probably in agreement with you when you go down to that level of programing basics.
- bartread 9y agoI get that, and I'm certainly not disputing the huge amount of extra skills you gain throughout your career. But reversing a string is categorically not clever coding.
- IshKebab 9y agoYes... but you know what a hash map is and when to use one right?
- bjpbakker 9y agoWhile I agree that this is very common and that these basic skills are mandatory in any programmer, I don't think whiteboard interviews are helping very much. How I like to hire new people is by working with them for an hour or part of the day. Just on one of the candidates toy projects. Within about few minutes you'll learn if this candidate is in fact a programmer. The rest of the time you can get to know the candidate a little better, learn a bit about how they work and how they think. And you don't put the pressure on them for coming up with solutions on the spot.
- robinduckett 9y agofunction reverse(str) { return str.split().reverse().join(); } Do I win?
- lj3 9y ago> It's not trendy or popular at the moment but asking somebody to write some simple code on a whiteboard is a really good indicator of whether or not they're a good programmer. This again? This has been argued to death on HN. All the evidence points towards that type of interview having absolutely NO correlation to programming ability. It's also NOT what the author was talking about in TFA. He wasn't talking about general programming ability. He was talking specifically about data engineers who need to know how to do exactly what he was asking for on a daily basis. Notice nowhere in TFA did the author mention a whiteboard even once.
- mattlondon 9y agoI dont think it even needs to be reverse a string or fizzbuzz or crossword solver to filter people out - personally I think that some of these "easy" questions often have too much of a riddle about them, especially if you are just hiring bums-on-seats to crank out CRUD or MVC code to meet a looming deadline. I dont want to try and trick them or see if they grok my contrived question - I want to know if they are self-sufficient and get stuff done (sure if you are trying to hire a contractor to do significant design & architecting, then sure use the riddles) Next time I am recruiting contractors I think I'd probably just hand them a clean-install laptop with just notepad + compiler (or browser, if they are a frontend dev) with no internet connection or fancy libraries, then ask them to write something super basic, like print out the 10 green bottles song on screen, then sit back and watch over their shoulder. If they cant do that in 5 minutes, then "Thanks for coming, we'll be in touch!", if they can then the real interview starts.
- reitanqild 9y agoNext time I am recruiting contractors I think I'd probably just hand them a clean-install laptop with just notepad + compiler (or browser, Well, one more reason to love my employer who didn't pull this kind of craziness on me. Just remember a lot of us hasn't written a main method for years: Traditional Java web applications doesn't use main as an entry point even if I understand that todays cool ones probably do. And compiling from the command line without maven? Haven't done for years. I'll figure it out, fast, with internet. But leaving people with notepad and a compiler: that is going to sift out a number of good Java backenders - if not for anything else then because it feels stupid and a bad start of a relationship. That's not something you want when the market for programmers is red hot. I'm still fairly competent at a lot of other aspects of Java and have successfully maintained and simplified a lot of software.
- mattlondon 9y agoFair points. I think obviously it depends on specifics of the role etc - I'd not expect (nor need!) a web developer to know how to write a command line app etc. Just needing bums-on-seats developers to just churn out MVC code and who dont know how to do "javac -help" if all they've ever used is maven or gradle etc might be acceptable, but I might lose a bit of faith in humanity along the way (...and maybe I expect too much!) :-) Perhaps it would be better to have a very, very, very simple application (like a simple calculator, or a simple web app, using the framework(s)/libraries you're using and the person is applying for (i.e. they should know it)), then show them a failing unit-test and/or a simple bug report and see what they do to resolve it. Basically, I want to see someone actually do something realistic and actually produce something tangible for me to judge my decisions on. I've been burnt a few times in the past hiring people who were good at the "book smarts" during interview, but were bad when it came to actually doing stuff.