by Sharon Florentine

How to crack the coding challenge

Nov 08, 2016
CareersDeveloperIT Jobs

Coding interviews are nerve-wracking, even for programmers with a computer science or engineering degree. They are e even scarier if you're a self-taught programmer. But using blind coding challenges can help boost your performance and even the odds.

transparent binary code binary code computer coding technical programming 000000123354
Credit: iStockphoto

Even for the most seasoned software engineer or developer with a background education in computer science or engineering, completing a coding challenge or a technical screening can be nerve-wracking. Now, imagine you’re a self-taught developer — the anxiety levels skyrocket.

But formal education in computer science, software programming and/or engineering is not mandatory, and in the current IT talent war, the need for those credentials is diminishing further. Many self-taught coders are just as competent as those with a formal degree. The trick is getting past the unconscious biases levied against those without a degree.

“From talking to self-taught programmers, I’ve found that one of their biggest sources of fear is the knowledge that they don’t have a degree. Non-traditional candidates are really intimidated by technical screenings, coding interviews, because they’ve been made to feel they’re not qualified without that computer science degree. But I don’t feel that’s true,” says Gayle Laakmann McDowell, founder of technical career consulting firm CareerCup and author of Cracking the Coding Interview.

What’s more important than having a degree, McDowell says, is being able to crack the coding interview, a completely manageable undertaking if candidates understand what they’re up against.

“Companies really don’t have a problem with interviewing and hiring self-taught developers; what they do have a problem with is interviewing everyone out there who claims to be a great programmer without any way to gauge whether or not that’s true. Bringing in someone who might not be good at it is just a costly, inefficient waste of everyone’s time, so providing an objective platform to measure skills can help calibrate talent,” says Tigran Sloyan, CEO and co-founder of the coding challenge platform CodeFights.

[ Related story: 5 ways to reduce bias in your hiring practices ]

Platforms like CodeFights and HackerRank can help even the odds that self-taught developers are given the same consideration for jobs that their degreed counterparts are, because applicants are measured based on their merit and technical ability.

Practice makes perfect

In fact, research data from blind coding challenge platform HackerRank, which measured performance of around 2,000 developers on their platform, reveals that programmers who completed 20 practice challenges on the site — equating to roughly 10 to 20 hours of practice — performed twice as well on skills assessments as programmers who didn’t take the challenges.

“For this study, we looked at practice submissions of over 2,000 developers to find patterns of folks who went directly from assessment to earning an onsite interview. By learning the correlation between the number of practice coding challenges solved and the pass rate on a coding assessment, we can quantify the amount of practice you need to pass a coding interview. According to our data, developers with at least two years of experience, who practiced even just a little (20 challenges) increased their chances of getting an onsite interview by 50 percent. Junior developers who solved 20 challenges, increased their chances by at least 15 percent,” says Ritika Trikha, PR and content manager at HackerRank, in a blog post about the research.

[ Related story: How to improve your odds of landing great talent ]

The fundamentals of algorithms and data structures do tend to be the focus on many technical screenings, says Vivek Ravisankar, CEO and co-founder of HackerRank, but those basics can be learned with some easily accessible resources and a bit of time investment.

“There are certain core basics that tend to be the focus in tech screening interviews, and that fundamental knowledge is still essential. But what we thought was great to see was even though junior developers do better on these basics — probably because they’d learned them in school more recently — experienced developers do just as well, and even better, on these basics with just practice,” Ravisankar says.

Knowledge transfer

What that means is that self-taught developers can perform just as well as their college-educated peers as long as they are practicing and acquiring new skills and knowledge.

“Algorithms and data structures are topics that are the focus of so many of these interviews, and yet they are rarely necessary in real-world situations. But for self-taught programmers, you will gain this knowledge and experience with some basic study and if you’ve been working in the field already — companies won’t know the difference,” says CodeFights’s Sloyan.

Companies also aren’t necessarily looking for one “right” answer or one specific outcome of their technical screenings, says McDowell; many are looking for soft skills and for evidence of how a candidate goes about solving problems and resolving issues.

[ Related story: How recruiters are adapting to an evolving job market ]

“Interviewers might think they’re evaluating candidates strictly on their technical merits, but they are really also evaluating how candidates talk about what they’ve done in the past as well as what they’re doing when they’re solving problems. Blind coding challenges can not only provide a benchmark for technical aptitude, but can help candidates get more comfortable with documenting their problem-solving processes,” says McDowell.

Code review

Where many self-taught developers do come up short is in the areas of solution design and writing clean code, Sloyan says. Again, it’s helpful to do some reading and studying of the fundamentals of computer science to get a sense of how to design solutions, and he also recommends finding a friend, a colleague or a professional mentor who can help review your code for errors, bugs and general sloppiness.

“This is something you really learn from having others review your code; in a professional situation, there’s normally one or two senior engineers, or QA engineers, who review your code to make sure it merges seamlessly with production. Find a friend, or someone you work with who can sit down and help you do a code review, both to improve the cleanliness of your code and so you get comfortable receiving feedback from peers and superiors,” Sloyan says.