News for hackers. Stuff that matters.
Re:Learnable Programming (2012) by tony-allan on Monday October 02, 2023 @09:45PM (#37746926)
From the article.

Two thoughts about learning:

-- Programming is a way of thinking, not a rote skill. Learning about "for" loops is not learning to program, any more than learning about pencils is learning to draw.

-- People understand what they can see. If a programmer cannot see what a program is doing, she can't understand it.

Thus, the goals of a programming system should be:

-- to support and encourage powerful ways of thinking

-- to enable programmers to see and understand the execution of their programs

Re:Learnable Programming (2012) by euroderf on Tuesday October 03, 2023 @04:00AM (#37749102)
> -- to enable programmers to see and understand the execution of their programs

The article disagrees with the idea that in order to _understand_ the machine, you must _become_ the machine. But, how to understand how it works without visualizing it quite concretely...

The ability to visualize and work with complex systems entirely in your head is a skill developed by an engineering education, and presumably by a software education too.

[ aaand... AI has entered the conversation ]

Re:Learnable Programming (2012) by dotancohen on Tuesday October 03, 2023 @04:04AM (#37749129)

  > In a modern environment, memorizing the minutia of an API should be as relevant as memorizing times tables.
I'm going to go out on a limb and suggest that some things should in fact be rote memorized when learning something new. For example, I do think that the multiplication table should be memorized, at least up until ten. I've counted floor tiles and made rectangles out of them with my growing children, but I made sure that certain very small, common multiplication products were repeated often enough to be memorized. Likewise, I do bother to memorize e.g. the intricacies of %f float representation with printf(). Memorizing does not preclude understanding root concepts.
Re:Learnable Programming (2012) by muchwhales on Tuesday October 03, 2023 @09:09AM (#37751347)
The way I see it: Memorizing puts things in your RAM (which may be slow to access), or CPU cache (if recently used). Looking them up would be equivalent to having them stored on your hard disk, or perhaps a remote system if you have to search a while to find them again. Clearly, this is a trade-off and the optimal approach depends on the specifics.
Re:Learnable Programming (2012) by qez2 on Tuesday October 03, 2023 @11:08AM (#37752934)
> Learning about "for" loops is not learning to program, any more than learning about pencils is learning to draw.

This is incorrect. If an artist doesn't know what pencils are, then leaning about pencils is learning how to draw.

> Thus, the goals of a programming system should be: to support and encourage powerful ways of thinking

People can naturally think, but they cannot naturally use advanced tools. The goal of education is to acquaint people with information they are lacking. It's not necessary to tell people how to think. Surprisingly enough, when you give a person the ability to build, thoughts on how to use tools will come organically.