Geez, stop overthinking it already.<p>Pick whatever language seems interesting to you. Read a few book chapters about it (or a few tutorials, whatever suits your style), then start building a few small apps to start, move on to bigger and more complex apps until you tire from the language and then move on to the next one.<p>Stop worrying about learning languages in the perfect order! Stop worrying whether to learn Lisp or Scheme! Stop worrying whether you should stick to Haskell because the cool kids do it, even though you don't enjoy it at all.<p>Pick a language -- any language --. Move on to the next one when bored. If you do this for a couple of years you'll automatically discover all programming languages known to man. When you're bored with Python and Ruby you'll have much more fun learning Haskell. And when you tire of high level language hacking assembler will be the most fun you've had in years.<p>It's that simple. One last time: stop overthinking it.<p>[ not aimed at the author specifically, but at obsessive programmers in general ]