Wednesday, July 22, 2015

How to Pick Your First Programming Language

I thought I would share a few initial impressions about a new infographic by I find interesting if programming is your profession.
Infographic: via

Java, C\C++, languages are not top paying which comes as a surprise.  I suspect other factors are involved.  For instance, the average MATLAB user may be more highly educated than the average Java or C\C++ programmer.  I don't know a lot about MATLAB but I suspect it's a research tool similar to Mathematica as opposed to a programming platform.  I don't see many software products delivered using MATLAB.

Another surprise is that Ruby is top of the stack for compensation.  Perhaps we are witnessing the market forces of supply and demand.  Historically there has always been less software developers than jobs available.  In the Ruby case, the ratio of available Ruby developers to jobs available may be better than say Java or C\C++.

To better understand the future supply to demand better, we may be be able to glean some information from the Geography and Popularity data presented.  For example, if you see a large number of job openings in Geography and a declining or stagnating trend in Popularity it may be an indicator of increasing pressure and increased compensation for developers.

Besides maximizing your compensation there are other factors you should consider like long-term stability of the market.  If we take Java or C\C++ as the example, their is no way these languages are dying out.  They are great first languages and learning the languages is relatively simple.  Learning how to use all the utility libraries and open source packages to make a commercial product can take years but as you grow so to will your compensation.  Learning is an investment in career worth making since compensation as shown is good overall compared to other languages and stability and demand for these languages will be high for the foreseeable future.

Once you start get Java or C\C++ down you should definitely consider a scripting language as a second language.  The reason is that scripting languages are generally faster to get a proof of concept rolling or quickly solve a research question.  Ruby is on the top of the pay chart but I have been playing around with Python.  I initially considered JRuby, a particular implementation of Ruby that offers some of the advantages of Java.   In the end,  I choose Python since I am a believer in the power of *NIX scripting and it's easy to get going on every flavor of *NIX.

Share It!