Contributing to Bridge Troll, Junior Jump Day 3

Ahh, that feeling of your first For Real Pull Request To An Open Source Project(tm).

It took a week longer than expected, and I was a bit disappointed when I showed up to Carbon Five only to find that my pull request had to be further modified before it would be accepted, but it was finally accepted that day.

As cool as it was to have the pull request accepted, the real value of the pull request came from getting my commit ready to be pulled into a functioning open source project. Rails Bridge has a really good tutorial on how to make a great pull request. For me, using rebase -i to turn my many haphazard local commits into one masterful, nicely commented commit was an “aha!” moment. That’s how all those pro’s looked so smart in the commit history! Maintaining communication with my code reviewer was also important so I could work with them to make the code fit in with the rest of the project.

I feel mostly at home in Carbon Fives office since I see mostly the same people every week. That is not to say that the experience is the same each week. The act of programming is very dynamic and one’s programming pair can have a great influence on one’s experience.

My new mentor

This week I was assigned a new mentor, Rae. She has been to every in person meet up each week so our first 15 or so minutes was spent by an easy going conversation. When we turned out attention to “what were supposed to be doing,” I found it beneficial to explain what I had done the last two weeks with Marc and the progress I had made on my own time since then. Reexplaining my self helped turn the graph of related ideas about what I had done and why in my head into a tree, flowing nice and linearly from a clearly defined start and end. We progressed fairly quickly and I sent in the above mentioned pull request by 11am.

Rae was the one to work with the Bridge Troll folks to setup a Pivotal Tracker with three stories for each “junior” to complete, so she was already a bit familiar with my next project. We read the story carefully together, played around with a local instance of the app together to try and visualize what was desired, and then started working in earnest.

Flail around time

One thing that I liked about the time I spent working alone was that I really got to flail around and not have any idea about what I was doing. When I flail, I begin searching my brain for my understanding of the application as a whole and where what I want to do fits into that application. I like to think that when one is flailing they are building up the hard to teach ability to know what to do when they don’t know what to do. I’m pretty sure thats how my excellent mentors, Rae and Marc, both got to be experts: hours of time banging their heads on problems.

Reflecting on my experience so far with my mentors reminds me that I sometimes have my “flailing around” time prematurely shortened by my mentors. Now, I am sure they did not intend to do this. It’s widely held that a teacher should never do the work for the student, and the urge to “just help” by mentors at Carbon Five has been openly acknowledged as something to be avoided. I think that when my “flailing” time has been shortened it mostly because my mentors themselves did not know what to do and wanted to guide me in the right direction. That urge mentors feel manifests itself in almost any action that mentor can take: browsing through files, opening folders, looking up documentation…

Perhaps the only way to not shorten my “flailing” time is to instead do mostly nothing. This idea largely comes from Philip Guo’s post on Passive Pair Programming, in which he outlines his take on pair programming. In short, the mentor hangs around checking emails / whatever until the student asks for something, at which point the mentor drops everything to help. I feel like this would give me the time to index my thoughts and try to come up with the words to describe the level I understand the structure of the application, and then express my need for help. My expression for help would then be indicative of not only my desire for help, but also my deeper understanding of what I am doing.

Conclusion

I still had a blast and learned a ton during my pairing with Rae. We got a pretty good start on the new project which left me in a great position to keep working during the week. It’s looking like it will take me another week before I wrap up this last story, which is a bit sad since I expected myself to get through all of my stories by the end of the second week. Obviously, that was unrealistic, so on second thought I am not that sad about it. Can’t wait for tomorrow!