
From the blog mrogers4836 by mrogers4836 and used with permission of the author. All other rights reserved by the author.

From the blog mrogers4836 by mrogers4836 and used with permission of the author. All other rights reserved by the author.
Draw Your Own Map is a pattern that discusses how you must forge your own path in terms of your career and not let yourself be boxed in by your employer. This pattern is relevant for everybody who wishes to advance their career as there is only a limited set of career paths that any employer can offer. It is not up to anybody but yourself to decide what the next step in your career should be. When you figure out you want your next step to be, you should visualize the smaller steps that you need to take to get there. Taking the first step will help propel you to achieve your goals. If you discover that your vision for your future is not compatible with your current employer, you should start looking for other opportunities. Draw Your Own Map is all about not getting stuck in one place that doesn’t provide for career advancement.
I think that this is a very useful pattern to follow. It is common for people to grow comfortable in a certain role which makes them unwilling to look for other opportunities. It is also unlikely that any company will provide you the exact path that you want your career to follow. It’s important to remember that your employer is not invested in you advancing the exact way you want to. Even though you may work for a particular company for a long period of time and feel like you should have some level of loyalty, it is better to examine other opportunities when your company’s ideas for you are not aligning with your own. This is the only way to truly draw your own map.
I thought that the two example stories given were interesting to read through. Reading real life examples helps to drive home the point of the pattern and shows that this type of thing is not uncommon. It was also interesting to learn about two actual career paths that have been taken by people in the industry. Overall I think that this pattern is applicable to everybody and is important to remember for people beginning their careers.
From the blog CS@Worcester – Computer Science Blog by rydercsblog and used with permission of the author. All other rights reserved by the author.
The White Belt Pattern, as defined by Dave Hoover and Adewale Oshineye, is an apprenticeship pattern with the goal to learn new concepts or information. The way the pattern achieves this is by having the user abandon their previous knowledge and conceptions regarding the topic, and look at the topic from a fresh perspective with a willingness to learn, despite the potential difficulty and inefficiency of doing so. This comes in handy if you are trying to learn a new programming language or if you need to solve a problem using a new or unfamiliar algorithm.
I definitely can recognize times in my life where use of the white belt pattern would have been helpful. Often times when I’m working on a puzzling programming challenge, I try to think of it in terms of challenges I’ve had before and previous problems I’ve overcome. If I can apply a previous solution to this problem, wouldn’t that be the best way to do it? While I personally do still think this kind of thinking can be useful in reminding yourself of your steps to reaching a previous solution, it can also be distracting and push your mind in the wrong direction. Sometimes the best way to solve a problem is to approach it from a totally new angle and abandon anything you think you know about how to solve it. Some times it’s the knowledge you think is helping you that is actually getting in the way.
I can absolutely see me reminding myself of this pattern and its intentions in the future. If I find myself overthinking something, or trying to shoehorn a solution to a problem that doesn’t fit, I will try to forget what I know and open my mind up to new solutions and ways of doing things. Even outside of programming, freeing up some of my preconceptions on the ways I think things work could be very healthy. It’s important not to let our accumulated knowledge cloud our judgement and prevent us from learning even more. After all, if our goal is to learn, we should approach it from the most practical way possible.
From the blog CS@Worcester – Let's Get TechNICKal by technickal4 and used with permission of the author. All other rights reserved by the author.
The Apprenticeship Patterns book explains how to understand the ideas of modern software development by using a simple vocabulary and a relatable lens. The first chapter goes through the importance of understanding how Software Craftsmanship is defined through the experience of real developers. The ideas of trying new things and experimenting were constantly brought up as well to enforce the mindset of individual growth. It explains that through various interviews and personal experience, they were able to understand the individual growth of various software developers and share their experiences through their years for a better understanding of the industry of today. The book delves into these ideas further by saying that the reader’s mind should be fresh and patient when learning. Many developers stick to certain practices once they learn master a specific language that they carry over which hurts their learning ability in the future. This comes into play with the self-assessment portion of the book where it explains that risks and learning curves are to be expected when tackling difficult languages but understanding personal strengths and weaknesses are key. These ideas help keep the idea of perpetual learning fresh and easier to tackle which can greatly affect how someone learns information on their own. The book continues to talk about the abundance of information through the internet and books that allow anyone access to information if they truly need it. It further pushes the idea of self-learning by talking about how many developers started by teaching themselves through constant reading and media platforms while also applying these skills into their daily software development lives.
I found the reading to be very interesting through the use of personal experience from other developers as they went through their own hardships of learning how to compete in the industry. I specifically found the analogy of emptying the cup to be thought-provoking and useful as it seemed very relatable to me. Understanding and master a programming language feels incredible and makes the user want to apply what they learned to various other languages in hopes of learning them faster using the first language as a basis of knowledge. This can work sometimes however; many languages have their own twists which can be aggravating to learn due to the fact that it seems more complex than the first language that you originally learned. The idea of “emptying” the cup makes much more sense here to make sure that there is frustration when moving from one language to another. I found the analogy of not being able to “drink” from the cup if it’s full to be insightful because it points out the importance of letting go of some knowledge from other subjects to retain focus on the current learning objective on hand. The reading has caused me to understand how to learn from my mistakes and failures much better after reading how other developers also struggled with difficult programming terms. It’s changed my opinion of learning other skills for software development and how I would have originally tackled it which I now completely agree with. This ties into Chapter 6 which talked about constructing your own curriculum which resonated with me much more than the other chapters. As I empty my cup, I realize that my limits lie within how I intake my information and how I organize this intake to make it as easy and smooth as possible.
From the blog CS@Worcester – Student To Scholar by kumarcomputerscience and used with permission of the author. All other rights reserved by the author.
For this post, my assignment was to read chapter 1 as well as the introductions for chapters 2-6 of Apprenticeship Patterns by Adewale Oshineye and Dave Hoover. We weren’t required to read anything in addition, but I was interested, so I read the first model from each chapter as well.
This book models a framework for someone to master the discipline. Mastering something can be challenging, and it is easy to give up when faced with some obstacles. Fortunately, this book looks like it will provide a good framework for someone like me.
I liked all the values presented in the introduction. These are a few of my favorites. (1) “Having a growth mindset.” Like many things I can glean from this book, this is a good quality to adopt for all of life when faced with any obstacle. (2) “Share what we know.” I believe that we are stronger when we work together over getting ahead by trampling others to get ahead.
(3) “Willingness to experiment and be proven wrong.” This perhaps was the most important thing that I learned working in groups last semester. Invariably I would go into a project with a range of quality of ideas. Some were good, but many were not. I had to have the humility to admit when an idea I was defending was not a good one. I grew as a person because of that.
For the “emptying the cup” metaphor, I related to the young philosopher quite a bit. I try hard not to be this way, but I find I can have the tendency to give my two cents when in the presence of someone who knows a lot more than me. I should be a lot more willing to listen and learn over speaking what I know. Usually what I have to say is nothing compared to what I can learn.
The advice to “be the worst” made me feel more at ease at the prospect of getting an internship or a job. I am overcoming a fear of being the worst developer at a company. This advice makes me think of it in another way, which is that I will grow so much more as a developer if I surround myself with people that are better than me
I appreciated the C.S. Lewis quote about seeking knowledge “while conditions are still unfavorable. Favorable conditions never come.” This struck very close to home for me, coming from a vacation where I had set maybe a dozen goals for myself. I ended the vacation only finishing a couple of them. I should have forced myself to set aside the time before the fall semester was over to start to accomplish these goals. If I had excuses during the semester, I should have foreseen that I would have excuses over the break.
I am excited to read more about each section. These topics that we will explore truly seem like they will be enjoyable to learn.
From the blog Sam Bryan by and used with permission of the author. All other rights reserved by the author.
Hey guys, here’s to another (and my last) semester of this CS series of blog posts!
Hopefully you will HIIT–or should I say reach–all of your professional and personal goals for this year. There’s so many things to always keep improving on but it’s always easier when you break things down to smaller changes or achievements.
Here’s a picture of one of my personal goals as can be seen in my university’s Wellness Center:

One day I will be able to get up there without being lifted…alright I’ve gotta get back to practicing my jumps.
Best of Luck,
Sami
From the blog CS@Worcester by samanthatran and used with permission of the author. All other rights reserved by the author.
For this Spring ’19 semester, I’m going to be delving into an Independent Study of the MINIX 3 operating system under the guide of my professor, Karl Wurst. My goal is to dissect and tinker with the underlying systems of an operating system — Processes, I/O, Memory Management, and File Systems. I’ve already gone ahead and installed MINIX 3 on a virtual machine using VirtualBox. Next step is to delve into the MINIX 3 book and see what’s going on under the hood. MINIX 3 actually has a really great wiki with a section catered towards hacking the OS as well, so I’ll likely be drawing a lot of my information from there, too.
As part of the Independent Study I will be writing a weekly blog post here to discuss what I’ve done every week, as well as a paper that I will finish as a summary of my work at the end of the semester.
Here’s to lots of learning and a great final semester!
From the blog CS@Worcester – James Blash by jwblash and used with permission of the author. All other rights reserved by the author.
My first impression with reading the first chapter and introductions of Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman left me eager to learn. Although I only read the first chapter and the subsequent introductions, I could tell immediately that this book contains a wealth of knowledge born of experience from talented software craftsmen that will greatly help me hone my skills over my career. Chapter 1 introduces us to the book by giving us insight into what types of character traits are the most beneficial for a budding software developer, as well as providing a background of the historical craft model and how that model applies and differs from the one that is used today.
In the first section of Chapter 1, the authors describe character qualities that are fundamental in a true craftsman. They demonstrate how important being self motivating is to mastering the skills of software development. We are in an industry that is constantly evolving, so being motivated to learn and improve on our skill continuously is essential to being a software craftsman.
Another aspect of the authors’ perspectives I enjoy is how they explore the traditional medieval guild model and how that applies to software development today. The concept of a progression from apprenticeship, to journeyman, and finally master is still used in many trades today, and I definitely agree with the authors’ suggestion that the model applies to our industry as well.
I also find it very interesting how the authors define apprenticeship patterns and how they go about deciding which ones work. They describe “extracting the framework from working systems”; the knowledge that comes from analyzing past successes and figuring out common patterns that aided in their success is extremely valuable knowledge that can be applied throughout our career.
I feel as though reading the introductory excerpts from the beginning of chapters 2-6 gave me a basic understanding for the tone and themes of the book. What I took away from reading them is each excerpt is a story or general example that relates to the topic of the chapter, and often the story illuminates a need for a fresh perspective, and emphasis is placed heavily on disciplining oneself to have an open mind, taking any opportunities to learn from those with more experience, as well as being able to learn for yourself, and be responsible for your own education.
I was at first a little bit surprised at how heuristic the book is, but I saw right away how this unique outlook offers valuable knowledge that will help all of us in our journey to becoming skilled developers. I’m excited to learn the apprenticeship process from this book, because I believe that if I can apply this knowledge early on in my career, I will be in great shape for being a skilled software craftsman for my entire career.
From the blog CS@Worcester – Bit by Bit by rdentremont58 and used with permission of the author. All other rights reserved by the author.
In the book we are reading, chapter two is based off the concept of emptying ones cup (essentially if you have a lot of experience coding and are approaching a new project, you need to empty your mind of flawed coding practices, patterns and ideas, and focus on what will work for your project and what will help move you forward.)
The first section of this chapter has to do with your first programming language. In this stage, you have only a moderate amount of experience with no more than two or three languages at best. The issue one must face at this stage is reaching the standards your job or your teammates have put forth. The way the book tells us to solve this problem is by honing our skills on one programming language, such that we can seamlessly solve many problems with just that one language. When you just have to use a different language (due to requirements or what have you,) you will have a new opportunity to learn about this seemingly foreign coding language. You can always approach your senior developers or other developers more in tune with that way of programming, as long as you don’t require your colleagues to solve it all for you.
How do you go about accomplishing this first pattern? You need to read up on the programming language you’ve chosen to study deeply. There typically are books or websites available for you to learn more about your language. Another avenue for learning is asking for help or talking with your colleagues about how they accomplished what they have with the language. In ending, try and solve some basic problems with your programming language and move up to more intensive projects and issues.
Work slowly at first and you will understand better the in’s and out’s of your language.
-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.
Hello dear readers. Welcome back to my blog. This post is an introductory post about my CS-448 class (Software Dev Capstone). This is my last semester and I am really looking forward to my graduation. I will see you soon..
From the blog CS@Worcester – Danja's Blog by danja9 and used with permission of the author. All other rights reserved by the author.