Journal KovaaK's Journal: What Programming language to learn? 8
First, some background information... I started programming when I was 12 (I'm now 23) by messing around with the Quake 1 game source code known as QuakeC. Before College, I never got more than halfway through a "learn Java or C" book before losing interest, but it was still more than enough as a primer for College. I majored as a Computer Engineer, which at my school was half Computer Science and half Electrical Engineering. I chose to lean much more toward the C.S. side since I generally enjoy programming, and I don't regret it.
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:
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.
Thanks much!
All the rage (Score:2)
C# with its ties to .NET stuff is very popular in some places too. If your goal is to become more desirable, then Python or C# are probably your best options. Just keep in mind Python sometimes goes with Java and of course C# with Windows, if either of those are concerns.
Aren't journals only shown to people on your fans list?
Re: (Score:2)
Alright, I'll probably start looking into C# a bit more seriously then. If I go down the Python path, what version should I learn? I'm assuming either 2.5 or 2.6, but I really don't know the differences between them.
Hum - I'm not sure about the journal thing. Maybe only updates get sent to fans, but I added a link to my sig - people should be able to see it from there, right?
Thanks :)
Re: (Score:2)
Yeah, I looked at one of your posts right after I typed that.. doh.
Re: (Score:1)
Re: (Score:1)
Re: (Score:2)
Awesome. Thanks very much for the advice.
As it turns out, work suddenly got hectic, and it may stay that way as we are imminently going to learn to develop under an entirely new system. If I happen to find free time, I'll keep this in consideration :).
Functional languages (Score:1)
Learn a functional language; it is likely to be very much different from what you have done before, and you will probably learn a lot from the experience.
I like Perl because it has an attitude. After all, you can only code JAPHs in Perl. However, I don't like using Perl for anything other than one-liners.
I like Erlang and the Lisps for similar reasons. They're both more than programming languages (literally, in this case: the runtimes environments (REPLs) for these languages are exceedingly good).
So, my lis
Re: (Score:1)
p.s., Functional languages tend to be very good for Project Euler (although, pure functional languages can sometimes be a bit more tricky).
In Erlang, threads code _you_ (no, that didn't make sense. Please pretend it did). Haskell is good for playing with threads too.