Author Archives: iharrynguyen

Find Mentors

I feel as though this apprenticeship pattern will apply to most of us who is nearing their graduation date. Most of us only have classroom experience when it comes to developing and soon we will be part of something bigger than just us. We will be joining an organization that has big ambitions and aspiration to see those goals to the end. What should we expect? How do we learn to work through our problems? How do we learn at all?

The author suggests seeking out someone who has been in this position before and strive to learn from them. Eventually someone will accept you as an apprentice and you would remain under their supervision throughout the apprenticeship while working towards becoming a master craftsman. Now this ‘master craftsman’ who will accept you as their apprentice does not have to physically be available. It could be someone in an online community; anyone in the field that knows more than you do. The way to do this may be to pick a community that is active and learn from the individuals there.

I actually like this pattern because I feel as though all of us need a mentor when we are in the field to help us progress through our development. I hope to apply this to myself and learn as much as possible.

From the blog CS@Worcester – Life in the Field of Computer Science by iharrynguyen and used with permission of the author. All other rights reserved by the author.


There was very little productivity during this sprint due to minimal work assigned. To keep busy our team used the time to learn about angular and testing in angular. One method that helped me learn more about angular was to do the Tour-of-heroes tutorial on the site. After doing so I understood why angular was used and what components really were and how they responded and “talked” to each other.

The final day of the sprint, we were given assignments that included creating the GUI of some sort of web application. Our team sat down and decide which interface we wish to move forward with. Before doing so we actually looked into what programs we were going to use and watched some YouTube videos on the instructions.

From the blog CS@Worcester – Life in the Field of Computer Science by iharrynguyen and used with permission of the author. All other rights reserved by the author.

Sprint -3

In this last sprint my team and I ran into a few complications. We were trying to figure out how to go about creating these components that we are supposed. The class as a whole decided the best route to take was to break the amrs app down even more on GitHub so that each group would have their own component and there would be a ‘master’ branch so in the end we could push and merge everything onto that.

Some difficulties we had to work around included having to know what the layout would utilized because everything was sent over Zeplin but created off another platform (maybe adobe). We definitely are on the right path moving forward for the next sprint.

From the blog CS@Worcester – Life in the Field of Computer Science by iharrynguyen and used with permission of the author. All other rights reserved by the author.

Retreat into Competence

This apprenticeship pattern seem to be able to fit most of us as we emerge as newly graduates going into the development field for the first time. We have enough basic skill and foundation to get us through problems but there are many things we have yet to uncover. Retreating into competence talks about how you begin to realize how little you actually know and the task you are assigned with may be a bit overwhelming.

The solution provided for this problem is to simply regain your confidence. Know that you have come a long way since day one and that you are capable or finding a solution. This is a problem that everyone will eventually go through; especially those who take on more than they could manage. The author suggests to re implement a concept that you know very well which usually works for me also. It allows me to regain composure and confidence at the same time.

I agree with the solution to this problem because I have already gone through it in my own ways. At the moment I am learning and gaining the skills to become a full stack developer. I am utilizing all my skills I have learned as well as new concepts that seem like a different language to me. Many times I find myself staring blankly at the screen, lost and confused at what I just wrote down or why my methodology isn’t working. Sometimes I even walk away and come back hours later. I find that each time this happens, I am leveling up; I am getting out of my comfort zone to learn new things. I know that this is just the beginning of this journey and it most definitely gives me confidence that I am able to solve the hardest of problems sooner or later.

Stay tuned for the next apprenticeship pattern!

From the blog CS@Worcester – Life in the Field of Computer Science by iharrynguyen and used with permission of the author. All other rights reserved by the author.

The White Belt

The white belt as an apprenticeship pattern is what it sounds like. You are at the beginning of your journey and have a deep understanding of your first language. The problem arises when you are struggling to learn new material and it is harder to piece things together than when you started learning your first programming language. The author relates the solution back to Star Wars quoting Yoda, “You must unlearn what you have learned”. By doing so, this accelerates the learning process because you don’t try to relate things back to your current language but instead connect neurons together when trying to understand the new concepts you are learning.

I agree with the many things the author taught in this apprenticeship pattern. That too is how I learn new tools and technologies on my own but on the other hand, I always try to relate it back to my strongest, most knowledgeable language, and see if there are similar concepts and if there are ways to carry out a task more efficiently.

From the blog CS@Worcester – Life in the Field of Computer Science by iharrynguyen and used with permission of the author. All other rights reserved by the author.

Why Doctors Hate Their Computers

After reading “Why Doctors Hate Their Computers” by Atul Gawande, I was intrigued on how technology was actually making lives of individuals harder; when the goal of technology moving forward is to actually lift the weight off your shoulders and make things more convenient. Another aspect that was interesting was why was it so universal that almost all doctors started to hate their job when they had to be in front of a computer screen for awhile longer? As a computer science student I could safely say I average about 6 – 8 hours a day in front of the computer and when going to work I am in front of a screen for a full 8 hours but that doesn’t make my life miserable; maybe it is something one has to get accustomed to.

As I was reading, I found that the system had many flaws, especially the fact that it made the doctors enter redundant data when it simply should know and automatically be filled in. Obviously as stated in the article this system was not meant for the doctors or health care professionals but instead for the patients. It was created so they could see what their diagnosis is, what doctors actually said, what medication to take, more information about what is going on, etc. Although this system is in its infancy stage and there are many flaws, I believe that in the future there will be much progress in the system and the way this system is implemented, the connection between doctor, patient, and technology will strengthen.

There are many things to walk away with after reading this article. The first would be our approach when it comes to creating technology and having it benefiting any parties involved without the cost of bringing down another. So when it comes to planning out our idea we must try our best to not sacrifice the possibility of creating a well rounded application; as easy as that sounds I know it is always difficult. There was not much I disagreed with because I was able to see both sides of the spectrum.

From the blog CS@Worcester – Life in the Field of Computer Science by iharrynguyen and used with permission of the author. All other rights reserved by the author.

The Long Road

Far too often you see individuals seeking a shortcut to something they want whether it be wealth, fame, the perfect body, learning, skills, etc. the list goes on.

The Long Road discusses the problem of you wanting to become a master software craftsman and accept each pay raise but leave behind the long term growth opportunities; sure accepting a higher paying position would be nice but the author tells us why sometimes it is better to focus on your long term journey and the abilities you will unlock if you take your time and not take shortcuts. He discusses the amount of knowledge and appreciate software development much more over time. This pattern is not targeted towards individuals that are aspiring to become CIOs or project managers; more towards those who are passionate about software development and being crafty.

One action that was suggested: “Close your eyes and imagine yourself in 10, 20, 30 and 40 years time.” What experiences do you as an apprentice desire? For me, many came to mind. I am expected to graduate in a few months and when I picture myself a year from now it is to be working as a software developer in a structured company learning and absorbing as much as possible but I do disagree the part where I would not want to move up positions. My goal is to start off as a junior developer and over the years move up to a senior developer and maybe one day just a project manager whose goal is to help the team when necessary. I believe even if you are no longer considered as a developer, your thirst for knowledge will continue. This pattern helps me realize that my journey is just beginning and it will be a very long road to look forward to and I can’t be any more excited for it to start!

From the blog CS@Worcester – Life in the Field of Computer Science by iharrynguyen and used with permission of the author. All other rights reserved by the author.

Practice, Practice, Practice

Practice pattern:
You will learn by making mistakes and it is inevitable. How would you purposely make mistakes while on the job? This pattern suggests in order to do so you must find a mentor and have them hand you a task you are not comfortable with and move forward from there. Practice your skills and make improvements each time.

George Leonard says, “The people we know as masters don’t devote themselves to their particular skill just to get better at it. The truth is, they love to practice—and because of this they do get better. And then to complete the circle, the better they get the more they enjoy performing the basic moves over and over again.” I couldn’t agree with this quote more. Over the years we have completed numerous projects and learned many methods on solving problems we encounter while completing these projects. Over time we developed the skills of analyzing the way we go about writing code and fixing bugs without even realizing it.

10,000 hours. That is the amount of time it takes an individual to truly ‘master’ something. Now will that be the case for us? I wouldn’t say so to an extent due to the changes in technology but basic skills like planning, designing, problem solving and debugging would definitely improve given we put hours into working on these skills. The author also makes a very good point when he says practice does not make perfect if you are practicing the wrong skill over and over. There must be changes to improve on that skill each time one practices it.

From the blog CS@Worcester – Life in the Field of Computer Science by iharrynguyen and used with permission of the author. All other rights reserved by the author.


Throughout our undergraduate studies we were taught how to read, write, test, debug and understand code. Data structures were drilled into our heads and knowing basic time complexity of methods were almost second nature to us. One thing we were never taught was the transition stage going from student to working in the industry that we have been preparing for. What is expected of new graduates and how much of the skills carry over from school? Countless questions to be answered but after reading the first chapter of ‘Apprenticeship Patterns’ it gave me a reassuring feeling that everything will work out eventually; if not ctrl+alt+del.

Right off the bat a read a sentence that intrigued me, ” Far too often, it ends with a promotion to middle management…just a few years later…”. It made me wonder if this is what the software industry is truly like. Do that many software developers crave the idea of ending their software development career so soon? For me, the feeling of being able to come up with a solution to a problem that has created a roadblock in one of my projects has got to be one of the best feelings ever so I was not quite sure why so many individuals choose to accept this management role. Was it because of a pay raise? Tired of thinking on days end? I guess I will find out in the near future.

When learning what it means to be an apprentice, I was able to put myself in the definition given, “Having the attitude that there’s always a better/smarter/faster way to do what you just did and what you’re currently doing.” This definition is true to this day because learning is part of the life of a developer no matter if you’ve just started programming or have been programming all your life; technology will always be changing and you must change with it. What I took away from this passage was that there is always an apprentice side of a developer even though the author suggest that apprenticeship is the beginning of your journey as a software craftsman. I guess in some ways our apprenticeship has already started, learning from our professors and seeking their guidance to fulfill our thirst for knowledge they could provide us.

Chapter 2:
The patterns in this chapter describes how many students graduate and go into their first job believing they know everything and how things should be done but that is not the case. One must go in with an open mind and absorb as much knowledge we can in the first few years.

Chapter 3:
This chapter teaches us to not be too caught up on the things we achieved in the past but to be able to move forward and learn new material. It also teaches us that by communicating with our team we may be able to unravel the things we don’t know even exists.

Chapter 4:
“If you are the smartest person in the room, you are in the wrong room” – Some guy. On our journey we will come to this point eventually. We have learned mostly everything our company can teach us but becoming comfortable or not is up to us. We must desire to continually grow and in order to do so sometimes we must seek different organizations.

Chapter 5:
Learning a new skill is always hard at first but learning how to learn may seem even more daunting. This chapter teaches you the methods on how to learn new information and apply it to whatever you’re trying to do.

Chapter 6:
Simply seek knowledge in books for a book is worth decades of knowledge by the author.

From the blog CS@Worcester – Life in the Field of Computer Science by iharrynguyen and used with permission of the author. All other rights reserved by the author.

Nurture Your Passion

I understand there will be a point in time where your team will be assigned a project that does not necessarily excite you. Sometimes it becomes quite difficult to work on something that you are not passionate about or the environment surrounding you is too hostile. From this chapter I learned that by working on one of your passions outside of work, you are in fact nurturing your passion and giving yourself a sense of fulfillment.

The author illustrates the important of setting clear boundaries that define the environment you are willing to work in. Steer clear of settings that disrupt your good mood; always try to stay positive.

I agree with this pattern because things may get overwhelming at times and this is the time where you have to take a step back and breathe. It allows you to connect with yourself again. I actually am not looking forward to experiencing times where an outside source impacts me and my work negatively and am curious as to how I will handle it.

From the blog CS@Worcester – Life in the Field of Computer Science by iharrynguyen and used with permission of the author. All other rights reserved by the author.