What comes to your mind when you think of a stereotypical programmer? In 2023 this question could be answered in hundreds of ways, but when I was younger I had a set perception that is shown in movies/tv shows. Programmers are (mostly) depicted as being:
- Hiding from the world (typically in a basement)
- Unable or unwilling to connect with others
Now that I work as a software engineer I know how diverse programmers can be but the stereotype still exists. Granted, there may be people who fit this description working in the field, but for the most part the other programmers I've worked with have been friendly, helpful, and social. I want to break down this myth of programmers as isolated people because I've found in my career that it is SO much better to leverage those around you.
If you've read the above and still think "no - this is bogus. Programming is a solo sport!" I hope that by the end of this article I can change your mind. While one COULD shut out everyone - and maybe be successful - you'll find that your career can flourish by working with others.
If you work on any sort of team you've probably heard the phrase "pair programming" more times than you can count. If you haven't, let me quickly explain what it is.
Pair programming is when two or more developers work together to solve a software program whether it be a code or infrastructure issue. One person will "drive" or click around while the other people listen and give advice on how to solve the problem.
Pair programming has some huge benefits:
Some team knowledge can only come from those you work with. The questions of "where does this piece of code live?" or "why are we doing this in this way?" can quickly remove blockers and help with your productivity levels.
Learning and Teaching new things
One of the first things I've learned in the field is if you hear someone say "that's just how we do things around here", QUESTION IT! Technology is constantly changing and evolving so it is important for developers to be constantly learning. This also means that no matter your skill level, there is something new to be learned.
More senior developers may learn about new technologies from recent college graduates. Junior developers can learn about coding standards and how to solve complicated problems from their more senior developers. The experience of always learning means that it is NEVER a waste of time to spend time pair programming with another developer.
Typically you'll come out of the session learning something new whether it something large like how to completely refactor your code or something small like how to better write inline for loops.
The last benefit of working collaboratively that I'll discuss is building team trust. Team trust can be commonly overlooked in favor of louder more pressing issues - deadlines, releases, etc - but that does not make it less important. If you have a team that doesn't trust each other it can be incredibly hard to develop efficiently.
Team trust can be built in interactions between coworkers. If pair programming sessions and PR reviews are respectful and helpful then more junior developers will be more willing to ask questions. This will then remove blockers and help the developers learn and grow. If everyone is encouraged to speak in meetings then people will feel more encouraged to speak up if there is a small problem. This can save time in the long run.
These interactions with coworkers may seem small in the moment, but in the long run building team trust will help grow your team as a cohesive unit - tackling problems together as efficiently as possible.
I graduated college with a desire to be a frontend developer but I had very little practical experience. Through working on a team and pairing with senior developers I was able to learn so much and begin my career. If you're interested in learning new things I would recommend leaning on your coworkers and busting the myth that programmers are solitary creatures!