While at the University, I learned way too much Java, a little bit more C, a decent bit of assembly, and some Perl. Classes I took taught me plenty in the areas of algorithms, AI, data structures, compilers, and general programming knowledge. I still feel like there is a ton of stuff that I can learn, but I'm having difficulty in choosing where to go from here.
Now that I'm out of school and employed as a Programmer, I find that I have a fair amount of free time on my hands at work. I started using my free time learning more Perl by doing problems on http://projecteuler.net. I finished about 70 of them or so and was having fun until I started getting more anal about my code. Perl is a great scripting language, but I ran into a few things that made me not want to go much further with it. (threads suck, and using packages for certain things can be selectively slow... there are way too many ways to do things, code becoming unmaintainable, and so on)
I know that Python is all the rage among programmers right now, and 3.0 just came out, so I started messing around with that. Unfortunately, I quickly realized that there are tons of modules out there that havn't been updated for 3.0. On top of that, I'm not particularly enjoying the syntax, so I haven't had much motivation to decide if I should go to an old version of Python or not.
So, does anyone have any suggestions for me on what language I should pick up? My thoughts are either to finally learn some solid C or C++ (C# maybe?), or grab an older version of Python (2.6 or 2.5 depending on module availability? Would 2.4 have a use). Any other suggestions are very welcome - I just want to make myself more desirable as a Programmer.
Also, I've sort of had ideas in the back of my mind of what I'd like to do with _insert language here_, and some random thoughts are:
- Find a good GUI package for Win32 (kind of sick of Tk - I've seen it in 3 languages so far)
- Do more Project Euler problems
- Mess with Threads
- Mess with OpenGL
Suggestions in this category are also very welcome.