Apprenticeship: One Day At A Time
Relax and have fun! That is my advice to the next person in my shoes. Some days I knew enough to make it five minutes. Some days I knew enough to make it until lunch. Everyday that I learned something and made somebody laugh, I knew I was on the right track. I am the first graduate of Gaslight’s Apprenticeship Program, and I am excited to share my experience with you.
The Back Story:
I graduated from Butler University this past December with a B.S. in Mathematics. When I graduated and it was time to find a job, and I quickly realized that finding a job (in Cincinnati) with a degree in theoretical mathematics was going to be more challenging than I anticipated. In the midst of this challenge, Software Development caught my eye.
One night while researching software development firms in Cincinnati, I stumbled upon the employee profile page on Gaslight’s website. One employee named Chris Nelson had the title, “Chief Scientist”, and I thought to myself “that sounds important”, so I initiated contact. Long story short… in a matter of months, I was hired on as an apprentice (to my own disbelief and some on Gaslight’s side as well, I think).
One Day At A Time:
The learning curve is steep when you’re pair programming with very little experience in Computer Science. I anticipate that’s the case for any new apprentice. Fortunately, I was not alone in the process. I was part of a team with two experienced devs, Chris, and another apprentice.
Starting on day one, we used paired programming to teach, learn, generally share knowledge, and write better code. I anticipated that I would spend my time with Chris and the other apprentice, but with the team’s dedication to paired programming, I spent significant time with each developer on the team. This taught me (and is teaching me) about many different parts of the development process, not just about writing code.
Successfully making it up the learning curve meant communicating well. Writing code, especially in pairs, requires practice and skill in communicating. During my time as an apprentice these are a few forms of communication that helped me succeed: Asking direct, quality questions about specific topics Thoroughly documenting critical information, in a public place where the team can give feedback Writing clean code that is easy to read and understand (even if it isn’t the fanciest syntax) Being vocal in meetings to clear up uncertainties, learn what something is, or share an opinion
I don’t think I can stress enough how important communication was in my success with Gaslight. Without it, I wouldn’t have been able to gain a clear understanding of the foundations of good programming.
Coming from a very conceptual background, development by Test Driven Design was a great tool to help me learn. During my apprenticeship, we wrote code for a project enhancement, only if there was a test already written. This meant that I had to conceptually understand the objective of the enhancement in the form of a unit test before I wrote the code to implement the details. This matched the form of learning I had with mathematics.
In it’s basic form, TDD can be said “Red, Green, Refactor”. That simple phrase gave me direction as an apprentice when I didn’t know what I was doing. When in doubt, write a test!! Watch it fail, make it pass, and then make it better.
The combination of paired programming, communication, and TDD describe what my experience as apprentice was like on a day-to-day basis. These were the building blocks that I could expect everyday. The amount of time working a puzzle, going for walks, and sitting/standing in meetings was a little more variable!
I could not be more thankful for my 6 month apprenticeship with Gaslight. They truly feel like a second family. Chris and the team took me in, and launched me off into a successful career I had no idea I could enjoy so much!
Click here to read what Chris Nelson learned from Gaslight apprenticeship program iteration 1