Minecraft, and how I began programming
It all started when I was about 14 years old. Minecraft was in it’s Beta release, with Notch still chest-deep in the code base. At the time I was helping a friend run the Minecraft branch of their gaming community. After spending 100’s of hours setting up the server, configuring the plugins, and enlisting help in building the in-game world, we got around 10–20 concurrent players, amazing my teenage self. The work of the staff finally paid off.
Throughout this time, I kept up with the maintenance of the server, and as I optimized the server configuration and plugins, I began to learn about computers in the best way possible for me — hands on, solving real-world problems. Looking back, this exciting side-job sparked my interest in computer science.
After downloading and configuring dozens of plugins, I started to look into creating my own. I learned what Java was, and begin hooking into Minecraft’s popular server API at the time, Bukkit. By changing a few properties, spinning up the test server, and seeing my results materialize, the feedback loop was truly addictive.
you can find the project here
I would spend hours through the night, into the morning coding. My first plugin project was Fly Payment, which allowed a player to use commands to fly. Flying would cost either in-game currency, or items, pre-configured by the admin.
After a few weeks of coding, I came out with my first plugin. Within a few weeks of release, I got 100’s of downloads, which incentivized me even further. As I learned more about best practices, I went through multiple entire plugin rewrites, applying my new knowledge, adding newly requested features, and ultimately releasing an improved product.
I also made a single-player mod, which attempted to merge the world of Skyrim with Minecraft. Compared to multiplayer plugins, single-player mods were exciting to create, because one could change the skins and textures of in-game assets, and utilize a much less restrictive API.
During my entire plugin/modding process, my gut told me this is what I should do. So I did it.
While I was learning Java and programming my Minecraft plugin, I took a Computer Science class in freshman year of high school, where we created basic websites with HTML and CSS, and used Visual Basic to create some games. The class was interesting, but at the time I was starting to self teach myself Java, so going to Visual Basic felt like a step back.
Then, after transferring to a new high school at the start of my junior year, I had an excellent opportunity: free college classes.
My local college offered a free class per college semester, and with no computer science department at my new school, I decided to take night classes. Junior and Senior year I was taking programming, security, and engineering courses.
The classes were typically 4PM — 9PM on various weeknights, and I loved it. I was learning an enormous amount about programming, and was excited to put my newly learned skills to the test. More importantly, after my first class, I knew I wanted to pursue Computer Science.