3 ms·
From watching my son learn, basic concepts of programming have enough frustration built in, that I feel you really need to optimize the rewarding feedback loop
by softwaredoug 5y ago
From watching my son learn, basic concepts of programming have enough frustration built in, that I feel you really need to optimize the rewarding feedback loop aspects. Jumping to CS concepts is a bridge too far, and TBH, there's a lot of programming-literate jobs that don't need it.
- AnimalMuppet 5y agoI think I agree, but... I also halfway agree[1] with the point about "having to unlearn bad habits". Is there a language that gives beginners a fast reward feedback loop, and also guides them toward good programming habits (or at least does not teach them too much that they're later going to have to unlearn)? ----- [1] Only halfway, for a couple of reasons. First, there are different kinds of programming. If you learn imperative programming, with good habits, and then you switch to functional programming, you now probably have some bad habits - habits that are bad in the functional world, but were fine - even correct - in the imperative world. I don't think it's fair to call that "learning bad habits". At the same time, beginner languages can teach approaches that are bad habits in any non-beginner setting. (This criticism was often applied to BASIC. I'm not sure it's entirely true, but I suspect it's also not entirely false.) Second, learning good habits took me a decade or three. It took finding out why the simple things weren't good enough, by running into situations where they weren't good enough. But for a beginner, the simple things are good enough, because they aren't yet running into situations that expose the problems. (You don't tell a toddler that they need to fix their method of walking because it won't cut it at a basic training obstacle course.) All that said, I think there still is a place for not pushing them into blatantly broken approaches.