Here's how it is: half of what you learned five years ago is now irrelevant.
For those of us on the front lines of IT, this is not news. We need to skill, re-skill, and re-skill again, all the time. However, the ever-shortening lifespans of such skills has thrown up a new requirement: the ability to be a self-learner.
Sorry, but there is no bootcamp or master's degree or code lab that will enable you to update your skills constantly. You have to be, or to become, a self-learner.
Self-learning requires us to have a commitment that traditional schools don't teach. Being hungry to learn, to develop focus, and to motivate ourselves are topics that we don't see all the time in schools.
In the end, learning by yourself is about being a student and a teacher at the same time. If you're comfortable with the idea of being apprentice and mentor (junior and senior developer) simultaneously, you will probably be able to thrive in these present times, and re-skill many times.
By the way, learning is at the very center of a developer's career. How many of us at some moment in our careers have quit a job because we were not learning something new, or not learning fast enough? I have done that at least three times - quit jobs because I wasn't learning or even becoming better at what I was doing. Learning is crucial in a career in web development.
I recently read The Science of Self-Learning, by Peter Hollins. This book has helped me to make the best use of my self-learning skills. Here are some of my notes. To be a self-learner, you should pay attention to three topics.
1) Develop self-management and motivation
If you doubt you have the discipline to learn by yourself, don't overthink it. We are conditioned not to learn by ourselves. You were conditioned to learn by fear, and to wait for someone to tell you what you must learn, and when. Maybe this is the main difference between traditional learning and self-learning - knowing how to motivate yourself.
The best way to develop self-management is to think like a scientist. Before starting an experiment, a scientist will make a plan, writing down the hypotheses, materials, and methods that will be used to arrive at conclusions.
In the same way, before you start studying, ask questions, take in the big picture before diving into the content, try to reflect on what you're going to learn, keep track of your accomplishments and expectations, and always review what you just learned.
2) Interact with information
Play with the information you want to absorb. Use analogies. Look for patterns. Compare what you're learning with things and skills that you already know. Teach a friend. To sum up, play like a child with the information and skills you want to master.
3) Have a methodology to take notes
When you study by yourself, you can't organize everything in your head. You should learn how to take notes. I didn't know this, but there are many note-taking methods. One of my favorites is the Cornell system.
By the way, taking notes is a good way to discover blind spots in your knowledge. Note-taking is a kind of self-explanation. If you are unable to explain something, probably the concept is not clear in your mind.
From my experience, self-learning is one of the best instruments for developing confidence as a developer. I will tell you the truth - it can be frustrating and hard sometimes, but the benefits will last a lifetime. They are also of wider use than you may realize; the self-management skills you develop during your studies can also be applied in other areas of your life.
That's why, when I am participating on a hiring committee, I'm most interested in a candidate's self-learning skills. I want people in my team that will keep up with the pace of change. After all, frameworks and libraries come and go. Self-learning skills stay with you.