Following the post about my reading experience, I decided to share some advice on how I manage to keep up with the constant flow of new computer technologies. I believe that the ability to learn new technology quickly and effectively is more important for an IT professional than already knowing some particular of them. So, let’s start with my lessons learned!
No learning in advance
When I was studying at the university, I read lots of books, especially about programming in Java and C++. Later, during my professional career, I used to spend countless hours watching videos on different technology topics. My curiosity spread from computer engineering and embedded programming to database administration and designing web sites. YouTube, Pluralsight, Udemy, Coursera became permanently pinned tabs in my browser and their mobile apps streamed content on my phone when commuting or traveling. Sometimes I felt like pumping information into my brain 24x7.
From the historical perspective, I can distinguish three periods of such binge learning in my lifetime: books, technical articles and video courses. Interestingly, despite the change of media, the results of such a learning process remained the same – in a few months, I barely could recall less than 10% of the information I consumed. It took me three attempts over more a decade to finally realize that that approach to learning technology, and anything else too, simply doesn’t work. It’s too ineffective. If you don’t apply the knowledge and skills you learned in a relatively short period after acquiring it, they will just fade out in your memory and will be rewritten with more frequently requested information as data in a computer cache.
So, instead of immediately jumping to learning each time I encounter the next cool new technology, I turned to the ad-hoc learning process. If I foresee demand in a new skill or technique I highly likely to use in the short-run (an upcoming month or two), only then I dedicate some time to learning about it. Of course, such an approach can be more challenging due to the shortage of time, but from my experience, it makes you more disciplined and focused on the outcomes of your learning rather than on the enjoyment many people experience from the process of learning new things itself.
Have a plan
If you consume information about technologies without having a clear goal in mind why you need it and how you are planning to apply it, all that information will be like raw data, an unsorted array of skills, that has no use in real-life application. Besides, when you switch to learning on-demand as I did, the pressure of limited time can be enormous. To deal with that challenge, you should be very careful with your timing and plan your learning activities the same way as you would do with any other work task – define the end goal, identify the constraints (time, learning resources, mentors’ availability, etc.) and come up with an action plan to tackle the issue.
Having a clear understanding of what you should know about new technology and what should be the result of your learning is critical. First times, especially if you haven’t practiced deliberate learning yet, it can be hard to figure out the success criteria of learning something you don’t have a clue about. The trick here is to define your goal not in terms of skills for specific technology but in terms of achieving something with those skills. For example, think of what successful completion of some work or personal task should be. It could be a running web app, some process automation, literally any kind of working solution that produces the desired result.
Also, it’s beneficial to set the limitation for your learning. These can be real such as a deadline at work or artificial ones like the amount of time you are ready to spend learning. Limitations help you to stay on track and not to slip into the learning for the sake of learning. You become more cautious about what to learn and what to omit.
When you have defined the end goal of your learning and know your limitations, it is time to find out what path can lead you to that “treasure chest.”
For computer geeks, as I am, it is always hard to not get sucked in a whirlpool of information that is usually formed around any relatively complex technology area. To make it worse, almost all modern information technologies consist of so many constantly moving and changing parts that just their number can make you desperate. In the beginning, it might seem that you need to read every available bit of information just to get a grasp on new technology. However, from the lessons of history, we know that such cases are rarely true.
From my experience, the Pareto principle is fully applicable to learning in technology. In other words, 80% of the real-work tasks related to some technology area can be completed with less than 20% of that technology-specific skills. Often, the percentage of required qualifications will be even less because, in computer science, it is common to decompose complex tasks into smaller and simpler ones. As a result, the individual real jobs you will be dealing with will require only a tiny portion of your knowledge about a specific technology. So, how to create your learning plan that would include those “magical” 20% core skills?
There are many ways to compose a list of core technology topics and the order to learn them, but I mainly prefer the following two methods. Firstly, I ask for learning recommendations from people already experienced with the technology I’m interested in. Secondly, as having a mentor who can guide you is happens not very often, I rely on the recognized experts in that technology and the learning materials they produced: books, Pluralsight or Udemy courses, etc. Usually, experts are demanding people, and they produce high-quality and well-structured content so that you can follow suggested learning order and learn technology skills grouped by specific topics. Doing so will save you time and can make your learning an iterative process when you start discovering another topic only when you really need it.
Practice makes perfect
Remember, I told you about looking at your learning process through the lenses of achieving the desired results with acquired technology skills? That is because to actually become skilled in something, you have to practice it for some time. Passive book reading or watching a video course doesn’t make a real difference. I would even compare learning without practice with scrolling your Facebook or Twitter feed – lots of information, but most of it you hardly can recall the next day.
The reason for such a poor outcome of passive learning is that our brain doesn’t use enough of its cognitive capacity to form strong neural bonds and consistent models in our memory. Consequently, that shallow information is insufficient to operate with and to use in logical thinking. If you are interested in the science behind this phenomenon, there is a lot of research on how humans learn and how our brain works in that process. One, I can definitely recommend, is an excellent book by Barbara Oakley, “A Mind For Numbers.”
When I explore new technology, I always try to find a way to apply the obtained information to my current task in hand. Even if my attempts to do that fail, and I find out that the specific technology I tried is not suitable for solving my problem, I will still get that experience. I will know that I shall look for another solution and avoid using this technology with that kind of task. However, it doesn’t mean that you should use all the skills you learned regarding new technology, as this can be counterproductive. Nobody forbids you to use your existing knowledge, so try to find a balance between what you already know and the skills you seek in the process of learning.
Spread the word
Sharing your learning insights with the teammates can be rewarding both for your professional outlook and for better understanding the things you discovered. Firstly, people are naturally keen on stories, especially when a storyteller tells them in some personal context. Secondly, explaining new engineering approaches or technology tricks helps you to prove your knowledge about the subject: other people can see the flaws in your explanation and point out that, and this is great! We, as human beings, make mistakes and can be short blinded sometimes.
Apart from that, people who you share your learnings with and who are also interested in the same subject tend to share their experience with you. I found this feedback very rewarding as it often gives you additional thought for the mind. This information exchange significantly boosters your learning as from the individual effort, the learning becomes collective, and the number of insights increases exponentially.
The form you share your insights on some technology may vary. As far as I can tell, oral discussions with colleagues during daily or weekly standups work best for verifying your assumptions and getting immediate advice. Writing documentation, articles or blog posts helps to create a solid foundation for further learning in your memory. Plus, I often rely on my own writings as learning notes, so it’s a double win – for my readers and for myself. Preparing for a presentation, conference or another important event might be challenging, but these are occasions to carry out a critical review of your learnings and polish your skills.
To finish this topic, I like to ask other people about their learning experience – what worked for them, what not and why. It’s inspiring to try new approaches and see whether they work for you. So, how do you keep up with the fast evolution of information technologies and the recent changes in your technology domains? Share your experience on that in the comments!