Advice for Approaching your Apprenticeship at thoughtbot

Devin Jameson

When I first started my design apprenticeship at thoughtbot, I felt a bit uneasy and uncertain about how to proceed.

There are very few constraints put on apprentices here, so how one spends their time is up to them. While this is amazing - and one of the core reasons I joined thoughtbot - it can make getting started a challenge.

How would I decide what areas of development to focus on? Would I progress fast enough to work with clients at the end of six weeks?

Today, with just a few days left in my apprenticeship, I’m relieved to say I’ve learned far more than I initially expected. If you’re about to embark on your own apprenticeship, here’s some advice for structuring your learning.

Build a small foundation of knowledge

Starting anything is the hardest part. In this case, I suggest you do it quickly and with minimal forethought. This will enable you to iterate as you learn, instead of trying to devise the ideal plan today.

You probably already know which skills you need to develop, so just make a list and jump in. Google stuff. Check out Codecademy, Treehouse, Upcase, or your online learning platform of choice.

Given that I had no prior work experience as a front-end designer, I knew I had to get educated in a few key areas before doing anything else. So, I jotted down this quick list:

  • Learn more Sass
  • Learn how to use Git
  • Learn some basic JavaScript

I recommend you make this list quickly. The trick is actually to under-think it. Then, once you have some constraints, you can get started and iterate if something doesn’t feel right.

Build something! Anything!

Now that you’ve done some initial learning, solidify your skills by building something real. Through working on an actual project, you’ll test your abilities in new ways and discover alternative paths of learning.

It doesn’t actually matter what you build, as long as you develop your skills in relevant areas. I made a one-page website that lists all my music studio gear. Through this project, I developed my understanding of Middleman, YAML, Sass, Bourbon, BEM, Javascript, navigation design, CSS grids, Netlify, Git, and more.

Get feedback through Pull Requests

Every time you make a PR on your project, ask your colleagues for feedback. Thoughtbotters are quite generous with their time and will gladly comment on your code. This is probably where the majority of your learning will come from!

Through feedback on PRs, I learned how to structure my SCSS variables for maximum clarity, how to make my website more accessible, how to properly format my code, and a ton more.

Pair with other thoughtbotters

Pairing is easy and a great way to learn! All it entails is sitting next to another human* and coding something. You’ll learn from them and they’ll learn from you.

Do client work

Now that you have a few PRs and some pairing under your belt, contribute on a client project. This will give you experience with:

  • working in a codebase alongside other designers and developers

  • pushing PRs

  • managing tickets

  • communicating with clients

  • several other skills required for consulting

Rinse and repeat

If, at any point, you start to feel like you’re lacking knowledge in a key area, simply repeat this process. By the end of your apprenticeship, you’re sure to feel confident in your abilities.

Good luck and congratulations on joining thoughtbot!


*I’ve tried to pair with cats and it’s not quite as effective