Technical interviews require programmers to demonstrate a number of skills to land a lucrative job–but luckily, most can be practiced and honed over time.
“The skills needed are going to vary wildly based on the type of role, industry, and the company you’re interviewing at,” said Ashish Datta, managing partner at Setfive Consulting. “At the bare minimum I would recommend having a working understanding of data structures and common algorithms. Along with that, I’d recommend being as comfortable as possible in at least one major programming language.”
To master a technical interview, programmers should demonstrate the following eight skills:
1. Soft skills
When it comes to technical skills, you either meet them or you don’t–and if you do, you won’t be the only one, said Mike Walsh, founder of Straight Path Solutions. In that case, “bring your A game with soft skills,” Walsh said. “These little things can be the differentiator along evenly qualified candidates so much more than certifications. Things like how you handle conflict, if you are too proud to say ‘I don’t know.’ Do not lose your soft skills.”
With the pervasiveness of agile development methodologies, programmers must show that they can integrate into mixed-skilled development teams, said Ed Szofer, chief executive officer and president at SenecaGlobal. “To be a productive member of these types of teams, programmers must be able to communicate clearly, report progress accurately, raise issues promptly, and generally be a good team player,” Szofer said. “In today’s ultra-competitive environment, a programmer’s soft-skills are now almost as important as the hard skills.”
2. Problem solving abilities
The ability to demonstrate problem solving skills is often more important than proving technical expertise in other areas, said Mark Wilcox, vice president of business development at ICSynergy.
“What I look for is how does a programmer think about solving a problem. And then I look for action they are taking in learning how to improve their skills,” Wilcox said. “I don’t care as much if they are an expert in a specific language because any competent programmer can learn a new language in a week. But if they don’t have good problem-solving skills and are not constantly trying to improve, then they will end up hurting your project.”
Especially for junior developer positions, “they really don’t care about what you think you know,” said Todd Millecam, CEO and principal consultant of SWYM Systems. “Focus on how quickly you can learn and how willing you are to learn.”
While the technical questions asked will vary by position, all programmers must know how to communicate their thoughts, ideas, and experience, with the interviewer, said Neel Somani, and founder of Apptic consulting company.
“It’s invaluable to be able to talk your way through a problem, rather than to just get the optimal solution,” Somani said. “The solution itself isn’t nearly as important as the thought process.”
3. Business sense
Developers often thrive best when they have some business sense–that is, when they have the ability to look beyond the immediate uses of their code, said Anna Daugherty, digital marketing manager of PITSS. “They need to be able to see how their software or application fits into the wider scope of the enterprise, how their project drives ROI, and how they’re contributing to the overall organizational health,” Daugherty said. “If they have this skill, they’ll work harder, smarter, and be able to speak the language of the executives who need them to produce better results.”
Companies are usually not only looking for programmers that write good code, said Greg Hoffer, vice president of engineering at Globalscape. “They are running a business, and need programmers that understand that there is always more than one way to skin a cat,” Hoffer said. “Pragmatic problem solving that builds business value or makes customers happy is just as important as broad and deep experience in any given programming technology.”
4. What you did at your last job
Be prepared to answer questions about your last job, said Marco Cirillo, application architect at Clearbridge Mobile, such as:
- What were your roles and responsibilities at your last job?
- What were some difficulties you experienced at your last job?
- Explain something you built that you are especially proud of.
“These are mostly just to see what they’ve worked on, and to possibly assess the culture fit of the individual,” Cirillo said.
5. Proficiency in core programming languages
Make sure you are fluent in the main language and framework used at the company, said Peter Sugihara, co-founder of Open Listings. “Smaller companies have less resources to teach new hires, so this can seriously tip the scales in your favor because you’ll get up to speed quicker when you start,” Sugihara said.
6. Understanding algorithms and data structures
Data structures are a core programming concept, so it’s mandatory for all programmers to know the basic data structures, Cirillo said.
Larger companies tend to ask more algorithm questions, while smaller companies tend to be more programming-focused, Sugihara said. Gayle Laakmann McDowell’s Cracking the Coding Interview book is a great resource for algorithm questions, he added.
Along with programming language skills, “these two skills combined demonstrate an expansive and nuanced grasp of the fundamentals needed to succeed within any organization fast,” said Vivek Ravisankar, co-founder and CEO of HackerRank. “They’re also great indicators of computational thinking, which is a key trait of great software developers.”
7. Breadth of knowledge
For more senior positions, demonstrate a deep knowledge of a number of areas, said Millecam. “Talk about multiple frameworks and their advantages and how to employ them if the need arises,” Millecam said. “Don’t evangelize a single technology stack.”
8. Thinking on your feet
Expect to be asked to think on your feet, said Michael Durney, president and CEO of Dice. When presented with a question such as “How would you deploy a new application across the company, using both public and private cloud services?” Durney recommended that you “recognize that the interviewer is looking to understand what research you’ve done about the company, and how familiar you are with its challenges as well as your ability to ask good questions to clarify the scope, boundaries and assumptions that are important to answering a question like that,” Durney said.
Interviewers may also throw a few math puzzles or brain teasers at programming candidates to judge how quickly they can think through an unusual problem on their feet, said Peter Yang, co-founder of ResumeGo. Consider practicing a few examples before the interview to get used to the style of question, he recommended.