I used to think I had to learn everything I needed to know in order to be a developer, before I could become a developer. I'm not sure why I thought I would enter a job and know all I needed to know to carry it out, but it's a natural assumption to make in our society.
Now that I am a developer, I see that it's my job to learn. It's my job to learn what I need to know to solve each problem as it arises. It's my job to ask 'Why?' and 'How?' and say things like "I don't know what that is" when I don't know what a thing is.
It's my job to understand more today than I understood yesterday. It's my job to learn.
And the thing about learning is, it can't all happen immediately. It's a process that can take minutes, weeks or years.
So I was surprised to find out recently that I've been doing something that I believe is at the core of my ability to learn that I never used to do. I've been allowing myself to be exposed to new information that I do not understand, and I've allowed myself to not understand it. That might sound unproductive, but the key to this is that just because you do not understand something, doesn't mean you won't remember it.
In the last few weeks I've been exposed to a lot of Ruby on Rails and it was all new to me. I saw phrases like
belongs_to and I kind of understood what it meant but not really. But I accepted that. I stored this information in my head, in its ugly, confused and incomplete form. Today, I had the concept of relational databases in Ruby on Rails explained to me and now it makes sense. Now that learning story is complete and I'm satisfied.
In the past, I would have felt frustrated that I wasn't 'getting it'. That frustration gets in the way of memory, and your brain pushes that information out because it doesn't know what to do with it. It either has to be complete or gone, there's no inbetween.
Allowing yourself to be exposed to information without having to understand all of it immediately at once is a valuable strategy for learning. See it, let it sit in your mind and then put it on a shelf where you can find it later when you have more information. Most of all, be comfortable with this by reassuring yourself that the answers will come in the future.