Category Archives: Week 5

Exploring the Strategy Design Pattern in Software Development

I recently came across a fascinating article that I believe directly relates to our course material as it is the focus of our current Design Patterns Homework. In this blog post, I will provide a summary, share my reasons for selecting this resource, offer my personal insights, and discuss how this newfound knowledge can be applied to our future practice as software developers.

The resource I found is an article titled “A Beginner’s Guide to the Strategy Design Pattern,” available on the FreeCodeCamp website. This article serves as an introductory guide to the Strategy Design Pattern in software development. It outlines the pattern’s purpose, components, benefits, use cases, and best practices for implementation. The core idea of this pattern is to encapsulate a family of algorithms, making them interchangeable at runtime.

Why I Chose This Resource

I selected this resource because I was struggling with understanding the homework assignment and this article helped me better understand the strategy design pattern. Moreover, the article provides practical examples and clear explanations that make it accessible to beginners like myself.

Reflections on the Content

The article begins by explaining the core concept of the Strategy Design Pattern. It emphasizes the benefits of encapsulating algorithms into interchangeable strategies, including improved code flexibility, re-usability, and simplified testing. I found this concept to be highly relevant to our studies, as it promotes clean and maintainable code, a fundamental skill for any software developer.

The article discusses real-world use cases for the Strategy Design Pattern, such as sorting algorithms, validation rules, and payment processing. These examples helped me see the pattern’s practical application in various scenarios, and I can envision using it in my future projects.

Additionally, the article provides a step-by-step guide on how to implement the Strategy Design Pattern in Java, breaking down the process into clear, manageable steps. This hands-on approach was incredibly valuable as it demonstrated how to apply the theoretical knowledge in a real coding scenario much like the one seen in the Duck Simulator.

Application to Future Practice

Understanding the Strategy Design Pattern will undoubtedly benefit us in our future practice as software developers. Here’s how:

  1. Code Flexibility: By using this pattern, we can make our code more adaptable to changing requirements. It allows us to swap out different strategies at runtime, making our software systems more versatile.
  2. Re-usability: The Strategy Design Pattern promotes the re-usability of code. We can create a library of interchangeable strategies that can be applied to various projects, saving time and effort.
  3. Clean Code: Implementing this pattern encourages clean coding practices by separating concerns and reducing code complexity. This results in code that is easier to read, maintain, and debug.
  4. Testing: With strategies separated from the main object, testing becomes more straightforward. We can test each strategy in isolation, ensuring that it functions correctly.

Conclusion

In conclusion, the Strategy Design Pattern is a valuable tool in software development, and I believe this article provides a solid foundation for understanding and implementing it. As future software developers, mastering design patterns like this one will be essential for creating efficient, maintainable, and flexible code. I encourage you to read the article and explore this pattern further to enhance your skills in software development.

From the blog CS@Worcester – Abe's Programming Blog by Abraham Passmore and used with permission of the author. All other rights reserved by the author.

Exposing The Ignorance?

Exposing ignorance is apart of the learning process, and assuming that the person that this pattern is for is a apprentice, it’s safe to assume that having ignorance is apart of the learning process. What I disagree on when it comes to this pattern specifically is that it is hard to imagine that if your an apprentice, it would be hard to be in a situation where the fellow co-workers or employee assume that you have everything under control, that’s if the pattern in context is being aimed at apprentices. In my opinion, this pattern seems to be more for the journeyman if anything. A position where a person has the experience of a craftsman, but doesn’t know everything about the craft or like the author mentions, they will mistaken expertise for good craftsman, which seems to be two different things.

Although, what I do like about the pattern is that the author emphasizes that learning how to do something isn’t enough- its about how one learns the task that is more important than anything really. In his quotes alone the author explains that “Expertise is a by product of the long road we’re on all on, but it is not the destination.” This make me have a different perspective of the learning process, it can be a tough road, but that seems to be the point. Many times I tend to find shortcuts of how I can get something done faster because, like anyone, it’s relief to know that something is completed and out of the way, but I never end up truly understanding the task. Sometimes getting things done faster and without obtaining substance is a good thing, and needs to be done with good reason, and with that being said if I’m in a situation where I have to get something done, then afterwards I’ll spend some of my free time trying to fully understand it. Learning how to fully take advantage of the learning process is how one becomes a good craftsman.

Sources:

Hoover, Dave H., and Adewale Oshineye. Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman. O’Reilly, 2010.

From the blog CS@Worcester – FindKelvin by Kelvin Nina and used with permission of the author. All other rights reserved by the author.

Apprentice Pattern: Expose Your Ignorance

This week I continued with chapter 2 of Apprenticeship Patterns once again. The pattern I read was Expose your Ignorance. The context this pattern gives is the people paying you to be a software developer are depending on you to know what you’re doing. The problem with this is your team members and manager need confidence that you can deliver but you are unfamiliar with some of the technologies.

The solution to this problem is to show the people depending on you that the learning process is part of delivering software and to let them see you grow. Software developers build strong relationships with clients and colleagues so telling the truth about being in the learning process instead of telling them that you know how to do something you don’t is important. Doing this will build your reputation on your ability to learn and not what you already know. Asking questions is a good way of exposing your ignorance. Those who do not take on the process of exposing ignorance become experts in one domain and develop a narrow focus that is important for the industry to have experts but it should not be the goal of an apprentice. 

The action suggestion is to write a list of five things you don’t understand about your work. Put the list somewhere others can see it. Then get in the habit of refreshing this list as your work changes.

The reason I chose this pattern is that I am expecting to run into this situation when I get my first job as a software developer and will probably face this problem during my whole career because there will always be some new technology I do not understand. I found the solution given to make sense and it brought up some good ideas but the action plan I disagree with a bit. I think it is a good idea to list off things that need to be worked on but I don’t think it needs to go in a place others can see. As long as the list is refreshed frequently and the skills are being worked on I think it’s fine to keep it to yourself. Of course, the part about being honest with others about not understanding things and asking questions should still apply.

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

week-5

I want to say hello in the fifth week of my blog and write a new entry. March is my favorite month, so I’ve enjoyed myself as much as possible. In Boston, there are many things to do, including drinking and attending social and entertaining events simultaneously. I have an upcoming spring break relatively soon. It will be enjoyable to go over everything and take care of tasks in preparation for the impending graduation from college.

Now that I’ve finished the information presented in chapter 4, I will go on to the fifth chapter, which is about ongoing education. Throughout my research, I encountered an important theme: “Reflect As You Work.

This pattern appeals to me since it is relatable to anyone who puts in the effort and gets things done; that way, people may reflect on what they’ve learned and how they’ve improved. This pattern appeals to me since regular introspection and questioning of one’s practices are vital to preparing for elevation to senior posts. Regular introspection and questioning of one’s courses are something I do. Even with explicit reflection and noting changes in one’s set of methods, it is possible to develop fresh ideas by observing more experienced developers and reflecting on their rules.

But, I disagree with other components of the practice by not believing that experience automatically equates to expertise; becoming proficient should be the aim.
On the other hand, it is possible to urge individuals to sketch out a Personal Practices design to investigate and challenge existing practices and contemplate the possibility of adopting alternative methods of accomplishing goals.

Have you noticed that the way you think about the work you want to do in the future or the career path you want to take as a whole has changed due to the practice?

In engaging in the “Reflect As You Work” exercise, I can get insight into the things I have accomplished, the shifts I have made, and the areas where there is room for improvement and enhanced quality of life. When it comes to employing this strategy sets the stage for my future profession, as it will allow me to save some time and avoid some hassle while also providing me with a fresh learning experience that I can share with others who face the same challenge.

From the blog Andrew Lam’s little blog by Andrew Lam and used with permission of the author. All other rights reserved by the author.

week-5

I want to say hello in the fifth week of my blog and write a new entry. March is my favorite month, so I’ve enjoyed myself as much as possible. In Boston, there are many things to do, including drinking and attending social and entertaining events simultaneously. I have an upcoming spring break relatively soon. It will be enjoyable to go over everything and take care of tasks in preparation for the impending graduation from college.

Now that I’ve finished the information presented in chapter 4, I will go on to the fifth chapter, which is about ongoing education. Throughout my research, I encountered an important theme: “Reflect As You Work.

This pattern appeals to me since it is relatable to anyone who puts in the effort and gets things done; that way, people may reflect on what they’ve learned and how they’ve improved. This pattern appeals to me since regular introspection and questioning of one’s practices are vital to preparing for elevation to senior posts. Regular introspection and questioning of one’s courses are something I do. Even with explicit reflection and noting changes in one’s set of methods, it is possible to develop fresh ideas by observing more experienced developers and reflecting on their rules.

But, I disagree with other components of the practice by not believing that experience automatically equates to expertise; becoming proficient should be the aim.
On the other hand, it is possible to urge individuals to sketch out a Personal Practices design to investigate and challenge existing practices and contemplate the possibility of adopting alternative methods of accomplishing goals.

Have you noticed that the way you think about the work you want to do in the future or the career path you want to take as a whole has changed due to the practice?

In engaging in the “Reflect As You Work” exercise, I can get insight into the things I have accomplished, the shifts I have made, and the areas where there is room for improvement and enhanced quality of life. When it comes to employing this strategy sets the stage for my future profession, as it will allow me to save some time and avoid some hassle while also providing me with a fresh learning experience that I can share with others who face the same challenge.

From the blog Andrew Lam’s little blog by Andrew Lam and used with permission of the author. All other rights reserved by the author.

week-5

I want to say hello in the fifth week of my blog and write a new entry. March is my favorite month, so I’ve enjoyed myself as much as possible. In Boston, there are many things to do, including drinking and attending social and entertaining events simultaneously. I have an upcoming spring break relatively soon. It will be enjoyable to go over everything and take care of tasks in preparation for the impending graduation from college.

Now that I’ve finished the information presented in chapter 4, I will go on to the fifth chapter, which is about ongoing education. Throughout my research, I encountered an important theme: “Reflect As You Work.

This pattern appeals to me since it is relatable to anyone who puts in the effort and gets things done; that way, people may reflect on what they’ve learned and how they’ve improved. This pattern appeals to me since regular introspection and questioning of one’s practices are vital to preparing for elevation to senior posts. Regular introspection and questioning of one’s courses are something I do. Even with explicit reflection and noting changes in one’s set of methods, it is possible to develop fresh ideas by observing more experienced developers and reflecting on their rules.

But, I disagree with other components of the practice by not believing that experience automatically equates to expertise; becoming proficient should be the aim.
On the other hand, it is possible to urge individuals to sketch out a Personal Practices design to investigate and challenge existing practices and contemplate the possibility of adopting alternative methods of accomplishing goals.

Have you noticed that the way you think about the work you want to do in the future or the career path you want to take as a whole has changed due to the practice?

In engaging in the “Reflect As You Work” exercise, I can get insight into the things I have accomplished, the shifts I have made, and the areas where there is room for improvement and enhanced quality of life. When it comes to employing this strategy sets the stage for my future profession, as it will allow me to save some time and avoid some hassle while also providing me with a fresh learning experience that I can share with others who face the same challenge.

From the blog Andrew Lam’s little blog by Andrew Lam and used with permission of the author. All other rights reserved by the author.

week-5

I want to say hello in the fifth week of my blog and write a new entry. March is my favorite month, so I’ve enjoyed myself as much as possible. In Boston, there are many things to do, including drinking and attending social and entertaining events simultaneously. I have an upcoming spring break relatively soon. It will be enjoyable to go over everything and take care of tasks in preparation for the impending graduation from college.

Now that I’ve finished the information presented in chapter 4, I will go on to the fifth chapter, which is about ongoing education. Throughout my research, I encountered an important theme: “Reflect As You Work.

This pattern appeals to me since it is relatable to anyone who puts in the effort and gets things done; that way, people may reflect on what they’ve learned and how they’ve improved. This pattern appeals to me since regular introspection and questioning of one’s practices are vital to preparing for elevation to senior posts. Regular introspection and questioning of one’s courses are something I do. Even with explicit reflection and noting changes in one’s set of methods, it is possible to develop fresh ideas by observing more experienced developers and reflecting on their rules.

But, I disagree with other components of the practice by not believing that experience automatically equates to expertise; becoming proficient should be the aim.
On the other hand, it is possible to urge individuals to sketch out a Personal Practices design to investigate and challenge existing practices and contemplate the possibility of adopting alternative methods of accomplishing goals.

Have you noticed that the way you think about the work you want to do in the future or the career path you want to take as a whole has changed due to the practice?

In engaging in the “Reflect As You Work” exercise, I can get insight into the things I have accomplished, the shifts I have made, and the areas where there is room for improvement and enhanced quality of life. When it comes to employing this strategy sets the stage for my future profession, as it will allow me to save some time and avoid some hassle while also providing me with a fresh learning experience that I can share with others who face the same challenge.

From the blog Andrew Lam’s little blog by Andrew Lam and used with permission of the author. All other rights reserved by the author.

week-5

I want to say hello in the fifth week of my blog and write a new entry. March is my favorite month, so I’ve enjoyed myself as much as possible. In Boston, there are many things to do, including drinking and attending social and entertaining events simultaneously. I have an upcoming spring break relatively soon. It will be enjoyable to go over everything and take care of tasks in preparation for the impending graduation from college.

Now that I’ve finished the information presented in chapter 4, I will go on to the fifth chapter, which is about ongoing education. Throughout my research, I encountered an important theme: “Reflect As You Work.

This pattern appeals to me since it is relatable to anyone who puts in the effort and gets things done; that way, people may reflect on what they’ve learned and how they’ve improved. This pattern appeals to me since regular introspection and questioning of one’s practices are vital to preparing for elevation to senior posts. Regular introspection and questioning of one’s courses are something I do. Even with explicit reflection and noting changes in one’s set of methods, it is possible to develop fresh ideas by observing more experienced developers and reflecting on their rules.

But, I disagree with other components of the practice by not believing that experience automatically equates to expertise; becoming proficient should be the aim.
On the other hand, it is possible to urge individuals to sketch out a Personal Practices design to investigate and challenge existing practices and contemplate the possibility of adopting alternative methods of accomplishing goals.

Have you noticed that the way you think about the work you want to do in the future or the career path you want to take as a whole has changed due to the practice?

In engaging in the “Reflect As You Work” exercise, I can get insight into the things I have accomplished, the shifts I have made, and the areas where there is room for improvement and enhanced quality of life. When it comes to employing this strategy sets the stage for my future profession, as it will allow me to save some time and avoid some hassle while also providing me with a fresh learning experience that I can share with others who face the same challenge.

From the blog Andrew Lam’s little blog by Andrew Lam and used with permission of the author. All other rights reserved by the author.

week-5

I want to say hello in the fifth week of my blog and write a new entry. March is my favorite month, so I’ve enjoyed myself as much as possible. In Boston, there are many things to do, including drinking and attending social and entertaining events simultaneously. I have an upcoming spring break relatively soon. It will be enjoyable to go over everything and take care of tasks in preparation for the impending graduation from college.

Now that I’ve finished the information presented in chapter 4, I will go on to the fifth chapter, which is about ongoing education. Throughout my research, I encountered an important theme: “Reflect As You Work.

This pattern appeals to me since it is relatable to anyone who puts in the effort and gets things done; that way, people may reflect on what they’ve learned and how they’ve improved. This pattern appeals to me since regular introspection and questioning of one’s practices are vital to preparing for elevation to senior posts. Regular introspection and questioning of one’s courses are something I do. Even with explicit reflection and noting changes in one’s set of methods, it is possible to develop fresh ideas by observing more experienced developers and reflecting on their rules.

But, I disagree with other components of the practice by not believing that experience automatically equates to expertise; becoming proficient should be the aim.
On the other hand, it is possible to urge individuals to sketch out a Personal Practices design to investigate and challenge existing practices and contemplate the possibility of adopting alternative methods of accomplishing goals.

Have you noticed that the way you think about the work you want to do in the future or the career path you want to take as a whole has changed due to the practice?

In engaging in the “Reflect As You Work” exercise, I can get insight into the things I have accomplished, the shifts I have made, and the areas where there is room for improvement and enhanced quality of life. When it comes to employing this strategy sets the stage for my future profession, as it will allow me to save some time and avoid some hassle while also providing me with a fresh learning experience that I can share with others who face the same challenge.

From the blog Andrew Lam’s little blog by Andrew Lam and used with permission of the author. All other rights reserved by the author.

week-5

I want to say hello in the fifth week of my blog and write a new entry. March is my favorite month, so I’ve enjoyed myself as much as possible. In Boston, there are many things to do, including drinking and attending social and entertaining events simultaneously. I have an upcoming spring break relatively soon. It will be enjoyable to go over everything and take care of tasks in preparation for the impending graduation from college.

Now that I’ve finished the information presented in chapter 4, I will go on to the fifth chapter, which is about ongoing education. Throughout my research, I encountered an important theme: “Reflect As You Work.

This pattern appeals to me since it is relatable to anyone who puts in the effort and gets things done; that way, people may reflect on what they’ve learned and how they’ve improved. This pattern appeals to me since regular introspection and questioning of one’s practices are vital to preparing for elevation to senior posts. Regular introspection and questioning of one’s courses are something I do. Even with explicit reflection and noting changes in one’s set of methods, it is possible to develop fresh ideas by observing more experienced developers and reflecting on their rules.

But, I disagree with other components of the practice by not believing that experience automatically equates to expertise; becoming proficient should be the aim.
On the other hand, it is possible to urge individuals to sketch out a Personal Practices design to investigate and challenge existing practices and contemplate the possibility of adopting alternative methods of accomplishing goals.

Have you noticed that the way you think about the work you want to do in the future or the career path you want to take as a whole has changed due to the practice?

In engaging in the “Reflect As You Work” exercise, I can get insight into the things I have accomplished, the shifts I have made, and the areas where there is room for improvement and enhanced quality of life. When it comes to employing this strategy sets the stage for my future profession, as it will allow me to save some time and avoid some hassle while also providing me with a fresh learning experience that I can share with others who face the same challenge.

From the blog Andrew Lam’s little blog by Andrew Lam and used with permission of the author. All other rights reserved by the author.