Category Archives: Week-0

Introductory Blog #3

Hello to all readers new and old, thank you for taking your time to read this brief introduction to my blog. My name is Andrew George, and I am a senior at Worcester State University. For the past couple years I’ve been studying Computer Science and slowly adding skills to my repertoire. I am once again looking forward to researching topics pertaining to my major, this time with a focus on the Software Design process. I do encourage you, if you have not already, to read my previous introduction pieces found on this blog as those have a more in depth explanation of where I started and how I got to this point today. Thank you once again and until next time!

-AG

From the blog CS@Worcester – Computer Science Progression by ageorge4756 and used with permission of the author. All other rights reserved by the author.

Re-Introduction: SP24

Hello my name is Andrew George and I am a student at Worcester State. Currently I am a Junior and nearly at the finish of my academic program, that being Computer Science. The road to reaching this point has been a long one, however through my struggling I’ve gained insight that I would have otherwise lacked. I speak about my academic progression here (in my original introduction post), so if you are interested in how I’ve reached this point you may read that attached blog post.

Within the three months of last semester I’ve learned so much more about Computer Science, and frankly it was both eye-opening and relieving. Up to this point my only experience with CompSci was the programming aspect of it. While yes programming is completely fundamental, I was craving something more from my studies. Fortunately this hunger was satiated by three of my classes last semester.

The first was a Computer Architecture class, which provided deep analyses on how hardware processes user input, and what that input looks like with machine language. Overall I found this to be the most fascinating of my courses thus far as the concepts we were learning helped click in place with information I’ve learned outside of school. I even found myself working with ‘virtual memory’ through increasing the maximum page size of my PC’s memory.

The next of these classes was a Database Design course. My experience with databases was little to none prior to entering this class. The closest experience I had was working with pseudo big data sets in my AP Computer Science class many years back in high school, which even that didn’t explain much. Needless to say everything I was learning in this course was completely new to me. I found that working with SQL was a nice change of pace, as I primarily only worked with Object Oriented Languages up until that point. My greatest accomplishment from that course was creating my final project around a java program which allowed integration from a database that I created. While yes the Java part of the project did need more time to finish, I was incredibly impressed with my progress and the product.

The last new course I took was a Software Management course, which I had little to no idea what to expect from it. Despite having little initial expectations for the course, I was able to take away many valuable lessons (and tools) from the course. I think taking this course was imperative for preparing me for working in the industry, as it familiarized me with both the tools and processes teams work with. Some content was familiar such as Agile, as I learned the basics of it at a previous college, but other topics such as repositories were completely new. Most topics covered in this course help serve as the glue to keep team-based projects together.

With all these classes considered I had a really effective previous semester in terms of learning new things. It taught me a very important lesson that was ‘maybe it’s important to step away from the compiler every now and then’. I could’ve used the time spent in these classes to focus on my direct coding skill, but instead I learned that will come with time. It’s very important to learn about Computer Science as a whole, rather than pin-holing my focus into ‘just coding’.

Until Next Time

– AG

From the blog CS@Worcester – Computer Science Progression by ageorge4756 and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns: Wearing your White Belt

Last week I had posted about my first look at ‘Apprenticeship Patterns’ by Dave H. Hoover, and Adewale Oshineye. In it I discussed how the little bit I had read at the time had left a lasting impression on myself and how I view my current software development skill set (you can read more about it here: https://wp.me/pdn9fs-1q). Since then I have read more and will be starting a multi week long endeavor to go over some of the patterns that stuck out the most to me. A pattern that stuck out to me in Chapter 2 titled; ‘The White Belt’ will be what I discuss today.

Many of you may already realize what it can mean to wear a white belt. Generally those who wear it are considered inexperienced, untaught, or just starting out. What many might not realize however is that it is not only a marker of one who is inexperienced but one who is seeking to learn.

The book starts this chapter by describing a situation many software developers may have found themselves in at one point or another. You have developed a deep understanding of your first language but it feels like their pace of self-education has slowed down or even stalled out entirely. The solution presented is to set aside previously knowledge as you approach new situations.

It is often said that at a young age you absorb information like a sponge and as you age you just cannot learn like you did as a child. Maybe the reason we learned quickly as a child is because you had nothing else to reference to try and make sense of a new subject. When learning a new programming language, it can sometimes be beneficial to start with just that language in a vacuum without thinking of how it compares to other languages.

I found myself that learning how to create a REST API backend required me to unlearn anything prior and start from the beginning. One of the authors, Dave Hoover took this approach as a family therapist to keep from feeling they had an expert knowledge on the troubles of different families. Therefore I will leave everyone with a challenge from the authors themselves. Find an opportunity to unlearn something, ideally something that forces you to set aside past experiences like moving from Java to C++. Many are in general afraid to set aside their past experiences for fear of being seen as silly and inexperienced however you will know just as much weather you openly admit it or not. Being willing to face a new challenge without the burden of past expectations can sometimes lead to unexpected solutions.

From the blog CS@Worcester – George Chyoghly CS-343 by gchyoghly and used with permission of the author. All other rights reserved by the author.