HagenSV

My Story

Published: 08-18-26

Many of my friends and family tell me that I have a “natural talent” when it comes to programming. Looking back, this natural talent was not something I started out with. It is something I developed with a combination of patience, practice, and determination.

I can actually pinpoint the exact moment my path towards a career in computer science began. With one seemingly inconsequential decision, my future was set in stone, though I didn't realize until much, much later.

My First Programming Experience

My first experience programming most likely was around 6th grade with Scratch. I don’t remember much about what I did in scratch, but block coding never really resonated with me.

The next year, I took a half-semester programming class in 7th grade, but, again, I don’t quite remember much from that class either.

Programming really began to resonate with me in 8th grade. I was in another half-semester programming class. In this class, we programmed in Python on a Raspberry PI.

One of our assignments was to write a program to build a house in Minecraft. Minecraft is by far my favorite game. I was so excited to go home and plan out the house. I put down a reference block to act as the marker for where the player would be standing, then I built a house, taking note of the relative positions so that I could copy them over to our program the next day.

The final project of the class was a hangman program, also in Python, which we programmed along with the teacher. All we had to do was follow along with the code she wrote. When it came time to turn in the project, however, my code wouldn’t run. Somewhere along the line I must have missed something.

Later on that year, I was thinking about that program and it was bothering me. I needed to understand why it didn’t work. I pulled up the code to look at it and…

I had no idea what I was looking at.

I couldn’t fix the program.

I didn’t understand the code.

I didn’t need to understand the code, I had copied all of it from the teacher.

That wouldn’t suffice.

I needed to know.

That was the moment my journey began.

Learning On My Own

I don’t recall much of how I taught myself Python. I can’t remember what tutorials I watched or what websites I used. The one thing I do remember is frustration.

Learning to code was difficult.

I encountered bugs that only appeared under specific circumstances. I learned that error messages could be misleading and that a syntax error reported on one line might actually be caused by a missing colon on the previous line. Every mistake was a puzzle that needed to be solved.

Over time, I developed by building small projects.

Most of them were text-based games. One was a Dreidel game that I created during a Holocaust remembrance week at school when we were learning about Jewish culture. Another was a project I called Python Survival.

Python Survival was a text based survival game heavily inspired by Minecraft. You could chop trees, go mining, craft gear, go fishing, and more! It was very poorly written, and I went back and rewrote it multiple times. Now that I’m thinking about it again, perhaps I’ll revisit the project.

I continued on my journey of self-taught development up until junior year of high school, where I took my first programming class since 8th grade: AP Computer Science Principles.

Expanding my Skills

In AP Computer Science principles worked with Code.org's AppLab. In AppLab we could use block coding, or a subset of Javascript. I opted to write my code in Javascript.

For our first assignment I was prepared to dive in head first. I wanted to leave an impact. I discovered Code.org’s documentation and was reading that to understand what was within my grasp.

I ended up making a simple game about dodging asteroids. You controlled a spaceship along a single axis to dodge asteroids flying towards you. The game also would have coins you could try to collect while dodging the asteroids. The game was complete with 4 levels, each with a unique objective, an endless mode, and statistics. Using Code.org’s storage api, I was able to save statistics to the player’s account and reload them whenever they came back.

Overall, the class was an excellent overview on the field of computer science. It introduced me to topics such as networking and cryptography and introduced me to my second programming language Javascript.

The following year, I took AP Computer Science A. In that class, I learned Java and many concepts related to object oriented programming along with it. Concepts such as classes, objects, methods, arguments and parameters, inheritance and polymorphism.

For our final project in that class we had to effectively demonstrate that we learned multiple concepts by implementing them in a project of our choice, we could even work out with a partner if we chose.

Outside of class, I had been doing some of my own work learning Java’s Swing graphics libraries. To put what I learned to the test, I decided to make a game.

One of my friends joined me on the project, so we taught ourselves git to collaborate effectively. We didn't understand branching, so things got messy with merge conflicts, but we managed.

My primary responsibility was creating the game's core framework. This involved me creating user interface components and systems that the rest of the game relied on. One of which was a sprite class that handled rendering images to the screen and could be extended by different game objects to customize behavior.

It was by far, the most complex project I had worked on. More importantly, it was my first experience creating software as part of a team.

Pathway to a Career

By my senior year of high school, I realized that I was spending increasing amounts of time programming throughout the years. Programming was now the activity I consistently returned to in my free time. With that, the decision to study computer science in college was easy.

Throughout college, I worked on a wide variety of projects, both inside and outside the classroom. Every project introduced new challenges and pushed me to expand my skills beyond what I already knew. I also completed two internships, giving me the opportunity to apply what I had learned in professional environments and gain experience working on real-world software.

Looking back, what stands out most is that my career didn't start with a grand plan. It started with a broken Hangman program and a simple desire to understand why it wasn't working. That curiosity led me to teach myself Python, build games, learn new languages, collaborate with other developers, and eventually pursue computer science professionally.

The technologies I use today are very different from the ones I started with, but the motivation remains largely the same. I still enjoy figuring out how things work, solving problems, and building things that didn't exist before.

What began as an attempt to fix a bug eventually became a career.