How Five Weeks of Remote Pair Programming Helped me Build Strong Habits

Written by ryvee | Published 2018/10/05
Tech Story Tags: programming | software-engineering | pair-programming | web-development | remote-pair-programming

TLDRvia the TL;DR App

Last month (September 2018) I started the Microverse Fast Track Program. It’s an intense software engineering training utilizing what is known as remote pair programming. The goal of the program is to get its students ready for entry-level remote or relocation-based jobs in software development. Pair programming is not an entirely new concept, but I consider it a revolutionary learning method. Sans an instructor but with a partner to learn with.

How I used to learn — inconsistent, inefficient

Prior to joining the program, I had been trying to learn web development for more than 3 years. I had purchased a number of courses on Udemy (and signed up on a lot of free courses there and on Youtube). My cloud drive is stacked with lots of programming books. Despite the myriad of materials, I still considered my learning to be insufficient. Sure I was able to learn technologies such as NodeJS, D3 and React, but I don’t consider myself any closer to building anything useful with them (except a blog CMS app I consider as one of my shining achievements — repo here| live demo here).

I probably have 4 to 5 Day 1’s in my #100DaysOfCode/#301DaysOfCode tweets (often times I restarted at Day20ish). I was pretty inconsistent that the first time I learned HTML it took me four months just to finish Jon Duckett’s book — HTML and CSS: Design and Build Websites. There were times the topics were so tough that I couldn’t move forward for three days or so to the next one. I didn’t realize my problem wasn’t that I was learning things that were out of my league. Nor that I was running in circles with different topics. My problem was that I was learning alone. Yes, I could get some help from the Stackoverflow community and what have you online. However, I still consider that as learning by myself.

Getting on the fast-track program is an awesome opportunity

Then fast forward to last month (September 2018), I started Microverse’s Fast Track program. It isn’t a beginner’s web development/software engineering course. The program is for those with coding experience who just need a little more polishing to be hireable. It’s a study-now-pay-later approach where you only need to pay the company when you’re already earning. Now there are already other programs that do the same payment approach. But Microverse does it remotely. The course topics include HTML5/CSS3, Ruby/Ruby on Rails, JavaScript and React. It doesn’t stop there, though. The Microverse team goes further to help you build your portfolio, social media/online presence (yes, writing this article is part of the training haha… Shout out to Ariel). Training for interviews and connecting to recruiters and tech companies in the US and Europe are part of the whole system. Plus, there is an army of experienced and super awesome software engineers to guide us. One of them being assigned as our dedicated mentor. What more could you ask for?

Pair programming benefits — more than just alternating control of the keyboard

Remote pair coding is a great way to learn teamwork, from a distance (image c/o Unsplash)

I guess pair coding is the glue that binds the fast-track program’s curriculum. Around it revolves our daily activities. So I must say a thing or two about it. Pair coding helps a coder in several ways. Here are my list of benefits I, so far, experienced from it:

  1. Discipline and consistency — since we have a structured daily schedule (this is a full-time program), there’s no oversleeping in the morning, no “binge-social-media-ing” (if ever there is such a term). You are forced to be ready because you have someone waiting for you on the other line. We share screens with each other in Hangouts so we cannot even take a sneak peak at our Facebook newsfeed.
  2. Efficient and more effective learning — part of our week includes us either working on a project or doing some readings. In the projects, my partner Dipto and I take turns being the driver (the one who is actually coding) and navigating (the one assisting the driver to find bugs, research on solutions or just tell him a good joke or two to make the activity fun). We start our day solving some algorithm challenges. In my opinion, working on projects by myself would be faster IF and ONLY IF the motivation was consistent. And that was my problem in the past. Pair coding ensures the motivation is there at all times. Also the answers to hard problems come quicker as there are two of us analyzing and researching. During reading times we get to discuss what we’ve learned and share other materials to supplement each other’s understanding of the topics.
  3. Developing team playing skills — Thanks to the Internet, opportunities that used to be limited by geography now are available to everyone. However, it also means learning how to work with others in a different part of the world. Cultural differences, at times language barriers, and even attitude clashes can break team members working remotely with each other. Dipto and I luckily don’t seem to notice any cultural difference. And while neither of us is a native speaker, we do communicate very well with each other in English. He natively speaks Bangla, and I, Filipino. Working together everyday from different time zones trains us to deal with others in an actual team working in a company or open source projects. Sure, we experience challenges. Lots of times we disagree on our approach to a coding challenge or in our projects. But those challenges train us on how to handle such circumstances in an actual remote job or open source project. Or they at least teach us how to handle strong emotions during discussions.
  4. You have a friend to talk to during boring times — I guess everyone who codes or is learning to code can agree that some days will be boring. Those are the times that as a learner you just decide to get on Netflix and binge watch Stranger Things rather than getting your butt up. With a coding partner, who may or may not feel bored at the same time as you, you can just pause a bit, tell a funny joke or share something interesting. Dipto and I recently talked about each other’s native language’s idiosyncrasies and some of the exotic dishes in the Philippines. We did that because at that point we didn’t feel like starting our project (we just finished our reading). After that conversation (and the 1 hour break after it) we again felt rejuvenated to resume the work.

More to come in the upcoming weeks

After finishing a project or solving a difficult algorithm problem (image c/o Unsplash)

It’s just our first month (5th week to be exact), yet I already feel we’ve accomplished so much. We’ve finished 8 projects so far (in the HTML/CSS sections), 9 including our collaborative project when we were applicants in the program. We have also solved at least 10 algorithmic challenges. The list of goodies I know will increase as we go through the program. And by its end, not only will I have become a legit (probably an awesome) software engineer, I also know I will have gained a friend and an awesome colleague.

Follow me on Twitter | Github


Written by ryvee | Loves writing about tech and solopreneurship
Published by HackerNoon on 2018/10/05