I found the readings from Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman by Dave Hoover and Adewale Oshineye to be enlightening. I have liked the idea of apprenticeships and the varying stages of skill for a long time, but I have not thought of it as something to consider using in my life before. Considering my CS skills as a craft to be honed is fun and energizing. It reminds me of a game. Starting as an apprentice, learning and improving skills. Making your way to journeyman by fostering connections with others and finally becoming a master and contributing to the industry.
I found the section in chapter 2, “Exposing Your Ignorance,” to be particularly useful for me. I frequently find myself in situations where there are one or more areas of a project that I do not know adequately. It is important to remind myself that most people feel this way at times. This section describes that it is better to be transparent with your knowledge, or lack thereof, than to feign competence. Let colleagues know that you are learning what you need to learn to complete your tasks. This is a bit of a challenge for me. “The need to appear competent is ingrained into people of most industrialized societies.”(Hoover & Oshineye, 2009) Thankfully, this section has reminded me that while I have a lot to learn, it is okay if I am willing to learn.
Another section I read into was chapter 3’s “Sustainable Motivations.” This section is about holding on to motivation through the good and the bad. I empathize with Hoover in “Dave’s low pain threshold.” I too have difficulty with working jobs that I have no passion for. This is what lead me to computer science in the first place. I quite liked this line from Hoover, “While many programmers could probably find higher-paying jobs in the short term, the money that follows from doing what you love will pay off handsomely in the long run.”(Hoover & Oshineye, 2009)
The last area I focused on was chapter 5, “Perpetual Learning.” This chapter’s introduction is about how you must continuously learn new skills or improve old ones to be an accomplished developer. The first section, “Expanding Your Bandwidth,” is about expanding your knowledge through widely available resources. The book recommends following software blogs and “software luminaries.” With the internet, there are countless communities for developers to share knowledge. This section does warn not to constantly use this pattern. Developers should switch between research mode and development mode.
These readings have helped me re-frame the way I view my future career in a more interesting way. I am sure that the rest of the book will contain similarly useful information and I look forward to reading more of it.