Like literally every single person in the history of computer science, I got started programming because I wanted to make video games. Joking aside, once I went to dinner with various developers and designers I worked with at BitPay. A quick survey revealed that well over half of us originally learned to program because we wanted to make video games, so even if that isn’t how literally every single person in the history of computer science got started, I’d bet money that a statistically significant portion got started that way.
The important part is that I wanted to make games. I didn’t even care what kinds of games. I just wanted to make something. So one day in seventh grade when I was bored at my dad’s office (he was/is a professor at the community college in Charlotte), I decided to Google how to make games. I have a short attention span, so I gave up and returned to my dad’s office after ten minutes. I looked through his bookshelf to see if I could find anything about how to make games. One book in particular stuck out: Python Programming for the Absolute Beginner by Michael Dawson. The reason this stuck out was because in my intense ten minute web-surfing session, I happened upon a tutorial about how some dude made a game in a week using Python. Now, I didn’t know what programming was, let alone what Python was, but if I could make games with it, I was down to clown. I flipped through the book to see if there was anything about video games in it. Sure enough, the writer of the book was a game developer, and the final project in the book was a clone of Asteroids.
With some motivation from my heart and some financial incentive from my dad, I followed the book closely and learned the fundamentals of programming. I got about halfway through my first time, got bored, and stopped for a few months. When I was in eighth grade, I had another rush of motivation and started over, going all the way through the book this time. I even did all the recommended projects at the end of each chapter. My Asteroids clone was beautiful, and the book had a final project: to make my own game. So I made simple but fun top-down zombie game complete with characters I drew with GIMP and gunshot noises I recorded by slamming books shut. I was so proud of myself, and although I did not make another game for years, I was only getting started on my quest to build cool shit.
In my freshman year of high school, my dad also convinced me to join an FRC robotics team. FRC stands for “FIRST Robotics Competition”, and it is a relatively common activity for engineering-oriented high school students to partake in. Every year, a game is announced, and teams have six weeks to build a ~150 pound robot to compete in the game. This particular team was not based out of a high school, but the community college; it was intended for kids who were homeschooled or did not have a team at their school. I was not very enthusiastic when I originally joined, but I stayed on the team for all four years of high school and thoroughly enjoyed the experience. There was a lot of unfortunate bureaucracy as far as the team’s management went, but I learned a lot from my time as a programmer for the team, and cannot discount how important it was in bringing me where I am today.
That’s a decent overview of my programming experience before I got my first job, and sets the stage for many of the projects I will end up talking about in future posts.