I believe Computer Science education could benefit greatly from copying and repetition at the beginner level and possibly later.  Copying is how a vast majority of programmers learned to code, but many CS educators deny this fact.  If you’re imagining yourself at 12 trying to learn to code, then I’m betting you had either a book or website with code that you copied and made work.  This should just be how we start people in programming, and not the current method of conceptual “weed out” classes. Repetition

Source: Copying & Repetition – Zed A. Shaw


I try to do this when mentoring new programmers in the company I work for. I purposely google stuff that I know to hint that googling is important and should not make them ashamed. Having a model software project is also useful in a sense that I tell them this is how we believe this should be done, please try copying how they did what they did in the the model project.

Being given the permission to make mistakes.
Being given the guidance of how we believe it should be done.
Being given the latitude to make up ones mind.