Tips for Technical Interviews and Coding TestsMay 20th, 2013 | Articles, Interviewing | 5 Comments »
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