Programmer industry, changing with each passing day, technical system update speed, new technologies and frameworks emerge in endlessly, and all technologies are like a bottomless pit, when you learn more you will find that the more you do not understand, the more you do not understand, the more you need to learn.

Therefore, once you choose this industry, it means that you have to keep learning to keep up with the pace of others, and to become a good programmer, you need to keep learning through the right method, set the right goal.

As a warm-hearted old driver who has been involved in various technical groups for a long time and especially likes to help others solve problems, many friends in the group often ask me how to learn a technology.

As the saying goes, it is better to teach a man how to fish than to teach a man how to fish, so whenever people ask me this question, I always give them all.

Although I’m not particularly good, but they think is a programmer, I especially like a word is “you can not clever, but can’t be effort”, after all talented programmers only rarely part of most Daniel or against the correct learning methods, experience more of that spend more time than others in study reached their present achievements.

So here I combine my 7 years of technical career experience, give some methods and suggestions in technical learning, hoping to give you some inspiration, and help you to avoid some detours. Of course, different people have different learning methods, and these suggestions may not be the best. If you have your own opinion, please give your opinion in the comments of this article.


The first thing I have to mention is reading official documentation. Although it is a cliche, there is still a large percentage of developers I have met who do not read official documentation, and one of the reasons given is poor English.

Let’s take the English out of the way and talk about the benefits of reading official documentation (not only official API documentation, but also official guide, tutorial, Training and blog) :

#####1. Have a broader and more comprehensive understanding of the technology or framework

In fact, IN the first two years of my work, I did not have the habit of reading official documents. Although many of my predecessors suggested that people should learn to read official documents, I did not realize its role and significance due to my cognition at that time.

Later, when the company needed to make webApp, the leader chose sencha Touch and gave me only two weeks to write a CRM demo. At that time, there were no Chinese tutorials or books on the market, so the only way was to read the official documents.

Under the pressure of time, I had no choice but to start reading official documents. It didn’t matter at first, but it opened the door to my new world.

I found that the official guide tutorial was so detailed that IN my later reading, I organized these contents into sencha Touch introductory blog series, and wrote an introductory demo and put it on Github to help the technical group members solve many problems. As a result, I became a sencha Touch champion, the administrator of various Sencha Touch technology groups, and the jobs and private projects that followed.

However, what people don’t know is that I just read more official documents and studied more official samples than they did. Many top bloggers also made summaries based on the documents they read, so the difference between them and most of them is actually only one document reading.

In fact, the official documentation for most technologies or frameworks is very, very detailed. I’ve seen an article that says it’s tooth thin. Yes, it’s tooth thin

  • Java tutorial: Covered every knowledge point of Java
  • Training for Android: From creating projects to best practices for various features, give you a step-by-step guide to writing code
  • Android Guide: Break down all the important points in detail

If you can read through these documents, you are already ahead of most people in terms of a macro understanding of the overall technical architecture.

When time permits, MY habit is to read through the official guide and have a macro understanding of the overall technical architecture. The advantage of this is to find the optimal solution faster when implementing functions or solving problems.

May in many cases because the project time is tight, have been doing, many people are directly to fit function in order to complete the project as soon as possible, this is no way, also it is suggested that learning technology directly to fit line project to do, but this way due to the scattered knowledge, in the process of project implementation is easy to detour, in the end may take longer time than reading the document.

It’s like you want to go somewhere, read document equivalent to holding a map, where are you going soon can locate the specific location, and directly get started doing project is equivalent to only know that you don’t have a map about bearing, or you need to spend more time looking for someone to ask the way to find the location, sometimes into a dead end.

# # # # # 2. To be able to obtain timely technical updates or framework, understand the latest technology As everybody knows, the software industry technology update speed is very fast, and books, video, or blogs, a large part of all keep pace with the iteration, sometimes you see will find their tutorial to write programs because version is inconsistent, Some of the code will go wrong and take a lot of time.

Looking back at my old Sencha Touch blog, much of the content, including the commands, is dead and has been replaced by new commands.

Therefore, only by learning to read official documents can we get the latest version of the content and master the latest knowledge points in the first time, so as to be a step faster.


### Why read English documents?

I’ve briefly described the benefits of reading official documents, and then I’ll talk about why you should read official English documents.

Some people may say, there are many Chinese translations on the Internet, it is so convenient to read, why read English documents we are not good at?

  • First of all, there are indeed many documents translated into Chinese, but the translation cycle of most Chinese documents is relatively long, and it is still difficult to keep up with the iteration speed of official documents.

  • Moreover, each person’s understanding of the document is different, and the content translated by different people may be mixed with their own subjective consciousness, so sometimes there will be some misunderstanding.

For example, in Android development, image resources have always been stored in Drawable, but later mipmap directory was added. Maybe due to careless reading or misunderstanding, mipMap was said to be stored in Mipmap soon after miPMap came out. However, the official documentation clearly states that only the startup icon should be stored.

  • What’s more, if you read more English documents, it will be easier for you to find the key words when you encounter a problem, because many technical terms or key words have been quietly left in your mind during reading.

Therefore, if conditions allow, we should resolutely choose to read relevant Documents in English. Then the reason mentioned by many people before, what should I do if MY English is poor?

Actually when I start to read English document of English reading ability is not good, just like many developers, is very laborious, what Google translation and youdao dictionary, using those who can use the translation tools, and a lot of things can’t understand, so look not to understand again see two times, two times don’t understand to read three times, with the code of practice, gradually finally figured it out, Looking back at the document again, it suddenly became clear.

As you read more, you will find that the official English documents are not so terrible. Most of the documents have very simple grammar. After all, we grew up in primary School English.

And those computer words, in fact, the number is also limited, under normal circumstances I will not deliberately to recite a word, is to see do not know the dictionary to look up, read more naturally remember.

As you read more, you’ll be able to read faster and faster, even to catch up with Chinese, so you’ll be comfortable with any new technology.


In retrospect, when I felt that my English was not good, I did not look at English documents and materials. In fact, most of the time, it was just an excuse for fear. As the saying goes, you never know how good you are until you force yourself.

In psychological research, people’s understanding of the external world can be divided into three zones: comfort zone, learning zone and stress zone.

We are comfortable in our comfort zone. We are comfortable in familiar surroundings, doing things we are good at, interacting with people we know well, even if you are an expert in the area. But little or nothing was learned.

In the learning area, we rarely touch or even never set foot in the field, full of novel things, here we can fully exercise ourselves, challenge ourselves. So the learning efficiency in this area is very high, it’s really learning.

So all we have to do is push ourselves out of that area, and you can definitely take your career as a programmer to the next level.

Actually not only English, any technology, framework or tool, too, once used long familiar, become reluctant to try something new, it is a pity that is ultimately need to embrace change continuously, so, if you want to grow, you must overcome your fear, take their own psychological comfort zone, into the growth zone to learn something new.


Learn to set goals and plans

A programmer should learn to set certain goals for himself. Only with goals can we grow up. Without goals, people will become lazy and lose their will to fight.

However, the goal of technical learning has certain particularity. On the one hand, due to the characteristics of programmers’ work, they often work overtime, which will lead to unstable planning time. On the other hand, in the process of learning, I often get stuck because of a certain technical point, and often spend a lot of time to solve a small problem, which leads to the uncertain planning time.

The goal of technical learning is also abstract. For example, I need to learn JavaScript within XXX time. How should I define this learning?

For example, if I want to become an Android senior development engineer in XXX time, what is the standard of senior development engineer?

In fact, technical learning is often a cumulative process from quantitative change to qualitative change. Therefore, it is more reasonable to set a continuous goal.

For example, if I want to start learning Android Framework layer development, and I set this goal, I start to understand what knowledge is needed to build the Framework, Android, Linux, C++, etc., and then clarify their priorities

 Android => Linux => C++
Copy the code

Then find the corresponding material in order: documents, books, or videos.

Suppose I start to learn C++ and find the introduction to C++ Prime through research. Then I set a short-term goal for myself to finish this book first, and I don’t set a time frame for finishing this book.

My practice is to set a daily amount of study time, in the case of no special circumstances, every day strictly according to this amount of time to study: plan: Set aside an hour each morning to read C++ related technical blog posts, and at least 1-3 hours each day after work (depending on how much time you can spare) to read C++ Prime. Finally, if the work is done and conditions permit, You can also read C++ Prime during work hours.

In this way, I have set a small goal for myself. Of course, it is difficult for us to determine when we can finish learning such a goal plan, but we can be sure that as long as I follow this plan strictly, you can make certain progress every day and soon achieve the process from quantitative change to qualitative change.


### I should learn to quickly screen and collect the technical articles I read at ordinary times

In this era of information explosion, there are a variety of technical platforms, technical blogs/forums, technical public accounts and so on, through these platforms we can see a variety of technical articles.

If we can read and study for one hour every day, that’s a huge amount.

Many people read it and throw it away, and when they remember it, they often can’t find the address.

There are also collections of these articles

.