While I did get into lower level languages first, I got into them because I wanted to build something with them (what was the BASIC command for sending data to an IO port in DOS?). C was a natural progression as I wanted to make my own kernel in high school and I was hitting limits of what you could do with BASIC and later Pascal (I got as far as writing a bootloader in NASM, and a simple first-fit memory allocator and task scheduler for 32-bit Intel CPUs).
So I oppose the notion that you have to deliberately start at the low level to develop understanding of computers: I like building stuff, and this has enabled me to grow my understanding of computers and how they work. Not because I enjoy that (I do), but I enjoy building things (more!), and low level things was what I cared about.
I also wonder why stop at learning to drive stick? Why not dismantle and put back together an entire engine and a gear box? Wouldn't that let you be even more connected to your car? Perhaps look into asphalt compounds, tyre construction, so you can understand grip better as well?
Again, I am in a country where learning manual shifting is required to get a driving license. But people should not be required to learn things that will not benefit them, and those who are curious, will dive in anyway. And thus we'll get better drivers. (As an aside, I think a "better driver" is the one who is more perceptive of the environment and other participants, rather than the one who is better at mechanics of driving on an empty road)
And similarly for Python: smart people who start with Python and end up with a problem that requires them diving deeper, will dive deeper. And we'll get excellent programmers that way.
And I say that as someone who has taken exactly the opposite route.
So I oppose the notion that you have to deliberately start at the low level to develop understanding of computers: I like building stuff, and this has enabled me to grow my understanding of computers and how they work. Not because I enjoy that (I do), but I enjoy building things (more!), and low level things was what I cared about.
I also wonder why stop at learning to drive stick? Why not dismantle and put back together an entire engine and a gear box? Wouldn't that let you be even more connected to your car? Perhaps look into asphalt compounds, tyre construction, so you can understand grip better as well?
Again, I am in a country where learning manual shifting is required to get a driving license. But people should not be required to learn things that will not benefit them, and those who are curious, will dive in anyway. And thus we'll get better drivers. (As an aside, I think a "better driver" is the one who is more perceptive of the environment and other participants, rather than the one who is better at mechanics of driving on an empty road)
And similarly for Python: smart people who start with Python and end up with a problem that requires them diving deeper, will dive deeper. And we'll get excellent programmers that way.
And I say that as someone who has taken exactly the opposite route.