When the opportunity came up to participate in the Carbon Five apprenticeship program in April, I was first in line. With two other apprentices, I spent the next three months at Carbon Five, working alongside a mentor across client and internal projects.
I had been working as a junior developer for about a year and was looking for an opportunity that provided mentorship that would allow me to level-up my skill set. I would often be asked why quit your job and take an apprenticeship position when you are already working. Yet given the experience I had, if all apprenticeships were like that of Carbon Five, I think they would be invaluable to any junior developer. So why?
The TLDR is that Carbon Five’s apprenticeship gave me the opportunity to learn and contribute to both internal and client projects, while pairing with knowledgeable senior developers. Not only was I able to quickly level-up my skill-set, but I was able to do so in an environment that supported my ability to learn, ask questions, and pick-up best practices.
The biggest attributes to the apprenticeship were the following components.
One of the biggest benefits of the apprenticeship is we had an experienced senior engineer 100% allocated to running the program and to being our mentor. At any given time two of us were working with him, so we each were able to pair with him for half a day. He also took care of all logistical aspects of the program, made sure we had a clear idea of the work we would be doing and a clear understanding of the goals of the program. He also checked in with each of us every week and helped us figure out how to change things if necessary.
As mentioned, one of the reasons the apprenticeship was appealing to me was that I wanted to do more pair programming. Most days I was able to spend at least half a day pairing with our mentor. Having that much on-on-one pairing time allowed me to learn a great deal and get a better understanding of the technologies we were working with, all the while improving my ability to pair program. Furthermore, other Carbon Five developers took time from their days to “guest pair” with us regularly. It was wonderful to work with so many experienced people who were willing to share their knowledge.
3) Asking Questions
Carbon Five has created an incredible space where learning and sharing knowledge is not only valued and supported, but encouraged. Being able to pose questions and then receive either an explanation or direction on where to look to learn more, was key to helping me improve my own abilities. Having previously worked in environments where asking questions was discouraged, the open forum at Carbon Five was refreshing.
4) Real Work
From day one we had concrete projects we were working on. Having actual work that was either on an internal project for Carbon Five or for a client, made me feel like the work we were doing had actual value.
5) Learning Project
In order to have a space to expand our learning and try out different concepts, the apprenticeship program allocated time each week for us to work on a learning app. The purpose of the app was to give us an opportunity to explore concepts more deeply that might have been confusing or concepts that had peaked our interest.
6) Apprenticeship Club
Once a week we would meet for an hour to discuss a technical topic we wanted to learn more about. These were often free flowing conversations led by our mentor. They were generally centered around a video or a blog post we had all read or watched. This again provided another opportunity to dig more deeply into concepts we found challenging in order to expand our knowledge of the subject matter.
7) Office integration
This may seem small, but we were so warmly integrated into the Carbon Five office. While we were within our program, it did not ever feel like we were siloed but rather equally part of the larger carbon five community.
Learning in such a communicative and supportive environment, surrounded by talented people was an invaluable experience.