Games are fun! They are fun to build and fun to play. They can be an exciting conduit to learning new programming languages or new programming techniques. Here are a few of the games I've built over the course learning to program that have allowed me to learn interesting new concepts.

Twisted Towers

I wrote this game as my final project for Harvard's course, CS50, and I'd call it my first program written completely independently. It helped me get a sense of how to transition to object-oriented programming, as opposed to the procedural programming I'd learned up to that point. Twisted Towers is a tower defense style game that I wrote with Python's Pygame library.

Connect 4

Who doesn't enjoy a good board game? Test your wit against Mr. Roboto, the simple AI I built for this game. I wrote connect 4 in python. As you make your moves, information about your move choice and the board's status is sent via AJAX (Asynchronous Javascript and XML) back to the python code located on the server. Then, your move is processed, Mr. Roboto's counter-move is processed, win conditions are checked, and everything gets sent back with updated data for the game board. Since, this server talk is asynchronous, we don't need to reload this whole page for every move, just the game board. Fun!

Moth Hunt

This was the first game and one of the first programs I ever wrote. It's written in Scratch, a learner programming language created by MIT. If you have someone interested in programming, I highly recommend pointing them to this language as a first try. It was a fun experience that got me excited to learn more programming with more useful languages.