We’ve all heard some version of this story: Job candidate X comes in to interview for a programmer position. X seems to be intelligent, outspoken and competent, so he/she is hired on the spot. Months later, to the hiring party’s dismay, X turns out to be utterly useless at coding. By that point, it’s too late to recover the company resources and man hours wasted by this charlatan, so the only recourse is to sack him/her. Off goes X to terrorize another unsuspecting tech company.
If you’re unlucky enough to have not only heard but also experienced something like this, then you’ll know that so-called ‘fake’ programmers like X can be tricky to expose. A clever faker can memorize enough jargon to (momentarily) fool even the most experienced coders. So how do you make sure the eager young thing you’re interviewing isn’t a ‘fake’ programmer, especially if you’re not a programmer yourself? The obvious solution is to get a programmer colleague to sit in on the proceedings, but here are 6 more solutions that can help.
1. Implement on-the-spot diagnostic tests
This is another obvious solution, but a lot depends on what kind of test you decide to run. Steer clear of questions that call for answers that can be regurgitated. Instead, have prospective candidates perform practical coding tasks and produce workable programs. This way, you’ll be able to see if they can walk the talk, or are just full of hot air.
Online platforms like Quora and Reddit are a useful resource if you’re not sure what kind of test to implement. You can always get a friend or colleague with programming expertise to help you vet the results afterward as well.
2. Ask questions regarding real-world implementation
The art of programming is all about practicality. The prettiest code isn’t worth squat if it doesn’t do what it’s meant to do. In the same vein, ‘fake’ programmers are caught out when they can’t translate that encyclopedic knowledge of the latest programming buzzwords into an understanding of how the code works in real life.
Ask them how they might use these features to improve an existing system or framework. If they can’t answer satisfactorily, then perhaps they never really knew what those terms meant in the first place.
3. Zero in on the team players
Just because programmers spend long, solitary hours in front of glowing monitors doesn’t mean they don’t have to know how to work as a team. The best programmers write clear, comprehensible code that other members of their team can easily modify. This quality is a standard that all legitimate programmers will aspire towards.
Try asking candidates about their past experiences working in teams, and what they’ve done to ensure the code they write fits into a larger whole. Simple code tests can also reveal whether the code they write is compact or unnecessarily convoluted.
4. Be suspicious of (over)confident smooth talkers
In a profession as skill-intensive as programming, the ability to write working code is prized far more than traditional interview must-haves such as good articulation and self-assuredness. Dedicated programmers know this, and consequently emphasize their relevant skill sets instead of dialing the charm up to eleven. This isn’t to say that candidates who speak well are frauds. You should take extra pains (such as suggested above) to verify if a well-spoken interviewee has the practical goods to back his/her rhetoric up.
5. Look for concrete evidence of passion
It’s easy to gush about how much you love programming, but a lot harder to produce the actual fruits of that passion. Don’t let candidates get away with vague stories of some application they built during their college days. Probe for details such as what inspired them to write such code, or what they would change if they could do so now.
An applicant with a true flair for programming will almost launch into an epic tale of woe and weal, and even average applicants will have interesting experiences to relate. Fakers, on the other hand, will try to brush the question off or answer in the most generic terms.
6. Ditto for resumes that list tons of programming languages
The average interviewee for an entry-level programmer position just doesn’t have enough life experience to acquire proficiency in ten different programming languages. Most fresh graduates should have come across at least a couple. Any resume boasting more than passing familiarity with all the major programming languages is almost inflated or completely false. Expect the holders of such resumes to be hedgy about their purported abilities when they come in for the interview. Probe accordingly.
This is where we insert a disclaimer of sorts: there’s no way to completely ‘fake’-proof your company. Some fakers are simply too ingenious and determined. With the above tips, however, you can at least keep out the vast majority.
Hiring engineers? Post on Tech in Asia Jobs to reach out to our community of tech talent.