Learning through Collaboration
When I started as Highgroove’s first intern, I wasn’t entirely sure how I would be introduced into the company. On the first day, I learned that I would be collaborating with each Highgroover for pair programming, which made it very easy to get integrated and meet everyone.
Read on to learn more about how pair programming helps developers start their time at Highgroove right.
Pair programming, for those not familiar with it, is when two programmers work together on one machine with one person driving (doing the coding) and the other person watching, learning and asking questions. Over the course of the next week, I paired with every developer here as the observer. I think there were many goals behind this, but some of the more important ones are to introduce me to different tools people use, how they fully utilize them and, of course, to have me learn more about Rails.
Since we all know the value of reading code, pairing is probably the best thing Highgroove could’ve done to get me up to speed quickly. Being able to sit down with one of the Highgroover for an hour to look at production code gave me the perfect opportunity to learn just about anything I wanted to know. I’d ask them questions about how certain problems were being solved, or how I would potentially implement some functionality, and gain invaluable feedback on how I can approach coming up with solutions to problems in the future.
We discussed all kinds of topics: database transactions in Rails, using
git rebase to keep a clean commit log, and keeping gems up to date, among others. One of the more interesting aspects to pairing with someone is learning about their development setup–what editor they use, their color schemes, and any plugins they feel make working easier. A number of people here use Sublime Text 2, while the rest use Terminal and Vim. As a Terminal and Vim user myself, I found out about several cool plugins to help increase my productivity, including tmux, vim-powerline, and ctrlP.
A lot of ground is covered in an hour of pairing, and it can be hard to digest all of that information in such a short period of time. What happens afterward is crucial: After the pairing, I would quickly jot down what we worked on and any big concepts that I’d just learned about. I’d spend the next hour or two reviewing the code we worked on, researching the concepts I wasn’t familiar with or needed to brush up on, and looking into any gems that I’d never used before.
When you start at Highgroove, you hit the ground running. From day one, you’re learning from others and working together to solve problems. This collaboration is what helps build developers and it has given me a great beginning to my time at Highgroove.
What kinds of collaboration have you used in your work?
Image credit: hackNY