Well, although the post titles “What all programming languages .. blah blah!”, it’s really what all Programming Paradigms one should know to understand the different approaches available to solve a problem at hand.
And if you follow any of the giants in the software industry, i bet they will all point you invest your time in more than one language (Mind it, moving from Java to say C# isn’t at all what we are talking here as both these languages follow the same paradigm i.e. Object Oriented).
So here it begins!! What you should know at least to come to a level where you’ll understand to choose a good tool(language) , given a problem.
Programming languages one should know to be a good software engineer
The “C” language. It’s close to the metal and the fundamental language so if you see java or Perl for example , under the hoods it uses C.
I would certainly recommend for it’s taught at most of the schools and compilers are available for all platforms.
Sometimes you may question , Is C still valid, when we have C++ and all these languages?
Now because the C compiler is much easier to write so there are still lots of environments where you can either only get a good C compiler or the C++ compiler which is far inferior when compared to the C alternative.
C++ ( Although C++ does not force object oriented design anywhere )
Clojure or Haskell are good choices here. Languages from geniuses for geniuses!
Ok, and if you don’t know this Uncle Bob himself encourages developers to use Clojure. According to him it’d be one of the functional languages which would become the standard and would rise among everybody else.
The logical reason behind is very straight forward, functional languages can handle multi core systems more easily when compared to object oriented language if you say and we are moving towards a world where multi-core is going to play a major major role!!
You may choose F# (FSharp) , if working in the .NET world.
An Object Oriented Language which uses a Virtual Machine
C# or Java are the obvious choices here. These are indeed the 2 most widely used corporate languages and hence if you know them, you get more chances of finding a job for you!
Although heavyweight but they are verbose.
Prolog. It’s complicated at first!! But i kind of love this language, the way it takes you back to the Boolean algebra world of school.
Database Querying Language
SQL is the de-facto standard for querying the databases. You’d definitely have it as part of your tool set to be comfortable understanding the Databases.
Note: You can look at another set of interesting languages know as Array Programming – Matlab would surely be helpful if you deal with a lot of Numeric!
In the end i’d say its not just the languages that matter alone, it’s also a set of best practices across common paradigm languages that you’d know and implement/question frequently enough so that you master the art of programming!