Author Archives: Elias Boone

Apprenticeship Patterns Introduction (CS 448)

I had thoroughly looked through chapter 1 “Software Craftsmanship Manifesto” and the introductions to chapters 2-6, and I had found some things that had made me feel anxious. I am not stating that there is anything wrong with chapter 1 or the introductions, but rather I learned about some things that I think I should have learned about earlier. One particular part of chapter 1 that caught my attention was a paragraph of “What is Apprenticeship”, where it had teased at something that relates to a struggle that I have; “Most people won’t have an opportunity to work in a formal apprenticeship where they are being mentored by software craftsmen. In reality, most people have to claw and scratch their apprenticeships out of less-than-ideal situations.” chapter 1 mostly described in short about how Apprenticeship is more about your “journey” rather than those that helped cultivate the goal that you have longed for, and that you have to find the answers all by yourself. As someone who has very little experience with Apprenticeship, it feels more like trying to put down all of your problems in pursuit of accomplishing much greater than your initial expectations.

I had said before, I do not have anything that I found wrong with anything I read from chapter 1 or the introductions to chapters 2-6. On the contrary however, I felt that the reading had not explained the “Accurate Self-Assessment” introduction very well. I may need to read more about it in the future, but I had felt that the thought of “comparing yourself to others to improve” did not sit very well with me. The reason I felt that you should not compare yourself to others is because we are all have our sights set on different ambitions. While I can understand why others find this part of the reading useful to find some inspiration for their own goals, we still have to find our answers all by ourselves at the end of the day. The “Perpetual Learning” introduction further explains that we need to have the desire to seek out knowledge regardless of our own circumstances in order to be inclined to take in all the tools and skills needed to achieve our goals.

Having explained chapter 5, I find that the introductions to chapters 3, 5 and 7 seem most relevant to me after reading all of chapter 1 and the following introductions. I think in my personal opinion that having a great interest in your field of study or your life-long dream requires that you need to look into your interests more in-depth and decide whether you would like to continue your career on your current trajectory or if you want to divert to a different career as a means of exploring your own interests.

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

Exploring the LibreFoodPantry and Thea’s Pantry

As someone who has been learning about Computer Science for 7 years, I have always wanted to have a shot at being able to create an open-source project both for my career and creativity. When reading through the Values from the LibreFoodPantry Main Page, specifically about the “FOSSisms”, I had very closely related to the 11th FOSSism, the FOSSism that stated “It’s not what you know; it’s what you want to learn”. I had found this particular FOSSism inspiring as I have always wanted to create open-source software for solving particular tasks, even if I did not know anything about the software or the items that the software is trying to process. FOSSism 11 also helps to clarify the importance of FOSSism 3, where the goal is simply to “Give back” to the community, as I am hoping to use the things I learn from working with open-source software to help me with Software Engineering in the future.

After reading through the different items about the LibreFoodPantry, I delved into the documentation under the Thea’s Pantry repository to explore more about the open-source software being used. While I did read through the functionality of the software, some being more familiar than others, I was really intrigued with the User Stories under the Developer documentation. I read through the stories about how a user would think over designing a particular software. Reading through this part of the documentation, I had found that in order for a particular part of the system to function as intended, a user would have to make great use of a real-world problem in order to brainstorm new features to contribute to Thea’s Pantry. I am hoping that these user stories can help me use my current skills as a Computer Scientists to help make a great contribution to Thea’s Pantry.

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

Software Architecture Patterns (Token Blog)

While I do not have a great understanding of Software Architecture as much as I do with programming the Backend of that same software, I still take into appreciation the looks of its design.  When I took sight of “The top 5 software architecture patterns: How to make the right choice” written by Freelance writer Peter Wayner, one of the things that was eye-catching was how the Software Architecture Patterns were described throughout this blog.  While the Microservices Architecture was one of the only architectures that I had familiarized myself with while reading through the different architectures, I had been more interested in the endless vacuum of strengths that the Space-based architecture had when seeing the benefits that it poses.  The article had given a very understanding of all the Software Architectures by showing their strengths and their weaknesses, making it easier to see where their limits are foreseen.

I chose this article since I searched far and wide for a topic that I least understood, but still would be inspired to follow through reading about it for fulfillment.  The article does a really great job at grabbing the reader, as the most complex part about trying to understand a Software Architecture is when you are trying not to break your own code with a Software Architecture that poses a great risk in causing your program to crash unexpectedly.  For the simplicity of the reader, Wayner had given either a telling example or a visualization that would help the reader have a simple explanation of what the structure is designed to do for your program as its structure.

The biggest takeaway I had after reading this article was that I was still able to learn that each architecture shapes your program in a way to help better understand what to do with your program next.  However, Software Architecture is still only the beginning of what you need to do to fully design your software.  A software may still need changes that an architecture alone cannot fix, but what an architecture should do is help you see the full picture of your own work that you have done.  A Software Architecture is only a frame in the end, but the program you create would be best suited for an environment that is needed to put it on full display.

https://techbeacon.com/app-dev-testing/top-5-software-architecture-patterns-how-make-right-choice

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

REST API (Token blog)

When I was first introduced to the concept of an API, a shortened abbreviation of Application Programming Interface, I never thought of it being used far outside the scope of Computer Science.  However, as I revisited some software that I used in the past and observed the current software I worked with recently, I was more than surprised by the fact that an API is universally used across the Internet.  For this blog, I explored a blog called “10 Most Popular Frameworks For Building RESTful APIs” written by Developer Advocate at Moesif, Preet Kaur. In this blog, the author explained that when deciding on the API framework to use, you needed to choose one that uses a programming language that you are familiar with, but you can also use in spite of its shortcomings.  Further down the blog, she gave some examples of popular API frameworks that are used by many developers; one of those frameworks that was mentioned was Express JS, a framework I am familiar with.

One of the biggest contributing factors that brought me to use this article for this blog is not only the different frameworks that Kaur had given examples of, but also where you can find and learn about them.  Reading this blog got me hooked on the many different types of API frameworks that I could look at to familiarize myself with each that may give me a better understanding of the specifics of REST API for my drive toward a career in Software Engineering.  Even if the frameworks in question were written in programming languages that I am not as efficient in programming in, I still believe that this blog has helped me in understanding the overall meaning of building an API for use in creating applications and beyond.

My biggest takeaway from this blog is that the API framework you use to build an application, software or other kind of design is not only dependent on your skill at programming or engineering, but also what your goal is with using the framework you choose for your creation.  While this blog was more general than the previous ones I read through, I still stand with a vision that the API framework that I use will only be as helpful as the skills I use to develop and engineer my path to a greater goal in creating the perfect software.

Reference: https://www.moesif.com/blog/api-product-management/api-analytics/10-Most-Popular-Frameworks-For-Building-RESTful-APIs/

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

Software Framework

After reflecting on the previous blog that I had written about coding, I pondered about what would happen if I were to work with software, and I immediately wanted to consider something about a software’s own making. For this blog, I decided to focus on Software Framework, which many programmers and organizations make great use of in the workforce. I took great interest in an article written by Tiago Monteiro, fittingly titled “What is a Software Framework?” It starts by giving the reader a simple concept where a man uses an axe to cut trees and then cuts wood to use for his fireplace for his family. When the chainsaw was introduced into this analogy, it related really well to programming, where you either start with fresh new code or make use of an existing framework done by another user to build your program. Reading more into the article, I found that there were advantages and disadvantages to using a software framework. While a framework is how anyone would start to form their own software, nobody has much freedom to alter the framework, limiting the use of a software framework to the functionality it was designed for.

I chose this article for my blog, because I believe that this article might help me in understanding a bit more about Software Engineering. Although the author of this article is a high-end Computer Engineer, his article could still give me an idea of what I should visualize when I start to learn more about designing software. A software has to have a framework to maintain functionality so it does not become inept, just as a computer will stop working if one of its most important parts either burns out like a wildfire or starts to malfunction upon reaching the end of its half-life.

My biggest takeaway from this article is that there are lots of software frameworks with many functionalities that are made useful in different manners.  Just as we try to create the framework to integrate smart machines into our appliances and everyday tools, we try to do the same with creating framework in our software as well.  We give life to our software the same way we try to create new computers, by giving it a spark of new and innovative programs for the greatest user and technological experience.

Reference: https://www.freecodecamp.org/news/what-is-a-software-framework/

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

Javascript Code “Smells”

In this blog, I will go over the code “smells” pertaining to the Javascript language. For this topic, I picked a specific blog post called “Javascript Code Smells: 7 to Watch out For” written by .NET software developer Carlos Schults. It delves into this topic with lots of general details that explain some bad coding practice that can lead to your code having many problems. One of the main points that the blog emphasized was that long code alone was not a bad thing rather, the difficulty of reading lines of code that became too complex to handle makes these coding “smells” important to look back on when writing code.

The reason why I picked this topic is because I have had trouble with Javascript that I had never experienced before with other programming languages such as Java or C. One of the biggest factors that made it harder to understanding Javascript was its different and more difficult use of syntax. One of the coding “smells” the blog goes over was the difference in using the equality operand in Javascript compared to Java. Since I have been more involved with other programming languages such as Java than Javascript, learning the different coding structures of Javascript was going to take a while for me to grasp, especially since coding software such as OpenAPI uses Javascript to define its data and endpoints.

My main takeaway after reading this blog was that I should continue to further explore Javascript, while also maintaining the knowledge that I currently have when it comes to organizing the code I write. Reading this article about Javascript coding “smells” was very reassuring since I may have to find a similar reference to keep my coding consistent even after learning Javascript and not let it worsen with more and more complex functions for future coding. Having already had lots of experience with other programming languages in the past, I can use what I have learned from this blog and make better use of Javascript moving forward. 

Reference: https://www.testim.io/blog/javascript-code-smells/

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

Week 1 (Introduction)

Hello, my name is Elias Boone. I am a Senior at Worcester State University, and my major is in Computer Science with a Software Concentration and a minor in Music. Since this will be my last year at Worcester State, I am taking time with this class to eventually figure out what topic I should focus on for the Capstone class next semester given my interests and background.

For this first week, nothing much has happened other than the few preparations I have made for this class and with my schedule. I have had this professor before in some of my previous class in my major, but all of my classmates are completely new people that I will have to adjust to for next week. I am a little bit nervous about this class since we will be going over lots of technical programming topics. While I am very fluent with the programming language Java, I am not very good with the other programming languages, so I will have to gain an understanding of some of the other programming languages that may be in this course. Other than that, I will have to wait and see how this class goes as the semester begins!

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