I feel the need for a small word of caution on this one. Whilst I like Python and it's fast becoming the language of choice in many areas (data processing and machine learning being two of the big ones) I wouldn't necessarily recommend it to anyone as a first language. It's just a bit too loose in what it asks the programmer to do (non-static typing etc) that the step up to a language after Python seems tricky. Certainly I'd recommended it as a second language to anyone, if you are learning for the first time I'd personally recommend either C for procedural (C++ is just too big to start with) or Java for Object Oriented (or C# if you aren't Microsoft opposed but I don't think this board is the place for that sort of recommendation
), can't recommend a functional language yet as I'm still trying to force Scala into my brain. There is a reason those are still the languages of choice for teaching in HE.
Disclaimer : I earn my living teaching Engineers (of the Electronic and Robotic variety) how to code (after many years of teaching CS grads to code).
Alternative viewpoint : Bah! all you kids should learn to code properly like I did with Pascal and Prolog (and a bit of COBOL if you didn't behave).