For my Computer Science Software Development Capstone course, we are reviewing the book Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman. Before discussing different patterns themselves, I would like to review and discuss the introduction chapter and the smaller introductions to the first six chapters of the text. The entire beginning of the book attempts to explain and introduce us to what exactly we will be learning throughout the semester. It goes over what apprenticeship patterns are and where they came from. It tells us what exactly software craftsmanship is and what apprenticeship is. Lastly, it tries to answer the question “what next?” after learning these things. To start, the book makes it clear that there is no simple definition for software craftsmanship (at least how it is using it), and it tries defining it as a “community of practice united and defined by overlapping values.” To see those values, I would read page four and five in the text. Next, the book defines what it means to be an apprentice. It states for the most part that it is the state of looking for more efficient ways or better solutions including looking for better resources to help because anything being done could be being done faster or better. It defines apprenticeship as the state of learning the craft (in this case, software development). In the conclusion of chapter one, the book discusses where apprenticeship patterns even come from and what we should be doing with them. It claims they come from “many working systems that have used the same solution to solve similar problems.” Basically, after learning all of these patterns, I should be able to take what I have researched and mix and match the patterns where I see fit in real life as if I am the apprentice right now and the book is my tool for learning my craft. Before I conclude this blog entry, I would like to briefly discuss the introductions to the five chapters after this first one (especially since I will be reviewing patterns from them over the course of the rest of this semester). Chapters two through six will cover patterns ranging from self-assessing, resilience training, working patterns, working with others, perpetual learning, and constructing my curriculum, etc. I am extremely excited to get into my assessments of these different patterns and learning about my craft. I actually have researched a couple of the subjects covered in these chapters and it is incredibly valuable information for my future as a software developer. I look forward to reviewing at least eight (if not more) of the different patterns and sharing my experience learning them with anyone who will be reading these blog posts now or in the future!
From the blog CS@Worcester – Tim Drevitch CS Blog by timdrevitch and used with permission of the author. All other rights reserved by the author.