The Coding Challenge
An engineer looking to ace a technical interviewing process must be well prepared on how to tackle the somewhat dreaded coding challenge. Whatever your seniority, whether an Engineering Manager, Senior Engineer, Principle Engineer or, even an aspiring developer, it is a stage of the process I am afraid you will not get out of, but why?
Coding exercises are designed to show the reviewer that you will be able to code well enough to solve a given problem and demonstrate to the reviewer that you can code in a way that matches a style and quality that they would enjoy working with. In most companies, coding challenges are reviewed not by the hiring manager but by other software developers in the team, which you may eventually work alongside. Therefore, the reviewer needs to see that you can solve the task and that your code is the type they would be able to work on, extend, and pair programs.
As a tech recruiter, my role is to assist engineers I am working with along their processes. Whilst not a coder myself, I have a good understanding of how to prepare myself for it.
Here are my top three tips on how to ace the coding challenge:
1.Thoroughly read all instructions:
We are always told to read the small print’ and a coding challenge is no exception to those four words of wisdom. Before attempting to solve the task, read the instructions carefully and slowly to ensure you understand what you are being asked to do. In a chance to show off your skills, it would be such a shame to miss a key requirement because you rushed reading the instructions. Whilst yes, you may have solved a similar problem before, this particular task may be looking for a small yet critical difference in your result.
I always suggest to those I am working with to read the instructions and then write them out in a way that you are able to understand better. This will help you not just to understand the given task, but it can then also act as a roadmap in solving the problem.
It is often easy to skim through the instructions of a challenge and jump straight into coding, which means you solve it as you go along. It may work for some, but writing out a plan will ensure you cover all essential requirements. It will also help you spot bugs or issues quickly instead of completing the entire challenge and then going back and fixing tonnes of bugs. That would be pretty annoying, right?
2. Simplicity is key
If I put a penny in a jar for how many times I have received feedback on a coding challenge about the solution being too complicated, I would be a millionaire by now! Now I know a coding exercise is a chance for you to show a company how great you are at coding. However, suppose it is over complicated and hard to follow, despite whether the problem is solved or the app is built successfully. In that case, it may cause frustration to the reviewer and lead to a negative review.
Yes, the reviewer will spend a reasonable amount of time trying to get your application to run, but they will only spend so much time fixing bugs. If they have to spend a considerable amount of time debugging, I am sure as you and I would, they would get frustrated with issues that could have been prevented, which could overshadow your great work. My advice here is to make your solution as clear and simple as possible. This will ensure whoever reads your solution has a smooth experience doing so.
Of course, you may ask, “if my solution is simple, how will I get to show off my skills?” which is a very valid point. Remember, however, a coding exercise is not only used to show a company you can in fact code but also that your style of coding matches theirs. One that they can imagine themselves working with and extending. Yes, create a fancy solution that solves the problem to the best of your ability. Just make sure it is easy to follow and straightforward for the reviewer. I’m sure you would agree there is no point in it being fancy and complicated if it then can’t be read.
3.Timing
As we always say, timing is everything, right? Again, a coding challenge is no exception.
I often receive feedback from reviewers and engineers that they ran out of time and were not able to complete the exercise. Whilst I know a time-limited exercise is nerve-wracking and increases pressure, it is a way of showing the reviewer how you can perform in a pressured environment under strict deadlines.
My advice here links to my suggestion above. Read the instructions carefully and set out a plan that factors in timings. For example, if you have three hours to complete the challenge and there are three problems for you to solve, I’m no engineer, but I am sure you would agree it would be silly to spend two hours on one problem, leaving yourself one hour to solve the remaining two.
Again, set out a plan that includes how much time you will spend on each part of the challenge. You may also realise one part may require a bit more work. Therefore, setting out a plan for this would mean you are not surprised by it and can finish the remaining parts of time.
Keeping your solution simple would also mean you do not spend too much time overcomplicating a given part that is not even a key requirement of the task.
I know you want to take this chance to show off your skills, and I am not saying this is a bad thing; it’s great. What I am saying, however, is that there is no point overcomplicating a specific part of a problem and not being able to finish the whole task.
Plan your time, keep it simple and look, there we go, you have completed the task on time and solved the problem!
Happy Coding!