Are Coding Tests a good way to verify programming skills?
Recruiters often struggle to land with the best talent acquisition program when it comes to hiring programmers. Despite the presence of several online programming tests, companies fail to find the best programmer for their particular requirements. This could be due to deficiencies in the hiring process. Here are some of the flaws in the process that exist even now:
- Too many programmers, too many applications, making it difficult to select the cream of talent
- The interviews are not sufficient enough to choose good programmers
- Programmers are not even able to write basic code
- The company in question may not have HR personnel technically qualified to interview programmers properly
Hiring a programmer should have the following steps, and once these steps are conducted, you must ensure that the candidate has the capacity to write code
- An informal interview through Skype or similar apps
- A quick technical screening to know whether the candidate is up to it
- Checking whether the programmer has any skills in programming as he claims
- An evaluation to see whether the candidate fits in with the company culture
Once you conduct strict evaluation with the help of these steps you can get someone who would be technically competent, morally fit and culturally responsible, of course with good communication skills. Most interviewers prefer to conduct coding tests so they can gauge the technical competency of people who claim to be experts at programming. You can do a coding test during the interview and give candidates two hours to show fruit for their efforts and knowledge. The test can be divided into a series of small problems, each one harder than the previous one. When you do that you can gauge their skills not just on their competency level, but on the time they take to complete.
A good programmer will most likely need just under two hours to finish the tests, while an incompetent one will not even complete the first problem within the time frame. When you do coding tests, you have the following benefits
- You can segregate the cream of talent
Good programmers can write full documentation. For example, if you see good potential in a candidate, you can get him to do a fully automated unit test, create a full Javadoc and even add HTML formatting to the Javadoc.
- Purposely tinkering with the tests so they are faulty in themselves
If you prefer to conduct automated tests, then go ahead with it. But when you devise the tests yourself, you deliberately create them with minor flaws. A shrewd candidate would recognize this immediately and would either be willing to correct the flaw himself, or inform you about the same. It could be minor issues like misleading variables or haphazard use of quotation marks along the strings, but the competence lie in spotting them. The candidates can even modify these flaws to adjust to the test. If a programmer is willing to point out flaws in the test code, it proves that he wants to deliver excellent quality work rather than creating a ‘make-do’ with the available code.
- Tests can determine the programmer’s skills
Conducting coding tests would help analyze the programmer’s skills in solving problems in different ways. For example, you can have the programmer analyze a code with iterative solutions and then again recursively. Finding multiple solutions is an advantage you get from hiring such a programmer.
- A candidate who can refractor and be aware of the time-factor
A passionate programmer would always be obsessed with perfection and he wouldn’t rest until his coding is perfect. If you give a programmer a program to work on, he must sit back and seek a solution that is not only workable, but perfect in his eyes. Certain programmers find a solution and then try to refractor it till it becomes perfect. However, they must be aware of the time factor and keep an eye glued to the clock to ensure they finish on time. Candidates looking for an on-the-spot job offer would benefit from doing so.
Once you feel that a programmer has successfully passed your test, it would be better to hire him right away.Who knows? Maybe another potential employer would be waiting to hire him, and you might lose him. If the programmer has passed the test, seems like a good fit to the company and his demeanor is such that he can relate to the rest of the employees in the office, has a decisive nature and an analytic mind, coupled with excellent problem-solving skills, then you can hire him. However, it is these coding tests that set the base for this. So it is important to conduct coding tests to verify the programmer’s skills before you hire him.
It is always advisable to conduct these programming tests at office, rather than at home because the candidate cannot seek external assistance to complete his tests. That way, you can understand that when the programmer fails to complete the test in the designated time he would not be good enough for the post. Once the coding test is complete, review the codes seriously, so you know whether he has been successful or not. Some companies prefer to do this on-site while others allow the candidate to take the test home and write the code in the ambience he is comfortable in.
Pictures: Flickr.com/ Kovah/ Samuel Mann/ Matthew Keefe
The author: Reema Oamkumar is engaged as a thought leader at Software-Developer-India.com which is a part of the YUHIRO Group. YUHIRO is a German-Indian enterprise which provides programmers to IT companies, agencies and IT departments.