This article is adapted from my book,
Everyone dreams, and some dreams eventually translate to plans. Once in a while, it must be said, a plan even inspires some soft stirrings of movement. But achievement? Let’s not get carried away.
Growth is hard. Nevertheless, there are things that we can control that can help the process along. You’ll always need a certain mental toughness and discipline — things I’m not sure can be taught — so that’ll be your responsibility. But there are techniques and tricks specific to technology learning for staying motivated and finding the right frame of mind. Those, as illustrated in the figure, are what we’ll talk about in this chapter.
How to approach learning a new technology
- Just anticipating that you’ll enjoy the learning is important. Naturally, other factors like previous familiarity with a technology’s larger environment can make a difference. As an example, a background in Linux LXC containers will make learning Docker easier. But there’s nothing like enthusiasm to help push back the darkness. So if the only distinguishing characteristic between two options is your excitement for one of them, choose excitement every time.
- Old is the new new. Sure, everyone loves working with cutting edge stuff. But getting up to speed quickly on your own will require documentation, and a technology that’s already been around for a while is probably going to have more wikis, guides, how-to’s, and Stack Overflow threads than something just out of the gate. Even a vendor’s official documentation tends to be a bit rough during its early stages. Getting in early to help out with bug reporting and documentation is wonderful, but if you’re looking to make a fast start, stick with a more mature product. Remember: your time is also a significant cost.
- There’s another benefit with learning at least some mature technologies: unexpected employment opportunities. There may not be a broad and sustained market for COBOL programmers, but if there’s a company (or, more likely, government department) in your neighborhood who happens to be running legacy infrastructure whose admins recently retired, then someone with COBOL experience might just find a happy landing. that’s not to say that you should necessarily invest too much time in a technology as old as COBOL, but it does illustrate another potential benefit of working with older platforms. A little creative planning might sometimes pay off.
- Not enough spare time to learn? Ask your boss: your company might just let you take an online course or do research on their time. Some companies actively encourage such studying, often earmarking a set percentage of your monthly work hours to learning new skills. Even better, many organizations have enterprise accounts with the more established online learning platforms — like where my courses live — providing their employees with unlimited access to courses and other tools.
- A good certification can make it easier to convince employers or clients that you know what you’re doing. But it could also help get you to the point where you actually do know what you’re doing. That’s because, as I often like to say, a well designed certification is it’s own reward. More often than not, carefully working through a cert’s published exam objectives will automatically connect you with the core topics you’ll need through real-world daily use of the tool, and introduce you to the features and functions you’re likely to need. Having said that, certs have historically worked best within the IT domain — for system administration, networking, and security tasks — more than for programming languages.
You know how it goes. A few days after starting a new learning project, you find yourself stuck in the weeds of complex syntax and confusing layers of folders and configuration files. Your exciting long-term dreams feel a long way off and your enthusiasm is beginning to fade. Well I never told you it would be easy, right? Expect tough times and plan for them.
Here are a couple of ideas you can incorporate into those plans.
Learn it backwards
Consider breaking some rules. Don’t work through all the topics and domains of your technology sequentially, moving from simple to complex and memorizing abstract details stripped of their practical context. Instead learn the details, but only as they become useful as part of practical and fun projects.
Really? Is that something you can get away with? Can you seriously avoid rote learning and memorization when trying to grasp a new technology? Aren’t there just too many fundamental details you need to know up front before you can get any real work done?
Perhaps. Unless, of course, you find a way to keep track of the details while working on practical, satisfying, and compelling tasks. As long as you end up covering all the bases, no one gets hurt.
This was the philosophy I employed while writing my
books with Manning. The idea was to introduce the reader to real-world projects pretty much right from the first chapter, while making sure that, by the time the book’s done, we’ve checked all the boxes. Here’s how I described it in Linux in Action.