FoamBats4All wrote:Also, ignore Ronan. Templates are a fantastic tool.
They're a powerful tool, sure. So is unrestricted pointer manipulation. Production C++ is notorious for insane complexity and being very difficult to maintain. I've never written production C++ code though; just C.
Of course if you learn C++ you'll also know C, which is more of a must.
Learning assembly amounts to learning how a particular bit of hardware. Useful for getting an understanding of how the hardware works, but not as a marketable skill. If you want to work on embedded systems, you'll probably need to be familiar with applying an assembly language, but actually learning one is less important.
My school taught MIPS from a processor we created. It was a fun exercise, but not directly useful. I've had to use assembly in microcontroller work, but no where else that I can recall (and that code was obviously specific to the controller used).
Charlie wrote:Why oh why do some people still try to teach Visual Basic; the one before .NET? That's about as useful as FORTRAN or Pascal. I'm supposed to learn a second lanugage in addition to c++ for my AA... wondering what would be useful and broaden my employability as a programmer. JAVA does still seem in demand, but I dunno....
What sort of coding do you want to do? Thats the biggest factor.
Java is old and antiquated, but ubiquitous. Most of how you use the language is very simple (and thus typically easy in classes), but C# is better in every way. The CLR is also significantly more advanced than the JVM is on the desktop, though probably not as performant. From an employment standpoint you're probably better off learning the JVM, as its more widely used (in both the enterprise and mobile devices, such as Android phones) and naturally cross-platform.
Keep in mind that to be productive with a language, you also need to learn its ecosystem. For Java thats Maven, an IDE (Eclipse, Netbeans, or IntelliJ), JDBC (Hibernate), servlet containers, and probably some other stuff I'm forgetting.
If I wanted to prepare myself for where the industry is headed, though knowing the skills may not be immediately useful, I'd learn a functional language. Partially as a result of the increasing number of processor cores, functional languages like Haskell are quickly gaining in popularity. Specifically I don't know of any reasons to use Java or C# over Scala or F#, other than "FP is hard and all our developers only know Java".
I actually find it kind of depressing that Java is still taught in schools.