The Power of Pair Programming
Over the past month and a half I’ve been programming solo. At the surface level programming solo can seem pretty smooth. You get to move at your own pace, you don’t have to explain the steps you take and as a result you feel like you’re coding faster. Solo programming can seems great at the surface level, but to accelerate your learning you need to collaborate with your peers.
During my time at Dev BootCamp I paired programmed just about everyday. Depending who you pair with pairing can be a great session or it can feel like pulling teeth. When paired with the most talented pairs I felt like I learned faster and moved through the material quicker. With peer programming people make the difference.
Fast forward to my apprenticeship at 8th Light, after a month of solo programming I felt I was moving at a great pace. I think its a common fallacy a lot of novice programmers fall under. You are now at the level where you can whip up a little demo application fairly quickly. After awhile you begin to believe you are progressing pretty well. Yet often novices can never gauge their own skill level. If you never experienced something you’ll never know you lacked it. It pretty hard to expand your skills if you don’t know in which direction you should go.
This is why I say pair programing is a powerful tool with the right person. Most of my experience has been with fellow novices. Novices are great at keeping you accountable and focused. No more looking up a method then ending up on some non-related site. Novices help you fight that urge to write your code then the test against proper TDD practice. Its a great thing to have, but a varying your pairs can help you further.
Working for example with a senior developer can speed up your skills pretty quickly. In one session you’ll be able to gauge the bar you need to be performing at. The developer will be able to help you see what you can’t and point you in the right direction. Yes you can self teach yourself, but it’s not efficient. Why waste time learning where to go and what path to take if someone has already written the path for you.
With that said, working with people junior to you is just as helpful as well. Junior developers teach you to measure twice and cut once. You can’t just code you have to explain why your doing what your doing. Such pairing sessions expose your weak points. Places where you thought you’d master the material but still can seem to explain it to others. This is great practice, its better to explain it now for free then in an interview where it will cost you.
Looking back at my experience, I wish pair programming was encouraged at a earlier stage in my exposure to technology. The hollywood stereotype of developers are often these lone wolfs , working in some basement. I think more people would learn to program if they learned it actually could be an group activity. Overall, If you want to accelerate your learning I believe pairing can be a great aide in that goal.