4 ms·
Exactly! I think the value of these programming environments is in helping you find new ways to think about problems. Having constraints/limitations can be one
by glenngillen 4y ago
Exactly! I think the value of these programming environments is in helping you find new ways to think about problems. Having constraints/limitations can be one way to force that creative rethinking to happen sooner rather than later. Obviously you need to find a good balance though as causing frustration and helplessness would have the opposite effect.
I’ve an anecdote of my own that I still think about semi-regularly:
I was volunteering at a school for a year or so helping them teach 9-11 year olds Scratch. Most of the kids spent the term trying to move sprites across a canvas and making basic platformer style games. It was a heap of fun while also challenging at times.
One day one of the students grabbed my attention and asked for some help making something work. She’d decided to build a trivia game, and was having an issue working out how to make the text for the previous question disappear. When I looked at what she’d built I was blown away. She’d basically built a fully recursive function in Scratch that would iterate through a collection of questions & answers. It was built almost exactly like I’d expect a professional developer to build something. A simple reusable function. I didn’t teach that. She’d never used Scratch before. She’d not done any programming before. It was just the most intuitive way for her to do it.
- andrepd 4y agoSeriously, I remember programming in constrained environments, for example in a calculator, and how that seemed to boost my creativity. I wonder if something is not lost (in terms of learning) by having such hugely powerful systems with any non-trivial functionality a simple library download away.
- kazinator 4y agoOr, as another example, try processing a file of hexadecimal numbers in POSIX standard Awk. Another one: a few months ago I wrote an Awk function which can increment an alphanumeric string, like "A0Z" -> "A1A" -> "A1B" ... I had to write a BEGIN block which populates global hashes for looking up the successor of a character, and whether it wraps around in its class. By character, I mean string of length 1, of course; there are no characters in Awk.
- trimir2022 4y agoThis is why professors try to limit what students can use in their assignments. And then students (and the internet) turns around and chastises the professors for putting restrictions which the students will never encounter in real life.
- jstarfish 4y agoIt is. Constraint begets creativity. A box needs to be defined in order for one to think outside of it.
- trimir2022 4y agoI agree. My best memory during my school days is still the supreme satisfaction I had of implementing a complete gaussian elimination algorithm in assembly using only the puny number of registers in an 8051.