Dyego Maas - Blog

Generative AI Consultant and Software Architect

Apprenticeship Patterns

Apprenticeship Patterns

In this review I talk about how Apprenticeship Patterns is a treasure chest full of wisdom about the developer career; a guide for those at the beginning and in the middle of their journey.

4 min read

Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman was one of the best books I’ve read in a long time. A complete guide for anyone who wants to pursue a career in software development.

Cover of the book Apprenticeship Patterns

In this book, Dave Hoover and Adewale Oshineye did a magnificent job of compiling the wisdom and experience of many of the best professionals around the world, bringing examples of countless situations a developer will face throughout their career, all in a very simple, easy-to-understand format called Language Patterns.

Language Patterns

Apparently, the term Pattern Language was first introduced by Christopher W. Alexander in the book A Pattern Language: Towns, Buildings, Construction. According to him, when designing their environments, people always rely on certain “languages” which, like the languages we speak, let them articulate and communicate an infinite variety of designs, all within a formal system that gives the process coherence.

Cover of the book A Pattern Language

In the book, Alexander lays out 250 patterns, each consisting of a problem statement, a discussion of the problem with an illustration, and a solution.

The apprenticeship patterns described in Apprenticeship Patterns are organized in a similar way.

Apprenticeship Patterns

Each pattern described in Apprenticeship Patterns is divided into four sections: Context, Problem, Solution, and Action.

Context

The context illustrates the situation and the point in your career when it happens. It lets us easily recognize similar situations in our own journey.

Problem

The problem section discusses how the situation presented is a problem and how it can hurt us.

Solution

The solution part suggests a path forward for dealing with the problem at hand, and in some cases, even how to avoid it in the future. The solution can vary a lot from person to person, so it’s presented conceptually, applying to anyone in that situation.

Action

Finally, the action always illustrates the solution with practical, easy-to-picture examples.

This format makes it much easier to share experiences that are, at their core, intangible: the fruit of personal journeys that take many years and are rarely captured in writing. At the same time, the language patterns presented in the book make these situations easier to communicate, providing a vocabulary of their own that’s very useful for thinking about and discussing careers.

The Software Craftsmanship Manifesto

The first time I came across the Manifesto for Software Craftsmanship was around 2015, when I was still working at Inventti. That’s also when I signed the manifesto, even though at the time I didn’t have the maturity to fully grasp its implications (and I certainly haven’t reached that maturity yet). But I decided right then that I would be a software craftsman. Apprenticeship Patterns brought this theme back even more intensely.

Apprenticeship Patterns focuses heavily on a concept of career journey inspired by the master craftsmen of the Middle Ages, though with a much more modern approach. The authors encourage us to think of our careers as a journey. Along that journey, there will be times when we’ll have to wear the white belt, when we’ll have to find mentors. There will be moments when we need to expose our ignorance, and others when we need to confront it. Situations where we’ll need to unleash our enthusiasm, expand our bandwidth to learn a lot in a short time, and others where we’ll need to focus.

One thing is certain: the road will be long, and the learning perpetual. That’s why the book also includes patterns to help find sustainable motivations that support us through the hard times.

Is this book for me?

The short answer is yes. Whether you’re taking your first steps in your career or have been on the journey for many years, the book will bring new perspectives, new lessons, and maybe even a good dose of wisdom.

The book is even more valuable for those just starting out, and the first pattern is Your First Language.

Wrapping up

I wish I had found this book a few years ago, when I was at the beginning of my journey.

Like every good developer, I’ve had my crises and thought about leaving the field at least a couple of times. But those phases passed, and today I’m more in love with the field than ever, and I know my journey is just beginning, and that it may last a lifetime.

I learned a lot from this book, and it will always be among my top recommendations.