3 Years
Discussion Span
Last Post by JamesCherrill

Good programmers don't limit themselves to 1 or 2 programming languages. Those who are most employable are those who know a number of them, and can learn more as needed. I started with 8008 assembler, moved to dBaseII, BASIC, C, SQL and PL/SQL (a dialect of ADA), Dibol, C++, back to 8086 assembler, Java, PHP, numerous scripting languages... and I have been working steadily for 30+ years as a software engineer.

That said, Java is in common use these days, especially for mobile applications. Most mobile phones and tablets use Java or Dalvik (Java with a different virtual machine code, but same source code). Everybody where I work is Java competent since it is the basic programming language for our mobile phones (I work for Nokia) and in many of our server applications. C++, Java Script, and PHP are also in common use here.

My advice is to learn C and C++. Those are the foundations for many other languages. I consider Java as C++ with training wheels, and PHP is C++ with just enough differences to drive one to drink! :-) Employers who are considering you for a programming position will look at the C/C++ skills as fundamental, mostly understanding that being competent in them means that you will be able to get "up to speed" in Java and such quickly.


The next 10 years? No.
10 years ago who predicted iOS or Android?

But many large companies have huge investments in Java (especially Java/EE) and those systems will be around and being updated for a long time. In the long term there's a massive trend away from low-level low-productivity languages to high-level high-productivity languages and tools. Personally I would not advise C or C++ unless you want to write device drivers. JavaSE or C# is the lowest-level language I would consider for most programming jobs, but the future is increasingly with tools like PSP, JSP, DHTML, RUBY, AJAX etc

Don't get too fixated on languages - if you know one current language you can quickly learn another. It's the API or toolset (Java/EE API, .NET etc) that takes years to learn well, and when you change you have to start again.

This article has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.