Over the next several weeks, I will be posting my reflections on different sections from the book, “Apprenticeship Patterns,” by Adewale Oshineye and Dave Hoover. This book is a great resource for soon-to-be computer science graduates, like me, who are preparing to transition into the field of software development.
The first chapter explains what it means to be an apprentice in the context of a software development career, as well as the specifications that each step along the journey to becoming a software craftsman would entail. As I was reading this chapter, I enjoyed the imagery of a medieval setting that the authors created. This certainly helped me better understand the expectations of someone in each role, especially the apprentice. The descriptions of higher-level roles (the journeyman and the master) were also very well done, because they gave me a vivid picture of what I am aspiring to work my way up to.
The concept from the chapter that took me the longest to understand was that these tiers not only reflect my growth in position while in the software development field (like receiving more tasks from a boss or just having more responsibility in the workplace), but also the growth in mindset. I was initially confused because I was under the impression that the book would describe the type of work that I would be expected to complete as a new graduate and later. However, I feel that explanations of the attitudes and mindful habits that I should use are just as beneficial, if not more so, because each work environment isn’t the same!
With this new expectation of the book contents in mind, the introductions to the remaining chapters of the book made a lot more sense. Each of these brief sections made me more excited to learn more about how to solidify good apprentice practices.
While I intend on reading through the whole book, there is one chapter that I will need to spend more time going over. Chapter 3, titled “Walking the Long Road,” discusses how long our path to mastery really is. It also puts into perspective that all software developers travel on the same path, whether some are farther along than others. I tend to get easily discouraged when examining the work of others who have done more in the field. So, hopefully by spending more time on that chapter, I will become more focused on my own progress, rather than implicitly comparing myself to other developers.
There is also one chapter that I feel like I won’t have as much trouble working on. Chapter 5, titled “Perpetual Learning,” goes over the importance of keeping up with new knowledge in the field. This can be achieved by reading more on the subject or practicing skills, to name a couple of strategies. I love to learn new topics related to computer science; in fact, I have bought several online courses to go through when I have the time to get to them. So, I have some confidence that I will find the apprenticeship patterns described in that chapter easier to implement in my own life.
This book looks extremely informative and has been very well-written from what I’ve already read, so I’m excited to dive in further!