Welcome to my personal journey in software development! I'm an 18-year-old enthusiast from Michigan, currently diving deep into Computer Science & Math at the University of Michigan. In the digital realm, you might encounter me as lunathanael, a username that's become a part of my identity in this fascinating world of technology.
My passion for coding sparked at age 10, fueled by an avid interest in video games. The idea of being able to create my own games, coding them into existence, was a thrilling prospect. It was the beginning of my fascination with how computers, through simple yet swift calculations, could produce incredible outcomes.
This journey began with Scratch, my first foray into coding. It was here that I developed exciting 8 bit shooters, engaging story-driven games, and even tackled the challenge of Brute-Forcing SHA-256.
Scratch wasn't just a platform for me; it was a foundational experience that opened my eyes to what's possible with code. I explored the basics, learning about variables and the efficiency of reusable "Blocks." Most significantly, I discovered my genuine interest in the field through my experiments with animations and game development.
Displayed on the right is one of my initial projects – an 8-bit shooter that, despite its elementary-school origins, I'm quite proud of. It's a reflection of my early creativity and learning process. While I realized that Scratch had its limitations, it set the stage for my next step in coding: Python. My journey continues, away from drag-and-drop, as I delve deeper into Python, aiming to bring more complex and refined ideas to life.
Embarking on my Python journey, I started with the basics, much like everyone else, dabbling in creating calculators and beginning with a Brent factorization program. This initial foray sparked a realization: I could harness Python's capabilities to assist with my homework. It was a game-changer; using Python to find roots and perform other static calculations was not only efficient but also incredibly empowering. Witnessing how swiftly and repeatedly a calculator could execute mundane math was a revelation.
The adventure escalated when I ventured into developing a tic-tac-toe game and its accompanying AI. It was exhilarating to code an AI that played flawlessly and quickly. This experience piqued my interest in the realm of artificial intelligence. The realization that, in theory, every move made by the computer could be replicated by a human, yet the computer executed these steps with unparalleled speed, was captivating.
Following this, I tackled creating a Sudoku Solver. This project was a turning point; it exposed Python's limitations in speed. Motivated by this insight, I began to explore C++. I re-implemented the Sudoku Solver in C++, and further challenged myself by developing a program to find Sudoku puzzles with specific numbers of hints.
My fascination with Game Theory led me to embark on coding a chess game in Python, integrating an Alpha-Beta AI. However, the AI's sluggishness in Python spurred me to transition to C++. Hours spent coding in C++ rapidly advanced my proficiency. This journey from Python to C++ was not just about learning different programming languages, but also about understanding and leveraging their unique strengths for various computational challenges.