What Language Should I Learn Next?
June 11th, 2007 : Austin SmithEvery year, I learn two new languages and write (or at least design) one; I’ve done this for four years now and I keep up my skills in each language. I usually take about a month per language. I always learn one in January and one in June (well, June 21 to the end of July actually) January, I learn a language I don’t want to know but feel like I should. My birthday is in June, so I feel like it’s a good point to reward myself with a “candy” language. Help me pick a new language to learn!
My seven languages learned (oldest to newest) are Java, Visual Basic, TCL, Python, Lisp, Ruby, and C#. I probably shouldn’t have bothered with Java since I learned it shortly thereafter at school, Visual Basic and TCL I’ve almost forgotten, Python, Lisp, and Ruby are still in my arsenal, and I should write a new application in C# if I want to keep it up. I always build a project with each language I write, read a lot of open source code in each language, and read lots of technical discussions and try to absorb the sense of the community (the C# people all seem more interested in feeding their kids than producing killer apps and the Lisp people are all uber-geeks). Oh, and if you want to use the above list as a compendium of the languages I’ve had some exposure to, I knew C, C++, Perl, and PHP before Java. The most useful languages I’ve learned were Java and Ruby (so far). I’ve also picked up assembler in school, and I accidentally learned Haskell in May after MinneBar.
Anyways, I thought I’d let y’all in on my process. It’s been the same since the beginning of this little learning exercise and won’t change this go round.
- Buy “the” book on the topic. Usually O’Reilly.
- Read the book. No programming allowed.
- Read some open source code (if there is none, the language isn’t useful to me–this is a rule as of 1/2005).
- Pick a problem (usually of personal interest or curiosity) and set out to solve it in my new language of choice.
- Continuously refer to my book, the community, and bug the crap out of the kind veterans on IRC.
- When project is complete (but not until) decide how to proceed with the knowledge. Was it a simple learning experience? Will I want to use this language again?
So, I pose to you, reader, this question. Which language should I learn this summer? I start next Thursday, and my options so far are ActionScript (for Apollo usage), Objective C (Mac programs), Coldfusion (irritate the other ArcStone developers), or a breach from tradition to really brush up on C (I want to convert part of the ArcSite core to a compiled PHP extension). Thoughts? I’m not limited to those languages. ActionScript and ColdFusion CFCs seem to be so close to ECMA compatible that they may be too lightweight. However, ActionScript would pose some interesting challenges in animation which I’ve yet to tackle. I’m at a loss. Help? Oh, and skipping this year’s summer language just because I’m busy with Wonderfile is not an option.











