In October 2014, Ticketmaster introduced an apprenticeship program for developers. I was invited to join this program as an apprentice at its inception. In the past few months, I have learned many new things from the program and I’d like to share my experiences with you.
I usually meet with my mentor weekly to go over my assignments and engage in technical discussions. Having a mentor for each apprentice is an important aspect of our apprenticeship program. Each mentor provides guidance and direction to their apprentice, and apprentices typically demonstrate many of their newly learned skills to their mentor before they apply them to their jobs.
The apprenticeship program contains reading and coding assignments. My first reading assignment was to read a book called Clean Code, written by Robert C. Martin, aka Uncle Bob. The interesting part of this reading assignment was actually blogging about my takeaways from each chapter. By doing this reading/blogging exercise, it greatly reinforced the knowledge that I had learned from the book and allowed me to share and pass it along to other apprentices.
My first coding assignment was to create a tic-tac-toe game. This was a fun assignment and it was divided into two phases. The first phase was to develop a human vs. human tic tac toe game. Once completed, the second phase was to add a computer player to the game. During my course of development, I had learned many useful skills. I applied some of the best software development practices such as Test Driven Development (TDD), SOLID principles, and Object Oriented Design. These principles and guidelines help me to write better production code and tests.
Besides the one-on-one mentor-apprentice meetings, I have participated in many educational workshops and presentations along with the rest of the apprentices. We have apprentice meet-ups once a month to share what we have learned. During these meetups, the apprentices hear from senior technologists from around the company as well as reviewing each other’s code, pair programming, and presenting to the group. This is a great chance to meet with other engineers outside of my own team and learn many other soft skills.
Another skill that I have learned indirectly from the apprenticeship program is time management. Apprentices are supposed to commit about 10% to 20% of their work hours for assignments. In reality, I found out it’s not an easy task to get things done in a reasonable timeframe without some planning between product development work and apprenticeship assignments. The art of allocating time between work and apprenticeship assignments is very important. I’m still learning how to improve this skill throughout my apprenticeship program.
Overall I think the apprenticeship program has been hugely impactful to a number of engineers throughout Ticketmaster’s technology team. Not only have I learned many cool new tricks that I can use in my real job, but I also get a chance to share and spread the knowledge to other apprentices and co-workers. I have also learned soft skills like setting stakeholder expectations, delivering formal presentations, and estimating. All of these skills are highly useful in my role at Ticketmaster and will be throughout my engineering career too. Through the apprenticeship program and by training hard to be better developers, we are raising the bar for engineering excellence at Ticketmaster and the quality of the products we deliver to our customers. I’m looking forward to my next assignment and looking forward to more engineers joining our Ticketmaster apprenticeship program!