Why Developers Who Pair-Program Are More Likely To Get Hired
I’ve seen a number of technical job interviews over the course of my career, both as the applying candidate and the interviewer. If I could wave my magic wand and do away with just one of the most common myths in this industry, it would be that of the stereotypical lone-wolf software developer. Even the most independent of us coders will collaborate with teams and colleagues on a regular basis – no successful developer can be an island! Whether we’re building a website for one person, or developing a mobile app with a team of one hundred, a beautiful finished product that incorporates the best of everyone’s efforts requires a lot of working together.
When it comes to getting hired for today’s technical roles, formal education is taking a back seat to evidence of personal effort and advancement. (“What have you done for me lately?”) Developers with a rich portfolio of recent side-projects and open-source work are set apart from the crowd. Discounting specific expertise and languages, there’s also one definite skill that any developer can master in order to stand out at the next job interview: good ol’ pair programming.
Not accustomed to riding tandem? A little pair programming experience is very valuable when it comes to impressing potential employers and colleagues alike. Here’s how this often-overlooked practice can imbue you with the skills you need to ace your next interview.
1. Good developers are good communicators
If you’ve spent any time reading poorly-written code, you’ll know you wish you hadn’t. Good code is readable – great code is readable even when you’re unfamiliar with the language it’s written in. Developers most likely to get hired write code that other people can easily understand. In many ways, writing code is another form of communication.
When you pair-program with someone, good communication is essential. Conveying your intent for the code you’re writing to someone else, out loud and as you’re writing it, is robust mental exercise for your thought-to-speech faculties. Working through code and solutions to problems out loud and on-the-fly is an important part of the technical interview. In most cases, you’ll only have a few minutes to demonstrate to your interviewer that you’re able to articulate a complicated programming concept clearly. A little practice in this area can set you miles ahead.
2. Getting out of your own skull
Have you ever looked back on code you wrote a year (or even a month!) ago, and thought, “What the heck did I mean by that?” Yup. I’ve been there too. Sure, writing useful inline comments can help – but learning to think outside of your own head will help even more.
Sounds contradictory? Imagine thinking about your code as if you were someone else reading it. Without the foreknowledge or intent for the final result that you have in mind, would another person understand what you’re aiming for? Even well-written code can sometimes miss the mark here, and this is a great opportunity to benefit from some pair programming.
In this regard, your programming partner acts as a mirror, and vice versa. Working together, you’ll explain to each other the specifics of the code you’re writing and what it’s supposed to do. If there’s anything at all that doesn’t make sense or is ambiguous, you’ll let one another know.
Developing this form of thinking can be of great benefit in coding interviews. Thanks to pair programming, you’ll have had ample practice at perceiving yourself from another person’s viewpoint, and can now better anticipate how the things you’re saying are understood. As a result, you’ll explain your ideas and concepts with noticeably greater precision.
3. Speaking with precision and honesty
Pair programming teaches us that precision counts as much when talking about code as it does when writing it. It’s excellent practice for the vital interview skill (and life skill) of speaking with precision and honesty. An interviewee who says what they truly mean, with specificity and accuracy, is viewed as a reliable and trustworthy candidate.
Here’s an illustrative example. While writing a function, you wouldn’t tell your programming partner to use “myArray” when you really mean “myArray” without seeing a completely different result. Answering your interviewer’s questions is a similar opportunity for specificity. If you’re asked whether or not you’ve previously used a certain framework and you respond with, “Yes, I built two mobile applications that use it last year,” you’re going to be perceived very differently than if you answer, “Yes, I built some stuff with it a while ago.” (You’d be surprised how often I’ve heard answers even more vague than the latter.)
Vague answers only serve to give the impression that you might be obscuring something – or even worse, being dishonest. Pair programming can provide plenty of practice when it comes to speaking accurately and honestly – and the latter is most important when it comes to evaluating ideas.
4. Evaluating complex ideas
One beautiful part of pair programming is hashing out an inevitable disagreement. You’ll feel that Approach A is the best way to solve a problem, while your programming partner is advocating Approach B. To make a rational decision on the best (if there is one) method, both you and your pair programming partner will have to evaluate each other’s ideas.
Here’s a seldom-used (but extremely effective) approach that I’m particularly fond of: you try and verbalise why your partner’s method is better, while your partner verbalises why your method is better. If you both make a genuine effort, you’ll immediately gain a new perspective and better learn to rationally evaluate someone else’s ideas.
A favourite interview question of mine, both as a candidate and an interviewer, is some variant of, “In this scenario, would you use Approach A, or Approach B?” This is a wonderful opportunity for a candidate to demonstrate creative and critical thinking skills, on top of technical expertise. After some experience with this thought process, thanks to pair programming, you’ll find it that much easier to articulate the technical pros and cons of each approach. This allows you more room to let your creativity shine.
The pair programming advantage
Pair programming offers ample opportunity to practice vital skills that can help you stand out from the crowd. It can help you become an even better communicator, and provides valuable feedback for making yourself better understood. It teaches you the skill of speaking with clarity and precision, and of rationally and creatively evaluating problem scenarios. By putting this practice to good use in your next interview, you’re that much closer to also putting it to good use in your new job.
How has pair programming helped your career? If you have a story about something you’ve learned while writing in tandem, I’d love to hear about it in the comments below!
If you're looking for your next job as a software engineer, have companies apply to you by adding your profile to Snap.hr.