So you believe that your experience is a universal one for all learners? Cognitive load is a real consideration in teaching, and having to ignore and filter text is challenging for some folks.
The boilerplate around a main function is 10 units of load. Everything else you have to know to write a simple program is 500-600 units of load. The boilerplate is a rounding error, and just does not matter.
I wonder what can be done. It's terrifying to realize how dependent students are going to become on these tools. Too many people are just not willing to live with the discomfort that comes with learning something difficult, when the alternative is so readily accessible. Short term gain over long term gain, exemplified.
I like the use of the word discomfort here. It does take an acceptance of some level of discomfort to engage with material you don't yet understand. Similar to how you experience some physical discomfort / strain when pushing your limits exercising. As you engage with discomfort your tolerance builds and what was once a difficult exercise becomes routine. The reward is worth the effort but I worry what the future looks like with many just opting out.
It really is spot on. I've been reading "The Coddling of the American Mind" [0] by Greg Lukianoff and Jonathan Haidt. The book's precipice feeds directly into this idea and has been a fun read thus far. It seems that LLMs will feed negatively into that "coddling", described in the book, in a very negative way as they are providing discomfort avoidance.
Why must every educational python library insist on teaching kids with global variables? I know parameters aren't easy for novices, but it feels like it's missing a lot of the value when we don't attempt to teach them...
Because it's perfectly fine for 100 line programs. Beginners don't need to write extensible code that will be maintained for 30 years on business critical systems. You start by learning what a fuckin for loop does.
Not only that, it's a relatively gentle introduction into object oriented concepts, where an instance is just like independent copies of modules, as they're using them: module.function(), with function accessing some global conceptually turns into instance.function() where function accesses some instance "global".
I was always a bit surprised that python didn't allow "module instances" that automatically did that.
Honestly the way I learned not to use a ton of global variables was because I used so many and would forget what they'd do. But that was back in the days of Apple // BASIC so when I was introduced to C I rejoiced. People need to learn from mistakes.
For me, I learned when I wanted all my function calls to do the same thing no matter how many times, or order, I called them.
I often wonder how much "pain" is required to really learn something. I would claim that 90% of how I write code is the result of pain, not patterns, even though they often end up being similar.
True, but having a single scope is more intuitive at first for people who don't have a good grasp of what a function is and are still trying to understand programming. Also processing/p5 kind of focuses on the speed and accessibility of getting an idea going, for which a game-loop and a single func scope are quite powerful!
Ten days from now will mark the one year anniversary of my wife's death. We would have been together for 11 years last November. It's tough. I really understand this letter, I think. You can't stop loving them. Why would you want to? It hurts. I send her Facebook messages, although earlier today it said it couldn't send them. I could write a letter, but that is not how we communicated. I may have to think of some other form of "communication" soon. An email, perhaps.
FWIW, I still "call" my sister. I pick up the phone and dial it. Pop my earbuds in. Then I just hit the button to lock the phone instead of the one to call the number. And we talk.
It's been 6.5 years since she was alive to answer the phone, but my heart knows her voice and what she would say. I don't always actually dial the actual phone these days, but we still catch up.
I spent over a week upgrading a project last January, over what was supposed to be my winter break... Had to rewrite some of the core internals from scratch to prepare for this. I'm not saying they weren't good changes, but the urgency is not nice haha.
Oooh, this is awesome. I love the formalizationd presented here, and the formalization of a notional machine into something more powerful and executable. Can't wait to hear more about this. Great name too! SMoL!