What are developer-friendly coding challenges?
Developers love a thoughtful take-home coding challenge. Shanika shares why she prefers a take-home over a whiteboarding challenge, any day (in fact, 42% of developers dread these tasks the most in any technical interview).
Hello, World! This is the first issue of CodeSubmit Developer Takes. With this series, we'll shine the light on the candidate experience of technical interviews. Our first Developer Take was written by Shanika, a software engineer with experience in web and mobile development! She writes about her experience as a developer having gone through many interviews and why she loves take-home assignments in particular.
As a software developer, I’ve gone through many interviews.
Some of them were technical, and others were long sessions where both technical and non-technical managers questioned me about my previous experience and the technologies I knew.
If you’ve already gone through the same types of interviews, it would be no surprise to you that the latter were better than having to write code during an interview, especially with interviewers literally looking over your shoulder.
As an aspiring developer, you may not quite understand what I mean. As tough and rigorous as they can be, long interviews aren’t as bad as having to write code in an unfamiliar atmosphere, while being scrutinized on each keystroke.
As of late and especially with remote working opportunities, I’ve observed that a lot of companies prefer to have a quick interview in person or over the phone and then go straight to a take-home challenge. If you’re wondering what a take-home challenge is, it’s simply a coding exercise that you do on your own time and, most importantly, outside the in-person interview.
Why I love Take-Home Challenges
Here are my top six reasons why take-home challenges are developer-friendly coding challenges:
They let you work in your own space, at your own pace
As a developer, I’ve worked on various projects spanning many technologies and frameworks. Most of them have ended successfully and resulted in a lot of personal growth. The common success factor in most of them was that I did a lot of the work at home, or at a cafe. It’s the same with interviews as well. I do much better when I attempt them in an atmosphere in which I am comfortable.
Unlike during a supervised or timed coding test, you have the flexibility to work on take-homes at any time of the day. Many are open-ended, allowing you to spend as much time as you want on them. This additional time can benefit you, especially if you are new to coding or the programming language and frameworks being used.
Take-home challenges also give you the possibility of using helpful tools like Stack Overflow and even reuse your previous work. Software development in real life is no longer all about knowing the entire syntax of the programming language. There are so many languages and frameworks that you need to use in tandem that it’s not practical to always know the syntax by memory. This factor plays a significant role during an in-person interview because many traditional interviews still expect you to be a walking, talking syntax encyclopedia. The realism is just another reason why I love take-home challenges.
They don’t require you to take time off your current job
Whenever I’ve had to attend an in-person interview, the most annoying thing of all is taking a few hours or a day off work. Yes, preparing for an interview takes a lot of time and effort. But to me, taking time off work was a more concerning issue.
Some in-person interviews that I have been invited to were scheduled for three to four hours, and most didn’t start or end on time. I couldn’t always accommodate them with my already hectic work schedule. At the same time, some interviewers have gone on to ask me how attending their long in-person interview didn't affect my current job. Well, what should I rather do?
That’s why I prefer take-home challenges. Some of the best companies that have interviewed me based most of their selection decision on a take-home coding challenge, preceded by a quick in-person interview or a Skype call. I’m so thankful and happy to consider organizations which go out of their way to enable candidates. With helpful and intuitive platforms to deliver their challenges, it's no wonder that take-home challenges are becoming increasingly popular.
Personally, I often spend much more time on take-home coding challenges than what was specified by the company that assigns them, but it is always worth it. The extra effort has paid off almost every time.
They encourage you to learn
If you’re already employed as a software developer, then you probably work with the same stack day in and day out. Unlike the coding exercises given during in-person interviews, take-home coding challenges allow you to learn.
Whether its a language or framework that you are not very familiar with, or even something completely new, take-home challenges give you a reason to learn new things. If you’re like me and lack the time or motivation to learn new things proactively, then this is the motivation you need.
A few years ago, I was part of a back-end team. I used to work quite a bit with the front-end team, but I never took the time to learn the nitty-gritty details about the Angular-based stack they used. My next company followed an agile approach and had DevSecOps-based teams. Their take-home coding challenge got me up to speed with Angular in no time. In the end, their selection team was really pleased with my effort, and the effort got me the job.
In addition to learning new languages or improving your coding skills, you will also improve yourself in other ways like analysis, documentation, testing, debugging, and much more. You would do none of these at an in-person interview, and you may only be doing just some of them at work. A take-home challenge is an excellent opportunity for you to shine as an all-rounder.
"I’ve seen many mediocre developers doing so well on algorithm and design pattern questions but later failing on the job."
They bring out your inner problem solver
I’ll be honest, one reason I hate whiteboard interviews is that you can do well at them even without being a good developer. On the few occasions that I have been on the other side of the table, I’ve seen many mediocre developers doing so well on algorithm and design pattern questions but later failing on the job.
At the cost of repeating myself, I have to say that most of the best work I have done for interviews was on take-home coding challenges. Another reason for this was that they gave me the time to use my problem-solving skills. I went above and beyond in delivering the main challenge as well as all of the bonus challenges, simply because I had a little more time and less stress to think about it.
I would have never been able to do the same at a coding challenge during an in-person interview. Take-home challenges give you the time and the freedom to analyze the requirements and come up with a great solution.
They give you a sense of the work you’ll be doing
Like many software developers, I started off with an internship, and it taught me so much. When I was ready to progress in my career, the main dilemma for me was what the new company would be like culturally. The type of languages and frameworks they use, or the projects they would have for me to work on weren’t my main concerns.
I wanted to know what type of problems they would have me solve. But there really wasn’t a way to find out until I had joined. It turned out alright, but I would have loved to make a more informed decision. A few years later, an interview with a take-home coding challenge gave me precisely that.
The earlier mentioned company with the agile DevSecOps teams gave me quite a lot of hints about what they paid most attention to: security. Security was in their culture from the time that a new feature request came in all the way until it was deployed in production. The take-home coding challenge made their passion for security obvious and gave me a heads up.
I brushed up on DevSecOps and everything related while I worked on the take-home challenge. This gave me even more of an advantage at the in-person interview. My success and learnings would not have been possible without that take-home coding challenge.
They allow you to outshine other candidates
The final reason take-home exercises are developer-friendly coding challenges is that they allow you to do much more than you could do at an in-person interview. In a whiteboard interview, you barely have time to think before you answer, let alone to go beyond what is expected. A whiteboard interview really only assesses how you perform under pressure.
This pressured performance is rarely the case in real life. While you will have targets and deadlines to meet, a normal working day likely requires some peace and quiet to do your work. It's the same atmosphere that you have when you work at home at your own pace. A quiet environment allows you to put in your best work and go above and beyond what other candidates would do.
Personally, I try to make the most of this type of situation. Most take-home challenges have more than one task, and many of them include bonus tasks that earn you additional marks. Once I complete the main task(s) to the best of my ability, I take time and put in the same effort on as many bonus tasks as possible. Even if there aren’t any bonus tasks, I like to simply add a few features that I think would add value to the challenge, and also impress the selectors.
We'd like to thank Shanika for sharing her experience with us about developer-friendly coding challenges! If you want to leave your candidates with the quality experience Shanika describes above, then check out CodeSubmit and get started hiring with take-homes today!