Category Archives: Week 4

Don’t Repeat Yourself!

When it comes to writing code, the one thing you want to keep an eye on is that you’re not using the same line of code you used on multiple projects. The don’t repeat yourself principle also known as the DRY principle aims to solve problems is knowledge of duplication. This idea is applied through all levels and phases of software development, most of the time it’s used while making classes. When making classes you end up implementing the same logic in multiple parts of the code. A solution is to remove the common functionality and only implement the parts that are different.

Another example of repeating yourself happens while you’re storing data. You start to create unnecessary attributes in your table, usually, you can derive those attributes from other attributes since they’re mutually dependent on each other. The problem with duplication is that things can change and once you make one change you have to change all of its representations. Making changes requires analysis, In other words not making any proper changes will lead to opposite representations of the same knowledge. These duplicates can happen in multiple ways someone could make a mistake while making the design, and a strict deadline can make people feel rushed to meet that deadline.

DRY is a principle and there are three methods to implement that principle. First is abstractions which are commonly used when making classes, when multiple classes are shared and come with common logic you simply want to abstract the logic into a superclass that each class inherits. The standard object-oriented program has a lot of practices that encourage the DRY principle for writing reusable, readable, and maintainable code. Second automation is a project case for developers. It’s to make sure that developers are communicating with each other so they don’t repeat finished work and talk about any problems they’re having. Last is normalization, this case is for designing databases. Repetition is common in a lot of data representation but creates redundant data, which is hard to maintain. You would want to extract the cases into a separate entity then the source references that entity. The goal is to ensure that the data is consistent and distributed correctly. Data normalization removes repetition in data, making the database more flexible. 

The reason why I picked this topic is because I tend to repeat myself a lot thinking that it wouldn’t be too much of a problem for me to end up having problems with my code and making my code a little more confusing. By using this principle and using the three methods it helps me make sure that my code is readable, reusable, and easy to maintain. I feel like this principle is important to use for everybody who is making a code by themselves or as a group.

Sources: https://www.plutora.com/blog/understanding-the-dry-dont-repeat-yourself-principle

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

CS@Worcester – Zack's CS Blog 2023-10-04 12:20:04

Week 4: Understanding Software Licenses

This week I will be writing about software licensing and why I chose this topic. I chose to write about software licensing because I personally do not have much prior knowledge about the topic, so I thought that this would be an interesting (and useful) topic to learn about.

To start off, what is a software license? A software license is a legally binding contract between the software creators and the people who are using the software. The license specifies the conditions of using the software including how the user can use, modify, and distribute the technology and its source code.

Upon initial software usage, the end user usually signs an end-user licensing agreement, or EULA, to contractually agree to the terms stated by the license. Abiding by the EULA is important for both the end user and the developer.

Benefits for the developer:

Benefits for the user:

  • Protects the developer’s rights
  • Allows full control of the usage of the software
  • Prevents users from performing undesired actions that may infringe on the terms of the license
  • Clarifies how the software provider uses your private information
  • Prevents the user from paying for unnecessary tools
  • Keeps the user up-to-date on how the technology can be used

Different Types of Software Licenses (5)

  • Public Domain – Allows anyone to use, modify, and distribute the software. The developers are essentially surrendering all rights they would have under copyright laws.
  • Copyleft (Restrictive) – A type of open-source license stating that any future versions of the software must be open-source, or following the same copyright stipulations, like the source code.
  • GNU Lesser General Public License (LGPL) – A weaker type of Copyleft where the user can modify the software, implement it into their own unique software, and license their software how they see fit.
  • Permissive – Another type of open-source license, minimal amount of restrictions on what users can do with the software. However developers can protect their intellectual property by specifying some restrictions.
  • Propriety – The most strict type for users, and the most protective towards developers. Users are not allowed to modify, copy, or distribute the software. Most used for commercial software.

The resource used was chosen because it was relatively short, yet concise by clearly explaining the basics to understanding software licensing. After reading this blog, I learned a lot as I did not know much about the major types of software licenses and that there are specific licenses that fall under each major type. Therefore the article had a positive impact on me. Because my career goal is to become a software developer, understanding what and how software licenses work will be crucial throughout my entire developer journey. I expect to apply the concepts learned in not only my professional career, but also in my personal life as an end user.

Resources:

Galano, Fernando. “Understanding Software Licensing.” BairesDev Blog: Insights on Software Development & Tech Talent, 22 Mar. 2022, http://www.bairesdev.com/blog/understanding-software-licensing/. 

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

The Importance of Building Concrete Skills

Being able to build a set of skills that could be one day used by a team of craftsmen is crucial when walking into any profession. Although it’s a little hard for anyone to go into a job that requires one to know a set of skills. It should be clear-cut on the application. But I do agree on attempting to get assimilated on those skills whenever possible because in some cases, these employers want to be able to rely on the fact that you won’t be a liability to the workflow. This goes for a lot of jobs once again. I used to work a construction job when I was 17-18 years old, it was when I wasn’t so sure if I wanted to pursue a career in software craftmanship and I already had a lot of knowledge in the construction trade, four years of knowledge to be exact. The man who acts as a “master” figure to me told me that competence is everything in the professional world, and having little competence is better than having no competence.

It’s also important to expand the competence because it could expand one’s reputation of being a good craftsman for other employers to look at. I would also like to add that being able to work on the skills that one might lack is also important to expand one’s value to the team. Interviewers or hiring managers want to be able to understand your worth in a company, being able to list off certain tasks that can be done to an issue is invaluable, and being able to apply the knowledge that one has is more important. From experience, it also helps to have an experience that proves that you have the concrete skill, no days it’s not enough for employers to see that you know a certificate or course that you might have taken.

It’s more important for the employer to recognize that you have applied the skill set to other, similar jobs or projects. This pattern is a very general one that will be brought up countless times in apprentice’s come-up but, non the less it’s a very important pattern that can be applied to more than just software craftsmanship.

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.

week-4

 Hello, here is a blog post for the fourth week; I feel stressed and relaxed simultaneously because the beginning of March is winding down for enjoyable activities and nearby spring break.

Now that I have reached the end of chapter 3, I will turn my attention to chapter 4, which discusses apprenticeship models. Throughout my reading, I found a pattern that could prove highly useful; I named it “Find Mentors.” I like this pattern because it starts with becoming a software craftsman; you first need to find mentors. You can do this by enrolling in a training course or teaching yourself independently.

This pattern is one of my favorites because it has a “recommend” option. This pattern appeals to me because it includes a “recommend” option that assists someone who needs direction and assists in making better decisions for entering the tech field or interested-related tech. This helps someone who needs advice and assists in making better decisions for entering the tech field or interested-related tech.

Nevertheless, there are some aspects of the practice that I can’t entirely agree with because there isn’t a lot of information or because it’s uncommon for somebody who needs or can’t have a mentor or guidance because there are a lot of different reasons or options when there is additional time. I like to express my disagreement with these aspects of the pattern in the following way: I could not find and have any mentors. After all, it was covid because it affects people’s attitudes, and they needed to focus on themselves rather than trying to predict what would happen next.

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?

This practice pushed me to think more about expanding my network connections to get more experience and work alongside people in the same field. For suggested action in finding mentors by signing up for an active mailing list, lurk, and seek outpatient teachers for informal advice at the next conference.

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-4

 Hello, here is a blog post for the fourth week; I feel stressed and relaxed simultaneously because the beginning of March is winding down for enjoyable activities and nearby spring break.

Now that I have reached the end of chapter 3, I will turn my attention to chapter 4, which discusses apprenticeship models. Throughout my reading, I found a pattern that could prove highly useful; I named it “Find Mentors.” I like this pattern because it starts with becoming a software craftsman; you first need to find mentors. You can do this by enrolling in a training course or teaching yourself independently.

This pattern is one of my favorites because it has a “recommend” option. This pattern appeals to me because it includes a “recommend” option that assists someone who needs direction and assists in making better decisions for entering the tech field or interested-related tech. This helps someone who needs advice and assists in making better decisions for entering the tech field or interested-related tech.

Nevertheless, there are some aspects of the practice that I can’t entirely agree with because there isn’t a lot of information or because it’s uncommon for somebody who needs or can’t have a mentor or guidance because there are a lot of different reasons or options when there is additional time. I like to express my disagreement with these aspects of the pattern in the following way: I could not find and have any mentors. After all, it was covid because it affects people’s attitudes, and they needed to focus on themselves rather than trying to predict what would happen next.

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?

This practice pushed me to think more about expanding my network connections to get more experience and work alongside people in the same field. For suggested action in finding mentors by signing up for an active mailing list, lurk, and seek outpatient teachers for informal advice at the next conference.

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-4

 Hello, here is a blog post for the fourth week; I feel stressed and relaxed simultaneously because the beginning of March is winding down for enjoyable activities and nearby spring break.

Now that I have reached the end of chapter 3, I will turn my attention to chapter 4, which discusses apprenticeship models. Throughout my reading, I found a pattern that could prove highly useful; I named it “Find Mentors.” I like this pattern because it starts with becoming a software craftsman; you first need to find mentors. You can do this by enrolling in a training course or teaching yourself independently.

This pattern is one of my favorites because it has a “recommend” option. This pattern appeals to me because it includes a “recommend” option that assists someone who needs direction and assists in making better decisions for entering the tech field or interested-related tech. This helps someone who needs advice and assists in making better decisions for entering the tech field or interested-related tech.

Nevertheless, there are some aspects of the practice that I can’t entirely agree with because there isn’t a lot of information or because it’s uncommon for somebody who needs or can’t have a mentor or guidance because there are a lot of different reasons or options when there is additional time. I like to express my disagreement with these aspects of the pattern in the following way: I could not find and have any mentors. After all, it was covid because it affects people’s attitudes, and they needed to focus on themselves rather than trying to predict what would happen next.

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?

This practice pushed me to think more about expanding my network connections to get more experience and work alongside people in the same field. For suggested action in finding mentors by signing up for an active mailing list, lurk, and seek outpatient teachers for informal advice at the next conference.

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-4

 Hello, here is a blog post for the fourth week; I feel stressed and relaxed simultaneously because the beginning of March is winding down for enjoyable activities and nearby spring break.

Now that I have reached the end of chapter 3, I will turn my attention to chapter 4, which discusses apprenticeship models. Throughout my reading, I found a pattern that could prove highly useful; I named it “Find Mentors.” I like this pattern because it starts with becoming a software craftsman; you first need to find mentors. You can do this by enrolling in a training course or teaching yourself independently.

This pattern is one of my favorites because it has a “recommend” option. This pattern appeals to me because it includes a “recommend” option that assists someone who needs direction and assists in making better decisions for entering the tech field or interested-related tech. This helps someone who needs advice and assists in making better decisions for entering the tech field or interested-related tech.

Nevertheless, there are some aspects of the practice that I can’t entirely agree with because there isn’t a lot of information or because it’s uncommon for somebody who needs or can’t have a mentor or guidance because there are a lot of different reasons or options when there is additional time. I like to express my disagreement with these aspects of the pattern in the following way: I could not find and have any mentors. After all, it was covid because it affects people’s attitudes, and they needed to focus on themselves rather than trying to predict what would happen next.

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?

This practice pushed me to think more about expanding my network connections to get more experience and work alongside people in the same field. For suggested action in finding mentors by signing up for an active mailing list, lurk, and seek outpatient teachers for informal advice at the next conference.

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-4

 Hello, here is a blog post for the fourth week; I feel stressed and relaxed simultaneously because the beginning of March is winding down for enjoyable activities and nearby spring break.

Now that I have reached the end of chapter 3, I will turn my attention to chapter 4, which discusses apprenticeship models. Throughout my reading, I found a pattern that could prove highly useful; I named it “Find Mentors.” I like this pattern because it starts with becoming a software craftsman; you first need to find mentors. You can do this by enrolling in a training course or teaching yourself independently.

This pattern is one of my favorites because it has a “recommend” option. This pattern appeals to me because it includes a “recommend” option that assists someone who needs direction and assists in making better decisions for entering the tech field or interested-related tech. This helps someone who needs advice and assists in making better decisions for entering the tech field or interested-related tech.

Nevertheless, there are some aspects of the practice that I can’t entirely agree with because there isn’t a lot of information or because it’s uncommon for somebody who needs or can’t have a mentor or guidance because there are a lot of different reasons or options when there is additional time. I like to express my disagreement with these aspects of the pattern in the following way: I could not find and have any mentors. After all, it was covid because it affects people’s attitudes, and they needed to focus on themselves rather than trying to predict what would happen next.

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?

This practice pushed me to think more about expanding my network connections to get more experience and work alongside people in the same field. For suggested action in finding mentors by signing up for an active mailing list, lurk, and seek outpatient teachers for informal advice at the next conference.

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-4

 Hello, here is a blog post for the fourth week; I feel stressed and relaxed simultaneously because the beginning of March is winding down for enjoyable activities and nearby spring break.

Now that I have reached the end of chapter 3, I will turn my attention to chapter 4, which discusses apprenticeship models. Throughout my reading, I found a pattern that could prove highly useful; I named it “Find Mentors.” I like this pattern because it starts with becoming a software craftsman; you first need to find mentors. You can do this by enrolling in a training course or teaching yourself independently.

This pattern is one of my favorites because it has a “recommend” option. This pattern appeals to me because it includes a “recommend” option that assists someone who needs direction and assists in making better decisions for entering the tech field or interested-related tech. This helps someone who needs advice and assists in making better decisions for entering the tech field or interested-related tech.

Nevertheless, there are some aspects of the practice that I can’t entirely agree with because there isn’t a lot of information or because it’s uncommon for somebody who needs or can’t have a mentor or guidance because there are a lot of different reasons or options when there is additional time. I like to express my disagreement with these aspects of the pattern in the following way: I could not find and have any mentors. After all, it was covid because it affects people’s attitudes, and they needed to focus on themselves rather than trying to predict what would happen next.

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?

This practice pushed me to think more about expanding my network connections to get more experience and work alongside people in the same field. For suggested action in finding mentors by signing up for an active mailing list, lurk, and seek outpatient teachers for informal advice at the next conference.

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-4

 Hello, here is a blog post for the fourth week; I feel stressed and relaxed simultaneously because the beginning of March is winding down for enjoyable activities and nearby spring break.

Now that I have reached the end of chapter 3, I will turn my attention to chapter 4, which discusses apprenticeship models. Throughout my reading, I found a pattern that could prove highly useful; I named it “Find Mentors.” I like this pattern because it starts with becoming a software craftsman; you first need to find mentors. You can do this by enrolling in a training course or teaching yourself independently.

This pattern is one of my favorites because it has a “recommend” option. This pattern appeals to me because it includes a “recommend” option that assists someone who needs direction and assists in making better decisions for entering the tech field or interested-related tech. This helps someone who needs advice and assists in making better decisions for entering the tech field or interested-related tech.

Nevertheless, there are some aspects of the practice that I can’t entirely agree with because there isn’t a lot of information or because it’s uncommon for somebody who needs or can’t have a mentor or guidance because there are a lot of different reasons or options when there is additional time. I like to express my disagreement with these aspects of the pattern in the following way: I could not find and have any mentors. After all, it was covid because it affects people’s attitudes, and they needed to focus on themselves rather than trying to predict what would happen next.

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?

This practice pushed me to think more about expanding my network connections to get more experience and work alongside people in the same field. For suggested action in finding mentors by signing up for an active mailing list, lurk, and seek outpatient teachers for informal advice at the next conference.

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.