The Apprenticeship Patterns book explains how to understand the ideas of modern software development by using a simple vocabulary and a relatable lens. The first chapter goes through the importance of understanding how Software Craftsmanship is defined through the experience of real developers. The ideas of trying new things and experimenting were constantly brought up as well to enforce the mindset of individual growth. It explains that through various interviews and personal experience, they were able to understand the individual growth of various software developers and share their experiences through their years for a better understanding of the industry of today. The book delves into these ideas further by saying that the reader’s mind should be fresh and patient when learning. Many developers stick to certain practices once they learn master a specific language that they carry over which hurts their learning ability in the future. This comes into play with the self-assessment portion of the book where it explains that risks and learning curves are to be expected when tackling difficult languages but understanding personal strengths and weaknesses are key. These ideas help keep the idea of perpetual learning fresh and easier to tackle which can greatly affect how someone learns information on their own. The book continues to talk about the abundance of information through the internet and books that allow anyone access to information if they truly need it. It further pushes the idea of self-learning by talking about how many developers started by teaching themselves through constant reading and media platforms while also applying these skills into their daily software development lives.
I found the reading to be very interesting through the use of personal experience from other developers as they went through their own hardships of learning how to compete in the industry. I specifically found the analogy of emptying the cup to be thought-provoking and useful as it seemed very relatable to me. Understanding and master a programming language feels incredible and makes the user want to apply what they learned to various other languages in hopes of learning them faster using the first language as a basis of knowledge. This can work sometimes however; many languages have their own twists which can be aggravating to learn due to the fact that it seems more complex than the first language that you originally learned. The idea of “emptying” the cup makes much more sense here to make sure that there is frustration when moving from one language to another. I found the analogy of not being able to “drink” from the cup if it’s full to be insightful because it points out the importance of letting go of some knowledge from other subjects to retain focus on the current learning objective on hand. The reading has caused me to understand how to learn from my mistakes and failures much better after reading how other developers also struggled with difficult programming terms. It’s changed my opinion of learning other skills for software development and how I would have originally tackled it which I now completely agree with. This ties into Chapter 6 which talked about constructing your own curriculum which resonated with me much more than the other chapters. As I empty my cup, I realize that my limits lie within how I intake my information and how I organize this intake to make it as easy and smooth as possible.