In my quest for knowledge I've learned that there is no better teacher than experience. Allow me to explain...
I'm giving a few presentations this spring on navigation in responsive design. I first gave this talk at CSS Dev Conf in December 2012. RWD is still a pretty hot topic right now as we see more and more large websites move to responsive design. I love the challenge of building a responsive site, especially when it comes to navigation patterns and content flow. That's why I like speaking about this topic.
I made a website for my talk back in December - responsivenavigation.net (the .com was already taken). This site has a bunch of demos and examples of responsive navigation patterns. I built the site rather quickly in my spare time since I was placing more effort into the actual slides for my talk. But now I realize that the site needs more beef - it's gotta get redesigned.
While originally building that website I realized that I was learning a lot - like a lot about what I was going to speak on. Having to build that site made me learn more about my topic and therefore gave me a more intimate knowledge of what I was going to talk about. So I basically learned by doing.
Learn By Doing
The experience I gathered from building that site made be better at building responsive navigation as well as an overall better developer. It taught me way more than reading a bunch of books and blog articles could have ever taught me.
I realize that when it comes to web development this not only the best way to learn, sometimes it's the only way to learn. But what about everything else in life? What about learning a new language or building a deck in your backyard? Actually doing something and jumping right into it is sometimes much more effective than learning about it first.
I've found that reading books is great, but you need to quickly apply the knowledge from books to real life situations if you ever want to truly absorb that information.
And learning something new really isn't that hard if you have an end goal in mind. If I want to learn a new web technology, I'll give myself a small goal of trying build a small app or website with that new technology. Then I have something to work towards. I have an actual measurable goal and end-point. Once I reach that goal I can apply everything I just learned into something new - a bigger and better project.
I personally don't see a lot of people with the balls to go out there and learn something that they've always wanted to try. They think, "oh I can't do that" or "wouldn't it be nice to do that - I just (insert lame excuse here)". You get the point. So stop making excuses and get out there and learn something new - do work.