3 ms·
I am divided on using Javascript as a first language to teach to children [Or second or first-and-a-half after Scratch] It's extremely useful, and does contain
by bayesian_horse 7y ago
I am divided on using Javascript as a first language to teach to children [Or second or first-and-a-half after Scratch]
It's extremely useful, and does contain lots of good parts. But it's at times inconsistent,requires learning its quirks and may cause more frustration than other languages.
I would also worry a little about pushing the students down a road of mostly frontend web development. Not that they can't escape by learning something else, but still.
I guess it would take studies to compare the outcome of various languages and curriculi? A lot of apps and games nowadays are data driven, to optimize for onboarding, engagement and so on. I would like to see more of that in education.
- stevenkkim 7y agoI am curious - what languages do you think would be better for kids to start with?
- bayesian_horse 7y agoI am actually not sure. Depending on the age, from those I know, I would prefer Python, but it has its own disadvantages, especially that it doesn't run (properly, yet) on mobile or web. If I were to teach Programming to a particular age group, especially with students that aren't self-selected for interest, I would hope for a compelling and engaging experience, as free as possible from sources of frustration that aren't inevitable (js has many of those). So in some situations some kind of special language would be best? Maybe something more similar to Basic? Another issue is that teachers generally don't code well. Most don't have a lot of practical experience, some don't even have had relevant education. And if you teach programming to talented teachers, chances are that they discover how software development pays more for less effort.
- timbit42 7y agoTypeScript? Dart?
- bayesian_horse 7y agoTypescript certainly not. In a first programming language I would prefer a type system that goes as far out of your way as possible. Python and Javascript do that, to an extend. You don't see the types in the code, and 99% of the time it's ok to have a vague notion of what value is what type. Especially for limited domains. Of course TypeScript can be used without any annotation or checking. But strict TypeScript, Dart, C# and Java are impossible to use without a lot of head space devoted to the formal type system. I consider myself an experienced programmer, but TypeScript gives me headaches sometimes, especially if I try to be explicit about type annotations.