One of the most exciting things about being involved with the web is that new technologies are emerging all the time. The thing that sucks about that is new things are emerging all the damn time. If a developer is to remain competitive, pioneering and most importantly, in a job, then learning must be a core part of her career.
But learning purely to avoid atrophy won’t ever help you achieve a demonstrably useful level in a new skill. Even wanting to learn isn’t enough. If the onus is entirely on self-motivation and the intrinsic rewards of bettering oneself to sustain interest, then for most of us it will be a short-lived venture every time. We must have a need to learn - an environment with real demands and a place to immediately put fresh knowledge to task - not just a sandbox that will never see the light of day.
In other words, we must create a knowledge vacuum, not simply crowbar more information into an already overloaded brain.
Necessity is the mother of learning
Case in point - I’ve been learning Rails, or rather intending to learn Rails, on and off for longer than I care to say. I’m still entirely incompetent because, although the framework excites me, until recently I haven’t the incentive of seeing it solve real need. Only when I thought up an idea for a real-world Rails app did I really start to ramp up the learning process.
There are, of course, countless Rails books and tutorials that would have walked me through building a Twitter clone or an event ticketing website or whatever else, and I would undoubtedly have learned a lot along the way. But this mindset is wrong for two reasons:
What you’re building is dull and, more importantly, not real. Any good teacher will tell you that the key to engaging students is to present the subject matter in a relevant and exciting way.
It’s information that is, at the immediate time of learning, redundant. That means that you’re less likely to retain that information and you don’t really have any real-world understanding of how to apply it.
Compare this to starting with an idea and learning as you build. You have both the ongoing rewards of solving your own problems and the stronger contextual factors that will aid your memory further down the line.
Of course, you’d be going about things in a very backwards manner if you were to learn something from scratch armed with nothing more than a blank text file and Stack Overflow, and anyone who were to do follow such an ad-hoc methodology would probably turn out to be a worse than useless programmer. But when you’re plodding your way through your Codecademy tutorials and Youtube screencasts, it undeniably helps to at least have an idea in the back of your mind as to how you will apply your newfound knowledge to something you actually care about.
Rack your brains for something to build that will benefit you, or look for ways to use emergent technology to improve projects you already work on. Think of it this way, which of the following sentences excites you more: “I’m learning Node.js” or “I’m building a kickass web app with Node.js that will let me easily calculate how much petrol money I save each week by cycling”? (You can have that idea for free, internet. You’re welcome).
Learning is a vital part of keeping your mind active and your career chops honed, but ultimately it’s street smarts, real world application of knowledge, that will help you the most and spur you to keep learning. Invest your learning time in doing and you will, without even realising, be absorbing the skills to tackle real situations you will face in the field.