Comment by bunderbunder
8 hours ago
OTOH I work in Python and I’ve seen that recent graduates who were only taught Python and Java in school are often in for a nasty shock when they first encounter (for lack of a better term) real-world code.
When I’m helping them understand some subtle point about async/await, I sure do wish they had a semester’s worth of Scheme in their background so I could rely on them already having a crystal-clear understanding of what a continuation is.
Indeed. It's hard to teach Python as it's idiomatically used in the wild. There's just so much stuff going on (iterators, generators, async, context managers, comprehensions, annotations etc etc), it takes a lot of study/experience to learn it all.
Yes, so the point is that teaching it at all is a choice of style not substance.
Not sure I 100% believe that, but buy-in (and LLM help) are significant parts of a successful onboarding.
There is at least something to be said for having spent a semester starting with a bare-bones but malleable language like Scheme, and then building up your own libraries to implement more advanced features like object-oriented programming and list comprehensions.
Because then you’re interacting with these things in a really concrete way rather than just talking abstractly about what’s going on inside the black box. And I’m fairly well convinced at this point that mechanisms like virtual method tables and single dispatch functions are the kind of thing where an hour or two just making one yourself will go a lot farther than many days’ worth of lectures. Perhaps even many years’ worth of hands-on experience.