I have been practicing programming in C++ for roughly a couple years and was wondering if I should try other language(s) at this time. I'm fairly new to computer science and just want to be sure I'm not rushing anything. This summer I plan on spending spending my free time getting better, so I was curious to see what experienced programmers think would be best for me to focus on.
P.S. I am a CS student and am about to finish my last lower division course (in C++). I am also considering getting into web development.
I have been practicing programming in C++ for roughly a couple years
Maese909 wrote:
I'm fairly new to computer science
Really? I've been doing it for a few years too but it feels like a lifetime! :D
I'm not an experienced programmer of sorts but there are definate advantages of being "multi-lingual". Each language has their own strengths and weaknesses (I won't condecend you with the details), and knowledge of these will better equip you to handle projects in the best possible way.
I'm not massive on Web-Dev, but I've been looking for a job for after I graduate and there are so many Web-Dev opportunities out there. So much so that I'm actually starting to re-learn HTML and trying to expand my knowledge (there a lot of money out there and I want my piece!)
If you've not already then I would look into Java, and C++ frameworks such as .NET.
I personally can't recommend prolog - maybe I'm just too stupid for logic programming, but whenever I try to do anything there it feels like workarounds.
Smalltalk is fun too, but takes a while to get into (well, you can learn the entire syntax of the language in 10 minutes, but actually getting used to Smalltalk philosophy takes much longer).
People keep saying Python is good, although I personally don't really like it.
Ruby is fun too.
Scala is also nice, but there is a LOT of syntactic sugary going on, so it's a bit hard to get into.
Java is... ok I guess. But learning it right after C++ will probably feel a bit redundant. The largest differences to C++ are garbage collection (which all of the above languages have too) and lack of operator overloading (oh, and Java Generics aren't nearly as powerful as C++ templates).
Learning one or two extra languages is good because it helps you to abstract from language constructs and think in concepts instead. New paradigms will give you new perspectives to look at problems from.