I spent a little over three months at 8th Light this summer for a student apprenticeship, and man did I love it. I spent most of the summer learning Ruby & Rpsec under the guidance of my mentor, an 8th Light Craftsman. I learned a lot, met some cool people, and experienced what it would be like to be a Software Engineer.
I have a few key takeaways to share…
- The world needs more apprenticeship programs
- Teaching is the best way to learn
- Writing a blog is the second best way to learn
- TDD just makes sense
- You know people are happy when they wear the company shirt
The World Needs More Apprenticeship Programs
Apprentice programs are not new. In fact they are very old. The apprenticeship system first developed in the later Middle Ages and came to be supervised by craft guilds and town governments. They are still found in the guild and trade unions in the US, but there are rarely formal apprenticeship systems at most professional organizations.
At 8th Light, apprentices are given a mentor and a formal learning plan. The plan can be adjusted and tailored to the apprentice as you progress so that you’re never bored or too overwhelmed. You then share insights with fellow apprentices and learn from those that are more experienced than you. You have a mentor to guide you and fellow apprentices to share in the experience with. Finally, once you’re ready to move on to the next level, you are formally celebrated and accepted as a craftsman. It’s a big moment for everyone involved, especially the new craftsman.
What I witnessed and experienced at 8th Light quicly convinced me that apprenticeship programs can and probably should be extended to many professions. Why can’t we have social media apprentices, sales apprentices, data science apprentices, and finance apprentices? It really only takes two people… a mentor and an apprentice. I hope to work somewhere with an apprenticeship program again or create one at my own company.
Teaching is the Best Way to Learn
About halfway through my apprenticeship I had to teach a 4-week git class for the other student apprentices. I hope you understand that I am relatively new to software engineering and git, and that I had to TEACH a git class. I was not excited about it to say the least.
But I tried to do my best with every challenge my mentor gave me so of course I did it. And you know what? It wasn’t all that bad. It forced my to learn a lot about git since I couldn’t just go through the motions. I had to understand why things work the way they do so that I could be prepared to answer questions for my students.
From weekly Friday talks by craftsmen to random little learning sessions throughout the week, it’s clear that teaching is at the core of 8th Light’s culture. They are really doing it right.
Writing a Blog is the Second Best Way to Learn
Do you remember book reports? I honestly always thought book reports were the best assignment–so easy. You just read a great book and summarized it.
Well it turns out that the adult version of a book report is blogging. At 8th Light I had to write two blog posts a week (some apprentices had to write one every day). It was a lot of work, but with time I learned to write more quickly and with more focus. I used a simple strategy: I wrote a blog post about anything that confused me.
Writing a blog post about something forces you to learn it well enough to write about it in your own words. I had to spend extra time to read enough about a challenging topic or practice a difficult programming concept enough to really understand what was going on. I honestly probably doubled my comprehension of difficult topics throughout the summer by blogging. Try it for yourself.
Test Driven Develpment Just Makes Sense
The first thing I learned at 8th Light was how to make tests pass through Ruby Koans. After that I was assigned katas, which really help you understand the benefits of TDD. From there I was forced (or strongly encouraged) to use TDD religiously.
It wasn’t always easy. There were plenty of days when I would spend the day refactoring without testing first and I almost always spent extra time backtracking and retracing my steps to figure out where I made errors on those days. Through trial and error I learned that TDD was the best way to avoid hours of wasted time. I learned that if my code was difficult to test it was most likely because my code was too complicated. Consequently I learned to write small methods and classes that were easier to test.
Over time Test Driven Development saves you time and forces you to write cleaner code. It just makes sense.
You Know People Are Happy When They Wear The Company Shirt
I went to college at the University of Notre Dame. One of the first things you notice when you walk around campus is that everyone is wearing Notre Dame gear.
I worked at Sandbox Industries for three years and loved it. One of the highlights each year was getting a new Sandbox t-shirt at Christmas. And you couldn’t help but have a little pride when wearing an old t-shirt that the new kids didn’t have.
At 8th Light you receive new company gear when you join as a resident apprentice and when you become a craftsman. Everyone, and I mean everyone, wears 8th Light clothing at the office all the time.
There’s one thing I now know for sure… you know people like where they work when they’re wearing the company logo on their chest.