My Programming Journey image

My Programming Journey

From Minecraft mods, to plugins, to learning front end and eventually Full Stack development, this is my programming journey.

2024-07-29 Auxdible

Programming.

Many people are passionate about programming, and I'm one of them. Every day, developers create code that powers the devices that we use so frequently in our lives! I've loved programming since an early age. I've been a self-taught programmer for almost seven years now. I've rarely actually spoken about or documented my journey, so having a blog site now gives me the perfect opportunity to talk about my journey from developing Minecraft mods to studying Full Stack Development and building my first Discord bot!

Humble Beginnings.

As a child, I had an interest in video games. I played games like "Animal Crossing: City Folk," "Super Mario Bros: Wii," and "Mario Kart: Wii" on our family's Nintendo Wii system. One of my friends from school wouldn't stop telling me about a video game called "Minecraft."

Something along the lines of:

"THIS GAME IS AMAZING! Have you heard of Minecraft? You look like you would. Do you know CaptainSparklez? DanTDM?"

After learning about Minecraft and watching it on our family computer, I begged my mother to buy me the game. Eventually, we struck a deal. I don't remember exactly how we compromised, but I believe it was on yard work. After buying Minecraft, which at the time was 4.99$ USD on the App Store, I played it so much and loved it. Despite enjoying MCPE for as long as I did, I noticed something was missing.

Where are the mods? How do I download mods for Minecraft?

At the time, modding support for MCPE was limited, as the game itself was lackluster and written in C++, an entirely different language from the main version of Minecraft. I learned that MCPE was a port of Minecraft's computer counterpart, Minecraft, currently titled "Minecraft: Java Edition" as of 2017. Christmas of 2012 arrived, and I learned how to change a website's text using HTML through Inspect Element (F12) on Chrome. My parents took notice to my interest in programming. I was excited for Christmas as I had asked my parents for Minecraft on the family computer. Explaining the difference between the version of Minecraft I owned and Minecraft on the computer was a difficult task. On that Christmas, I received the gift of Minecraft on the family computer, which probably changed my life. I learned to download Minecraft mods and learned quite a bit about computer viruses, as my parents warned me about the dangers of downloading random files over the internet.

Joining my first server.

In 2013, I had recently become a homeschooled kid. At the time, my parents were looking for quality homeschooling resources. They found a site online for other homeschooled children featuring courses for homeschoolers and a Minecraft server! Here I would meet many of my friends I still know today (you know who you are 😉) and continue to fall in love with Minecraft.

Youth Digital.

Searching for more quality homeschooling resources related to programming, my parents had noticed my interest in Minecraft mods. For Christmas of 2013, I was gifted a course on building Minecraft Mods through a site called YouthDigital. To say I enjoyed it was an understatement. I would try to spend any free time studying the course and the easy Minecraft modding tools they provided. I would share my mods with a few of my friends from Minecraft.

Seeing how much I enjoyed the modding course, my parents decided to continue to invest in my programming interest and got me Youth Digital's Server Design course. I built my first Minecraft server using their tools, and finished the course a week later.

I didn't stop there.

After finishing the server and building many other prototype servers that went away from what they taught in the original curriculum, and using some of the things I self-taught myself, including custom resource packs, how to make custom sounds, custom mob AI, and more. I built my first official server and posted my first video on Youth Digital's new video portal. Although people received it well, Sadly, I couldn't grow the server because I couldn't share the Minecraft Server IP on Youth Digital.

A friend.

After finishing my server, I met a friend off-server on Youth Digital that I had recognized from the homeschooling Minecraft server I had joined years ago! He had also learned server design from Youth Digital, and we would collaborate to release a server and make a video showcasing our skills to the rest of the Youth Digital portal. It was our most well received project yet, and we even met two to three people off YD that we would invite to our server. It would eventually fade into obscurity, but I would be motivated to continue my journey into programming and building things in Minecraft.

2 years later.

Continuing to search for places to use my programming talents, I was very technologically adept from a young age, but at the cost of my social life lacking and not going outside often.

I would get another modding course for Christmas, an extension of the original Minecraft mod course that would teach me how to build new dimensions in Minecraft. Dimensions are new worlds that add an entirely new perspective to the game. Later that year, I would release my first Minecraft Mod to the public, which eventually would have the same fate as many of my other projects.

At the time, I would know a lot about basic fundamentals such as the "Declaration, Instantiation, Implementation" type of variable knowledge. Outside of that, I had no knowledge of the inner workings of Java, such as the garbage collection system, how to build a Main class file, or how to make mods with Forge, the most popular Minecraft modding API.

Udemy.

I developed an interest in Minecraft plugins after learning about the functionality behind the homeschooler Minecraft server I was a part of. I started "Google'ing away!" to study what I would need to know to code Minecraft plugins.

After being reunited with the other developer from our Youth Digital server, we made my first Minecraft Plugin, the HardcoreMode plugin! To say it didn't meet expectations was an understatement.

The difference between plugins and mods are massive. Mods are client-side modifications to the Minecraft game, adding new items, textures, blocks, and dimensions! On the other hand, plugins are changes to the game run on a Minecraft server. Despite being limited to server-side changes, developers have found ways to use their limited tools to create fully-functioning RPGs and minigames!

I desired to do that.

At the time, Udemy had a sale. The majority of their courses went 80% off! I was ecstatic, and found a great Minecraft plugin course by Stephen King where I would learn all the fundamentals of Java, including how to build plugins using the Spigot API, the most used Minecraft plugin API. My programming career changed for the better. I developed many small-scale Minecraft plugins over the next year, only releasing one, Poof. Later, in 2021, coming back to plugin making I would make a remedy for a few of the fun items without crafting recipes that arrived in Minecraft's 1.17 update, 1.17's Missing Items. I would eventually sign up for Discord and join the Udemy course's Discord server. There I would meet a group working on a Minecraft server and backseat most of the development, only creating one plugin that went unused due to poor quality. To say I learned a lot about the Minecraft server culture outsite of my small bubble was an understatement! It's terrible.

Terribly hostile. Haha.

Everybody needs breaks.

After my run-in with the Minecraft server community I became burnt out of coding. I spent another two years of my life focusing on getting through school.

October 2021 rolls around. We are almost out of the COVID pandemic. I wanted to see if getting back into programming was something I was interested in. I asked my parents for advice. A week later, they got back to me. They had found someone in my local neighborhood for me to shadow! My first day shadowing, I learned the basics of Full Stack Development, including what a tech stack is and how web applications run. I fell in love. I had never felt so motivated to learn something in my entire life. That same week, I had started taking the courses from freeCodeCamp.org. Once again, this changed my programming career. I was learning to build websites with HTML and CSS, and started picking up JavaScript.

Pinging, and ponging.

At the time, I wanted to experiment with Node.js. So I learned a bit about Discord's developer API with a javascript framework called "discord.js." I built my first Discord bot, which I titled "Auxdibot." The original Auxdibot had two commands called ping and pong. It was a start! Despite this, I would eventually go back to building websites.

My first websites.

At the time, I would get to building my first websites using HTML and CSS. I self-taught myself to use gh-pages and uploaded my first websites under auxdible.github.io! Soon I would learn about GitHub student, get myself my domain (auxdible.me), and upload my current website, which uses React and Redux!

Pretty early in 2021

Summer 2021

Start of 2022

2023

Continuing the self-taught path.

After finishing the Responsive Web Design and JavaScript Algorithms and Data Structures from freeCodeCamp, I started to look at college as an opportunity. Looking at my passion of self-teaching and finances, I decided to skip dual enrollment to self-teach myself. Skipping college isn't for everyone. There are people who prefer a more linear path, and it's okay to go to college for that. I decided my journey would take a different route. I continued taking courses from freeCodeCamp and eventually earned myself the Front End Development Libraries, Data Visualization, Relational Database, Back End Development Libraries, and Quality Assurance certifications, teaching me almost everything required for building Full Stack applications!

I decided to teach myself the MERN tech stack. I went through several tutorials and numerous YouTube videos until I decided I needed to escape the "tutorial hell."

Projects, projects, projects!

After my failed Discord bot escapades a couple months ago, in March of 2023, I devoted myself to working on projects full time. Within the span of a month, I had my first project. Auxdibot! In concept, the coolest multipurpose Discord bot ever made. In execution, it was pretty good. Not what I expected it to be, but it's aged well.

Within the past few weeks, I decided to teach myself Next.js, a versatile and lightweight JavaScript framework, so I studied. Eventually, I finished the Next.js tutorial project, a simple blog site! After learning Next.js, I learned Tailwind CSS through various courses, such as this amazing one by Fireship. After studying everything I needed, I would eventually build this blog site from scratch without using any of the code in the tutorial project.

And now we're here.

I've been contributing to GitHub on my own projects all the time now to sharpen my programming skills further. I've started to do LeetCode, which has been enjoyable. Alongside all of this, I have continued to build my programming connections and have been enjoying a much more active social life thanks to my local church.

My journey from playing games and making Minecraft mods to developing Full Stack applications has been a long and ongoing journey. Thank you to the lovely people who have constantly supported me on my journey, from my parents, to my extended family, long-time friends from Minecraft and real life friends. Thank you sincerely.

"It takes a village to raise a coder" ~ Quincy Larson, freeCodeCamp.org

👋 Until next time,

steven/auxdible