Last On Saturday (2011/01/22), thanks to rather nasty cold, I’ve finished the ‘Apprenticeship Patterns‘ book.
Actually, I made failed attempts to read it on-line both on the O’Reilly and Safari Books Online book’s web pages. Sadly, it seems that due to my short attention span, I needed a carbon version and a nice couch reading session to get through.
First of all, I must admit that O’Reilly and authors assured that world knows about this book. I’ve found The Passionate Programmer by worth of mouth, read The Pragmatic Programmer at one of my first jobs (it used to be an obligatory read at S3Group) and finally got through the Software Craftsmanship on the quest to understand thinking behind the craftsmanship movement lead by Uncle Bob. However, in this case I’ve learnt about the book from the authors before the book was published (Dave and Ade were interviewed in few places i.e. by Pat Eyler). I won’t even try recalling order, but I’m quite sure that I seen the InfoQ interview with Dave Hoover, O’Reilly GMT’s short interview with Adewale Oshineye, I listen to Dave on the Rubiverse podcast (episode 8), Teach Me To Code (episode 43) and .NET Rocks (episode 614).
You get the picture, guys are doing their bit to spread the word around, which is probably less about sales (I hope) and more about the pure intention to present the Apprenticeship Patterns to as wide audience as it is only possible.
Having in mind that the book might become a sort of classic, I’ve mixed feelings about it. While the three above-mentioned positions, which, as authors openly admit, inspired works on the Apprenticeship Patterns, are unique in their approaches, here we have a case of crossbreeding of these with the pattern language.
Putting this book in career development section, taking on account the growing unemployment among graduates and importance of the “apprenticeship” role in the economy we have a potential bestseller. After wall we have not one but two buzz words in the title itself (well I don’t need convince anyone that “patterns” always sell well) plus reference to trendy Software Craftsman(shipment) in subtitle. All that seems a little bit cheesy to me.
I really tried to put the hype aside and focus on the content of the book. However, it was somehow hard when the introduction welcomes you with the Hundred Acre Wood-like picture of aspiring software ninja master plan (well a scout map at least?). Please see for yourself here (as I’m not quite sure if I could re-post it).
I understand that it might be easier to remember certain concepts under catchy titles (a.k.a patterns) like: ‘The Long Road”, “Draw Your Own Map” or “Reflect as You Work” but sadly it hardly works in my case. I’ve finished the book about a 1.5 month ago and I must admit that I don’t recall what “The Deep End” or “Craft over Art” were on about, specific meaning of many others also shaded rather quickly. Luckily, a few patterns are already well know and self explanatory and I don’t need to think twice to get the “Practice, Practice, Practice”, “Be The Worst’ or “Study the Classics”. On the last one, I must admit that I found it overlapping with patterns like “Read Constantly”, “Reading List” and “Use the Source”, and what is more I find such a trend repeating along other patterns presented in the book.
As the subject matter of career development is interrelating by its very nature ,I wasn’t too surprised by reiteration on very similar topics. However, I think that with a little bit of effort the book could be more consistent and less chatty. Current edition has a little bit (too much) of Joel Spolsky‘s books style to it – in other words, it seems like a series of well edited blog posts put together into a book. It might be that I’m going a little too far with that judgment, however that is probably why I found it so easy to scan through. Rather than read cover to cover in the first place, and only the printed version allowed me to focus on the subject. Going through my yearly re-read of Code Complete I must say that I really value books that force you to focus and go back to the top of a page / section / paragraph from time to time. Sadly it was hardly the case with this book.
Summarising this ramblings, the Apprenticeship Patterns is definitely a book that you should be aware of. It won’t harm you to read it (especially as it is available for free). However, please don’t stop there, especially if you are just starting your career in software development. There are books that covers practices like reading code (Code Reading), dealing with learning process (Pragmatic Thinking and Learning), tons of positions on expanding your technical and soft-skills or even (rather on the joke side) books on landing job at particular company (The Google Resume)… Just keep looking and you will probably find something relevant to your situation. Additionally, I would recommend going through the The Pragmatic Programmer and Software Craftsmanship before approaching the Apprenticeship Patterns in that order the latest can help to organise knowledge.
Thus, IMHO, nothing to be very excited about, not a panacea, neither a silver bullet nor a magic key to software development heaven, a nice, easy, sofa read that might inspire you if you aren’t already on the self-improvement, continuous education, always on-the-edge patch to … well to realisation that technology moves faster than you and won’t give you chance to catch-up, so better start learning / reading what will really help you get things done than wasting time on this blog 🙂