@Feindbild: Try participating in some local gamejam, it is fun and you'll see how much you suddenly get done in the last night before deadline, just hacking things together, even though it all started out really nice and clean and professional.

On the topic:
From my experience most people are or want to be designers and while they try to find explanations for why a code snippet works the way it does, they are usually just wrong, due to some very different thinking. And I think it is this wrong understanding and totally different thinking that kinda blocks them from actually learning programming. Not saying they couldn't, but that would mean throwing everything they think they know away and starting from scratch which can be very hard.