Learning current technologies is a real challenge. You have to be fast enough so that when you finish is still useful or at least is the basis for the next technology to come.
Long time ago, people studied to get a good job and probably stay there for two decades. In the programming world of today, that is no longer the case.
People at this industry is betting all the time to find out if they are at the right technology at the right time, but it seems that each new advance in technology opens a new rabbit hole in Wonderland that now has Artificial Intelligence, Robots, all sorts of devices with IoT, 5G communication, more than one Internet, space shuttles and voyagers to Mars and beyond.
The world has grown in complexity, speed, diversity and specialization. No longer you may think that five years of a college degree is enough. Current times require other skills, and rapid learning is one of them.
There are two scenarios. When we find that some kind of technology is just a makeup of another one, and when we really find that is absolutely new.
As this is a blog related to programming, we will spend a bit talking about this issue. But just for the sake of gaining a bit of understanding, let's talk food. Let's talk about cooking.
As any industrial process, cooking has three steps: input, process, output. Dead simple.
Cooking can be very challenging at any step. Input challenge may be related to exotic ingredients due to its cost or due to the fact that those are very hard to handle properly. A sample of this is the preparation of Fugu. The blowfish contains a poison called tetrodotoxin, which is 1.2 thousand times deadlier than cyanide.
In other cases, input may be very simple, but with a very complex process to achieve. One sample are poached eggs, that require a great deal to master.
As an example of complex output, we can talk about a Caesar Salad. Simple ingredients that need to be served and mixed to perfection right in front of you.
Before attempting to learn any new technology you must make your research homework. There are core things you must find out. Who invented it?, How long ago?, What is it used for?, How many people are using it?, Is it rising or falling.
But the most important thing you have to answer yourself. Why should I spend my time learning this?
Usually we dive into a new technology just because is fun. And that is quite nice. No problem. Take your time and experience it as a new video game.
But if you have no other choice but learning, make sure that you understand the reason why. This will be very useful to define how deep you are going to dive.
Is not the same to understand Wordpress because you have to lead the marketing team and you need to know what you can do with it and what not or in other scenario you are an experienced web developer coming from other tools and got a new job where this technology is used.
Do nothing but reading. Check available tutorials, youtube videos if any. The idea of this is to find out what is important and what is not.
Technology is like language. English has around 170 thousand words, but no one knows them all. In fact, you can do pretty well if you know ten thousand. An ordinary human uses 500 to 1000 words on a daily basis.
The trick is knowing what those words, use them well. To use them well is how to combine.
Cooking is the same thing. Think about it. You may see thousands of cooking tv shows, many use day to day ingredients for an infinite number of dishes.
Execution is what makes the difference.
Only after you have clear goals, start practicing. Do not start with silly samples, go to the challenging ones. Make a lot of mistakes, put pressure on you.
You will be frustrated more than once you will hate this thing even before accomplishing your first attempt. If this happens, you are in the right path. If not, you started at a very comfortable level and will not learn anything.
If seems too difficult to grasp, start over. Watch your steps. Find out how others do it. At some point, light will appear. And never, never quit.
You may gain quite a big knowledge by doing. Reading or watching videos is useless to learn. You get the real feeling when you do something.
Probably you can learn Python or Mandarin this way. But you will never know until you face the real world.
Technologies as languages are useful stuff. You need a real project with a real client to learn. You may have decades of experience, on a new tech that means nothing.
You have only two advantages: you learn from mistakes, and you learn fast. That is it.
Once you master a technology, another one will come. If you are stuck in one you will never embrace the new one.
Open mind. There is nothing like the best programming language, the best device, the best of the best.
You have to understand that all is about use case.
If you can make this distinction you will have not only knowledge, you will have wisdom.