Hey there, I've also taught lots of students online!
In my JS courses, I actually don't touch upon async things until I get to rather advanced/intermediate courses.
Universally, I think the fundamentals of programming languages can be taught without too many drawbacks and agnostic of language choice unless the language is super verbose.
For example, all the things with closures, this, and asynchronous programming probably aren't relevant until a student runs into them/their gotchas while making web applications. By that point, I think framing it as event driven programming makes a lot of sense and gives context without being forced to deal with the details.
I think doing anything cool in other languages is also almost similar. A while loop/game loop in Python or other languages is pretty similar to the event loop which where the asynchronous nature of JS comes from. This becomes really apparent when working with games like Roblox/Lua and Minecraft/Minecraft plugins+mods.
Sorry for the self plug. I grew up on Neopets and MySpace and I have been teaching CS for years under the guise of introducing retro web back to today's kids.
I usually teach students from 10-15 but I mainly hope that they feel empowered to tackle anything even if it's not programming(since programming, in its essence, is all about debugging/building processes).
I'm lucky that I'm able to teach on a YC startup called Outschool.
Recently, I have a friend group who all graduated from Stanford, with relatively upper middle class(but not suburb/NY upper middle class) roots, and you might even describe as "woke" who belonged to a fb messenger group called "Anti Asian Asian Group".
I felt like I had to call them out on it. Though they made the group as a play on "anti social social club" and to counter conservative sentiments their upper class counterparts might've had, I too thought it might've just been punching down on working/middle class Asians who had traditional values and almost can't help but have those values.
I guess that's the real class war; when people punch down on those who almost don't have the opportunity to decide who to become. Not that people completely lack agency in this country but I think a lot of people forget how much your environment can shape individuals and their values.
In my JS courses, I actually don't touch upon async things until I get to rather advanced/intermediate courses. Universally, I think the fundamentals of programming languages can be taught without too many drawbacks and agnostic of language choice unless the language is super verbose.
For example, all the things with closures, this, and asynchronous programming probably aren't relevant until a student runs into them/their gotchas while making web applications. By that point, I think framing it as event driven programming makes a lot of sense and gives context without being forced to deal with the details.
I think doing anything cool in other languages is also almost similar. A while loop/game loop in Python or other languages is pretty similar to the event loop which where the asynchronous nature of JS comes from. This becomes really apparent when working with games like Roblox/Lua and Minecraft/Minecraft plugins+mods.