I really think there's something magical about beginners typing in whole projects by hand (instead of the modern copy-paste). It really helped me when I was getting started with programming.
To me, it feels like typing each character manually cements the knowledge in there much deeper than 'oh, I think I understand what I'm copy/pasting.'
Maybe that's a shallow truism by now, but I still see people struggling to learn programming via copy/paste from examples.
Learn Python the Hard Way is often blasted for adhering to that sentiment. I think it has value. I think LPtHW perhaps attracts ire first for other things, like a now dated bias towards python 2 over 3, but whenever I recommend it to beginners, people always get mad over its emphasis on memorization.
I get what they're saying (probably from dealing with too much rote school work in the past), programming is more about critical thinking than memory, but it really helps to have the core constructs memorized in a language. If you have to google "loops in python" every time, it's not going to go well.
That's a smart take. Even today when I'm learning something new I try to do as much physical typing as possible from the example because I feel like I learn it better.
The other day I had the thought of "all memory is muscle memory" - it's not literally true, but memorizing in an associated form builds up so many cues that it's worth applying to any study: do warm-ups and repetitions, speak, move, and think in sync.
I tend to think of it is holistic memory or whole body memory. The more functions you can involve subsystems in your body the more it hangs together in your brain for longer terms I think.
To me, it feels like typing each character manually cements the knowledge in there much deeper than 'oh, I think I understand what I'm copy/pasting.'
Maybe that's a shallow truism by now, but I still see people struggling to learn programming via copy/paste from examples.