eWeek described the top 5 programming languages to learn (if you want a job) as:

  • PHP
  • C#
  • AJAX
  • Javascript
  • Perl

Not the most exciting list. My top 5 languages to learn (if you want to learn something) are:

  • Scheme — The essentials of programming without syntax. It also allows for some crazy metaprogramming.
  • C — It’s everywhere, has become the defacto syntax, and it forces you to learn about manual memory management, pointers, arrays, bits etc…
  • Simple assembly — Lets you deal directly with registers and interrupts. I learnt Z80 assembly but I would recommend learning PIC, AVR or MSP430 programming. It’s much more fun than it sounds and it makes you appreciate every other language out there.
  • Haskell — Pure, functional, lazy and strongly typed. A head-job but it will stretch your thinking.
  • Prolog — A declarative language, you describe facts and rules and hopefully Prolog does the rest.

The top 5 languages that I would like an excuse to learn are:

  • Erlang — A process based language with lots of interesting ideas.
  • Lua — An extremely light-weight and fast scripting language.
  • Objective Caml — A statically typed functional language.
  • C# — Java like but with some additional good ideas.
  • Squeak — A language with its own OS and GUI!