I've found that one of the hardest problems I've come up against in the learning process regarding programming is the embarrassment I feel when I don't understand something when it's being explained to me. It can be totally debilitating. Once it starts, sometimes it’s hard to stop myself from going completely downhill. From then on I feel as if for every additional thing explained, the more I crawl into a hole. Then the more I shut down and the more difficult it becomes to take anything in.
Then I start to think, “How many times is it going to take him re-explaining it to me, for it to make sense and click?  I don’t want to waste his time.” This happens each time he asks, “What don't you understand?”, which he only asks when he's trying to understand how to help me better. With each time it making it subsequently even worse. I don't KNOW what I don't understand, I just don't. At least as far as I can tell at that moment. Then with the additional embarrassment I dig in real deep, look like an insolent child, and sit there doing my best to not be a child and I try to listen to what he has to say.

What makes learning to program easier for me? I know what makes it more difficult, perhaps from there I can figure out what makes it better.

What makes it worse:
  • Feeling like I have to have everything explained to me over and over again, because I still don't understand it.
  • When I can tell someone is racking their brains trying to figure out how to dumb it down for me.
  • When I feel like I'm getting nowhere.
  • When I've done all the readings and re-reviewed the lectures and still have trouble putting things together.
So, what would make it better?
  • Once in a while having things explained to me once, and being able to understand it.
  • Feeling like things don't have to be dumbed down for me to understand them.
  • Feeling like I'm getting somewhere.
  • When I can do all the readings and re-reviewed the lectures and can put things together.

Yeah, so that was just rehashing things.  I don't know if that really helped to solidify it for me, but it did help me come up with other things that I think make more sense, and I know have helped me.

What makes it better:
  • Allowing myself to learn in increments that are appropriate for me.
  • Letting myself put realistic expectations on my learning. Letting myself be okay with not understanding it the first, or the hundredth time. Allowing myself to know that I just have to keep trying and I will know, eventually.
  • Doing more basic exercises, but reworking in other problems. I've found that the readings and lectures definitely help, but without having more problems I'm finding my progress to be stunted. But this isn't just basic exercises that I come up with myself. I think what would truly help the individual learner would be to have a list of exercises for one to do. Simple ones, so you can practice the syntax and practice how little things work so you can slowly incorporate them together. That way you’re doing and seeing how everything works. You’re writing and creating them all. Thus you would create a progression that would makes the programming concepts easier to soak in. As in learning another language you can't just read and memorize, you must write practice sentences until your eyes bleed. Then the combinations and way things work are more inherent, and less alien.

Which, this whole exercise helped me to come up with a great idea to help myself. I'm going to start collecting all the little questions that come up in the MIT Intro to Computer Science course. I'll make a list, and then start thinking up other questions to go along with it, that help expand on these items, and help the information soak in that much more: an addition for the individual Python learner.