DEV Community

Discussion on: Why I hate coding challenges in the hiring process

Collapse
 
jdforsythe profile image
Jeremy Forsythe • Edited

I put candidates through coding challenges on paper. Hate me if you want, but if you can't iterate an array with a for loop on paper, I don't want you on my team. This should be muscle memory.

The truth is that I will overlook simple errors that would be caught by an IDE. What I'm looking for is how quickly you start writing. The problems I pose are extremely simple (e.g. I start with "write a function to return the area of a circle" and get slightly more challenging from there). If you can't do that on paper, you should look for a different profession.

Collapse
 
sroehrl profile image
neoan

If we're talking pseudo code, I see paper as valuable. But it is annoying. The reason has a lot to do with the style of coding. When I code, I sometimes decide to move functionality into own functions, delete or add lines etc. That just doesn't work the same way on paper. It completely destroys "the flow". And having watched many developers coding, I learned that such behavior is quite individual and additionally varies depending on IDE behavior, language, followed code style. So no, overall not a paper fan.

Collapse
 
codemouse92 profile image
Jason C. McDonald

Yeah, I have used "on paper" a couple of times, but it really is incompatible with flow.

An analogous (and much more insightful) task is to have them flowchart a described algorithm on paper.

Thread Thread
 
jdforsythe profile image
Jeremy Forsythe

I probably should have been more clear. These are functions of 10 lines of code or less (some are 1). I don't care if you can write a bubble sort or Dykstra. It's completely useless. I just care if you can carefully read simple instructions and quickly write a loop or a couple lines of code to solve it. I don't even care what language it's in. In fact, I have prepared sheets with function definitions already written in the language they said they liked best on the phone interview to make them more comfortable with it.

Thread Thread
 
jdforsythe profile image
Jeremy Forsythe

Let's be honest - if you can't write a one liner on paper to solve the area of a circle given a radius, you have some work to do before you're ready for this line of work.

Thread Thread
 
sroehrl profile image
neoan

Well, I don't necessarily disagree that one should know that. But what for? The way you describe it sounds more like you boiled it down to a pure math question.

So not sure if I agree about that being an indicator of whether or not that makes you ready for that line of work.

Thread Thread
 
jdforsythe profile image
Jeremy Forsythe

That one is a softball question to get them loosened up. No it doesn't indicate they're ready for the job but can certainly indicate they're not

Thread Thread
 
codemouse92 profile image
Jason C. McDonald

Exactly. It's easy to forget that half the purpose of screening is to weed out people who aren't right. Such a question may not be able to quantifiably prove any one candidate is qualified, but we can determine several candidates aren't.

Collapse
 
jdforsythe profile image
Jeremy Forsythe

The functions I'm talking about are simple enough that moving code to another function is overkill. None of them require more than 10 lines of code. I'd be scared if they did that.