Apprenticeship Patterns

Apprenticeship Patterns

In times of drastic change it is the learners who inherit the future. The learned usually find themselves equipped to live in a world that no longer exists.
- Eric Hoffer, Reflections on the Human Condition

Blogger’s Note: This review of the book Apprenticeship Patterns by Dave H. Hoover and Adewale Oshineye was originally posted at

A New Profession

Software development is among the newest of professions – roughly 70 years old depending on what you consider to be the beginning. The field is in a constant state of flux. New languages, new theories, new ways of communicating with clients… the list seems endless. How does a new developer keep up? How does a seasoned developer avoid growing stale?

How to Excel

Apprenticeship Patterns was written as a guide for developers who want to excel throughout their careers. You might think of the book as a compilation of design patterns applied to human beings. Yes, the book is suitable for new developers. But seasoned people will find value as well. One useful pattern for veterans: Share What You Learn. All of us see old ideas through fresh glasses when we’re questioned about them. “When one person teaches, two people learn,” says the book.

How did the authors compile the list of patterns? They reflected on their own practices and they asked other developers. They spoke with software professionals at various stages of their careers to find out what steps they took (and continue to take) to keep growing.

Non-Linear Reading

The book can be read in a non-linear fashion if you prefer. I would suggest that you start with the Reading List pattern on page 100, followed by Read Constantly on page 111. These two patterns do a great job of framing the rest of the book because the reader will be executing the pattern while reading about it. There’s something meta about starting that way, and meta is cool.

The Reading List pattern inspired me to post my personal reading list on GitHub.

Steer Your Own Education

One theme consistently appears throughout the book: If you want to be a great software developer, you must be an active participant in your own education. Formal education might be a good start, but it’s not enough. Formal programs tell you what to read. Formal programs tell what to do in the classroom, and if you’re a good student you do it. But here’s something that we rarely do: While finishing a formal assignment, how many of us stop to consider whether we’ve been assigned the best curriculum for our long term goals?

The professional person must be a continuous student. Patterns give us a good place to start.


What should the next edition of Apprenticeship Patterns look like? For starters, I would love to read an electronic version… filled with hyperlinks. All of the apprenticeship patterns relate to other patterns, and being able to click to the related patterns would enrich the learning experience. This book would make a great mobile app, especially if you turn all of the references into hyperlinks. What an exciting learning experience it would be!

Now… if only we could find a hand-held reading device that supports hyperlinks, and a couple of software craftsmen to get the job done :-)

Update After the Original Post

Ade Oshineye tweeted with good news a few minutes after the original post:

@ChicagoRuby: Wish granted: The book is available online as a hypertext.

Thank you authors!