How Puzzles in Video Games Teach Debugging Skills

13 Mar 2022 - Steven Koontz

As a kid, I played a lot of video games. My first real experience with games came when our family borrowed a Nintendo 64 from my aunt and uncle. It came with a few classic games including The Legend of Zelda: Ocarina of Time and Banjo Kazooie. When I was younger, I remember finding these games quite intriguing, albeit very challenging. I don't think I got past even the first few levels of these games until I was much older. What was it that made them so challenging? Any time a game has a puzzle you have to solve, or a secret path you have to find, and the solution to moving forward is less than obvious, it is very easy to get stuck.

Refactor Your Code as You Refactor Yourself

13 Feb 2022 - Steven Koontz

I have found that when I go to compose a text message, an IM, an email, even this first sentence, I often follow some common patterns in the way I go about constructing the message. I always start with an intention, a reason that I am writing at all.

I recall in school how teachers would always recommend starting a paper by just spilling your brain into a draft. You have something you want to say, and it's in your head, but you have to convert your thoughts into written language. It is not often easy to find the words to express what you need to, so you write a mess, but at least you wrote it all down. Only you know what you mean, so the challenge becomes ensuring that others will understand your words the way you do by making it as easy as possible for them to read what you write.

How do you do this? Simplify. Remove all the fluff that doesn't need to be there.

Start Your Coding Engine

22 Jan 2022 - Steven Koontz

How much does it cost to tap on the shoulder of a software developer at work? We know software development takes a lot of mental energy and focus, but surely it can't be that hard to just "get back into it" after Joe walks by your desk and asks you about your lunch plans.

I like to think of the brain as the body's version of random access memory (RAM). At any given time, you have a finite amount of RAM available for your system. Just as opening and using programs consumes the available RAM on your computer, storing thoughts in your mind uses up your brain's available "RAM".

The Importance of Manual

09 Jan 2022 - Steven Koontz

WHY DO WE AUTOMATE?

This is a particularly controversial question for me to ask given that my field involves continuing to push the envelope of what is possible with automation. However, I still think it's an important question, and I think the answer lies in the concepts of "problems" and "patience".

In his book, The Subtle Art of Not Giving a F*ck, Mark Manson suggests, "Problems never stop; they merely get exchanged and/or upgraded." Time is a finite resource, whereas there appear to be no shortage of problems that need solving. It would seem that the entire point of computer science and software engineering is to identify common problems that can be automated, so that we need not spend any more time on them, and the subsequent problems that take their place are "upgraded".