After reading the first chapter of Apprentice Patterns, as well as the introductions to chapters 2-6, I have a lot of comments. The first chapter does a great job of setting up the reader with the understanding that this book is for the “little guy” on the ladder of software development. The different pieces that give definitions and explanations for the different roles of apprentice, journeyman, and master, give readers a means to compare the roles in the specific context of software development.
I do have to note that I disagree with some of the points that the first chapter makes. The first chapter talks about the horror stories of first jobs, or early career positions in general for the software developer. I feel that these claims are simply outdated. Because there are so many positions that need to be filled for mid-level developers, companies are doing all that they can to fight for early career, or fresh-out-of-college employees. There are incentives like a guaranteed mentor and open-concept work environments where collaboration is not only encouraged, by a key part of what might be considered the mission statement of the software development department of the company. These open-concept environments lack traditional cubicles that the book refers to as “ small, rectangular stalls with a PC and a crippled Internet connection”. While many, and most likely most companies still have cubicles, the other points have all been existent in every company I interviewed with both for internships and for full time positions before making a decision. One of the reasons why I decided to accept the offer I did was because of the guarantee that I will have a mentor for my first year of employment, as well as the open concept, extremely team focused work environment. While I do think it is important to note that some people might not be so fortunate, it is also just as important to recognize that there are companies that strive for the mentorship situations the book seems to think don’t exist.
One of the chapters that appeals to me the most is chapter 2. The story of the philosopher and the Zen master. I feel that many people feel that they need to learn everything in school and have an overwhelming fear that they don’t know everything that they need to know for their first job out of college. I felt this way before my first internship. After two internships, I’ve learned that you simply cannot be completely prepared for everything that a job is going to throw at you. The best you can do is try to master what you’ve learned and be open to new techniques, technologies, business logic, and entirely different work patterns. Like the journeymen described, who travel from master to master, learning the optimal means of their craft, we will work with different “masters” throughout our careers, and to be successful, we have to be able to identify the “best” techniques and it is our duty to share our knowledge.
Another chapter that I feel furthers many of these points is chapter 4. This chapter talks about the idea of not becoming comfortable with your knowledge and accepting it as your limits. The idea is not to measure yourself on comparing yourself to other developers in an attempt to become better than average. Instead we are always trying to become a better version of ourselves compared to the day before.
I’m overall excited to read through this book, and to relate myself to the patterns in the book.