CS 448 setup blog post
From the blog CS@Worcester – Phan's CS by phancs and used with permission of the author. All other rights reserved by the author.
CS 448 setup blog post
From the blog CS@Worcester – Phan's CS by phancs and used with permission of the author. All other rights reserved by the author.
Hello again readers.
So, what is a pattern as is described in the book Apprenticeship Patterns by Adewale Oshineye and Dave Hoover? Patterns are ways in which we program or otherwise do our work/solve problems repeatedly. When applied correctly, patterns allow us to easily overcome many problems/obstacles we face in our jobs and personal hobbies.
The patterns in the book make their approach based on the context, problems, and possible solutions. “The context sets the mood… problem statement identifies the problem being solved by the entirety of the pattern. The solution usually begins with a one sentence resolution for the problem…” (Pattern Form, Apprenticeship Patterns)
Developing a pattern allows for the mass production of programs, buildings, and other structures, whether physical or metaphysical. It is intended to further the abilities of the novice to moderately advanced programmer. One model/pattern for programming is using a master node and slave nodes: the master node controls what slave nodes do (which instructions the slave nodes undergo.)
This book was written for “software apprentices” (as put forth by the author.) The three tiers of the programmer go from apprentice, to journeyman, to a master craftsmen. The apprentice believe that there is always a better way to do what they are doing. The journeyman focuses inwardly as well as on teamwork and connecting with others. The master does this all as well as attempt to move the industry forward.
On to the review of this pattern. I find taking instructions from a singular source and running processes on many smaller sources of computing power to be interesting: you can get vastly more processing power by adding many slave or sub-nodes to a master or dominative node. I haven’t really found that it changes how I will approach programming in the future but I may look back on this way of programming for reference. Finally, I have no disagreements or other takeaways from the first chapter and pattern of this book.
I hope you’ve enjoyed my first post about Apprenticeship Patterns, I will see you next time.
-SMR
From the blog CS@Worcester – Sean Raleigh's CS Blog by sraleigh62 and used with permission of the author. All other rights reserved by the author.
For the first week of apprenticeship pattern readings, I chose to read Draw Your Own Map. This pattern focuses on the career path that you chose for yourself based on your future or current employer. It tells a tale of how employers can only lead to a limited amount of career opportunities from your current job status. To work through this system, it is necessary to create a plan or road map for your future endeavors after moving forward from where you currently are. By lining up paths that can be available to you based on your current desires, knowledge, and expertise. It will be easier to find yourself in work that suits yourself the best instead of settling for less. These roadmaps should easily be updated to your current situation whenever you see fit. The overall idea behind this is that no one will be able to tell you how your career will end up, everything is up to you.
What I found interesting were the two short stories provided near the bottom of the pattern which clearly showed how reality will present itself. By providing evidence of how some apprentices feel about their current work experience, realizing what they actually wanted, and making a rather small but big step towards their dream career path is inspiring. It also goes to show that not all companies will have their interests aligned with their employees. Also, the action listed at the bottom is helpful to show that. By mapping out from each job choice and their potential benefits and paths that could open or give an overview of how you will end up later on. By not limiting your choices and have a willingness to redo the diagram until you are satisfied with the end result. There is a big possibility you will find happiness at the very end. Otherwise, I enjoyed the fact that this pattern is straightforward with budding apprentices like myself. As quoted, “Understand that it’s not up to your employer, your career counselor, or your professors to give you a hand up.” Every decision lies in us, by having a plan, you can reduce the amount of roadblocks you will hit along the way and make more informed choices in your career path.
From the blog CS@Worcester – Progression through Computer Science and Beyond… by Johnny To and used with permission of the author. All other rights reserved by the author.
This will be my blog for CS-448.
From the blog CS@Worcester – Amir Adelinia's Computer Science Blog by aadelinia1 and used with permission of the author. All other rights reserved by the author.
Confront Your Ignorance discusses how to begin mastering gaps in your skillset that are relevant to your daily work. It is important to fill these gaps in whichever ways work best for you. For example, some people like to read introductory material until they have a good understanding of the basics, while others like to dive right in and learn by breaking things. Working with peers who are trying to learn the same skills will help you make better progress. Once you have a decent understanding, you must decide whether it’s more useful to dig deeper or start filling other gaps in your knowledge. There can also be negative side effects created by this pattern. If you implement an extremely complex system just to learn how to do it you can burden your coworkers and introduce unnecessary costs. It is also important to not let your education get in the way of delivering a product. A software craftsman must be willing to put the wider interests of the community before personal benefit.
I think that this pattern is very relevant because everybody eventually runs into ideas or techniques that they know nothing about while everyone around them seems to have them mastered. Knowing how to pick which skills are worth learning and being able to learn effectively are important traits required for success. Being able to confront your ignorance is something that everybody (especially software developers) should be comfortable doing.
While I agree with everything written in this pattern, I don’t think there is anything exceptionally thought-provoking about it. It’s basically another way of saying that you should continue learning throughout your career. I believe that this is an important thing to do, but there was nothing written in this pattern that will change the way I work or think about the profession. Overall I think that the content in Confront Your Ignorance is agreeable but I did not take away any new ideas by reading it. I do look forward to reading some of the other patterns that were linked in this one as they seem like they have related ideas that expand on what was written about in this pattern.
From the blog CS@Worcester – Computer Science Blog by rydercsblog and used with permission of the author. All other rights reserved by the author.
As a first assignment blog post for my Software Development Capstone course we are assign to read the Apprenticeship Patterns Chapter 1 and Chapter 2-6 Introduction with the purpose of understanding “what it means to be a Software Craftsman and the stages of becoming a Software Craftsman” and to also, “get a feel for what the patterns in each chapter cover” from Chapter 2-6. In this blog I will first cover my reaction to the reading and then I will do some Question and Answer format of my reading of Apprenticeship Pattern by Adewale Oshineye, Dave Hoover.
My Reaction
From what I have read from Apprenticeship Pattern Chapter 1 Introduction and the introduction of Chapter 2-6. So far, my reading has been insightful on what exactly I will be learning and what Software Craftsmanship is. I like that it explains when they are referring to words such as apprentices, journeyman, master, and craftsmanship it is different to those medieval terms. Although they slightly resemble, they are redefined differently in this book. Reading the introduction to each chapter was insightful because it helps clarified that the Apprenticeship Pattern are different to other patterns in particularly Design Pattern. That is because Apprenticeship Pattern are a set of patterns believe to be beneficial for individual beginning a career in Software Development as appose to Design Pattern which is a solution to common design patterns. Each Chapter from 2-6 breaks down the different Apprenticeship Patterns and each of their introduction gives you an idea of what you will be learning and how the pattern will help you in your journey from Software Developer Apprenticeship to becoming a Master Software Developer.
What did you find interesting, useful, thought-provoking about the reading?
I found the following paraphrase from Chapter 4 Accurate Self-Assessment interesting, useful, and thought-provoking… “You must be willing to let go of your perceived competence and allow yourself to recognize that you have traveled only a short distance on The Long Road. Your goal isn’t to become better than the “average developer.” Your goal is to measure your abilities and find ways to be better than you were yesterday. We’re all on the same journey, and comparing ourselves to others is useful only when it allows us to find ways to help each other improve.” Phrase from the book Apprenticeship Pattern by Adewale Oshineye, Dave Hoover. The reason this phrase caught my attention is because it helped me understand that being the best you can be each day growing new skills and new knowledge in order for you to be a better Software Developer on each present day. Which is something I will apply to my life.
Has the reading caused you to change your opinion, the way you think about the topic, or how you work?
This reading has not changed my opinion on what I think about the topic because it is pretty similar to my thinking except, I feel that once I read more it will help me with common problems new Software Developer face.
Do you disagree with something in the reading? And why?
I do not disagree with anything from the reading because there was nothing, I read that I didn’t like or understood.
Which chapters seem most relevant to you?
I will say that Chapter 4 Accurate Self-Assessment because it will help build my self-confidence through this journey as a rookie Software Developer.
Thank you for your time. This has been YessyMer in the World Of Computer Science, until next time.
From the blog cs@Worcester – YessyMer In the world of Computer Science by yesmercedes and used with permission of the author. All other rights reserved by the author.
This is the first Apprenticeship Patterns Blog Posts, I choose “The White Belt” in the second chapter, it represents maintaining a beginner’s mind regardless of your expertise. This is the second chapter of book “Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman” by Dave Hoover and Adewale Oshineye. The young philosopher- “Can’t you see the cup is already full and overflowing?”. The more experience you already have, the more effort you will need to put into “emptying your cup,” meaning the more you learned the more you have to “emptying your cup”. We must be humble, to able to thrive and get to next level.
To able to have new mindset new skills, sometimes we must go back “The White Belt” to unlearn what we had learn. I thought this pattern is interesting, this help us how to learn new thing and our attitude go about it. Once we learned language, specially first language, we have pride in out skill. Although it is good for you have confident, if you want to learn new thing. In our mindset, we will try to relate to what we had learn. Sometimes that make we learn new thing much harder. To solve this, “The White Belt” suggest that we find an opportunity to unlearn something, like as we go back and wear white bell as beginner. You have to learn new language, with new structure as you first time learning the language. I have to agree on this pattern on this, we need to learn new language and new functional way of building. I need full attention into learn first, once I understand fully then I could compare what I have learn. Although I don’t have a large library of language, this technique will help me in my profession. This also would help me in career, it is good to know someone who do thing different than you. They will make you understand and learn from them.
From the blog CS@Worcester – Nhat's Blog by Nhat Truong Le and used with permission of the author. All other rights reserved by the author.
The apprenticeship pattern “Be The Worst” refers to the situation where you’ve outgrown your team and possibly your entire development organization and now you’re no longer learning at a rate that is acceptable to you. The solution to this is the find another group made up of developers where you are the weakest member so you have more room to grow. The quote used in the article to represent this is “Be the lion’s tail rather than the fox’s head!” Another quote that emphasizes this idea is “If you’re the smartest person in the room, you’re in the wrong room.”
I think that while it’s true that being surrounded by developers who are smarter or more experienced than you will definitely accelerate your growth or learning, if everyone followed this idea then the “junior” team members wouldn’t have anyone above their experience level to learn from because they would have already moved on to greener pastures. That being said, everyone doesn’t follow this pattern. There are likely many experienced developers who are happy with the level that they’re at and have no interest in switching teams giving less experienced members of their team a mentor to learn from.
Reading this pattern hasn’t really changed my mindset, as it bears some similarities how I had already thought about my intended profession, albeit a little more extreme. While I agree with the pattern as it refers to switching teams when you feel like you’re no longer growing, I feel that it can potentially be an unhealthy mindset to have. I think a better mindset would to start looking for new opportunities once you’re no longer satisfied with your work. The wording here is very similar to the original pattern, however it also takes into account those who enjoy their jobs, even if they might not be learning as fast as they could be had they joined a new team.
Overall, while I’d say that following this pattern would likely accelerate your growth, I don’t think it’s the be-all and end-all solution to a successful and rewarding career. Being the “smartest” person in the room doesn’t mean you have nothing to learn, especially when it comes to learning how to be a good mentor.
Source: https://www.oreilly.com/library/view/apprenticeship-patterns/9780596806842/ch04.html#be_the_worst
From the blog CS@Worcester – Andy Pham by apham1 and used with permission of the author. All other rights reserved by the author.
Welcome, to the start of my journey in CS-448 Software Development Capstone.
My name is Yesenia Mercedes-Nunez and welcome to “YessyMer In the world of Computer Science”.
From the blog cs@Worcester – YessyMer In the world of Computer Science by yesmercedes and used with permission of the author. All other rights reserved by the author.
After reading the first chapter of Apprenticeship Patterns I feel that this is the perfect book to read for somebody just beginning their path as a software developer. There seem to be a lot of interesting ideas in this book that would help promote continuous learning and improvement for the craft. The authors use the phrase software craftsmanship to refer to a community united and defined by common values. These values include:
I feel that these are values that should be followed in all areas of life. It is important to always be trying to improve and learn new things. These values apply especially well to the field of software development because it is always changing and there will never be a shortage of new things to learn. Software development is also a field that depends on a community that is willing to share ideas and resources. It is almost impossible to write anything useful without importing code that was written by others, and the free exchange of knowledge within the community is what allows people to improve and innovate.
I thought that the ideas on what it means to be an apprentice, journeyman, and master were very thought-provoking. The definitions are focused on how each stage involves personal growth and contributing to the craft. I think that these roles make a lot of sense and promote the values that the authors discussed. I agree that following these values will help bring success to individuals and the industry as a whole.
I think that chapters 2-6 all sound interesting and useful based off the introductions. The chapter that I most want to read is Chapter 5: Perpetual Learning. I was grabbed by the C.S. Lewis quote at the beginning, which helps convince the reader that they have to actually want to learn in order to continuously learn throughout their life. I also like the line “Apprentices are thirsty for opportunities to replace their ignorance with skill.” The more you learn the more you realize how much you don’t know, which makes it exciting when that ignorance starts to be replaced with knowledge. I agree with the authors that learning is a perpetual activity, so I think that this chapter will be very useful.
Overall, Apprenticeship Patterns seems like it will be an extremely valuable read. It is interesting how the book focuses not on technical details, but on the ways in which a beginner software developer can begin their journey towards becoming a master. It also seems like many ideas in this book can be applied to numerous facets of life, not just programming. I look forward to continuing to read and learn from this book.
From the blog CS@Worcester – Computer Science Blog by rydercsblog and used with permission of the author. All other rights reserved by the author.