I've been thinking lately about the steps we (often) go through when we want to learn something new. It's the way our schools educate our kids, the way we prepare for jobs, and sometimes learn new hobbies. Usually it goes something like this:
1) Decide you want to do something
2) Learn how to do it
3) Start doing it
I've realized that these steps are out of order though - at least for me, and probably for a lot of other people too. Instead, I think it's much better to flip the second and third steps. Decide you want to do something, start doing it, and you'll inevitably learn how to do it. Sure, you'll mess up a buch along the way but who cares.
Want to learn French? Do you really need to take a french class - or would it better to just start communicating with some friends that know the language and watching some French movies here and there? Want to learn how to build a website? Sure, you can get a book about HTML, or you can start building a website on Blogger and go from there. Want to be a better writer? Start a blog and get to writing.
I think a lot of us use the need to "learn" something first as an excuse to not actually do anything. So if that's the case, forget about the learning and just start doing it. You'll learn.
Four months ago, I didn't know Ruby on Rails. But now I have two Rails applications to my name. I still wouldn't say I know it, my code is a mess in many parts, and certainly don't consider myself a programmer. But I'm learning - because I started doing it.
So if there's something you want to learn, but you're finding that it's just not happening, maybe it's because you're thinking is out of order.
Decide you want to do something, and then start doing it. The learning will come from that.