The enterprise in IT industry is characterized by knowledge-intensive enterprises. The core competencies of such enterprises are closely related to the knowledge and skills of employees. And if you play an engineer role in your business, your core competency is the storage of it-related knowledge and skills. As we all know, IT industry is a large number of new knowledge, take the Web front-end example, a short 5, 6 years, the Web front-end has undergone several changes, for the time being, the change will continue. From the previous Div+css grid layout to the ascendant of JavaScript, and then to the various JavaScript frameworks, HTML5 and CSS3 's Landing, the mobile web shock brought about by the responsive design, JQUERY,ANGULARJS, Reactjs such as manipulating DOM elements are radically different ideas and ways of standardizing the Web Component process ... Why are companies now recruiting front-end engineers everywhere? Suddenly, the front-end engineer became a scarce resource. One of the reasons for this is that many front-end engineers can't keep up with the industry changes and fail to meet the current market's ability and requirements for front-end engineers. In this kind of environment, the ability of engineers to master the rapid learning becomes crucial.
Based on my own personal experience and the observation of my colleagues around me, I have the following guidance on how to quickly master a new technology, including a novel it technology, including a new programming language, or a new program framework.
To quickly master a new technology, there are two prerequisites first.
first of all, think about the initiative to change, dare to jump out of their own comfort zone, to any technology has an open mind. It is human nature to covet stability. And that nature tends to hinder your development. How much knowledge a person can understand depends on how big the comfort zone is, the greater the comfort zone, the greater the scope of the border with the outside world, the more they feel their ignorance. Programmers have to do at least two points, don't be biased about the technology they don't know, and don't be afraid of the technology they're not familiar with.
the passive learning is to be active-learning. a large number of programmers in China are learning passively every day. What is passive learning? is to be forced to study by people and things. Today, a new launch of a project, technical research do not want to adopt new technology, the development process encountered difficulties will be to check the information, all day is to others, since the previous code copy reuse, replication problems will also take a long time to solve. For example, a programmer who has used spring for several years does not know the core concept of spring, does not know the spring framework structure, does not know the features of spring's various components, and does not know the new features of spring's new version. This is very scary because you don't know about these things, you can't adopt spring's best practices, problems don't know how to locate quickly, and some of the requirements in a project can't use the features that spring has already encapsulated (because you don't know spring can do this). Active learning requires you to prepare for a rainy day and not cram. And to regard learning as the accumulation and improvement of their own, as a long-term investment in their own, can not be too strong utilitarian.
Some people say, I just like the comfort zone, I just do not like active learning, what good ways and methods to change these two points? To tell you the truth, the help I can offer you is very limited. As in the "after will life" in a line, "I have heard a lot of principles, but still not good this lifetime." These two points are still more on your own to achieve. And then some of the points that I believe can help you.
-
Before you learn a new technology, you need to figure out why you should learn it. How did we work before this technology? How do we work after we have it? What changes did it bring? In fact, to ask these questions, is to understand the technology to solve or simplify the problem domain, and how to achieve this effect. Take Angularjs as an example, Angularjs was originally designed to compensate for the shortcomings of the HTML build application. The previous HTML was designed to showcase multimedia information, and later, although some dynamic features were expanded, the lack of HTML design became more and more prominent under the trend of applying web. For example, DOM element manipulation is too cumbersome, the business logic is difficult to modular, low testability, development efficiency and so on. Angularjs uses a new design to solve this problem, it proposes a series of concepts, including data binding, identifier, routing, dependency injection and so on, which greatly simplifies the workload of developing web development. In this way, we can quickly establish a macro-understanding of the technology, understand its potential application scenarios, application methods and some limitations.
-
The next step is to actually use the core functionality of the technology to enhance its understanding. The method is to refer to the Quick Start section of the technical website, step by step. now programmers are more and more cherish the time, the simplicity of the document, completeness, easy to get started is the adoption of a technology is one of the indicators. In particular, the current open source components, even documents are open source. so many of the documents are written exactly as the programmer thinks, and it's refreshing to read them. For spring, to learn the spring boot component of Spring4.0, you can access its official website, and the largest button on the page is quick Start. Click to learn it. The page is a simple example that may not take you five minutes. If not, the right side lists more
The
Getting Started Guides, is also step by step to teach you the advanced function. Some people may ask, English is not good how to do? Please learn English. English is an essential skill for a good programmer. The may also say that there are various noises when looking at a document. For example, to see Spring Boot's start guide, you need to have a good understanding of spring, need to know what Tomcat, jetty are doing, need some gradle or maven experience ... This knowledge is required in the walkthrough of the Small program of spring boot, but the distraction of these noises slows down the learning process. The only way to get rid of these noises is to take time to learn about the things you don't know. so learning is a virtuous cycle, and the more you learn, the faster you get to learn.
The first two steps can guarantee you an introduction to a technology, then how to advanced that? This stage is read. Ba la down the detailed documentation of the technology from the official website and read it vigorously. Reading through these documents gives you access to its implementation details, as well as various usage patterns and scenarios, and even some best practices. such as the spring boot Official document, detailed to the teeth. All the documents you think of and don't think about are listed. If you want to learn Scala, then visit http://www.scala-lang.org/documentation/, where you'll find a wide variety of documents, all of which are the most Scala experts. The best documentation for a technology must be its official documentation , if not, then the technology will not fire. Note that the process of reading through a document must be applied in the project. If you do not have the opportunity to practice in the project, you can write some small demo to practice. The truth of the combination of practice and theory in learning knowledge is invariable.
By the first three steps, your understanding of the technology has been stronger than most people. You can count on this technique. So, is there an advanced way? Of course, that's what you learn, what you want to say, write it, expose it to the public, accept criticism, and find your shortcomings, and make you progress. Have time to give you a few lectures, write a few series of articles, then you in the eyes of the people become the technology of the cattle. You have a variety of opportunities to solve the various kinds of incurable diseases that you encounter using this technique, which in turn deepens and corrects your understanding. It's okay. StackOverflow, answer a few questions, or subscribe to a list of questions about the technology, and see them often.
And you can go further. Join the domestic/international technical community (no such community in China, the opportunity to come, hurriedly build a), and further exert their influence. To translate and write books related to the technology; if the technology is open source, then when you have time to commit the changes, you will become a member of the developer. This is a qualitative leap from the use of tools to the creation of tools.
After 5 steps, you are not just mastering the technology, you are already super God! One might ask that it will take a long time to reach these five steps, not the height of the average person. Of course, this process must be difficult, but it is not difficult to ascend to the sky. At least I have a lot of such examples around me. In fact, you just have to complete the first three steps, you are more than 50% of the programmer cow, complete the fourth step, you have stood in front of 90% programmers.
Finally, a quick summary. The important thing to say three times.
Active learning is important, active learning is important, and active learning is important.
Official documents are important, official documents are important, and official documents are important.
Practice is very important, practice is very important, practice is very important.
Huang Boven @ Invincible North Melon Source: http://www.cnblogs.com/huang0925
How to quickly master a new technology/language/framework