I'm getting a bit stuck deciding which language I should try to pick up next.
I did a bit of Logo in primary school, but was only taught a little bit of QBasic during GCSEs and A levels. I didn't get into programming much while at school, I only wrote a couple of really trivial things on my own (spirograph generator, calender printer, and did my A level coursework in QBasic and Access)
At Uni we were started on Pascal/Delphi, and then I got a job doing VB6 (yuck)
While doing other Uni modules I've done bits and pieces with Java, C++, PHP, Prolog etc while being introduced to Design Patterns, Databases, Operating Systems, Compilers, Formal Methods, AI etc.
In the mean time I've become fairly proficient with C# (just getting started on Linq, Expression Trees and Dynamic though) and picked up bits of XSLT, JavaScript etc.
At the moment I'm looking into Powershell, which is quite fun, but I want to tackle something else a bit different in a different area than Windows GUI apps and expand my thinking if possible.
Options include:
1) Objective-C (+Cocoa etc.) for iOS apps
I already have an iPhone and iPad, a couple of books + Intel Mac Mini with XCode 4
just don't really know what or how to do anything with it.
2) Ruby
I read "Why's poignant guide" a while ago and it seemed pretty cool, and people seem to get a hell of a lot done really quickly with Rails etc.
3) LISP (or Scheme etc.)
Got hooked on the 'Beating the averages' meme by Paul Graham, all that metaprogramming stuff looks cool, and I got about half way through Land Of Lisp then put it down)
4) F# (functional + .Net)
Have done some simple tutorials, and got a couple of books, would like to try some AI problems but I don't really think in recursion yet.
5) Python, Perl, Bash etc.
I don't have much experience on the Unix side of the fence, so I could probably do with extending my skills in that direction.
6) anything else? Haskell, Erlang, Closure, Google GO, RedHat Ceylon etc.
7) or go for low level, I've never actually done any pure C or assembler, though I was taught a bit of 68000 back in 2001. I understand pointers but frankly don't really want to have to deal with them most of the time.
Partly I just seem to want to know 'everything' and partly I never seem to stick with any one thing long enough to produce much useful with it.
I feel like I've still only just scratched the surface of what is possible, but I seem to have run aground trying to get to the next big thing.
Where do people think I should be aiming if I really want to make a concerted effort to 'move up to the next conceptual level' while I still have the chance?