Many developers started their careers in a completely different field before transitioning to web development, and I find that hearing origin stories from these developers is particularly interesting. At Sparkbox, many of the web developers with the most interesting backgrounds started out in web development through the apprenticeship program.
I also completed the Sparkbox apprenticeship recently and became a web developer on the Sparkbox team. My origin story is that I was a high school teacher and then a stay-at-home mom. I chose a coding bootcamp to help me make the career leap to web developer, and while I learned a lot, I still needed to learn more. The Sparkbox apprenticeship was the perfect opportunity for me to level up my skills before being hired as a web developer. Here are three of the most important things that I learned in the apprenticeship as a bootcamp graduate:
Git Workflow, Proficiency, and Mentorship
Currently, I use Git and GitHub on a daily basis as a developer to contribute to the project I’m working on. While I had learned the basics of Git in bootcamp, my confidence with Git really grew during the apprenticeship, and I use much of what I learned during the apprenticeship now. As an apprentice, I learned about the Sparkbox Git Workflow and practiced following it while I worked on collaborative and personal projects.
One of the most important parts of this Git flow is writing descriptive, concise commit messages because a well-written commit message is essential to a well-written commit history. For more on why well-written commit messages are important, check out this article. The idea is that each commit should contain a small amount of work that corresponds to a central idea—an atomic commit. For instance, on one branch, you might have some bug fix work as well as some refactoring work. Each of these represents separate ideas, and should, therefore, be separate commits. This sounds easy enough in theory, but in practice, the work that we do doesn’t always happen in such a logical, linear fashion. In those cases, it’s important to know how to add work in patches (using git commit -p
), edit commits, and create an organized history that’s easy for a reviewer to understand.
Initially, the idea of using Git to travel back in history and rewrite it was intimidating, but luckily, I had help from more experienced developers. During the apprenticeship, Sparkbox encouraged me to connect with their developers multiple times a week; some of my most valuable collaborative sessions focused on walking through my commit history and learning to rewrite it, step by step (thank you Jordan, for all the pairing we did on this!) While I don’t regularly rewrite my commit history as a developer today, these one-on-one collaborations were an invaluable resource that allowed me to deepen my understanding of the ways in which I use Git on a daily basis. By the end of the apprenticeship, my Git proficiency had skyrocketed because I did my best to consistently adhere to Sparkbox’s best practices for writing software.
A Deep Learning of JavaScript Fundamentals
During the apprenticeship, I also learned a lot about what I could do with basic JavaScript (JS). My bootcamp had covered some basics, but then quickly pivoted to React. React is a powerful and extremely popular library, so it was very useful to learn. However, since my basic knowledge of JS was relatively small before learning React, I tended to filter many JS concepts through my knowledge of React, rather than the other way around. This worked in the short term, but what if I wanted to work for a company or on a project that didn’t use React or JavaScript, at all? Tools like React are powerful and beneficial for many web apps, but they do tend to go in and out of vogue. That’s why having a deep knowledge of programming fundamentals is a crucial resource to have when the tech world inevitably moves on to the next new thing.
In order to learn the essentials of JavaScript, the apprenticeship practice assignments, final project, and my personal project were each set up differently—and none of them used React. For instance, the personal project that I worked on during the apprenticeship was a plain JS puzzle game. I started building the game in React first before converting it to plain JavaScript because I was so accustomed to thinking in React. With more practice, however, I was able to easily add new features without building them in React first. Taking the time to understand the basic principles of a programming language is important as a developer, especially if you work at Sparkbox because the tech stack for a project can vary widely depending on the client’s needs.
Agile Software Development
The apprenticeship also went above and beyond to teach me about Agile and project management. Since I had previously worked in education, the transition to web development included a very different work process. Even though I had been exposed to a few Agile terms during bootcamp, I had very little understanding of the cadence of an Agile project until I finished my apprenticeship.
In order to expose apprentices to the Agile methodology, the apprenticeship is treated like any other project that is managed by a project manager. From the beginning, we participated in Agile ceremonies such as standup, demo, and retro with our project manager leading the way and explaining unfamiliar terms as we encountered them. We also used the Jira project management software to keep track of our tasks. Jira is designed to help teams collaboratively work together to complete tasks, so we often finished the same task individually (such as for readings or assignments). Our work didn’t always fit perfectly into Jira, however, by the time we got to our final project, we were all fairly comfortable with Jira and Agile ceremonies, which ultimately made the transition to becoming a developer at Sparkbox much easier.
So… is an Apprenticeship for You?
For some, completing a coding bootcamp might be enough to break into tech. But when I think back to my first day as a web developer at Sparkbox, it was my apprenticeship that gave me the skills that I needed to immediately start contributing to projects. Bootcamp provides you with an amazing introduction to coding basics, but if you’re coming from outside of the tech world—like me—the apprenticeship will not only teach you the necessary skills, you also understand how to apply what you’ve learned in real-world scenarios, plus so much more. It was essential to helping me gain the confidence to become a web developer.
Are you interested in becoming a Sparkbox apprentice in order to develop the skill sets and relationships that you need to become a successful developer? Learn more here.