To be honest the importance of a specific programming language is largely overstated in my opinion.
What matters more is to acquire expertise in the architecture of a program. That is, how to divide information into data structure, split functionalities into routines and libraries, etc.
Once you have learned a programming language to a reasonably advanced level, it is not difficult to learn another one (with a few exceptions).
To get started Python is not a bad choice because it is not too difficult. No dynamic memory allocation and no need to compile it. There is a plethora of libraries available for many applications.
I think Ruby is good as well but I don't know it.
Currently Golang (also called Go) is also very popular.
Yep, only time that breaks down is when you cross paradigms, such as imperative to functional as the structure and how you do things is worlds apart.
But within a paradigm all skills translate. Really easy to move between C style languages as the basics all feel really familiar :)
If you want to see what I mean in the shift of mind set in functional languages I wrote a series building the basics for a roguelike game in F#. Detailing the thought process I went through as I wrote it.
Here is the final part in the series but it links to all the earlier parts.
A real succinct language that when you are used to reading it makes a great deal of sense but can look like gibberish when you first encounter as you can partially apply functions. This means you can them with too few arguments and it results in a new function with the remaining arguments. The functions do not actually call until they get the last argument they need.
Thanks, I'm gonna check out your series.
Thanks I appreciate all the feedback you gave. It's overwhelming getting back into it when the last time I was heavily doing it was in Visual Basic 6 and C++ but I think you're right about if you understand the principles it translates well between languages.