3 ms·
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, a
by tony-allan 3y ago
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
- euroderf 3y ago> -- 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 ]
- dotancohen 3y ago> 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.
- muchwhales 3y agoThe 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.
- qez2 3y ago> 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.