Monthly Archives: February 2025

Apprenticeship Patterns

In the Apprenticeship Patterns readings, the first thing that caught my attention was the passage about how people perceive apprenticeships and that being contrasted with what this book posits apprenticeships should be. Usually when I personally think about working under and expert to further a skill, I usually equate that to a physical trade that would be difficult to learn without hands on experience but just like those other typical apprentice jobs, but it would make sense that the same experience with working under an expert and learning any other skill would also help a lot more. The growth mindset is something that I hear a lot with math, and I think that it’s a good to have in all respects when trying to learn something new. This also pairs well with what the book states on always having more to learn and that those topics can’t always be learned in a traditional classroom setting or is lost in online tutorials. The author puts in a few personal stories where the times he was able to really learn something new and furthered his mastery over the subject was when he wasn’t afraid to be behind others and develop by observing and listening to everything that they had already found through experience and invested time into the field. This is vital when you are working in computer science, because it is a rapidly advancing field with new techniques and practices and discoveries. It may be daunting to try and keep up but that can serve as motivation to continue growing and not growing satisfied with just enough. Personally, in my experience with computer science through college, the academic learning part is straightforward, and everything is laid out for you to memorize and complete but in situations where you are given an abstract or very broad problem to solve, it can be challenging to figure out where to start or what to do because of my own inexperience with coding that would be analogous to a real world project. I think that recently with more frequent research done on my own time for blogs such as these and different classes, I have started to strengthen my understanding of computer science by knowing that there is so much more to learn than what can be taught in four years.

From the blog CS@Worcester – Computer Science Blog by dzona1 and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns

As the end of my education comes closer and closer, friends and family always ask about any jobs in the field and the future overall. This worries me because I have nothing planned whatsoever, I have no idea what is going to happen, and that scares me. I would love to have a job in software development, but at the same time, I fear I do not know enough to compete, and even if I do get one, I will not know enough to keep up. However, after reading a small part of Apprenticeship Patterns, I felt a little better about the future, to know that many others have felt this way. It also was nice to read that learning still continues once I get in somewhere, which sounds silly, but in my mind, and I am sure others would think the same way, in order to get a job, you need to know everything. So to see that people who think they know everything can still continue to learn something new is promising and also scary. Although I have spent my entire university education learning computer science and software development, I still feel like I know nothing. After reading this, it does not change the fact that I feel that way, but it makes me more optimistic about my time after university. Something that really stuck to me was the part about the guy who had a stack of certificates saying he knows all this stuff, and then he runs into some hackers that are doing stuff that he did not even know could happen, and the hackers were also still learning too. I think that stuck to me mainly because it feels like that’s me in this situation. Like I’m going to have a degree saying I can do this stuff, and yet I look around and there are others who know stuff that I didn’t even know where they got it from. But I can always learn that stuff too, either on my own, or at a job, or in class, if I watch them really closely.

Will I continue to read Apprenticeship Patterns? Maybe. As the fear of reality slowly continues to seep in, I will probably scramble and look for something to help and it might just be that. But who knows, the future does not look as bad anymore, kinda.

From the blog CS@Worcester – Cao's Thoughts by antcao and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns

After reading Chapter 1 and the introductions for Chapters 2 through 6 of Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman by Dave Hoover and Adewale Oshineye, I have a much better understanding of the “stages” of a software developer’s career. I found it interesting how the career was divided into being an apprentice, journeyman, and master and how it doesn’t necessarily relate to a job. These stages are more like checkpoints for the software developer’s career as a whole, not for the phases that may come with starting and working a job. 

I like how the stages aren’t locked by experience or time but rather mindset. The apprentice is described as someone who knows there are better ways to do things and are willing to learn, the journeyman moves around working on various projects with various people readying themselves to become a master, and the master furthers the field through teaching and creating. I feel that the stages could be summarized as learning, exploring, and improving. I also like how the stages involve the roles of the previous stages; as such, a master is not exempt from learning and improving. In a field that is constantly evolving, even those with the highest expertise can learn a thing or two. 

I think Chapter 4’s introduction was most relevant to me because I think it has advice that can apply to everyone in any facet of life. “Be aware of the bigger fish, the bigger ponds, the many other ponds, don’t settle for being better than the mediocre, let go of perceived competence, be better than you were yesterday.” Finding these faults, acknowledging them, and moving forward with them in mind seems to be key, not only in a software development career, but in any facet of life. 

From the blog CS@Worcester – Kyler's Blog by kylerlai and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns Chapter 1 and Chapter 2-6 Introductions

After reading the first chapter and the introductions of chapters 2-6 of Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman by Dave Hoover and Adewale Oshineye, I really enjoyed the message it had to offer. I often find myself stuck in a rut almost, feeling like I’m so far behind yet feeling like I can’t move forward. This is mainly in reference to my software skills and capabilities, but reading how one utilizes an apprentice-esque role and transitions into a journeyman and then a master was quite helpful.

I found Dave’s story to be quite interesting. It details him attempting to learn a programming language on his own early on, and then growing frustrated and quitting. It wasn’t until he gained mentors who recommended him specific books on programming that kick-started his brain into gear, and working with these new languages really stuck. Another large piece of his journey was creating and working with a breakable toy in the new language, so being able to play with and experiment on a project using a new language is very important to the learning process.

The reading has definitely made me change the way I approach the learning process and becoming a better programmer. It can be tough to stay focused, as the goalposts seem to always be moving. But knowing that you’re making progress and continuing to advance your learning is what can help keep you going. A lot of the chapters introductions provided great insight on how to improve oneself. Being willing to “empty your cup” a little by getting rid of bad habits in order to learn something new, understanding that the mountain you’re climbing keeps getting higher and higher as learning never stops, and more. 

I don’t disagree with much in the reading. It did emphasize the importance that books have to learning despite the vastness of information on the internet, and while I agree, I find that good, physical books can be difficult to find in some ways. Either it is too expensive, or it is not at your local library, etc. Sometimes these books that you do find can be very outdated as well (which tend to be most books I find at the library), however that is not to say there isn’t outdated or misguided information on the internet today. Although I haven’t had much luck or experience with software development related books, this reading has inspired me to continue to search for the one that fits my need.

The chapters most relevant to me are chapters 3 and 5, “Walking the Long Road” and “Perpetual Learning”, respectively. With chapter 3, I often find myself stagnant in my learning, but when I see the rate at which others are learning and growing, it inspires me to take charge again. As for chapter 5, it’s all about me finding the learning method best suited for me, and finding and experimenting with my strengths and weaknesses.

From the blog CS@Worcester – Josh's Coding Journey by joshuafife and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns Chapter 1 and Chapter 2-6 Introductions

“Apprenticeship Patterns Guidance for the Aspiring Software Craftsman” by Dave Hooper and Adewale Oshineye was interesting. This reading allowed me to reconnect my work to the text. The simple route would be to create a technical guideline but instead, this book goes into greater depth that mentality is the key. The mental fortitude to be humble and to always be open to learning new things from anyone to master your craft.

All the chapters hold great importance to me, I found chapters 3 and 5 to be the standouts. Two key things that stood out to me mainly were developing a long-lasting career and being adaptable in any situation. I am just beginning my career and one goal that I have to achieve before the rest is starting to create a long path to success. Not everything is going to happen in a day but taking it one day at a time and not focusing on the short term can come a long way. Slowly progressing and making small strides is the way to go. Adaptability is self-explanatory but with technology always changing and advancing, you must always be ready for the change. If you don’t adapt to it, technology will leave you behind. Some people may not like change but it’s great to always learn new things and change the way you used to do something for something better. An open mind is better than a closed one.

After reading this I have come to a new understanding of my career. It has taught me to have more purpose when I learn even the smallest things because to fully master something you must understand the big concepts and the small ones. When Learning you should focus on being competent on something instead of just acquiring it and moving on. Also, this is a long-term goal so don’t focus on the short term but look at it from a broader point of view where small increments can lead to bigger strides in the end. The main key to becoming a software craftsman is mentality because technical skills can only get you so far when you always must be moving forward and being able to adapt on short notice.

From the blog cs-wsu – DCO by dcastillo360 and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns Intro

After reading through the assigned sections in the text Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman by Dave Hoover and Adewale Oshineye I feel as though I have already learned lessons that are vital to my progression as a computer science student. One lesson that stood out to me was the story of the Zen master, I really enjoyed the symbolism in the story and the alignment with real experience. In all aspects of life it is important to feel confident in one’s knowledge, but the other half of this is knowing when to be humble enough to learn and accept new information when it is presented. As many of us are familiar, the world of computer science is a realm of continuous improvement – this story helps to remind me how hard it would be to be successful in practice if I do not continue to save space for learning.

Another thought-provoking section was the introduction to Chapter Three relating to Daves realization of the extraordinarily long road of learning that lies in front of all of us. Though the passage was short it was notable to me because I remember having this realization myself. When I came to terms with the fact that there was (likely) no one that knows everything and that most of us are all on the same path just at different points along the way – then I was able to freely learn from my honest starting point, wherever that may be, in any given topic without the shame of being a newbie. Another thought I had while reading this section was that although certificates can be helpful and feel like an accomplishment they are only as valuable as you make them. Being able to use what was learned within a certificate course (or similar) and build upon that I think is where the majority of the real learning occurs.

Apprenticeship Patterns has really helped me rethink how I approach learning. The Zen master story reminded me that it’s important to stay humble and always be open to new ideas. I also liked the reminder that learning is a never-ending journey. These insights will definitely help me stay focused on growing and applying what I learn as I move forward in my studies.

From the blog cameronbaron.wordpress.com by cameronbaron and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns Reflection

I actually found the apprenticeship reading really interesting. The first thing that really caught my attention and still sticks with me even after reading is the story of Dave and his journey through apprenticeship. I related to it because in the story his age is stated throughout the years, but it starts when he’s 25. It seems young, but I struggle with the fear that I am behind in life and I am only 20. Dave being five years older than I am now at the beginning of his journey shows that it’s never too late, especially for me. I think this fear comes from an increasingly competitive world where everyone seems like they already know what they want to do, and if you aren’t already successful by the time you leave university, you’re behind the curve. I don’t think it is actually true, but it can be easy to compare to others, often the successful ones which fuels the paranoia. Either way, hearing about Dave’s story helped me put into perspective how each person’s life is different and there is no golden path to follow for success. This story was a good introduction to the rest of the reading. 

Overall, the first chapter really changed the way I see software development as a practice. The quote “We can take the time needed to nurture apprentice developers because we are faced with the problem of abundance, rather than scarcity….Today we have more developers than needed, but we have a shortage of good developers.” makes a lot of sense to me and also illustrates the way that this discipline has devolved into an easy way to live a comfortable life with good pay. I don’t blame anyone for deciding to work in tech for these reasons, but I think it does dilute the way that software development is viewed. Even reading this chapter has changed the way I think about software development. The way that they laid this out as being something that one dedicates their life to, how there really isn’t an end, only progressive growth, made me think of it less of a job, and more of a person’s purpose. This is something akin to medicine, where the knowledge we have today is not all the knowledge there is to have, and there won’t be an end even in our lifetimes. For some of us, technology like computers has been around our whole lives, but relatively speaking all of this is new in history. People devote their lives to this and it will continue to evolve and change, and all we can do is become competent enough to help it evolve. I understand it now. My journey is long and arguably hasn’t even really started but I do want to become a master in my lifetime.

From the blog CS@Worcester – The Science of Computation by Adam Jacher and used with permission of the author. All other rights reserved by the author.

Learn How to Learn

Throughout my time in the turbulent process of learning in the major of computer science there have been quite a few things that have hit me later on in the process as something I wished I had learned or read in the very beginning. The latest occurrence of this has happened with the book apprenticeship patterns. 

To start the book had a list of community values, all of which really spoke to me. Things like having a growth mindset, understanding that you can always get better and things can always improve. Believing in sharing what we know is better than trying to hoard it. The thoughts that no one tool is going to work or be perfect for everyone and a focus on individuals instead of groups.

There were quite a few more values, however those are the ones that especially resonated with me. In the beginning it took me about 3 different languages and many many hours before things started to click. Finding peers who were more experienced proved both intimidating and helpful. In this major there can tend to be a sense of elitism and as you would expect with humans, some are more helpful while others might look at you as below them. Breaking down those feelings has always come to be the first hurdle I try to get myself and anyone I’m working with over. It also ties into the sharing of what we know and there is no one perfect tool values. This also ties in the aspect of focusing on the individuals instead of an entire group. Being able to communicate and disagree and find common grounds or understandings is so important to the learning process.

Lastly, when I first started learning I was always hyper fixated on trying to understand the “best” way of doing something. It wasn’t until years later I learned that is a silly thought process to have. Sometimes it’s better to just make something work and then revisit it to try and make it better. It is all part of the process, you can get better, everything can always get better too.

Littered throughout the book are fantastic quotes to further motivation and would have given me so much more peace when recognizing my inabilities early on. Failing is an important part in learning something. My favorite excerpt from the book was a story about a master and a philosopher. While the master was trying to teach the philosopher, he kept being interrupted because the philosopher was assuming he already knew about the subject. Leaving the master with nothing to really teach. I can remember so many times where I thought I knew something and began to brush off the information I was being taught. Only to later learn how useful it would have been had I taken more time to open my mind and absorb it all, even a second or fiftieth time.

source:
https://www.oreilly.com/library/view/apprenticeship-patterns/9780596806842/#toc-start

From the blog CS@Worcester – Mike St G – 448 by Michael St. Germain and used with permission of the author. All other rights reserved by the author.

Apprenticeship Reflection

February 10, 2025

Honesty speaking, learning does not end in the classroom. Real-world experience is needed for growth in the professional world, which is where Apprenticeship Patterns—an idea from Oshineye and Hoover’s book Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman—come in handy. These patterns serve as a road map for learning and progress, particularly in technical and skill-based fields. 

This book emphasizes lifelong learning, adaptability, and community participation. It promotes a development mentality and emphasizes the value of experimentation and information exchange. One of the most useful aspects of the reading was the idea that becoming a Software Craftsman is not a linear path. Chapter 5 – “Learn How You Fail”. somewhat changed the way I think about life in general. My first thought before even reading it was how failing could possibly make you succeed in life, but then I realized how critical it is for academic and professional advancement. By reflecting on failures, such as a tough exam or a coding error, students may alter their approach and develop their talents. Using apprenticeship patterns can help us as young upcoming professionals establish an attitude of continual learning, making us more adaptable and equipped for future jobs. When we start seeing our education as an apprenticeship, we hopefully may effectively bridge the gap between theory and practice.

Growing up, I have always been pushed to be the best at everything that I do, especially when it comes to academics. My parents always expected me to be the number one student. Hence why I do not agree with “Being the Worst”. There is no issue with being surrounded by intelligent people, or rather, people who are more knowledgeable than you; however, you cannot be completely clueless.

The chapters that are most relevant to me right now are Chapter 2 –  “Emptying the Cup” and Chapter 5 – Perpetual Learning. As someone early in my career, I’m constantly dealing with imposter syndrome and the need to unlearn outdated practices, and these chapters provide practical advice and reassurance that these struggles are part of the journey.

Overall, the reading has changed my understanding of what it is to be a Software Craftsman. It’s more than simply technical skills; it’s about adopting a growth attitude, community, and lifelong learning. I’m looking forward to learning more about these patterns and applying what I have learned to my own profession.

From the blog CS@Worcester – computingDiaries by hndaie and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns

The first chapter of Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman by Dave Hoover and Adewale Oshineye made me think differently about what it means to be a software developer. Instead of just being a job, the authors describe it as a craft that requires continuous learning and improvement. I liked how they compared software development to traditional craftsmanship, where a person gets better over time through practice and experience. This made me realize that becoming a great developer isn’t just about getting a job, it’s about always growing and learning.

One of the ideas that stood out to me was the importance of having a growth mindset. The authors encourage developers to recognize their weaknesses and work on them instead of ignoring or hiding them. This made me think about times times when I felt uncomfortable admitting that I didn’t know something. I sometimes hesitate to ask for help because I don’t want to seem inexperienced, but this chapter made me realize that learning from mistakes and seeking knowledge is the only way to improve.

I also liked the idea of patterns, useful strategies that help developers overcome challenges in their careers. While the chapter doesn’t go into details about specific patterns yet, I think this concept is helpful. Instead of struggling alone, developers can follow advice from others who have already faced similar challenges. I usually try to solve problems on my own, but this reading made me realize that asking for guidance from more experienced developers could help me grow faster.

However, one thing I questioned was the idea that every developer should think of their work as a craft. While I agree that learning and improving are important, not everyone may want to dedicate their career to mastery. Some people may prefer to focus on specific tasks without aiming to be the best in their field. The book assumes that all developers should take the path of craftsmanship, but I think it depends on personal goals.

Overall, this chapter made me reflect on my learning process and how I approach my career. It reminded me to stay curious, be open to feedback, and actively work on my skills. It also encouraged me to look for mentors and learn from others instead of always figuring things out on my own. Moving forward, I want to take a more active approach to improving my skills rather than just learning through experience.

Link: https://www.oreilly.com/library/view/apprenticeship-patterns/9780596806842/ch01.html?_gl=1*15ilzcb*_ga*MTY4NzMxMDczMC4xNzM5MjQyNTI0*_ga_092EL089CH*MTczOTI0MjUyNC4xLjEuMTczOTI0MjgyOC4yOS4wLjA.#introduction

From the blog CS@Worcester – One pixel at a time by gizmo10203 and used with permission of the author. All other rights reserved by the author.