130 pages to help you nurture your passion and become a better developer. Pretty good deal, isn’t it?

Between reading hardcore programming books (like “Scala for the impatient”“Programming in Groovy”, etc.) and completely off-topic books read for pure pleasure (“I am Zlatan” or “World War Z”) I like to read something “soft” but still allowing me to be a better developer.

There are many books about being good developer, but recently when I was “feeding” my bookshelf one title caught my attention: “Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman”

Important note: After finishing book I’ve learnt that its online version is available for free here 🙂

Book has rating 4.11 on GoodReads (I consider any book with rating higher than 4.0 as a very good candidate to read) and many positive reviews I’ve decided to spend a few evenings with it in my hands. Below you can read my review and some notes I’ve made during reading.

Your Guidance as an Aspiring Software Craftsman

Book isn’t very long (about 130 pages) and is written in a concise language with concrete ideas so you won’t get bored at any point. “Apprenticeship Patterns” consists of six main parts, each with 5-10 short chapters. Every chapter is about one “pattern”. Pattern is something similar in concept to “design pattern” and describes generic problem or situation in which every developer can found themselves.

Each of patterns have well defined context in which it can occur, problem which we are facing and of course, solution and action points that should be taken. While reading this book I was surprised that many patterns happened to me during my career as a developer. Luckily, some actions I took were correct (or at least suggested in the book). But on the other side, some of them weren’t and now I have some thoughts and ideas what I could improve. Book is easy to read as each pattern forms separate story that fits perfectly to single evening reading session.

My short summary of main parts so you can get an idea what’s inside

  1. Patterns approach is described and explained here
  2. chapter is about starting adventure as a developer, learning first language, coping with own
    ignorance and choosing topics to learn at the beginning.
  3. is for those planning to be a developer for the most of their career. It is about “walking the long road”
    when at start we are far behind other developers with much more experience and knowledge but thanks to constant learning
    and well-thought decisions in long term we could even overtake them.
  4. helps us to accurately self-asses our skills, strong and weak points.
  5. helps to setup basement to perpetual learning, nurturing our passion and creating feedback loops. Everything is about
    habits and conscious decisions.
  6. can be shortened to “read, read constantly, read classics, read what people you admire suggest”

Review Summary

Best development book I’ve read, has no code in it – quote from http://arasatasaygin.com/

I can guarantee that you won’t be disappointed after reading this book. Not only it is well written, short and concise but it also contains many interesting and very useful ideas that we could apply in our work to help our skills grow and our career flourish.

I can only regret that I’ve read it after almost 7 years of work as a developer. It would be even more useful if I had done it at the early stage of my career.

Notes to myself made during reading

  • “Working effectively with legacy code” – strongly suggested book
  • Pick one skill, tool, or technique and actively fill the gaps in your knowledge about it
  • Breakable toys – build application using tools/languages you want to master at home, in the environment where you
    are safe to fail
  • People aspiring to become master of software craftsmanship need to plan for the long term
  • The things we build for customers can be beautiful but must be useful
  • If you’re worried that your current job is rotting your brain, it probably is
  • StickyMinds.com – interesting portal about quality in our industry
  • Your goal should be to become skilled rather than experienced
  • Keep reading! Keep your personal reading list so you always have some books to choose from (my personal choice is
    GoodReads)
  • Keep list of even small things you’ve learnt. Some kind of diary where you can put all meaningful
    stuff you encounter during your daily job.