Python is, indeed, a very good place to start.rijackson741 wrote:Here's my two cents worth. Over the years I have written code in more than 10 languages, and with the exception of one (C) I didn't choose any of them. I either had them forced upon me by some professor (Fortran: a horrible langauge), or learned them because I inherited legacy code (Algol, and some Pascal), learned them because they were used for scripting in some piece of software (more versions of Basic than I care to think about, Python), or for some other reason. So if you want to learn a programming language, the first thing you have to decide is what you want to do with it. If you want to write code for embedded processors, learn C (which is very different to C++). If you want to do numerical computing, Python is a good choice. If you want to write an app for Windows use one of the .NET languages (I would personally recommend C#; I've not written a lot in it, but it's a good language). If you want to write an app for Android, learn Java (which I have never written even one line of code in!).
It's not that different to choosing a spoken language to learn. Spanish may be a lot easier to learn than Chinese, but it won't do you much good if you are going to live in China
I'm probably being horribly nitpicky but Python isn't what I'd go with for numerical computing. You can get Python extensions (Cython?) that'll give you a performance boost but its hard to match the raw performance (and availability of legacy libraries) of Fortran (or C to some extent) for heavy numerical work (fluid flow, weather prediction blah blah blah). I absolutely do understand the hatred for Fortran though