As a self-taught developer, I have mostly spent my time doing online courses, following tutorials, coding and building projects alone. I hardly got any feedback to know if I was learning the right technologies or writing clean code.
This situation changed when I joined The Collab Lab. It was my closest experience to a “real developer job”, as I had the chance to work in a team building an app.
During that time I had several pair programming sessions with 3 different colleagues. So every week two of us would sync remotely (as each of us was located in a different country) to have a discussion about the issue we had to solve.
I like preparing pair programming sessions in advance so the way I proceed was reading the issue in detail, doing some research and noting down some potential solutions to be discussed with my colleague.
How did we do pair programming remotely? We hopped on a video screen share call, where one of us was acting as the driver and the other one as the navigator. What does this exactly mean and what does each of them do?
The driver takes full control of the keyboard and is responsible for writing the necessary code to complete the task. This person will also speak out loud the thinking process behind the code.
The navigator pays attention to the driver's code and offers guidance, suggests new ideas and finds answers to the questions that might be raised during the process.
The driver has a low-level code thinking approach, while the navigator has a bird-eye view on the code.
During pair programming sessions, developers can swap roles so that each of them has the chance to experience both perspectives (two modes of thinking) and learn.
What did I learn from the whole experience?
- Be open and eager to learn.
- Embrace doubt and possibility.
- See another person's problem solving approach opens up your mind/ideas.
- Don't be afraid of sharing your ideas or asking questions.
- Communication is key to make your code or ideas understandable.
- Take breaks when both get stuck.
- It is not about teaching nor mentoring, but looking for a solution and growing together.
- The driver (seek agreement before proceeding) and navigator (asking, not telling) approach.
- Collaboration, team work.
Pair programming has definitely been a much more efficient, enriching and fun experience than all hours I spent coding by myself. If you are a codenewbie, I can only recommend you start with pair programming sessions as soon as possible to learn faster.