During the couple of months following completion of Flatiron School's boot camp program, I had been coding alone. I thought to myself that it would be fine working solo, and that I could just figure out any new concepts and challenges on my own. Well, the truth is that this has resulted in my work progressing at a snail's pace. I would get stuck on a problem for far too long, researching questions on Google, Stack Overflow and YouTube (don't get me wrong, these are still amazing and necessary resources to be utilized), but just hitting a dead end frequently.
It is terribly frustrating when you feel like you're not getting anywhere, and it's far worse when you're trying to do it all by yourself.
During a recent weekly meeting with my Career Coach, I brought up being stuck for a long time on a Leetcode challenge, and he asked if I had any coding buddies. He went into how it didn't make much sense to spend an extended period of time on a single problem, and how much more productive it is working with two heads instead of just one.
Actually, this was something that the boot camp highly encouraged students to participate in. I did do a fair amount of pair programming during that time, and I learned quite a bit from those sessions. What I failed to do was to take that with me post-graduation, mainly due to just being too damn shy about reaching out to my old cohort-mates.
My Career Coach then challenged me to find three coding buddies, so I set out to do it! Here are a few things I was reminded of as to the benefits of pair programming:
As I mentioned earlier, there was a coding challenge I was spending too much time trying to solve (and ultimately unable to) on my own. Well, during one of the pair programming sessions I had this past week, my coding buddy came up with a solution! Seriously, I spent hours on that freakin' thing, running around in circles in despair. All it took was a fresh pair of eyes to take in the problem from a different perspective that brought me to the answer.
If it takes me an agonizing hour to solve one problem alone, but multiple problems could be solved within that time frame when working with someone, I think it's a no-brainer as to which is a more efficient way of working.
When pair programming, you have to talk through and explain your lines of code. I had completely forgotten how helpful this process is in solidifying my own understanding of what I was writing.
That's why there is the "Rubber Duck Debugging" method, where you explain your code line-by-line to a rubber duck. Perhaps I'll go find myself a rubber ducky...
This is also an essential skill that will be necessary once I begin taking on technical interviews, so it's also great practice to prepare for that as well.
Okay, so for those of you who are like me, terrified of what others may think of your coding skills because you're not confident in your own, here is the reality: People are nice (DUH!) and happy to help. At least, I believe most people are, since that is what my experience has been.
It's also a win-win situation, because not only are you getting help understanding something, but chances are your coding buddy is also benefiting from the opportunity to practice their own skills, explaining lines of code and concepts.
So, fear not! Start making a coding buddy or two, or more!