The recent period of time, the react learning to practice a, is also more mastered a new technology, although the learning process is more difficult twists and turns, but the familiar feeling is still very good, after another choice, in the technical thinking also open a lot.
Recalling the programming career these years, 2001 began to learn asp,2002 years of study javascript,2003 years of study asp.net/c#,2009 years of learning objective-c,2013 years and jump to the front of this big pit, From Nodejs to jquery to Angularjs to the present react. This way to learn, through some detours, but also accumulated a lot of learning experience.
A positive open mind is the most important
Learning new technology, such as exploring a novel area, generally in the mentality, there will be two typical mentality, one is panic and resistance, one is positive and open, different mentality will result in different results. For example, for me, for programming technology, has always been my favorite, so the new technology of programming, always can actively learn, and can quickly master. And for English and writing, starting from school, has been I do not like the field of not good, so even after many years of learning, there is no obvious progress. Until after work, gradually realized the importance of English and writing, in the mentality of the adjustment, positive to face, to now finally improved a lot.
Another obstacle to learning new technology stems from the already skilled technology. When it is hard to master a technology very skillfully, although this in the future to learn new things, will help to take a lot of detours, but at the same time may become an obstacle.
I used to be quite proficient in several languages, even some of them thought I was proficient. For example, for the ASP, can be proficient in the technical conditions of the year to complete the complex BS system, although according to the current standard, is nothing more than a VBS to the database additions and deletions, then the interaction is not complex, but also to write some simple JavaScript, so that the experience better. At that time, I think it will be ASP, can take care of all the BS system development. Later, the net came out, the psychology is very complex, on the one hand think I use ASP already what can be done, why should learn ASP? On the other hand that this is the future trend of development, or should learn to master, or later may not keep up with the development of the Times. The result is still to bite the bullet to learn. Just every time you encounter difficulties and setbacks, will have to give up to write the idea of ASP, think that if I use ASP to write, early fix, why so hard to learn new technology?
When I finally one day, after the master of ASP, only to find their original shallow ignorance, before the ASP is stuck in script programming, to the ASP, has been able to use object-oriented thinking to design the architecture, and even out of the Web page, but also to develop back-office services. This is the equivalent of opening a new door for me to look at the problem from a broader perspective.
From a psychological point of view, our knowledge of the outside world can be divided into three areas: the comfort zone, the learning area, and the panic zone. We are familiar with the area of technology is the comfort zone, and the new technology is in the learning area or panic zone. With the mastery of new technology, the new technology will enter the comfort zone, but there will always be newer technology in the learning area or even fear area, waiting to learn to master.
If you want to learn to master the new technology effectively, the mentality must be open and positive.
Doing secondary school (learning by Doing)
If there is no @ Xin Zou Teacher's "Law of construction", I may not be so accurate to summarize this side-by-side learning method, for software technology learning, the most efficient way is to "do high school."
How to learn to master new technology through "doing high school", I generally divided into such a few steps:
- Overall overview
- Identify phased objectives and select practical projects
- Collect and organize related articles and open source projects, imitate and learn from
Overall overview
So-called AX, it is necessary to do some preparatory work before you start. When you begin to learn a new technology, it is necessary to have an understanding of the new technology as a whole, to know what it can do and what key points of knowledge it has. The next steps are also dependent on the mastery and understanding of the technology as a whole.
This job, if conditional, can buy a thin, easy-to-understand book, the whole turn over, basic can have a understanding. But it is not recommended to buy big books, the general Big Book is suitable for when the dictionary to check. But now the introduction of new technology is too fast, often to wait for the book is often a few months later, so most of the time, or get its official website to check the relevant technical documents. Like this study react, it is really difficult to find the right book, so I go directly to its official website (HTTP//facebook.github.io/react/), getting Started inside of the article quickly browse through, basically, there is a general understanding. And now the network related articles are more, through the search, can also find a lot of relevant articles and information.
Identify phased objectives and select practical projects
Generally a new technology involves a wide range of aspects, if the beginning of a comprehensive grasp is not realistic, but if from one point to break through, relatively simple. So generally I will be through one or more project practice form, divided into several stages, gradually to master the various knowledge points, the final whole to learn mastering technology.
For example, I used to learn some service-side language, will try to write a message board or blog system to learn, and this study react, mainly through the use of react refactoring I used to angularjs written a chat room application, to learn to master react. Through the front-facing react of the overview of learning, combined with their own situation, I for this project practice, simple divided into several stages:
1. Use react to build the foundation framework
React's application is based on the flux architecture, and the flux architecture does not have a unified standard, it needs to choose a flux architecture to implement, and based on it to build an infrastructure framework.
2. Implementing the Interface Infrastructure components
React is programmed to run in a component-based manner, so the entire application needs to be split into several base components, which are essentially split the elements and interactions of the interface into several basic components
3. Communicating with the server
A perfect program, inseparable from the interaction with the server, for a react program, its and service-side interaction, and traditional applications, not the same, and the results of communication with the servers data, but also with the interface integration
4. Release Test Perfect
For a good work, published to yourself and others to test, and then continue to improve, in the process to further learn to master the technical details
When the project of practice and the goals of each stage are defined, the following is how to achieve this goal and learn in practice.
Collect and organize related articles and open source projects, imitate and learn from
Books or documents on a knowledge point of the description, and the final project product, or there is a big gap, the project is ultimately required to fully use the knowledge points, reasonable combination, to write high-quality code, and for new technology, it is difficult to grasp these details, blindly rely on past experience, it is likely that Tiger, The things that were finally made were neither fish nor fowl.
At the beginning of learning to practice the new technology, imitation is very important, just like the children learn to speak, are from imitation began. Fortunately, with this open source project hosting service from GitHub, you can find a lot of great open source projects using search.
When I studied ASP in the early years, I benefited a lot from the two development experiences that aspnetforums open source projects for a long time. At the level of my time, it is impossible to design the development of such high-quality products, and even understand that some difficulties, but it is through the development of it two times, not only let me quickly learn to master a lot of the knowledge points and details of the development of ASP, but also developed a lot of good coding habits. In the back in doing other projects, you can imitate and apply it to many design implementations.
Some programmers write for many years, the code quality is not high, one reason is because too little to see, and seldom refer to the study of those excellent open source projects. It's hard to write high-quality code without seeing what good code is.
Before I started to practice the React project, I also tried to find a lot of open source projects, because the react technology is relatively new, there is no direct complete reference to the project, so can only be multiple project reference control. Here is a list of some of the projects I have studied and referenced:
- Emmenko/redux-react-router-async-example GitHub example of a server-side interaction
- Quangbuule/redux-example GitHub An example of integration with Immutable.js
- Rebuilding Hipchat with React.js a similar application to my project Hipchat, developed with React, is not an open source project, but the React dev tool can be used for reference to many components design ideas
In the early stages of building the framework, it is the framework of the first two projects to be borrowed directly, so that the program can be run quickly, and then, in the back of the basic component design, more of the reference Hipchat component design.
Doing secondary school (learning by Doing)
When reading a book to read the information, one of the points of knowledge does not seem complicated, but when the real hands-on practice, you will encounter a variety of problems (pits), and these problems only repeated thinking, check information, ask people to finally solve.
In the middle school, sounds cool, but the process is always difficult twists and turns! Learning is often the case, only through a variety of disciplines, to truly master these knowledge, to transform these knowledge into their own ability.
My experience of reconstructing chat rooms with react, like my previous experience of learning other new technologies, is fraught with difficulties and hardships, and has been paid a lot for two months. But the final completion of the time, but it is full of achievement, feel that the new technology is finally basically mastered, although there are some knowledge points have not been applied to, but also a matter of time, and then look back to some of the previous program design, and there are a lot of new ideas.
Lessons learned
Here are some lessons learned from the summary
Can Chew
Although the new technology has been introduced very quickly, but a lot of technical nature has not changed, in the premise of other technology "good foundation", mastering a new technology does not take too long, but "good foundation" as the strength of learning martial arts, is the real need to spend more time to develop.
So to learn new technology before, first look at the technology at hand is not mastered well, if not mastered well, may wish to learn again, otherwise, each technology is tasted, but it is difficult to have achievements.
The goal should not be too big, must have the stage achievement positively to motivate oneself
People's learning enthusiasm are cyclical, the first passion is full, a period of time will be the passion passed away, it is easy to give up halfway.
So in setting a phased target, it is better to target smaller, realistic, can more positive feedback, so that you can go a little farther.
For example, a write program can prioritize unit tests and interface sections so that there is a clear feedback soon, such as when you see that the unit tests have all passed and you can see the interface.
Study will not be wasted
Sometimes hard to learn the new technology, may soon be outdated, this time will inevitably have is not the idea of white, but in fact, learning never in vain, read a word I feel very reasonable:
Everything you learn is helping to build a network of neurons in your brain that will help you build a connection that makes it easier to follow up on other things, and understanding a knowledge that allows you to compare and contrast with other knowledge. Therefore, learning is always useful, no matter what you learn.
Source: How to overcome the fatigue of JavaScript framework?
Like more than 10 years ago I was very proficient in JavaScript, when I felt no eggs, and now it seems to be very useful:)
How to learn and master new technology efficiently