Apprenticeship Patterns Ch 1 and Ch 2-6 Introductions

The book Apprenticeship Patterns by Dave Hoover and Adewale Oshineye begins with its first chapter which centers on the concept and nature of apprenticeship. In it, the authors compare and contrast the apprenticeships of medieval Europe with the software apprenticeships of today. The following five chapters, of which I have read the introductions of each so far, focuses on individual concepts and attributes important to software apprenticeships. Chapter two focuses on “emptying the cup” or how an apprentice should set aside their existing knowledge in order to fully open themselves up to the different approaches of their colleagues and teachers. Chapter three reminds to not be too discouraged of the achievements of your peers as they’re still learning like the rest of us. Chapter four also reminds to not become too complacent or conceited and instead find ways to improve your weaknesses. Chapter five follows that up by advising that an apprentice should learn how to learn since software development is composed of two primary activities: learning and communication. Chapter six finishes off with the point that even though we live in an age where anyone can access limitless information through the internet, books still have some knowledge you can’t find online.

I mostly agree with the points made in the book save for the one in chapter six and even then, it’s mostly with the wording. The way the authors described their point made it seem that physical books have value outside of the internet in the information they have. This is despite the fairly likely chance that many of these books, such as Apprenticeship Patterns, already exist online in some form or another. I’m assuming that the authors only had sources exclusive to the internet like blogposts and websites in mind when comparing them to books. Outside of that, many of the topics and attitudes covered I feel are not only important for software apprenticeship but also for any skill that an individual decides to devote themselves to. Optimizing one’s learning skills, constantly learning, constantly improving one’s weaknesses, not getting discouraged by the accomplishments of one’s peers, and opening oneself to other viewpoints are all extremely important to cultivating a craft.

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

Apprenticeship Patterns: First Impressions (Chapter 1 and Chapters 2-6 Introductions)

Image result for apprenticeship patterns

For this course, we were introduced to the book Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman, by Dave Hoover and Adewale Oshineye as a resource and reference.

Immediately, I found this book to have an interesting approach to the way it presented information. Instead of being organized in a simple front-to-back kind of format, where content would be organized by order of foundational material followed by more advanced topics, this book is organized more similarly to a wiki, with the content presented in a relatively self contained manner for each chapter rather than as a series of introductions or tutorials followed by applications.

More specifically, I think the idea of apprenticeship discussed throughout the opening chapter and throughout this text is a genuinely useful idea relative to any kind of career or interest in software development. Rather than focusing on achievement and career progress for the sake of progression, the definition of apprenticeship is more concerned with learning and the acquisition of the knowledge with the goal of learning more and knowing more each day than the ones preceding it.

The definitions of “apprentice”, “journeyman”, and “master” used in this book are interesting because they discuss them as part of a system. Apprenticeship is presented as a step in a logical progression leading forward to being a Journeyman and eventually a Master with differing priorities and activities being attributed to each one, where the apprenticeship stage is primarily concerned with learning and self-development.

I like the idea of starting out with self development, because if you don’t develop yourself and understand how you want to work and the tools you want to use going forwards, then you proceed on unstable ground which won’t be very conducive to your future development or career.

Chapter 2, “Emptying the Cup” discusses the concept of remaining open to new ideas and knowledge, even after you feel you have learned a lot about a particular topic. It deals with the idea of acknowledging what you don’t know, and confronting those deficiencies while also maintaining a “beginner’s mind” while learning new things. While the chapter goes on to discuss how these ideas can be applied to something like learning a programming language, I think they can be relevant to learning just about anything. Activities such as cooking, painting, or even tying a knot all seem like places where it could be a good idea to approach them with a “beginner’s mindset” and not assume everything through prior knowledge.

Often going through things step-by-step as an absolute beginner might seems to produce some of the most lasting impact, in my experience. I think this chapter and the idea of keeping an open mind is very valuable, especially in a field like software development where you might be exposed to many different frameworks or languages throughout a project/development period, and might be tempted to apply knowledge from one to another (possibly leading to later difficulties).

Book Referenced: “Apprenticeship Patterns by David H. Hoover and Adewale Oshineye. Copyright 2010 David H. Hoover and Adewale Oshineye, 978-0-596-51838-7.”

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

Apprenticeship Patterns Blog Post #1

Throughout this semester, I will be reviewing several different apprenticeship patterns from the first six chapters of our in class textbook. For my very first post, I decided to review the first pattern covered which was “Your First Language.” For many of my friends and classmates (including myself), Java was the first language learned. When we are first starting out learning programming, the book tells us that it is incredibly valuable to master our first language or two rather than try to learn a bunch of different languages at once. I am a firm believer in this notion as well simply because, with my knowledge in Java, I am able to translate to other languages fairly easily. The book explains that trying to learn all the languages instead of one for when a programmer is just starting out is not ideal mainly because it will end up causing more confusion than learning. If I am great at my first language, it is generally not too difficult to solve a problem in that language and then translate it to a new language after the fact. A great quote the book uses to describe this is by Alfred North Whitehead, and it reads, “by relieving the brain of all unnecessary work, a good notation sets it free to concentrate on more advanced problems, and in effect increases the mental power of the race.” It definitely is a bit concerning to me when I see job applications stating I need to know certain languages or programs that use specific languages, but my original background in Java has proven to be extremely helpful in learning how to use those other languages. All the work I put into learning Java has helped me with my understanding of all languages, and for the most part, I just end up needing to teach myself the slight syntax differences between them all. This portion of the textbook spoke to me strongly because I have often thought about what would have happened if I had learned a different language for my first language. I see now that it most likely would not have changed anything, and that makes me happy!

From the blog CS@Worcester – Tim Drevitch CS Blog by timdrevitch and used with permission of the author. All other rights reserved by the author.

An Introduction to Apprenticeship Patterns


For this blog post I will be discussing the entirety of the first chapter, and introductions to all other chapters of, Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman by Dave Hooper and Adewale Oshineye. As someone who is at the cusp of being released into the larger professional world, this book appears to be a useful resource. To clarify, I have been thinking about my future career as of late, and how exactly I can advance my own learning past what I do in class. Personally I have found this to be challenging, often finding myself having grand designs going into a personal project or online training program, but ultimately hitting a wall that abruptly kills progress. Within the first chapter of Apprenticeship Patterns, these troubles are acknowledged and addressed through establishing and discussing methods to approach learning new skills, these being the titular patterns. 

There were a few sections that I found particularly interesting. To specify, this section in the intro that redefines the definitions for apprentice, journeyman, and master was something I did not expect to find. I did not really ever put thought into redefining those terms to fit their more modernized roles. Additionally I enjoyed reading the introductions to chapters two and five. When learning new languages I feel as though I am always trying to program in as though I am using Java, as it is simply what I have always been comfortable with. I feel like this idea of “Emptying Your Cup” is of high importance when learning a new language, as it will most likely work differently than what you are comfortable with. You have to be willing to step out of the comfort zone to have a true grasp on this new language. 

The topic for chapter two goes hand in hand with this mindset. This chapter’s focus is on reinforcing a constant cycle of both learning new information or techniques, and subsequently sharing them. One important note is that this process should happen regardless of where you are in your programming career, apprentice or master, but it would be ideal to begin when your an apprentice. By establishing these practices early on you will habituated these processes of learning and sharing so that they will become second nature to you. Even just reading the introductions to this book has made me rethink these to aspects of how I program, which is a good sign for things to come.

This reading has already changed my mind on these two things, and much of what the other chapters discussed also sounded relevant, at the minimum. The only part that stuck out as odd to me were the introductions to chapters two and four. I am sure the content of both chapters differs, but they seem to be covering very similar topics, both stating that you need to let go of previous knowledge when tackling something new. This is not to say that I did not find these topics interesting, as I said above the topic of chapter two is something I am already thinking about doing, but I just found those chapter introductions to be strangely redundant. Overall thought this reading has been highly interesting and I am excited to dive even deeper into it!

From the blog CS@Worcester – My Bizarre Coding Adventures by Michael Mendes and used with permission of the author. All other rights reserved by the author.

Introduction

Hello everyone, my name is Jordan Tekelis and I am begining my blogging career today as a senior currently enrolled at Worcester State University. I am starting this blog as part of the opening token assignments for CS-443 and look forward to working on these throughout the semester. For starters, I would assume the majority of my posts will be school and assignment related, but as time goes by and depending how confortable this becomes, I will keep an open mind in continuing this through out my professional career as well. But as for now, this looks to be the end for my brief introduction post and good luck to everyone this semester.

From the blog CS@Worcester – The ways of the Computer: A Blog by JTekelis by jtekelis and used with permission of the author. All other rights reserved by the author.

A Start to Something Different

Hello. I don’t really know how you got here but welcome to my blog. I don’t really blog but I guess I will have to start somewhere, so I might as well start here. I started this blog for a class I was taking in my Senior Year of college, so at least initially, most of my posts will be responses to assignments from that class. At the moment, I don’t know what direction I want to take this blog but I hope you will consider coming back to this page one day to see how far I have gotten.

From the blog CS@Worcester – Just a Guy Passing By by Eric Nguyen and used with permission of the author. All other rights reserved by the author.

Introduction

Hello everyone! I am Jeffery Neal and this is my first blog post. I am a Junior in Computer Science and enrolled in CS-443. I look forward to the rest of this semester!

From the blog Jeffery Neal's Blog by jneal44 and used with permission of the author. All other rights reserved by the author.

LibreFoodPantry Website Review

Because of the fact that my entire capstone experience at Worcester State will be helping develop software for LibreFoodPantry, it seemed only right for me to review the website and try to discover things that will be helpful for me this semester. I first visited https://librefoodpantry.org/#/ and read over the main page as well as the smaller tabs such as About, Licensing, and What’s new. A section that I found interesting was on the main page when I learned that this whole project we are working on is generally new and should be changing a lot as we go along. It is quoted saying, “currently we have built prototypes of specific features for specific clients, but as of yet no software has been deployed for a client. This means we are in the very early phases of development and much about our software, processes, and tools are in flux. Please be prepared for change.” Nothing has been deployed yet and everyone is relatively new to the idea we are trying to create. This could be frustrating in the future if we get stuck or if we have to change things on the fly. However, it could also be exciting because we could be the first to get it to work properly and successfully! I am extremely excited for this semester and this capstone, and working on a project for LibreFoodPantry is the perfect process for teaching me what I may be needing to do in the real world after college.

From the blog CS@Worcester – Tim Drevitch CS Blog by timdrevitch and used with permission of the author. All other rights reserved by the author.

New Semester Introduction

I am thrilled to be continuing the blogs I started in my previous semester. I’d like to introduce myself a little bit again in case anyone reading this is new to my blogs. For starters, I am a Computer Science major at Worcester State University, and I am scheduled to graduate in the Spring of 2021 (after this last semester). I have a concentration in Software Development and a minor in Mathematics. Outside of school, I like to play games, hang out with friends and family, and play sports. I am on the NCAA Ice Hockey team for Worcester State, but before college, I played many other sports like lacrosse and soccer. I graduated from Warren Hills Regional High School in New Jersey in 2017 before joining the WSU Lancers. I either plan to go to grad school or find a job after this semester! Most blogs following this will relate to two of my classes this semester (CS-443 and CS-448).

From the blog CS@Worcester – Tim Drevitch CS Blog by timdrevitch and used with permission of the author. All other rights reserved by the author.

Introductory Post

I am a Computer Science Major in my Senior year in College. I am creating this blog to document what I am doing in my Software Construction, Design, and Architecture class, and to save some things I find interesting. I am also creating it because one of my classes is having me do it as part of an assignment.

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