The Coding Journey over the Decade

Cool Coding Picture

It is that Birdo.

As the new decade 2020 has come upon us, I‌ thought it would be nice to reflect upon my decade of computer programming.

It all started in 2010…

The Start

When I‌ was a child, I‌ really enjoyed playing video games and legos. One of my favorite video games at the time was Legend of Zelda. It was the coolest game with its puzzles, lore, and characters.

I wanted to build a video game just like it.

That Christmas, my father gifted me my first laptop. Several months later, he gifted me with my first programming book.

It was called Invent Your Own Computer Games with Python.

Little did I‌ know the adventure I‌ would embark on.

I‌ devoured the book from start to finish. Hand typing many of its programs. Once I‌ finished the book, I‌ needed to write my own programs. This was no easy feat.

It took a great deal of trial and error to understand all the concepts in the python book.

Once I‌ felt sufficiently comfortable with Python, the real journey began.

The Journey Thus Far

Here is the rundown of what happened after learning Python.

I wanted to build a dungeon game similar to The Legend of Zelda, so I‌ began building it in Python. After a while, I‌ thought it might be better to build it in a different programming language.

So I‌ started language hopping.

I‌ began looking at Ruby for a little bit. After Ruby, I‌ jumped over to C# with the .NET framework. After C#, I‌ switched over to Java.

After Java, I‌ switched back to C# with the Unity3D Game Engine

This was all while developing one game. The game was never developed, but I learned many things about programming as a result. I did end up building games here and there that were much simpler than what I‌ had in mind for my master project.

Eventually, my interest in programming and technology began to expand past video game development.

During late Middle School, I‌ got interested in Mobile App development for a couple of months and taught myself Android development. I‌ also did some hybrid app development as well.

It was also during this time that I‌ dipped my toes into hardware and electronics with Arduino. Arduino is a cheap programmable board that lets you interface with different sensors and electronic components. It’s pretty nifty.

Once High School began, I‌ started getting interested in Web Development. This led to me becoming familiar with a variety of back-end and front-end frameworks such as Rails, Django, Express, and Laravel on the back-end with Angular, React, or JQuery on the frontend.

When I‌ was really in the thick of learning computer programming, I‌ was probably putting in about 3-4 hours a day into programming on a school day.

All of this goes to show how chaotic and varied learning programming can be on the individual level.

Resources Used

When I was first starting out, my main source for learning was through Stack Overflow and YouTube tutorials. I‌ also used tutorial sites like CodeAcademy to level up my skills.

I‌ have found that when it is programming language-specific, many languages tend to have really good documentation. A good example of this is the documentation/wiki that Python has for the programming language.

At the end of the day, it really boiled down to using Google to find the right resources when the situation demanded it.

Finding what I‌ liked

As I‌ explored computer programming, I‌ constantly needed to find ways to keep myself motivated and engaged. I‌ found a project-based approach to be the best approach.

I would start with a vivid idea like a dungeon game and try to learn what I‌ needed in order to build that. This helped sustain motivation more than learning a language/tool just for the sake of learning it.

There are many things to do in computer science and programming.

When I‌ had the extra time available, I‌ would spend it building as many different things as I‌ can. As I’ve grown older, I‌ have started focusing on the quality of the projects, not the quantity.

Conclusion

So far I’ve learned about mobile app development, web development, and game development. However, there is so so much more to explore. There is the theory, networking, hardware, systems, and artificial intelligence.

Computer Science can also be tied with other disciplines such as medicine, finance, business, etc.

I‌ can’t wait to see where the next 10 years take me!