python. it's not called "taking the easy way out". it's called "learning with minimal distractions". programming isn't about syntax, or language structure, or whatever details that a particular language requires you to care about. programming isn't even about low-level concepts like memory management / garbage collection (all of which you will learn later on anyway).
programming is about learning the concepts behind building systems that work. so the less a language bogs you down about its own particular details, the quicker (and better) you'll be able to learn. (which is why C++ is a horrible, horrible language for anybody to start with)
as for where to start -- fundamentals is a good place to start:
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/or for something more step-by-step:
http://learnpythonthehardway.org/Quote (Azrad @ Oct 17 2012 01:56am)
heheh i understand your point. All programming languages provide a trade off between learning things from the ground up, and RAD. If someone wants to crank out their own stuff fast, higher level languages would be better. If you want to learn how the computer really works, the lower the better. I've always felt C++ provides a pretty good middle ground.
depends on what you mean by "from the ground up". if you mean "from the ground up architecturally", that is the worst possible way to learn. (which is what learning from, say, C would be -- and if you were to make a case for that, why not go all the way and start by learning assembly?)
if you mean "from the ground up conceptually", then the language is mostly irrelevant. it's merely a tool for assisting you in learning the concepts, and the simpler the tool is, the more you can focus on learning the concepts and less on wrestling with the language.
This post was edited by irimi on Oct 17 2012 01:41pm