DEV Community

Cover image for Love Them or Hate Them, Coding Exercises Are an Essential Part of Software Engineering Interviews

Love Them or Hate Them, Coding Exercises Are an Essential Part of Software Engineering Interviews

Tyler Hawkins on October 05, 2020

When interviewing for a software engineering job, it's common to be handed a dry erase marker and told to solve some arbitrary problem: "Write a f...
Collapse
 
190245 profile image
Dave

I too use whiteboards - though in my case it's a "draw me a system you've worked on before" to assess their communication skills.

That's followed by "OK, now, talk to me about something that catastrophically failed in this system, how you fixed it, and what it taught you."

Collapse
 
aurelio profile image
Aurelio

Nice one! It also shows how much a candidate understood about areas they didn't directly work on, which is telling a lot about how a person works and how they go about fixing stuff. There's a lot of candidates that think it's ok to ignore stuff outside of their strict area of competence. While it's possible to be proficient even with a very narrow focus, the mentality and willingness to look at the whole system (or at least outside the direct area one is assigned to) always leads to become a much more effective engineer.

When i get answers like "i don't know, this was X's job" i take It as an indicator of the experience of the person I'm talking to.

Also interesting to hear the follow up on the "something that catastrophically failed in this system, how you fixed it, and what it taught you."

Collapse
 
hpj1992 profile image
Harshit

"Whiteboard interviews don't actually test for coding ability - they test for anxiety."

Good point.

Collapse
 
endymion1818 profile image
Ben Read

Yep. This is the sole reason I’ll never get a single job at any tech company that whiteboards me.

Collapse
 
andrewbaisden profile image
Andrew Baisden

Whiteboarding feels more like Waterboarding. 🤣

Collapse
 
seveneye profile image
seveneye

"it's important to choose whiteboard questions that don't require specialized knowledge of a certain algorithm or formula." -really agreed on this one.

as a lot of hardcore folks will tell you that if you don't know this sorting algorithm or this whatever data structure, you lack fundamentals. heck I can't even remember sql foreign key creation syntax, but I'm building lots of full stack web apps and are already being maintained by different people and still run smoothly.

Collapse
 
karanpratapsingh profile image
Karan Pratap Singh

I mostly agree, but imo I like interviews that focus on actual challenges faced by the team better, plus they also help identify most of the red flags. However, I completely agree with whiteboard interviews for new grads.

Collapse
 
thawkin3 profile image
Tyler Hawkins

Absolutely. The better the coding exercise models the actual work you'd be doing in the job, the better of a predictor the test is.

Google found that a "work sample test" (i.e. whiteboard questions, take-home assignments, any sort of coding for software engineering jobs) was the best predictor of job performance and was able to account for 29% of the candidate's actual job performance.

(source: Work Rules! by Laszlo Bock)

Collapse
 
jmfayard profile image
Jean-Michel 🕵🏻‍♂️ Fayard

One good thing about whiteboard interviews is that at least they are time constrained.
I hate open ended take home assignment supposed to take four hours but obviously will take 16 or more because we are perfectionists and don't know how we will be judged.

Also I dislike online whiteboard interviews more than offline what, because there ask you to compile and run your code in their super crappy online IDE, which is a major distraction because pseudo code is all you need really

Collapse
 
thawkin3 profile image
Tyler Hawkins

Absolutely! There are trade-offs with each medium you choose.

For take-home assignments, I think having really clear criteria for what the graders are looking for is important. And equally important is communicating that criteria to the candidate. I once completed a take-home assignment during an interview that was supposed to take four hours, and they clarified that they don't care how the end result looks and not to focus on styling it up to look nice, and that was incredibly helpful to me.

For the online editors, I've run into those same problems as well. As an interviewer I think you need to decide what you're trying to evaluate here: either the pseudocode and problem solving, or the actual code and whether it compiles. If the exercise is something like a test-driven development exercise, then the immediate feedback and the tests running in real time is actually really helpful! But if you're just trying to see how the candidate solves problems and if they can think critically, then I agree, the code shouldn't need to compile.

Collapse
 
jwp profile image
JWP • Edited

We would ask ourselves 'has it happened yet?' Referring to the virtual lobotomy all our newly promoted tech folks received when they jumped into management.

Inevitably after about 6 weeks they thought and acted differently. Only about 20% were still admired by us as they seemed to jump out of the trenches.

Funny how you didn't like these things until you switched positions.

We would always say. Gee if they hired us now, we wouldn't be here.

Collapse
 
dougaws profile image
Doug

The real question, which I've never seen answered, is do whiteboard interview questions result in better employees? How would on do a-b testing? Throw out WB tests for group A and use them for group B, then follow up a year (is that enough time)?

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

those with non-traditional computer science backgrounds

There's plenty material out there explaining all those kinds of things. Unless you're just starting, there's no excuse for not knowing at least the basics of algorithms.

Collapse
 
mohsincode profile image
Mohsin

I think they are looking at our communication skill, we shouldn't be intimidated about giving the wrong answers.