Been told C# is the new and improved C++
Might sound cray for recommending this.
You should learn good ol' C, It's good to know both C/C++
C is quite limited compared to C++, but its a really low level language, which is perfect for driver programming, doesn't really have much real uses these days because C++ replaces it, but its still useful to know.
I think C does a better job at teaching you how C++ works correctly, I personally don't think anyone can understand C++ until they understand C, though this is just opinion.
Starting off with C, gave me a better understanding of how C++ works, I started learning C++ as my first language, made no sense, learn't C, everything become apparent.
I think C gives you a better understanding on how to think like a programmer, but as I said this is just opinion.
Depends on what you want to do career or hobby wise.
One thing I would say, especially with regards to Java, is that knowing the language isn't as important as knowing the specific toolstack you are using. Knowing OSGI/EJB/Hibernate/Spring/JBoss/whatever is going to matter a lot more than "knowing java". Obviously you can't learn everything (some of these take years to become an expert in), but knowing at least one to a reasonable competency demonstrates that your skills extend beyond knowing what a for loop is. Very least, look into the generic concepts surrounding them (dependency injection, micro-architecture, etc..).
In addition to that, good skills to grab early are:
- Learn how to use version control (svn/git/perforce/mercural..)
- Learn UML. It sucks but it's used.
- Learn agile methodologies, specifically "scrum". Scrum is _very_ popular right now.. may not be forever, but going in with a good understanding of it will definitely be a bonus. Just throwing around words like sprint and "user story" will probably bump up your employment prospects.
Also Python can have MANY helpful uses as well. I've heard it's a doozy of a language to learn though.
Python is currently used a lot for data processing as you can have a working script for a dataset up and running in a couple of hours. For that reason as well it is used very commonly in Rapid Development environments. In a previous job we used Python for everything unless the scripts took too long to run, then we'd switch to C++, but it wouldn't take too long since you have a working Python script to work from.
With respect to learning Python, it can be challenging if only because it is very different syntactically from C-based languages. However, once you get started with the learning process it becomes much easier since Python code is highly human readable. The readability of it makes it much easier to learn Python through looking at example scripts.
No language can give you the degree of control on a hardware level that C++ can plus I've heard C# is Microsoft's attempt at creating their own Javaesque language so I personally think the benefits of learning C# is debatable. I'm extremely bias though. C++ and Objective C are my favorite languages.
I'm glad someone with experience could add to this. I personally know very little about python except that it's also used in A LOT of graphical creating and editing software (such as Maya and I think Nuke, possibly in Adobe programs as well), which is what I'm studying (I had no idea it had strengths for creating scripts and the like but I'm not surprised to hear it). Anyway, it sounds like there are even more benefits to learning Python than I initially thought.