vim, g++ and the joy of creation (part 1)

2 minute read

I love programming. I’ve been loving programming since before I knew what it even meant. Programming is my favourite hobby, my main occupation and my fun.

What’s always fascinated me about programming is that it’s the most accessible – and at the same time, the most powerful – way to create things. For me, programming has always meant creating, and doing so with no boundaries other than my imagination and my knowledge of the tools.

My first attempts at programming happened on an unsuspected tool: Microsoft Excel. I was in high school, and one day I created a very naive decimal-to-binary converter for fun. It was nothing special, only handled numbers up to 4194304 and had a dreadfully colorful interface.

Binary Calculator
So many colors.

Despite that, I was happy with it and started making more and more of such utterly useless “tools”, just for the fun of mixing all the possible Excel functions together to achieve something different. At some point, I even started creating a “game” which…didn’t look very appealing in all honesty.

Project Apocalypse 1.0
Wonder if my GTX 650 can handle it...

I named it “Project Apocalypse” – since I knew it would take an apocalyptic effort to make a game in Excel I guess – and it had a weird “gameplay” where the player would type characters in specific cells to perform actions like buying equipment, upgrade it and use it to battle different enemies. Fancy idea, uh?

Then came university

…and with it, the COOL STUFF. I finally met an actual programming language. Not the one which would become my crush, but one I’ve been working with to these days (not without our highs and lows). My first C++ laboratory blew my mind to new levels of “oh my god, I can do things with this”. I could finally build an actual sequence of actions, with logic as complicated as I wanted. And, of course, I got very complicated.

Holy Crap++

Needless to say, the first thing I did with my newfound powers was writing the “Project Apocalypse 2.0”, with a shiny new command line interface and MORE DAMN COLORS.

Project Apocalypse 2.0
#improvements

So, in my first months of exploring the fascinating world of actual programming languages and compilers, I wrote a game consisting of a single file of 4854 lines of code. It was a mess of nested loops, tons-of-parameters subroutines, 367 lines of global variables and using namespace std;.

But it worked! Kinda.

Those days I had the sensation that I was just at the beginning of my programming adventure. And man I was right.

Today, 5-ish years later, I still love programming. I’m as enthusiastic as that day to fire up my text editor, gaze at the yet-to-be-filled page as my mind goes wild about the possibilities that it yields. And I know for sure I still have a lot to learn.

…juuust as I have to learn how to blog: I never even mentioned two out of the three topics in the title. I’m going to talk about them in the second part of this post, as I feel my ramblings in this first part are somewhat useful to introduce the topic.

Stay with me, I promise we’ll get to the point!

And of course, thanks for reading this far ;-)