I have a soft spot for QBASIC, because it was the first programming language I picked up back when I got my first PC at the age of 14. I wanted to learn programming even earlier than that, but my parents refused to buy me a PC (and I didn’t have the spare funds to buy one myself at that age). I always wanted to be a programmer so I could write my own video games (I did get a Nintendo Entertainment System at the age of ten – talk about messed up priorities and opportunities…) and of course the first programs I wrote were computer games. These games were nowhere near as complex or refined as Black Annex, but this quote from the aforelinked article resonated strongly with me:
I didn’t want to ‘learn’ how to make a game—I realized I already knew how to make a game. I just had to go back to the tools I knew.
I haven’t tried my hands on creating a video game in more than a decade, and it’s probably because I find the process too daunting and I lack the faith in my skills and tools to pull off anything worthwhile. Which is a silly reason for not even trying.
It also reminded me of an article by James Hague titled Write Code Like You Just Learned How to Program, in which he shares a fun little anecdote and reaches this interesting conclusion:
It’s extremely difficult to be simultaneously concerned with the end-user experience of whatever it is that you’re building and the architecture of the program that delivers that experience. Maybe impossible. I think the only way to pull it off is to simply not care about the latter. Write comically straightforward code, as if you just learned to program, and go out of your way avoid wearing any kind of software engineering hat–unless what you really want to be is a software engineer, and not the designer of an experience.