The ever-cheery Bita met me at the door and launched into yet another one of her adventures she has been having in L.A. We walked up a few flights of stairs and eased ourselves into the office’s kitchen. Most of the Carbon Five volunteer’s were already present and we all talked casually amongst one another as we waited for the other “juniors” to arrive. I grabbed a Clif bar out of the big jar on the counter and made coffee as I continued chatting with the people around me.
The comfort I was feeling made it easy to forget this would be my last day with people I now considered friends.
Two things would be different today in the otherwise typical routine.
First, there were only 3 juniors today! We had started the program with 5 total. One left by the second week after he received a job offer, and the other was sick. We collectively discovered this only after the mentor who was intended to help the sick junior checked his email to find a message from the junior at some very early am hour. It is probably hard for Carbon Five to get even 5 employee’s to donate even one Sunday, but it would be nice to have “backup” juniors that could swoop in on such a prime opportunity for pair programming and contributing to Bridge Troll.
Second, My last pairing partner, Rae, was replaced by Carbon Fiver Sean. I have liked every Carbon Five mentor I have paired with, but as I have mentioned in the past, I think it is valuable for my learning to switch pairing partners. After the daily check in on the status of everyones projects with the remaining mentors and juniors, Sean and I walked off to the desk we would pair at. We begin introducing ourselves to each other and chat for a few minutes before we eagerly dive into the code of my second feature.
The overwhelming feeling I have while Sean and I work together is amazement at how easy it was to write and understand code. The last three sessions were smooth enough, but I was finding my time at home to be more valuable to my learning. At home, I had the ability to dig deep into each concept as far as I wanted to until I convinced myself I understood it. When I was pairing, perhaps there was this underlying sense that I didn’t feel full authorship of the code I was writing with my own fingers. This last day was not like that. I could see the codes underlying structure, see the mechanical turning of each component and hear the click as each designed piece snapped perfectly into the other.
That’s not to say I did not have my hiccups in understanding. The questions I asked, however, were of a seemingly different nature to the novice-to-my-own-hears questions. Questions like “Whats your favorite way to begin writing a feature test?” seem to be more directed at transitioning from a beginner to expert, as opposed to the more basic how-to questions I was asking in prior sessions.
There were some non technical factors that were fundamental to my success so far as well. The luxury to work on the project outside of the weekends gave me much needed additional time to absorb concepts learned on the weekends. The quality of my pairing partners ability to pair in an expert-beginner situation. Feeling eager to share my weaknesses with my mentor so we could work on them the most, instead of feeling foolish for “not just getting it.” The last two factors can, to some degree, be controlled by the event organizers. Some training (or at least sharing of tips among mentors) in expert-beginner pairs and frequent reminders to the students that all skill levels are welcome may help cultivate a similar experience for others.
So after a few hours pairing with Sean, lunch rolls around. It has become a much loved routine to talk a walk around the neighborhood and enjoy the bright sunny day before we go promptly back to ignoring it.
Perceiving the scruffy looking people laying on the ground as homeless provides me with a stark contrast to my full belly of free food. The words “Techie scum” drift through my head, and I look around at my walking partners to see if any thoughts visibly register through there bodies. We walk back to the office. Its easy to immerse myself back into the world of programming and its millions of definitively solvable sub problems.
After another few hours of programming, we wrap up the day a bit earlier then normal. Ken, one of the originators of the Junior Jump program at Carbon Five, rounded everyone up for an extra long reflection as a way to celebrate our last day together and spend time thinking about the future.
If your not aware, reflections are a nifty tool for teams to share their experience of the day with each other. The details vary from company to company, but typically a team will gather around a table with 3 different colors of sticky notes. People grab sticky notes and write about what they liked, didn’t like, or things they wished they had, keeping the notes private until some time limit is reached. Then, everyone puts there sticky notes on a wall, separating the notes by type. One person is then elected to read each sticky note, and people can chime in with any additional details or feelings as the note gets read. At Carbon Five, they wrote a webapp called stickies.io that basically allows you to create stickies online.
Throughout the reflections, I mostly had only positive things to say which I think is reflective (ha!) of my overall experience with the program. It was interesting to get an overview of how others were feeling about the program. I was reminded that some people learn differently then myself as one lady found she learned more by sticking with the same mentor rather then switching mentors every meetup day.
The reflections eventually turned over to advice for the future. Mostly this seemed to be about “getting a job.” The mentors mostly reminded us of the typical stuff about jobs: the importance of “networking,” produce free labor to open source projects to “prove yourself,” and maybe something about social skills. I mostly tuned out at this point, but both of the remaining juniors seemed to enjoy the conversation and get a lot out of it.
After about an hour of this, we all began to part ways. I thanked everyone for such an awesome opportunity, and spoke with my mentors a bit more. I really did get a lot out of pairing with all of them. Having a mentor eased the seemingly overwhelming but actually simple process of starting to code for an active open source project. My mentors also were knowledgeable peers that could guide my learning in many aspects of both software engineering best practices and code design patterns. To top it off, they were all swell people who really took their time learning how I worked best and never made me feel like I was asking a dumb question.
After about four weeks of this, I am left with a very good sense of Ruby / Rails, a confidence that I can work on any of the millions of open source projects that exist online, some new friends and the experience of delivering two new features to Bridge Troll. This was a special experience for me, and I am sad it’s over. I would highly recommend this experience to anyone looking to learn how to contribute to open source projects, make some friends and have a great time pairing!