---
title: Advice for Approaching your Apprenticeship at thoughtbot
teaser: 'Starting an apprenticeship can be daunting. Here are some guidelines to help
  you make the most of your time.

  '
tags: apprenticeship,learning,playbook
author: Devin Jameson
published_on: 2019-10-17
---

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](https://codecademy.com), [Treehouse](https://teamtreehouse.com),
[Upcase](https://thoughtbot.com/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](https://wowsuchgear.com) 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](https://thoughtbot.com/playbook/developing/pair-programming)
is easy and a great way to learn! All it entails is sitting
next to another human&#42; 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!

<br>
&#42;I've tried to pair with cats and it's not quite as effective
