Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman
Are you doing all you can to further your career as a software developer? With today's rapidly changing and ever-expanding technologies, being successful requires more than technical expertise. To grow professionally, you also need soft skills and effective learning techniques. Honing those skills is what this book is all about. Authors Dave Hoover and Adewale Oshineye have cataloged dozens of behavior patterns to help you perfect essential aspects of your craft.
Compiled from years of research, many interviews, and feedback from O'Reilly's online forum, these patterns address difficult situations that programmers, administrators, and DBAs face every day. And it's not just about financial success. Apprenticeship Patterns also approaches software development as a means to personal fulfillment. Discover how this book can help you make the best of both your life and your career.
Solutions to some common obstacles that this book explores in-depth include:
- Burned out at work? "Nurture Your Passion" by finding a pet project to rediscover the joy of problem solving.
- Feeling overwhelmed by new information? Re-explore familiar territory by building something you've built before, then use "Retreat into Competence" to move forward again.
- Stuck in your learning? Seek a team of experienced and talented developers with whom you can "Be the Worst" for a while.
Review By: Scott McMaster
07/26/2010Software developers often lack a clear career path. As someone who has long striven to stay close to the code, I found inspiration and validation in Apprenticeship Patterns by Dave Hoover and Adewale Oshineye. In this book, the authors describe approaches that software professionals of all levels (but particularly those just starting out) can use to keep a sense of forward momentum in their careers over the long haul. The advice is presented in the form of a pattern language. Each pattern presents a context, problem, solution, and ends with one or more actions that the reader can take when the pattern is applicable to his situation.
The patterns are organized into five chapters. "Emptying the Cup" helps start your career on the right foot. "Walking the Long Road" focuses on developing and sustaining your passion for the craft. "Accurate Self-assessment" teaches you to evaluate your skills with an eye toward improvement. "Perpetual Learning" and "Construct Your Curriculum" helps with on- and off-the-job learning and development.
Apprenticeship Patterns is best suited for aspiring software developers, designers, and system/database administrators near the beginning of their careers. I would highly recommend it to anyone in that position. It also makes an excellent and thoughtful gift for new college graduates in computer science and IT. Even more experienced professionals will likely be able to take away valuable suggestions from the book as well. For example, the "Expose Your Ignorance" pattern suggests that a developer lacking familiarity with the problem domain or technology stack should write down five things he does not understand and post the list where others can see it. Subsequently, the "Confront Your Ignorance" pattern suggests that the developer work down this list. I was immediately able to apply this approach to help overcome the complexity at my new job.
One criticism I have of the book is that I did not find the presentation of the material as a pattern language to be entirely convincing as the content did not always flow together. Sometimes it felt too much like a bullet list, but that issue only slightly detracts from what is otherwise a solid read full of great advice. Apprenticeship Patterns would make an excellent addition to the software craftsman's library.