Writing computer programs isn’t easy. So to assess a software engineer’s mastery of a language, Catherine Powell asks them to write a small application. Getting the technical assessment out of the way lets her focus her interview on the candidate’s adaptability, environmental fit and engineering approach.
“Anyone can search the Internet and memorize answers to technical questions,” says Powell, the Dice Software Engineering Talent Community guide. “I want to know if they can anticipate and adapt to changing technology and work on a team. Because to me, those are the traits that make a software engineer a good employee.”
We asked Powell to share some of the questions she asks software engineers, and the answers she’s looking for.
What was the most difficult thing to master about the last program you learned?
- What Most People Say: “I learned Ruby on Rails 4.0 or .NET and didn’t find anything hard.”
- What You Should Say: “The hardest thing about learning Ruby on Rails was understanding how the language expected files, classes and methods to be named so it would find them ‘magically.’” Or, “I had a hard time with memory management in C.” Or, “I had a hard time learning the class libraries in .NET.”
- Why You Should Say It: Everyone has difficulty with some aspect of a program. The engineer who isn’t forthcoming about their weaknesses probably won’t ask for help when they encounter problems during a project. It shows confidence and self-awareness to admit that something was hard to learn.
“About 60 to 70 percent of candidates try to gloss over their weaknesses,” Powell says. “I’ll ask a few follow-up questions to see if the engineer is afraid to step forward when something is difficult or simply lacks self-awareness. If they continue to give me superficial answers, I’ll end the interview.”
If you had to start over during a project, what, if anything, would you do differently the next time around?
- What Most People Say: “I wouldn’t make any changes. I’d do everything the same.”
- What You Should Say: “I wouldn’t make any changes, but here’s why.” Or, “I would make the following changes and here’s why.”
- Why You Should Say It: “Your explanation tells me how you learn and adapt to changing circumstances,” says Powell. “Do you get stuck in one way of thinking or do you analyze mistakes and learn from them?”
How will technology change in the next three years?
- What Most People Say: “We’ll all be flying around in rocket cars.”
- What You Should Say: “I understand that tech has cycles. Here’s what I expect to see in the next five to 10 years.”
- Why You Should Say It: “Software engineers need to make prudent decisions by anticipating and adapting to change,” Powell believes. Your answer should demonstrate your appreciation for technology’s cycles, while exposing your logic, decision-making process and ability to think long-term.
Powell says she doesn’t want to hire someone “who blindly follows the latest technology trends without considering the consequences.”
How would you teach someone a new piece of technology?
- What Most People Say: “I’d point out the tutorials.”
- What You Should Say: “I’d use a variety of techniques that meet the needs of adult learners. For example, I’d incorporate self-study with hands-on coaching and I’d give them small problems to solve. I’d also use pair programming and encourage them to seek feedback from their peers by posting their code online.”
- Why You Should Say It: Your answer should showcase your understanding of adult learning techniques. In the process, you’ll be demonstrating your nuanced understanding of your own learning patterns and your ability to transition from learner to teacher.
“Once you’ve established that you’re technically proficient, managers want to see if you have the right temperament and mindset to thrive in a dynamic environment like software engineering,” Powell explains. “It takes more than great technical skills to be a great software engineer, as well as a good employee.”