This is the second part in a series describing my journey as a programmer. If you haven’t already, please read Part 1, The First Great Epiphany.
I continued building tiny, incomplete games with Game Maker for a couple of years, never really making anything substantial but still learning a lot. And while I was enjoying the act of making games, and I certainly enjoyed playing games, I didn’t really enjoy playing my games. Partly because they weren’t very good, but also because I knew how they worked, how to beat them, and I didn’t get the same feeling of discovery that I got playing other games. And as the enjoyment of playing the games diminished, so too did the enjoyment of making them. I wasn’t sure whether I should be programming for the sake of programming, or programming for the outcome.
At the same time, I was spending a great deal of time playing an
online game, which will remain nameless. The client for playing this
game had an IRC chat window below the main game window, which I would
use to chat with my friends while playing. One of my friends was also
a programmer, and he knew how to make IRC bots. If I recall
correctly, his bot simply helped administer the channel—
So over the next few weeks and months, my friend taught me how to write IRC bots. I honestly can’t remember at all now what language I was writing in, at the time I wasn’t even really aware of general-purpose programming languages so I didn’t really care. I just saw it as an advanced feature of the IRC client that would let me do all sorts of interesting stuff when things happened in the channel.
I started out with really basic features—
One of the great things about building a bot in a multiplayer game is
that you have a ready-made group of users. People to show off your
work to, to enjoy it with, to give you feedback and suggestions. Over
time I added a bunch of features that gave you information about the
game we were all playing—
I finally started learning programming in a formal setting in my last
few years of high school, where I took a class teaching Visual Basic.
Visual Basic is a general-purpose programming language, and I could
finally use it to program outside the context of some specific
environment, to make anything I wanted. But I never really got around
to doing anything with it outside of class—
For our mathematics classes, we had programmable calculators. The calculator came with a full reference manual for the programming language it supported, so it didn’t take long before I read the whole thing and started making programs and sharing them with my friends. Some of the programs were silly games, but the more advanced ones would not only solve some types of homework problems but even generate all of the required working as well.
So why the hell—
Especially for people getting started with programming, it’s really
important to find a purpose—