Why I Learn to Code

It all started way back.

I've been close to a computer since an early age, I think it's about the first year of elementary school that I have a computer in my house. I was mesmerized by the technology back then. and in about 3th grade, the internet is becoming more accessible. I've been surfing the internet ever since.
I can almost say that I grew up with the computer.

Some people notice this admiration of mine for computers, and decent amount of people said "If you liked computers so much you should be a programmer!"
A programmer? I didn't know what exactly programmer do back then but I know that it has to do something with computers. so being a programmer is always been my dream, here's a photo of my yearbook in elementary school, I write "Programmer" in the What do you want to be when you grow up? section.

I really liked to find out on how to make things. I googled how to make VFX / visual effects, and I learned about Windows Movie Maker and eventually Adobe After Effects. after I can make the visual effects myself I make some short videos with my friends in elementary school and putting some superhero visual effects and some action videos with a pistol that we've made from paper. they seems to like it, so making short videos is like our favorite thing to do. besides that, I also googled how to make a video game and found a software called RPG Maker VX, it's an engine to make RPG games easily, but I didn't manage to finished the actual game, making video games is hard. I talked about this more in the Other Interest section.

I thought everything I do at this point is programming, I was still intimidated to found out what it's really about since I heard that it's really hard and have math involved.

Minecraft.

Minecraft was the best game ever created, Minecraft gives you the ability to find the creativity in yourself that you didn't even know you had. you can do anything and build anything you want there, once you find a good server to play at, you'll get addicted and play for hours.
I started playing minecraft in around 5th grade ~ 8th grade, and there's this thing called Redstone, which is like an electricity circuit system on the game, I was really into it. you can build traps, hidden doors, and automate stuff, it's basically like a simplified programming in the game,
And what i love the most about the game is when i'm doing some project, I always think about it all day, and have some kind of a curious mind to solve the problem that my project had, like how the redstone contraption doesn't work properly, how to implement a redstone contraption in the building without making the whole thing looks asymmetrical. and ever so often I had dreams of me doing the project and usually found the solution first thing in the morning. i'm not the only one that experience this, most of my friends also experience this as well. that just explains how thought-provoking the game was.

And another thing that i found interesting in minecraft servers is the plugins. which is an addition to minecraft system itself that the original minecraft doesn't have.
However, server with alot of plugins is very vulnerable, and one of my favorite things to do in minecraft is to find those bugs and use it to become the number one player on the servers, it's like cheating, i know. but i was young back then (lol), one of my friend found out about this and suggest an idea to build a server together since he thought I knew how server plugins works, truth is I only found the bug from playing the game alot, but I always wanted to have my own minecraft server, so I said yes to my friend, then he rent a cheap vps for the server to run, and I manage the server plugins for the first time.
I thought to myself back then "is this what coding is about?" because it's not so bad, you just download some file, put it to the plugins folder via the FTP and customize some things in a .json file, here's an actual screenshot on what it looks like.

I spend a lot of time customizing the .json file of dozens of plugins, and tried to make the best minecraft server ever, spoiler alert we didn't release the server at all because I spend too much time tweaking the server instead of launching it. but in the positive side, I became more confident to the world of code because I enjoyed spending time on it. and also the interface have a fancy colorful text and a black background color that most of programming IDE looks like lol.

CS50 (now)

I found out about CS50 really randomly, I found out about it from the podcast that I listen when i'm commuting. it's like some unknown force is telling me to actually learn programming that I always wanted for years.

It's an Introduction to computer science class that everyone can take for free online. it's taught by David Malan which is the coolest teacher ever, I got so much respect for the guy, he really loves in what he do. and he got so much great analogy to explain a certain subject. CS50 has assigned problem set for you to finish every week which is really good for me to have a certain goal every week.
The task of the first problem set is to make something with Scratch, a simple programming language that represented by a puzzle blocks. and the second problem was to make a stair shape with a bunch of "#" using C language and you're supposed to do it in a for loop. it was challenging, I didn't solved it right away. I was thinking about how to solve it all day and eventually find the solution first thing in the mornin- wait, it's that good feeling again when i'm doing minecraft project years ago.

I finally found out what programming really about, and decided to learn how to code.