As a programmer, I learn way too many programming languages. I suppose one can never know too many languages, as they all have their pros and cons. The problem arises when I start to forget a language a month after I learn it. This happened to me way too many times over the past year to be a coincidence. Last winter I learned Flash and made a game to test my abilities. I really knew it well, but then I didn’t touch it in forever. In the Spring I learned Ruby on Rails in anticipation of my internship, and I also knew it pretty well, until I neglected it until the summer.
I have decided to do weekly programming exercises. My class schedule for the Fall is rather sparse compared to the 21 credits I took last semester, so I expect to have at least enough free time to fit in one small personal programming project per week. What I am going to do is, every week starting on August 24, come up with a programming project. It could be a simple program to solve a problem I’ve been having, or it could be a traditional exercise, like something out of a programming challenges book (I have a bunch of those!). Either way, the idea is to create a unique (read: I’ve never programmed a similar thing before) program every week to keep my general programming skills sharp. Also, I plan on implementing the project in three different programming environments, to force myself to learn various parts of all these languages. The languages I have chose to start off with are all fairly modern programming environments:
I am already thinking about the various projects I’m going to do in the coming weeks, and I think it will be a fun exercise (at least for me). I’m hoping at least a few of the programs I create are of use to others, but this is primarily meant to help me gain some programming experience and keep my knowledge of these three particular languages at a good point. With any luck, I’ll use them all so much that I remember them for a long time.
The restriction I’m going to put on myself is that I’m only allowed to use one third party plug-in per language per project. This is to force myself to learn the built in features of the language and not just rely on plug-ins for absolutely everything.