How to learn a new technology efficiently

Source: Internet
Author: User
Tags comparison

How to learn a new technology efficiently

Recently started learning WCF. Struggling, so read a lot about learning new techniques and methods of Web pages, the final collation as follows, a total of reference.

For this larger topic, we are divided into two sections: 10 Recommendations for learning new technologies and specific actions to learn new technologies

10 tips for learning new technologies

While my recommendations are primarily about software development, these principles apply in other areas as well.

1. Overcoming Inertia

Everything starts hard, overcoming inertia is the first step in learning a new technology. For the simple chestnut that exists in daily life, when we watch TV, we will not bother changing the station because the remote control is not around. Fortunately there are a lot of tricks that can motivate us and help us overcome inertia. For me, micro-habits are a very handy little trick. Rather than being intimidated by the task at hand, divide the task into a specific micro-task and pick one of them to start with. In the case of "get the remote", first twist your toes, stretch out, and push the whole person away from the couch. Next, slide your body to the ground, take your foot to the remote, and get up. By completing a micro task, you will find yourself overcoming inertia and the task is no longer difficult to complete. This method can be applied to the process of learning new skills. The key is to subdivide large chunks of tasks into micro-tasks.

 

2. Follow Daniel

The first step in learning new skills is to be clear about what to learn. It can be anything that you have the passion to learn and want to learn in depth. This primitive learning desire is very important, and this desire can provide you with motivation during the low period of your study. What you want to learn may be a new programming language, application framework, or new tools, and once you've identified what you want, you're ready to collect some of the quality work that a good group of people has done. These can be obtained from YouTube, Vimeo, Hackernews, various blogs, and even your Weibo friends. Paying attention to what others have done can give you strong confidence that you feel "you can do it, too!"

3. Building a Knowledge network

When you build confidence in what you want to learn, the next thing to do is to make a sponge and begin to absorb the knowledge crazily. Start with the Google search keyword "Beginner tutorials" and search for some introductory tutorials that are relevant to the knowledge you want to learn. As you know, nettuts+ has hundreds of different tutorials for you to choose from, and StackOverflow has a lot of learning resources on it. In addition, Quora is also a good choice. By browsing through these online resources, if you want to focus on a particular aspect, then you need to read some related books, and personally recommend looking for some highly rated professional books on Amazon to improve yourself.

4. Listen and watch more

As you dig deeper into your technology, you may want to take advantage of other forms of learning, such as CSDN, developer forums, and more. At present, there are many websites that offer online education services. such as: W3cschool, Runoob, MU class network ...

5. Move Up

Now that you have read some tutorials and videos, and have some knowledge of what you want to learn, what to do next. Yes, it's time for theory to come into practice, which is the only standard for testing truth.

Use the techniques you have to make a personal small project, design some simple functions and implement them. There is no doubt that you will encounter a lot of stumbling block, when encountering them, in Baidu or Google above search, solve it. You have embarked on a journey to become an expert in a field, and the more difficult setbacks you encounter, the wiser you will become. There is an old saying, "experts are the most wrong people", which means they have tried a lot of crazy things to explore the limits of the technology, and finally, how this technology works can be know everything. With this insight, they can use the technology at their whim to do what they want to do (and, of course, do good things) as they wish.

6. Write a blog

While you're on your expedition, it's great to record your growth and mistakes in real time. In the technical field, blogs are the simplest and most popular expression vectors. When you're ready to put your pen down, you'll force yourself to organize your thoughts and structure the fragmented pieces of knowledge you've accumulated. Perhaps, through the sharing of the Internet, your experience and sharing will help other people's growth.

You can also make your own screencasts if you want to go farther (like a professional author nettuts+ above). On the whole, blogging can improve your personal communication skills, which is just as important as the technology you've learned.

On blogging, we have encouraged people to blog in a number of articles. For example, "If you don't have a reader, you have to write a blog."

9. Embrace GitHub

GitHub is an iconic building for open source projects around the world. It is a treasure trove of knowledge and high-quality code. When you feel good about a technology, the next step is to browse for interesting items on GitHub. Read the open source code and read as much as you can. In doing so, you can learn a lot of things, such as:

· How to manage large-scale projects

· Interesting libraries that are applied in the project

· Code specification and code global design

· Document Style

· Test specification

· Ways to solve weird problems, and find out where problems are in your project

All this knowledge is waiting for you to dig. Interestingly, this knowledge can be obtained through a simple label, which is "curiosity".

10. Focus on Learning

If you're worried that the learning process is too slow, you can also try a quick learning model. You may have heard of "24 hours of learning something," but this is not the way I recommend it. I think it's more reasonable to spend a few weeks studying. You can try something like "seven weeks to learn seven languages" or "seven weeks to learn seven kinds of database" and other learning methods. While these speak of language and database learning, you can use this thinking when you are learning other techniques.

Having a different learning style is a "difficult learning model", which is premised on the premise that no one can really master a technology unless practiced every day. So, to be an expert, you need to keep practicing. The similarities are that you can view Katas and koans, and he encourages the use of your knowledge to solve problems. This will allow you to get a better start and accept the unfamiliar concepts, brave out of your comfort zone and start learning new knowledge.

learn a cross-cutting skill

Programming is a left-brain movement that uses the analytical power of the brain to find a way to solve problems step-by-step. To make the right brain function, you can try some creative activities, such as drawing, 3D modeling, origami, musical instruments and even making family albums. In fact, programming also requires a lot of creativity. Maybe you've come across something similar, and you've found a solution to the problem in your sleep. This is because your right brain handles problems in a very different way, and it can get information from a variety of places. Andy Hunt, the Agile Development Authority, wrote a book on this topic, "Programmer's thinking practice." If you want to ignite each of your neurons, it is recommended that you start learning a cross-cutting skill.

Summary

Mastering a new technology is inspiring, and it's an experience that affects your mind. But first, you have to overcome your inertia, and once you do, you start the journey of learning knowledge from every corner of the web. I hope that the 10 points above will give you some help or inspiration for your journey.

specific actions to learn new technologies

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.

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 the new technology through "doing high school", I generally divided into such a few steps: The overall overview of clear milestones, selection of practical projects to collect and organize related articles and open source projects, imitating reference

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. 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.

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.

doing high School (learning bydoing)

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, it sounds cool, but the process is always hard and tortuous. 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.

Goals should not be too large, to have a phased achievement is to motivate their people's learning enthusiasm are cyclical, the beginning of passion full, a period of time will be the passion, 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.

Report:

lack of thinking can lead to this phenomenon:

no design.

Encountered the problem, took the familiar frame, the plan, the pattern which has seen, has learned, but does not carefully analyze the pros and cons, just as far as possible to find the closest solution to the current problem.

Some are not doing system design. And a few so-called "architects" contact, they "only understand the business, do not know the technology", so that the design of the system can only meet the functional requirements, and some of the discussion on the specific issues in the forum, exposed some of the threads discussed "only talk about technology, do not mention business," such as "XXX Large capacity Solution", The ultimate architecture of the second-kill system ", in an attempt to a broad range of problems, design a set of universal solutions.

Others do not do object-oriented design, lack of abstraction and decoupling ability, such an example is more. My friend told me that his unit had an old ruby-writing employee, a huge project, with only one God in the code, and all the problems were fixed.

can't stick to his point of view

This is the easiest thing to see in an interview. Candidates have just graduated students, but also have more than 10 years of experience in the practice of practitioners. He gave a rough plan later, in the scheme is not refined to a certain extent before, it is difficult to give the pros and cons of the comments, but, if you gently challenge, he quickly abandoned the original idea, ran to your train of thought.

For example, in the SNS system, the service side has the message how to notify the client, such a problem, the solution has many kinds, such as client polling, the service side hold live connection push, etc., each have pros and cons. Candidates should have their own points of view.

cannot refine a problem solution

How to distinguish between a talker and a doer. Giving him a specific question is the best way. When I first started working, I admired the people who talked a lot during the event, and I thought they could say it. But then I gradually found that there are too many people can say too much. The refinement of the design, or even the coding, is the real test of a programmer. Of course, if you feel that the person doing the software design can be unfamiliar with coding, the architect can not be a senior programmer first, then we have nothing to talk about:).

If you learn, you can grow up fast, and if you don't think, you'll always be behind others.

In the study of new technology I think also should think more, different people have different learning motivation. In the case of non-external forces, for the study of new technologies, my views can be summed up as:

What is it that solves the problem, is the so-called problem domain, is my concern.

I did not study the operating system underlying implementation, not that it is worthless, but I am not interested, this is the impact of the problem domain (but now I am interested, I want to do some of the things).

and the past solution where its advantages are, whether significant.

This is competition, duplication of technology is not living space (of course, you are Microsoft's words excepted:), like the Internet, the same type of website, competition to the last two or three. Like groovy, I love it, but with Scala I think maybe one of them is going to die (the groovy founder said that if he knew Scala earlier, there would be no groovy thing.) Specific reports please go to Google to search his blog).

Its realization and bring the effect to see, there is no very interesting ideas, is worth reference and thinking.

This is one of the hardest questions to talk about. In the case of node. JS, which started contact at the beginning of last year, it is possible to put back-end aggregations (such as portlet streams) on the front end, with only one type of page service on the Back-page template, and several easy-to-manage API interfaces, which greatly simplifies the complexity of the backend system. And it can spread the pressure to the front, which I haven't seen in the early years.

After thinking about these three questions, I think it is worthwhile for me to study. Otherwise, for me is not want to go into the things, understand also just.

the way to learn new technologies, I would like to say a few points:

find a starting point

I like Bluedavy's blog on the words: "theory does not understand the practice, practice will not learn theory." ”。

Finally, it is best to fall into hands-on practice, but if the habit from those principles introduced by the text to start, it is not a bad choice. And there are some constraints to the reality, such as when it comes to understanding the cloud platforms of several internet companies (Amazon's ec2,m$ Azure and so on), unless you're an employee of these companies, it's hard to get into it.

Find your point of interest

Learning should be an interesting thing, and when your brain rejects it, I don't believe it's easy to master the new technology. If you can not find the point of interest, then, may wish to return to my previous article on whether the new technology is worth your study of the point of view, since you do not have any interest, why do you learn it. Xi ' an software training

good at comparison

Comparison is a very easy way to think, and what to compare. Compared with similar techniques, compared to the examples above in the operating system, network infrastructure, and finally, compared to the examples in life (for example, the implementation of Javanio is a good example).

Keep getting feedback

What is feedback. To make a helloworld example is an excellent feedback, to understand a certain realization principle, to associate with other similar implementations, to produce a sense of epiphany and a kind of feedback. In the process of learning, the constant generation of feedback means that you continue to reap the sense of accomplishment, which is one of the driving force.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.