8 March 2015
Pair Programming
Hope your Sundays are going well. Today I'd like to blog about pair programming, a collaborative method of coding that is a key component of DBC's curriculum. Pair programming, for those who are new to the concept, involves two people working as a team to write a single document of code. While this might seem in conflict with the typical stereotype of a programmer sitting behind a computer all alone in the dark, pair programming is on the rise. At its core, it involves two people taking on the unique roles of a driver and a navigator. The driver sits in front of a monitor with their hands directly on the keyboard and writes code, while the navigator sits at the driver's side, and guides them through each of the steps involved in a particular challenge. While the driver is typing away, the navigator instructs, proofreads, offers support, and has an eye on the bigger picture and the successive steps required for the team to reach the finish line.
In the case of DBC, given that its students are scattered all around the country and world, navigators don't sit quite right next to drivers but rather at their own computers, sometimes thousands of miles away. Luckily, with the invention of screen sharing and video conferencing, their roles are pretty much the same, even with the distance.
For me, learning to pair program has been an interesting experience. In general, I'm more inclined towards working by myself, so at first I was a bit skeptical. But as I've paired each week for five weeks now, I'm starting to see its benefits more and more. As someone who is new to programming, I fully admit I have a ton to learn. But still it can be hard to let go of my insecurities and just admit to everyone in a big group that I don't know something or ask for help. But pair programming is different. From the onset, the very moment you introduce yourself to your pair, you are a team; and tasked with accomplishing a shared goal. It doesn't matter what you know or don't know because chances are your partner will be able to help. They are an extension of you, and if you both don't know something, you can always do quick research together, often in half the time it would take to look something up on your own.
But more than that, pairs provide an added opportunity to learn. They provide a chance to gain from someone else's ideas, insights, and experiences in a setting that doesn't permit formality or beating around the bush. You're both so focused on accomplishing a time-sensitive task together that there's no time for wasting words. Furthermore, pair programming provides enormous support. I had a pair this week that lasted three hours and on a few different occasions both my partner and myself were so frustrated with not being able to solve a challenge that we felt like just giving up. But at each of those moments of frustration, the other team member picked up the slack, calmed the other down, and kept us moving in the right direction. And eventually we arrived at a working solution. It was really great to see.
At DBC, every time we pair, we also give our partners anonymous feedback that they see a few days later. The feedback I've received to this point has been largely positive. Often, I hear that people enjoy working with me, because I'm open and considerate and make sure to communicate well. It's nice to hear that positive reinforcement. I also have received feedback that there are certain technical areas where I'm a bit lacking and should focus on more, which is also good to hear. It doesn't elicit quite the same fuzzy feelings as the other feedback, but it's just as important, if not more so. Checking my feedback can be a nerve-racking thing. But reading it and more importantly using it to better myself will be crucial for my growth; not just professionally but personally too.
Prev | Next |