“Don’t just set out to learn how to code – find a problem that you need to solve by using code/software”
I’m going to have to disagree with that, at least partially. It’s a great piece of advice if you already know how to code, in fact it’s how I generally try to learn a new language. Pick a project and implement it.
But if you’re just starting out it’s a terrible piece of advice as you won’t learn the basics, and while you might be able to hack together a working piece of software by Googling you’re unlikely to put together a decent piece of software.
When it comes to learning Python is probably the easiest. Javascript isn’t too bad, and there are a lot of resources out there, but the fact a lot of the examples are in the browser, and others in Node will be confusing at first. Ruby would be good, but there aren’t that many resources out there compared to Python and Javascript. Most of the other languages I can think of (Java, C#, C, C++, Clojure and a long etc) are either harder or require complicated setups just to get going. So reluctantly (as I don’t really like it) I’d recommend Python. When I learned it I used “Learn Python the Hard Way”, which was a decent and comprehensive introduction to the language.