I have a friend that wanted to learn programming. I suggested Python, but they wanted to go directly into making web apps.
I don't think they finished the class. Javascript just has too many weird concepts (what's the difference between null and undefined and false and 0 and "") that distract from the mechanics of learning what a computer program is, and I also think that the desire to make something others can use too early on leads to going too quickly through the basics ("yeah yeah, add numbers, who needs to do that") and are then overwhelmed when things like objects and promises show up. You have to crawl before you walk.
I think if I were going to introduce someone to programming today, I'd probably pick CircuitPython. Python is simple and makes sense almost immediately. Doing it on a microcontroller lets you make something "neat" almost immediately, and you're spared a lot of the complicated externalities of the real world. (HTML, CSS, dev servers, npm modules, etc.) Some day you can learn all that stuff, but you need to know about if statements and loops and variables first.
I also miss the days of BASIC and Logo. I think those would be fun for the younger generation... but now everyone just wants to make a mobile app and those don't get you there. Ahh, for simpler times.
Since we are in a VBA thread, I'd argue that VBA is a great introduction itself into programming; especially with its macro recorder.
Progamming by clicking (in the spreadsheets) and seeing how the code changes instantly is arguably better for beginners than what normal programming languages usually offer.
I don't think they finished the class. Javascript just has too many weird concepts (what's the difference between null and undefined and false and 0 and "") that distract from the mechanics of learning what a computer program is, and I also think that the desire to make something others can use too early on leads to going too quickly through the basics ("yeah yeah, add numbers, who needs to do that") and are then overwhelmed when things like objects and promises show up. You have to crawl before you walk.
I think if I were going to introduce someone to programming today, I'd probably pick CircuitPython. Python is simple and makes sense almost immediately. Doing it on a microcontroller lets you make something "neat" almost immediately, and you're spared a lot of the complicated externalities of the real world. (HTML, CSS, dev servers, npm modules, etc.) Some day you can learn all that stuff, but you need to know about if statements and loops and variables first.
I also miss the days of BASIC and Logo. I think those would be fun for the younger generation... but now everyone just wants to make a mobile app and those don't get you there. Ahh, for simpler times.