Apprenticeship is a powerful way to level up your dev skills. Dave Hoover shares some of the most effective patterns he's seen from his and others apprenticeships.
What is Apprenticeship?
An internship is to dating, as an apprenticeship is to engagement.
Internships are temporary where you hook up with an employer and go back to school.
An apprenticeship doesn’t look much different day to day, but in an apprenticeship you’re doing it for a position.
A successful apprenticeship ends culminates with joining a team.
There’s a difference between a formal apprenticeship and creating your own apprenticeship.
Creating your apprenticeship is a better way of looking at it because it puts the responsibility on the apprentice.
Even if you ‘finish’ your apprenticeship it doesn’t stop your learning.
The Perpetual Learning family of patterns you learn and carry forward.
Be The Worst is something you may grow out of, you may want to be responsible for building others up. (It becomes harder to be the idiot as you gain skills)
Asking stupid questions/wearing the white belt and exposing your ignorance is something you have to keep doing.
Be wary of fear or pride preventing you from asking questions
Bring your strengths to each stop in your journey. Everyone has something they can bring no matter where they’re at.
Emptying your cup can help you avoid getting trapped by your preconceived notions.
Mastery is the journey, not the destination.
The Long Road
Developers and Technologists can be prone to the get rich quick success stories.
In reality it is a long road. There is no learn to program in 21 days. There is no “you’ll be awesome in 9 weeks” type programmers.
It would be boring if we were awesome after 10 years with nothing left to learn.
Startup Developer Mentality is often less about being good at a skill and more about give me just enough to catch this next fish.
There is a deep respect from and for the people who take the craft seriously.
If you’re going to take apprenticeship to heart you will need to take the profession seriously.
Creating an apprenticeship program in your shop is also an indicator the shop takes the profession seriously.
Sweep The Floor
Apprentices can only bring so much to the table. Sometimes they’re relatively useless in terms of technical skill; especially if they’re very early.
If you don’t have much to offer, do something helpful for those around you. It feels good!
It’s a signal for an apprentice to send. That you’re bought into whatever needs to be done.
It can be dangerous if sweeping the floor takes up too much of their time.
It should be something helpful for you to do time to time.
Is this literally sweeping the floor? Yes!
There are also technical tasks that can be like sweeping the floor.
Expose Your Ignorance
How do you expose your ignorance later in your career?
Selling yourself as a software developer and exposing your ignorance are orthogonal.
Admit what things you do not know well. Set the expectations and they’ll appreciate the honesty.
Find a mentor and regularly meet with the to hear feedback about you weaknesses.
Apprentices need to be open about what they want, and mentors need to be open to understanding and meeting those desires.
Overselling yourself is a recipe for creating unhappy collaborators.
Exposing your ignorance also exposes your learning process, which builds trust and confidence.
Say “I don’t know that yet” instead of just saying you don’t know something.
Confronting your ignorance is an important complementary pattern.
5~8% of what I do every day is learning something that is effectively new.
Buy Mastery by George Leonard! It’s so concise and perfect and awesome.