Apprenticeship Patterns: Wearing your White Belt

Last week I had posted about my first look at ‘Apprenticeship Patterns’ by Dave H. Hoover, and Adewale Oshineye. In it I discussed how the little bit I had read at the time had left a lasting impression on myself and how I view my current software development skill set (you can read more about it here: https://wp.me/pdn9fs-1q). Since then I have read more and will be starting a multi week long endeavor to go over some of the patterns that stuck out the most to me. A pattern that stuck out to me in Chapter 2 titled; ‘The White Belt’ will be what I discuss today.

Many of you may already realize what it can mean to wear a white belt. Generally those who wear it are considered inexperienced, untaught, or just starting out. What many might not realize however is that it is not only a marker of one who is inexperienced but one who is seeking to learn.

The book starts this chapter by describing a situation many software developers may have found themselves in at one point or another. You have developed a deep understanding of your first language but it feels like their pace of self-education has slowed down or even stalled out entirely. The solution presented is to set aside previously knowledge as you approach new situations.

It is often said that at a young age you absorb information like a sponge and as you age you just cannot learn like you did as a child. Maybe the reason we learned quickly as a child is because you had nothing else to reference to try and make sense of a new subject. When learning a new programming language, it can sometimes be beneficial to start with just that language in a vacuum without thinking of how it compares to other languages.

I found myself that learning how to create a REST API backend required me to unlearn anything prior and start from the beginning. One of the authors, Dave Hoover took this approach as a family therapist to keep from feeling they had an expert knowledge on the troubles of different families. Therefore I will leave everyone with a challenge from the authors themselves. Find an opportunity to unlearn something, ideally something that forces you to set aside past experiences like moving from Java to C++. Many are in general afraid to set aside their past experiences for fear of being seen as silly and inexperienced however you will know just as much weather you openly admit it or not. Being willing to face a new challenge without the burden of past expectations can sometimes lead to unexpected solutions.

From the blog CS@Worcester – George Chyoghly CS-343 by gchyoghly and used with permission of the author. All other rights reserved by the author.

Breakable Toy Pattern

The breakable toy pattern is something I practice often without realizing it was considered a pattern for good learning practice. I must say at times I find it to be a double edge sword. Sometimes I look for things beyond my abilities and end up stuck, depressed, and put it in the back burner, but I end up unpacking them later [because I’m stubborn] sometimes over multiple iterations and when I finally get them working the achievement felt is increased in the same order. I think this pattern probably pairs well with other patterns such as confront your own ignorance maybe I’ll write about this one next. Anyway, I want to talk about how he describes the pattern in his own way.

The author makes a good point in the first few paragraphs that the point of a breakable toy was to be able to work on things you don’t usually work on. This description enforces that this pattern helps you learn without side effects on the systems you work on that are not toys. I believe that he makes this distinction to allow for a daring approach, one that would allow you to try something just to see what happens. This allows for a much deeper understanding of any problem. It is like testing to find boundaries, critical systems may not allow such playful adventures but even these critical systems had to be prototyped at some point and someone stress tested the system so you could have a safe playpen.

I know stress testing is an idea that could be consider a little alien to the breakable toy pattern, but I believe it is part of it. When building these breakable toys, we use tools and frame works that we sometimes stress to the end of their abilities. Then we find better tools and frameworks or learn to better use and manage the ones we have.

To conclude the breakable toy pattern allows for growth not only skill-wise but also mentally when we exercise self-control. It allows us to practice focus and confront anxiety. To build the skill set of building skill sets.       

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

Apprenticeship Patterns Chapter 1 and Chapter 2-6 IntroductionsI found a lot of useful information…

Apprenticeship Patterns Chapter 1 and Chapter 2-6 Introductions

I found a lot of useful information in chapter 1 and in the introduction sections of chapters 2-6 in Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman by Dave Hoover and Adewale Oshineye. However, certain chapters were more impactful than others for me. In this post, I will discuss how and why chapters 1, 2, and 4 were personally significant.

Chapter 1 is titled Introduction and one of the most impactful parts of this chapter was the section that discussed growth mindset. I’ve heard this term before and knew generally what it meant but it was nice re-reading and re-learning this. I especially liked the line that mentions failure as an incentive to try a different approach next time. I have definitely seen failure as an unmotivating factor once or twice in the past so I like how this definition flips people’s outlook on failure on its head.

Chapter 2 is titled Emptying the Cup and the reason I list this chapter as second most impactful/relevant to me is because there was a blurb that discussed the importance of acquiring concrete skills in a specific technology and how that will open doors for you. I have an interest in acquiring concrete skills not only to help my team members complete our capstone project, but I am also interested in learning the “right” concrete skills that will set me up for a successful career after graduation.

Chapter 4 is titled Accurate Self-Assessment and the line that stood out to me in this introduction was the one that described how my goal should be to measure my abilities and to find ways to be better than I was yesterday. Again, this is pertinent to me both for my capstone project and for my career after graduation. I’m particularly interested in reading the sections titled, “Be the Worst” and “Sweep the Floor” which seem to have discussions about finding ways to push and improve yourself to be a better developer.

Overall, I wouldn’t really say this reading changed any of my opinions but it did reinforce beliefs I’ve had (e.g. growth mindset) and the overall message that this career can be a lifelong passion if I wish to make it that. This is reassuring to hear because I often feel like I’m behind some of my other peers since this is my second undergraduate degree I am pursuing.

Lastly, I would like to add that I agree with most, if not all, of the themes in this reading. While some may be more relevant than others at this particular moment in time, I know other themes will likely be more relevant at different stages of my life.

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

LibreFoodPantry

From the LibreFoodPantry, I have chosen for this blog post to talk about the 16 FOSSisms all educators should know. Hedi Ellis, the inventor of “FOSSisms”, came up with this idea to try and convey the idea that engaging computer science students in open-source communities can engage them more than what can be achieved in other classes. This idea was conveyed to a group of 20 faculty members from colleges from all around the United States. The 16 FOSSims are “It’s all about community, be productively lost, give back, if it isn’t public, it didn’t happen, embrace radical transparency, ask forgiveness not permission, branches are free, keep a history, begin with finishing touches, it’s not the work you know; It’s what you want to learn, release early release often, push to upstream, show me the code, remember shallow bugs, and avoid uncommunicated work”. (Heidi Ellis)

From the blog CS@worcester – Michale Friedrich by mikefriedrich1 and used with permission of the author. All other rights reserved by the author.

Thea’s Pantry GitLab Group

Thea’s Pantry is a GitLab group and a food pantry for our WSU school community. In this Documentation project one of the items that I found useful, interesting, and surprising, is Workflow. The main reason I specify this item is that helps the developers and is the way we will be working on this food pantry.
I choose to write about it because the workflow is one process where we can coordinate and organize well, and also give our contribution toward this project.
In this way, we as students will learn how to work by collaborating, by using the git workflow developed for Thea’s Pantry project.

From the blog CS@worcester – Xhulja's Blogs by xmurati and used with permission of the author. All other rights reserved by the author.

LibreFoodPantry

This community-building free, which is called “Libre Food Pantry” is also an open-source software for food pantries. This source also will be the project that I and my other classmates will be working on during this semester on CS- 448. I found this project interesting and I am just waiting for working with this source. Some of the items that are linked with “Libre Food Pantry” are Mission, Values, Code of Conduct, Licensing, Acknowledgement, and Coordinating Committee. All these items are interesting, very important, and explain the role of the source really well. But the item that I will specify about this source, is Mission.

I really like and support at the same time the mission that the construction of this source has, about students and professors. It is a very good opportunity for students to face an open-source and which is free and above all to prepare about the major and the work we will be working on. The mission that this software has is a very good opportunity for us as students, and I am sure it will help us a lot.

From the blog CS@worcester – Xhulja's Blogs by xmurati and used with permission of the author. All other rights reserved by the author.

Thea’s Pantry

For the cs-448 course we are working on a project which regards to the Worcester states food pantry program called Thea’s Pantry we are working on a project to improve its community. After looking upon the user stories, and I found useful information. This is fascinating on how the documentation gives a breakdown in each category such as the guest visiting inventory, access management, new inventory, etc . Tells how in each bullets on how it is supposed to be configured and implemented throughout the project. helps give an understanding what is needed to be accomplished and/or has been already accomplished.

From the blog cs@worcester – Dahwal Dev by Dahwal Charles and used with permission of the author. All other rights reserved by the author.

Thea’s Pantry Intro

Thea’s Pantry is an Open Source software tool used by Worcester State University to help manage their on-site food pantry. This software is a division of the LibreFoodPantry open source tool. While taking a look at the architecture of the system on the food pantry’s repository on GitLab, I noticed that it is composed of multiple systems that make it whole. Each of the features the system offers breaks down into smaller specialized parts. The type of person that I am likes to do things alone. Although this project seems like a relatively smaller one and can probably be done by a single developer, by the time the software is complete, it’s likely that better solutions would have been discovered and faster. Looking at the architecture really put things into perspective for me in terms of the importance of having a team to work on software.

From the blog CS@Worcester – You have reached the upper bound by cloudtech360 and used with permission of the author. All other rights reserved by the author.

Libre Food Pantry Mission

Libre Food Pantry was created to help and support local food pantries. Its mission is simple that to bring computer science and its software to enhance and support local needs. This is what I found interesting about Libre Food Pantry. For every piece of software today, the main reason is to profit its developers and organizations rather than to support the community necessity. It’s critical to think of software that created is to assists the needs of the community, not the need of the pocket. As software developers nowadays focus so much on the cash and paybacks that we sometimes forget what our initial intention and mission is. I chose to write about the mission of Libre Food Pantry because I hope that they would keep doing what they’re doing, let aside the business and help expand the community and support the people.

From the blog CS@Worcester – Hung Nguyen by hpnguyen27 and used with permission of the author. All other rights reserved by the author.

Thea’s Pantry

One thing I found interesting was the scope of the architecture, with it being composed of systems, and with each system having different features.  What seems relatively simple requires many components that all have to mesh and interact with each other to form a cohesive whole. In particular, I found the diagrams to be very interesting, seeing the components that the different systems are composed of, and how those components interact within the system. I found this to be the most interesting because it related to what we did last semester, with the frontend and backend, and here is them being used in an actual practical, working system. It’s because it seems somewhat familiar to me, even though I don’t know the exact workings of the components, but because I know their overall function.

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