I was reading an article Poor Poor Child, You have no Idea and realized that most of what is mentioned there about programming is certainly true for learning too, in general. Here are some nuggets:
Every single time (and this will happen constantly) you come across a concept that seems foreign or difficult or even just unintuitive, instead of thinking “It’s OK. Programming is hard.” you’re going to be thinking “This is supposed to be easy. What’s wrong with me? I must be stupid.” These feelings will keep you from seeking help or pushing through to discover why things work the way they do, and that is what’s stupid.
This is the single most important hurdle every person has to cross in his/her life to move ahead. Intelligence is not born with, but is developed. One only sees the intelligence of fellow people but not the long, strenuous efforts put in by them to reach to that stage.
The discomfort is normal, so get over the self-consciousness now and fight it whenever it appears in the future.
And coming back to programming, the author says that first language that we learn matters:
Your first programming language provides you with a base vocabulary through which you begin to understand all other computer programs. As a linguistics major, you’re no stranger to the idea that a person is only capable of having thoughts and ideas that can be expressed in their language, and there is no reason to expect programming languages to differ from spoken languages in this area. It is absolutely crucial to pick a first language with a deep, expressive vocabulary for this reason, and all programming languages are not created equal.
Another aspect of programming, equally applies well to learning in general:
My point is that no amount of reading or talking about programming will help you here. The only solution is to spend many hours actually writing code. So do as much code writing as you possibly can, and while there certainly are lessons to be learned from programmery discussions, realize that they’re usually little more than a distraction from your real learning.
And here is the nugget of nuggets that, again, applies to learning:
Don’t be too hard on yourself, but don’t be too easy either….Take your learning seriously. Explicitly plan time for it. Remember you’re probably not stupid and learning something difficult takes many hours of study. And yes, you probably should get out a little more often.