Tips for Technical Interviews and Coding Tests

May 20th, 2013 | Articles, Interviewing | 5 Comments »

coding test

The other day, I sat down to lunch with some of our Search Executives and, after a bit of small talk, we started discussing the ways that candidates approach technical interviews. One recruiter, without naming the company or the two programmers involved, gave an example of two drastically different ways to approach a preliminary coding test.

In this scenario, programmers had to prove their coding proficiency with the Python programming language. Each finalist’s portfolio was packed with examples of successful and complex Python projects. Unfortunately, there was only need for one person, so they would either have to distinguish themselves as the forerunner in the technical interview or look for another opportunity elsewhere.

Here’s how it all panned out.

Candidate #1 approached the coding test as if he had already landed the job and was creating a web app that end users would actually interact with on a regular basis. He thought about the challenge by putting himself in the shoes of hypothetical users and establishing a game plan from those hypothetical requirements. He wrote advanced level Python code and integrated it with his other programming proficiencies to create a higher level user experience.

During Candidate #1’s coding process, new features came to his mind that would add greater complexity to the program’s performance. Though it may not have been required, he implemented these features anyway because he really wanted to deliver a more compelling end product. Best of all, when he presented this clean, highly efficient project to the hiring manager, he easily communicated his thought processes, demonstrating the ways that he pursued company objectives with his multifaceted skills. When all was said & done, it was evident that he would make an excellent fit on this team.

Candidate #2, on the other hand, approached the same coding test as if it were an obnoxious homework assignment that he was obliged to complete. He put some time into analyzing the challenge but ultimately opted for a bare bones solution that simply met the objective without reaching beyond for anything more. Though he was capable of more sophisticated Python code, his coding structures were simple and lacked inspiration.

When Candidate #2 presented the hiring manager with a finished project, his explanation was straightforward and shallow. Certainly, he had completed the assignment given but his work showed that he simply thought about getting the project done without imagining what hypothetical end users might think. His work wasn’t sloppy by any means but it also was never going to inspire anyone to return to the product after a single try.

It isn’t too hard to guess who ended up with the job.

That’s why, when you are faced with a coding test in a technical interview, you need to treat it as you would any other programming project in the real-world. A coding test exists not only to determine your technical skills but also to determine your creative process, your work ethic, your attention to detail, and even your personality. If you decide to put less than your best effort into completing the test, the complete rationale for hiring you may never be made clear. So, always keep these rules in mind as you work on a coding test.

1.) Don’t just complete the objective; excel beyond it.
2.) Show your creativity in unexpected ways.
3.) Use as many languages, & technical skills as possible.
4.) Keep your code efficient & clean without being too simplistic.
5.) Know exactly how your project would benefit the company.
6.) Understand how to communicate all of this to the hiring manager.

Though not a surefire way to land a job every time, your odds are substantially better than they would be otherwise. Even if you don’t get the job, this approach is never wasted effort. It can drastically enhance your ability to solve problems on the fly and next time around, may get you that one step closer to finally clinching an exciting new job.

by James Walsh

[Photo Credit]

5 Responses to “Tips for Technical Interviews and Coding Tests”

  1. Daniel says:

    My experience was exactly the opposite for one of my interviews. In my technical interview, I was candidate 1. The feedback I received after was that I took much longer than candidate 2. Yes, my work was better and more thoughtful, but they only wanted me to get to the end result quickly. This was not communicated to me at the beginning. I guess I probably wouldn’t want to work for that company having seen a glimpse of their process now anyway.

  2. jameswalsh says:

    Thanks for the reply, Daniel. Your experience brings up a strong point: whenever you can, clarify the coding test objectives before you start.

    Also, there will be companies that are strictly interested in speed & accuracy over creativity. When you identify those values in a potential employer, you have to determine whether or not you can work in that type of environment. It sounds like you lucked out and dodged a position where your values might have been in conflict with those of upper management.

  3. dumbfounded says:

    I had two coding tests in one week, both for a senior front end position.

    I put together a simple UI, using Boostrap with a link to view the instructions and a link to execute the code and display the results.

    For one company, my code was “too complicated and overly bulky”. The core functions were less than 50 lines, but there was 100 lines of UI setup and error handling.

    For another company, putting a clean ‘front end’ and presenting their test carefully paid off with bonus points.

    One man’s ceiling…..

  4. PeggyJH says:

    Yes I definitely agree with jameswalsh, you need to clarify the coding test objectives because it is unfair for you to assume that candidate will do his best work or if he will just meet the initial requirement.

    Why?

    Because a lot of companies actually price their solutions by the invested developers hours so they expect you to fulfill the requirements in a given time and if you do it sooner, then great because you increased a company’s profit from that solution. Also you are often struggling with a deadline, that’s just a common thing, so the question is are you even going to implement the initial requirements without investing the overtime.

    Last thing: “big” projects are often split into a few versions, and what is important here is that your initial version is well written, maintainable and extendable. My opinion is that this is the most important skill you should look at in a candidate’s coding test: how easy it is to navigate and read his code.

    Also here are some small efficient tests we like to use as a filtering mechanism:
    http://testdome.com/

  5. jameswalsh says:

    Thanks for the reply, Peggy. Both sides (job seekers and employers) need to take steps to clarify the expectations of coding tests.

    Also, we can’t emphasize enough how important it is to write clean and scalable code during code tests. It’s absolutely crucial to act as if you’ve already earned the job.

Comments