Comment by alnwlsn
1 day ago
It's a different category, but I can't tell you how much learning programming in BASIC and learning hardware on Z80 got me to understand how computers actually work.
BASIC is just plain approachable - turn on the computer and it's there. Also I had the paper manuals manuals that came with the computer and all the old BASIC books that my school library never threw away to learn from. When you're young enough that "install software" or "download" look like scary words that will get you in trouble for "messing up the computer", an old computer with BASIC (which your parents wanted to throw away anyways) is fair game to explore. More of a thing when households only had one main computer, I suppose.
By the time I was old enough to start learning hardware, the Arduino had already come out. I learned some things on that, but as soon as you have to go below all the abstractions it does for you things get cryptic. I actually didn't get into Z80 stuff until a few years later, but only after that did I actually feel I understood what was going on with the Arduino. Being able to poke at things with a scope which aren't embedded inside a tiny plastic brick goes a long way.
I'm not a new Hacker News user. I just had surgery and I don't feel like getting up and looking up my password.
I've always heard that learning ANSI BASIC or any basic, Q basic, Microsoft basic, any of them, first; usually leads to a lifetime of bad programming habits.
So of course I learned basic first, but then I was like, oh, I'll just learn Fortran, and then C++, and then I got completely lost and never found my way back.
Until Python, technically.
Technically I learned the drag and drop Lego Mindtorms first. Don't know what kind of habit forming research there is about that.
Any of them are a big step from "computer is just for MS PAINT" to "wow, it actually did something I told it to".
By the time I got to the Z80 stuff I had abandoned basic (though learning C from Arduino is also something people tend not to recommend). Once I learned some Z80 assembly and I encountered BASIC again, I was struck by how similar assembly language and BASIC are, specifically the setting variables and then jumping around all the time part. They taught this stuff to kids!
I'm sure you turned out just fine and don't use goto in Python ;)