
To study the new technology is enough for a month. On it it would be possible to finish this article, plainly without having begun it. However, I will continue and tell you how I came to this conclusion, what can be done to speed up the learning process, and also list the main problems of learning new technologies and, most importantly, how to solve them.
For a start, I note that the term mentioned per month is a big assumption and a rough estimate. It all depends on your entry level and the complexity of the technology that you decide to master. Someone just look at the source code in the library, and someone needs to painstakingly understand all the nuances. Still, I'm sure that you will not need much time.
The first thing that can drastically reduce the time spent on training is the question “Is it really necessary to study this technology at all?”. It's all relative. After all, you can write on jQuery, and no one will tell you anything. In the end, absolutely everything is impossible to master physically. And yet too often I would not advise you to say “No”. We should ask ourselves this question not in order to justify our laziness, but simply for a more rational distribution of our own resources and the selection of the most urgent tasks. It is imperative to learn and thus improve your competitiveness. The way you learn quickly shows how quickly you can enter the market and create a new product that can compete with other companies. This fact is intuitively understandable, but we should just drive it into our heads and move forward.
')
99 problems
So, we will assume that we are already motivated and are eager to learn something new. And here the problems begin ... The first and foremost is the risks of using a new technology. These risks are shared by both developers and customers. One of the reasons is clear: the technology can be raw, but it can also not “shoot”, and it will not be supported in the future. And that is not all. To support a product on a new technology, the customer may simply not have the right specialist. Or the developer can leave the company and leave his creation without support, since besides him no one else knows how to do it. A good example of this problem is the new
Elm programming language. Few people know and use it because it is quite raw.
However, the problem of risk has a solution. Just before starting the study, you need to analyze the situation: look at the relevance of technology in the market, and also find out who its distributor is and what their plans for support are. This is an easy step that will save you from having to grab everything.
Another issue is compatibility. Some products need to use new technologies, but you can not just go and go, for example, to React. After all, it also requires a modular assembly, a webpack and many other things. Therefore, if you are faced with a similar task, it's time to think about whether it is worth undertaking that will require so much effort to achieve compatibility. To solve this dilemma is simple - you need to look at the analogs. Very often, new technologies of the same type are released, some of which may well be compatible with what you are already using. If you continue the example above, you may not need React, but simply a template engine.
Another common “pitfall” is the lack of necessary accompanying information. There are no books on technologies that were published just a week ago. Books just don't print so fast. Even electronic. In addition, we often lack Russian-language literature, and sometimes the documentation is either poorly translated or simply of poor quality. With such a disaster, I am sure, faced by very many.
There may be several solutions. The first is social networks. We are all present in them, as well as (surprise!) Developers of the technology that you need. Contact them or find the community you need and find out all that is required. The second way - blogs, including video. Most developers (again a surprise!) Lead them and post reviews and tips on mastering their creations. The third tip is give feedback. If you find an error, write about it. If you got poor-quality documentation - do not be silent. Conversely, if a blog has helped you understand the problem, leave a review and praise the author. And finally, there is an absolute weapon - knowledge of English. If you master the language at a sufficient level to understand the original texts at least with a dictionary, you simply forget about the lack of information.
The final problem that will be discussed is a lack of experience. Unfortunately, no one is born, knowing everything at once. And those who can, do not often break off your phone to share information. Therefore, the lack of experience, as well as video courses and tutorials, seriously increases the development time. For example, when I worked at 2GIS, a product called "Square" was released. This is a platform for questions about cities, and during its development a very high level was established and many new technologies were applied, which, of course, affected the deadlines. It always happens like this: doing something new for the first time is always the hardest.
The solution I propose is called
Github Search . With it, you can quickly find ready-made examples of the use of technology that interests you, and often directly from the authors themselves. Another necessary service is
Stack Overflow . There are developers who are always ready to answer your questions. Or maybe your question has already been asked by someone, and you just need to read the finished answer.
Another important tip for last - do not be afraid to leave the comfort zone. Record a video lesson or speak to the public in a mitap, do something you haven’t done before. Thus, you will not only share your experience with others, but you will also learn many new things. Why is it important? Yes, because it is your personal growth. Go to events, meet and communicate with people interesting to you, tell about your projects - this will give you such feedback that you will want to do more and more.
By the way, in order to confirm the loyalty of my own thoughts on all the above-described reasons, I conducted a special study and interviewed about 200 developers, both beginners and already working professionals. The question was one for all, and it is placed in the title of this article. The results were as follows: more than half a year, 9.7% of respondents dealt with new technologies. Their opposites, which took only a week, turned out to be 18.3%. 23.7% of survey participants spent from one to three months, but most of all, 48.3% of developers responded that they needed just a month or a little less to learn a new technology.
Steps and environment
Based on this research, I prepared tactics that will help you cope with learning faster. It consists of two components - steps and environment. There are only three steps. The first of them - "Understand!". Understand what kind of technology it is, how it converts data, how exactly it helps to achieve results, what its components are and how they interact with each other. See examples on Github, read ReadMe and look for thematic posts on Habré. Nothing new, but many for some reason skip this step and immediately rush into battle.
The second step is called “Secure!”. Once you understand what this technology is and why you need it, go on to practice. So you quickly find your own gaps in the theory and eliminate them. The main thing - be careful and do not make typos. The theory can also be found on Stack Overflow, and on the Toaster, and in the books of GitBook and O'Reilly publishing houses. See the lessons on
Level up! or Russian-language
Loftblog , where I once taught. In the end, just find yourself a mentor. This could be your colleague, a course mentor, a personal mentor, or even a desk neighbor - anyone who is more experienced than you.
After this, take the third step - “Discuss!”. Offline or online - it does not matter. The main thing is that you get a chance to share experiences.
I took two factors to the section on Wednesday: “Survival” and “Time”. "Survival" is responsible for the real need to study this or that technology. Our brain is very lazy, it does not want to work for a goal, the importance of which has not been proved, and will always give you a lot of such important things as calling your grandmother, watering flowers, feeding the cat. But if he knows for sure that without JS you will not survive, you will not find work and do not feed your family, then you will be surprised at the speed of learning. In some cases, the brain can be stimulated by self-motivation: scroll through the list of vacancies and dream of a big salary, look at other people's high-quality products to want to do the same yourself.
With “Time” everything is simpler, but it is apparent simplicity. We think that if we spend as much time as possible on training, we will get the result faster. Actually, it's not like that. Time must be organized. You can not disrupt sleep, nutrition, rest. Only in this way you will achieve maximum productivity. Two to four hours on a weekday and for one or two days off a week is enough for study. If you do not relax, you will no longer enjoy the process of mastering a new technology. There are many tactics of communication with time. My favorite is called
Pomodoro and it is to break the time into blocks of 30 minutes. 25 of them should be spent on business, and 5 - on rest.

Conclusion
If you sum up a certain result, it will sound like this - everything is simple, there is no such technology that you could not master in a reasonable time frame. Do not forget to prove to yourself the criticality of survival using the object of study and properly organize your time, and then take the necessary three steps, and then everything will work out! Good luck!