Monthly Archives: September 2019

The Importance of Testing and QA

When I first started learning Python, I had no idea what I was getting myself into. I wasn’t sure what programmers did to make things work. I didn’t really know what programming meant besides typing code.

I was eager to learn though and make cool things. So without knowing even knowing what a loop is, I started writing a Scrabble game. I spent what I remember being countless hours trying to get that thing to work. But I had to copy and paste a lot of code over and over. Frustrated, I kept learning.

After a few short lessons I realized I could do it better, so naturally I opened a new terminal and typed:

$ touch scrabble2.py

And I began fresh with my new knowledge of loops. Then I repeated this process when I learned about functions. And again when I learned about classes. Looking back to my first Python projects file, there are only scrabble4.py, scrabble5.py and for some reason scrabble53.py. I’m a strange mixture of relieved and disappointed that I can’t find the first 3 iterations, and I really hope there weren’t 47 more.

So I was eager, but I did not take the time to learn all the tools in the toolbox before I tried to build a house. On one hand, it was a good lesson and a good way to solidify what I knew. On the other hand, it was a royal waste of time.

Tools make our jobs easier. When I discovered Git and the concept of version control, I was shocked. No more appending numbers to a rewritten version of source code! And I can see the changes I just made when adding a new feature! When I discovered automated testing, I was just as excited. When I started Android development and began reading about software architecture, it opened up a whole new world and solved a lot of problems I had when I tried to build things myself.

Programming is not the grind I thought it was before I started learning the tools. It’s a much more creative process. It’s a lot more fun. It is not banging your head against the keyboard because it won’t work, but rather realizing there’s an error in your logic* and having the chance to find it. And software development isn’t even mostly coding; it is mostly design.

Quality assurance and testing allows programmers to do their job efficiently. They are tools that prevent us from banging our heads against our keyboards in 6 months when we add a feature to code we’ve long forgotten. Learn the tools. They’re there to help.

*Or a coworker’s logic, but don’t bang their head against the keyboard either.

From the blog CS@Worcester – Inquiries and Queries by ausausdauer and used with permission of the author. All other rights reserved by the author.

Initial commit

“Strange about learning; the farther I go the more I see that I never knew even existed. A short while ago I foolishly thought I could learn everything – all the knowledge in the world. Now I hope only to be able to know of its existence, and to understand one grain of it. Is there time?”

— “Charlie Gordon” in the novel Flowers for Algernon by Daniel Keyes

In my last year in my bachelor’s degree in computer science, I know I will soon have to dedicate much of my time to a single niche. Luckily in my career of choice, a single niche requires a wide array of skills and experiences and an ever-growing set of tools, but there is an uncountable list of topics to pursue and peruse outside of that domain.

While my education will keep me busy, I am lucky to have a job where I can apply what I learn week-by-week, and researching lessons further in depth will be both helpful and sometimes necessary to do my job well. This blog will serve as reflection on these topics and my experiences.

From the blog CS@Worcester – Inquiries and Queries by ausausdauer and used with permission of the author. All other rights reserved by the author.

AN INTRODUCTION

Despite the foolish blog title, this blog will hopefully be anything but; and not just for your sake but mine as well, as I’m being graded for it! I will be utilizing this blog for documenting both CS343 and CS443 class work and sharing other CS-adjacent content that I’m working on.

As such, it is appropriate that I introduce myself: My name is Brandon, I’m a senior CS student, doing both Software Development and Big Data Analytics, and am the PAL tutor for CS242 this Fall semester. If this blog is any indication, I like to keep things light, I love getting out, either up a mountain, on a lake, or bike trail. Between my job building computers and school I get plenty of time indoors as well.

OLYMPUS DIGITAL CAMERA

I unfortunately have not had much time to pursue independent studies or projects but I’m hoping after graduation to build my first program, likely in Windows, as well as my own professional website. No offense to WordPress but I don’t think this will bolster my portfolio.

Well I’m not sure how to end this so what if I did with my cat?

From the blog CS@Worcester – Press Here for Worms by wurmpress and used with permission of the author. All other rights reserved by the author.

About Zac’s Blog

This blog will be used as an overview and discussion log for Computer Science material and learning. This blog will be used as a map to track my progress and to share any issues or helpful information.

From the blog cs@worcester – Zac's Blog by zloureiro and used with permission of the author. All other rights reserved by the author.