Learn Python is a bad choice and I explain in detail why – CodeX
medium.com
medium.com
I can't really say that the article was actually about Python being a bad choice or not as much of it seemed tangential but what I can say is that I strongly disagree that beginners should use Assembly or raw C as a starting point.
The article goes on at some length about transposing a matrix with some assertions that doing so in one of these other languages is somehow instructive to a beginner. Nothing could be farther from the truth. You don't learn about general family medicine by starting with open heart surgery.
Python is a fine first choice. Most scripting languages are. JavaScript, Lua, Ruby even Processing all fine choices to introduce programming. If one gets hooked, then there are all kinds of more nuanced paths to take from there.
Force someone to learn programming via what one might hope to be simple string manipulations in Assembly and most will abandon it and well they should if what we show them is the individual leaves before telling them that what is important is the forest.
Learning programming requires a lot of perseverance and will power, one of the biggest challenges about learning code is to keep going and stay motivated. Seeing results and building stuff that is useful is a great motivator, Python can make that happen quickly.
Not saying it's for everyone, if the low level stuff gets you excited obviously go for it.
My point is; we all learn very differently, and for a lot of people Python is a great choice as first language because it's high level, and because you can get to results fairly quickly.
Just like you say it will be easier to learn Python later, the reverse is also true. Your first language is always the hardest, the second one, whatever it is, will be much easier.
You hear this "learn the fundamentals first" so many times and it really bothers me as I don't think it's great advice, I think for many people it's not a great way to learn. I know it isn't for me.
My suggestion is to learn in a way that works for you. Getting to results quickly, to only later really learn and understand the things you did is a great method. I know it worked for me, and I know it worked for quite a few people who I helped learn to code.
Exactly. This is also why we don't teach ZFC set theory to 5 years old. We start with "1 + 1 = 2".
When they learn functions, like sqrt, we don't tell them about imaginary numbers.
This is true for ANY subject. You start at the surface, and you dig deeper. Analogies made at the beginning will help you make a mental visualisation of what happens. 99% of the time, those analogies are just false, and that's ok.
Imagine teaching to a 10 years old about quantum mechanics because it's wrong to say that the universe is made of many tiny balls...
After sort of skimming the article again I think it would be better without the order argument, basically just promote digging deeper at some point. I fully agree with that and there are some great arguments in the article towards that.