The author xie Enming, reproduced please indicate the source. The public, “programmers alliance” the original: www.jianshu.com/p/0194b98df…


People in the coders union group often ask:

  • Can I learn programming if I’m not good at math?
  • Can I learn programming because my English is not good?

Let’s answer both questions once and for all.

Just to be clear: I do not in any way mean to diminish the importance of mathematics to programming.

Mathematical knowledge for programming is very critical, such as data structure and algorithm learning to have a good mathematical foundation. Good mathematical thinking also helps.

In recent years, the hot AI (artificial intelligence) learning is inseparable from mathematics: probability theory, calculus, linear algebra, and so on.

What I’ve learned over the years is that English is more helpful for programming than math. Therefore, if you want to talk about priorities, you should first pass English.

Why do you say that? Quite simply, some programs don’t require much math, but English is unavoidable.

Unless you’re programming in an easy language (though to be honest, Chinese is really not a good language for programming. English alphabet composition and characteristics of programming really need to use English), otherwise can not do without English.

For programming, learning English well has the following necessities:

  1. Be sensitive to the basic vocabulary of the programming language and understand meaning easily. Many function and variable names are self-commented (that is, you can tell by their names), such as isFinished(), which is a “finished” function if you don’t know English. Many apis or source code are uncommented because the function name is already there, but you can’t read it without English.

  2. Be able to come up with good names for variables or functions. Naming can be a great knowledge, a good name, a look will know, is the first point said from the notes. If English is not good. Making a grammatically incorrect name, making a random name, or making a phonetic name like haoChiMa is unbearable. It’s a terrible sight for people to read your app or for you to look back at your app later.

  3. Many good tutorials and books are in English. Although our great motherland is becoming more and more developed now, the overall level of Chinese programming is becoming higher and higher, and they have also written very good books and blogs. However, the way of thinking of foreigners is still not quite the same as us, and reading articles by foreigners is often easier to understand than similar Chinese courses. Because they think jump, language humor, image, look more relaxed and happy. However, MORE and more I find that when I search for a knowledge point on Android, for example, the English result of Google search does not give a satisfactory answer, but the answer will be found in the Chinese blog. This country is not what it used to be.

  4. Many good forums and websites are in English. Examples are StackOverflow, Github, and so on. You can ask questions and answer them in English. Participate in open source projects, write documentation, etc. Of course, the comprehensive programming community like CSDN in China is also excellent, but generally new technologies will be sent to foreign websites in English at the first time, such as Android news. If you want to read the Chinese version, you still have to wait for translation, which lags behind.

  5. Many books are translated in Chinese, but it is difficult to understand because the translation level is not good. So if you want to watch the original, you have to speak English. I read a lot of programming books in the original English.

  6. A lot of software, no Chinese, can only be English.

As I mentioned in my previous post, I’ve been working hard these years and studying almost every day. I am a continuous learner, and I feel that I am always inadequate, so I must learn all my life.

One of the most important reasons for my rapid progress these years is that my English is good (of course, there are many people who are better than me). Good English is really helpful for programming!

Of course, another reason for my rapid progress is that I am also good at math. Fortunately, I did not have any subject in my school days.


On the other hand, math: Certain fields require math to be good.

  • For example, game development, 3D games need to have the transformation of coordinate system, gravity, rebound, Angle and other calculation, which requires mathematical knowledge.

  • Embedded low-level, displacement, and, or, not equal operations, binary, hexadecimal, octal and decimal conversion and calculation, requires mathematical knowledge.

  • High-tech or research fields, like aeronautical information engineering, where the math is very demanding.

  • Artificial intelligence, the field of algorithmic research, the mathematical foundation is also very important.

However, these areas of programming, are inseparable from English.

General programming, you know, Web programming, if it’s the front end, you don’t need a lot of math. You don’t have to be good at math to develop Android apps.

Of course, if you are good at English and math, of course, it is: “Strong and strong together, we have the world.”


So, how to learn English well?

First of all, interest is the best teacher.

If you find learning English fun instead of a chore, you will make rapid progress.

That’s me. Learning foreign languages is fun for me.

If you are not interested in English, you can use the following methods:

1. Grammar is the backbone


Many people learn a foreign language, always feel that they should learn some common language, and foreigners become one, spoken English is very good ah, vocabulary also have. But if you know why, if you don’t know why, you won’t get far.

To learn grammar is to know why.

To really learn a foreign language well, grammar is crucial. Grammar is solid, beat solid, other words, what, slowly decorate not urgent.

Before my junior middle school extracurricular English teacher often stressed: “English to play solid grammar”. So I didn’t neglect grammar until I found out that I learned other foreign languages very quickly. Just get started with the grammar and everything else will follow.

2. See the benefits behind it


You might say, “What? What else are the benefits of learning English? Other than making me unhappy.”

Yes, learning English is certainly beneficial. To learn a foreign language is to learn the culture behind it. A language represents the living habits, way of thinking, cultural history and so on of the people in the country where the language is spoken.

If you think of learning English as a great opportunity to be exposed to English culture, its historical background, humanities and arts, and high technology, you will have a new goal and motivation to learn English.

What? You still have no motivation? You, you get out of here… 😛

3. Learn tone


The key to learning a language is accent. What is accent learning? It’s imitation. It’s like parrots.

You should listen to how native speakers speak and what accent they use, and just imitate it. Do the same as they do. As they use the language, so do you.

Every language has its own special accent, because language is not a dry, literary sound. Speakers of British Accent English will certainly appreciate this.

4. Never memorize words


Many friends learn English, pull up on the back of words, personally feel not too effective. Of course, words are crucial to a language. If you don’t have a good vocabulary, no matter how good your grammar is, you are still “deaf and dumb”, aren’t you? I can’t hear it, I can’t say it.

However, how can you remember the words well? Personally, I think episodic memory is the best method. For example, if you talk with foreigners, they will mention or correct your words, you will remember them all the time, because you associate the word with the situation at that time. Reading articles and watching movies to remember words is also a good method, so as to remember, but also the use of episodic memory.

5. Speak up


Concepts like crazy English actually make sense. Chinese people are generally low-key life, to be modest, not publicity, tolerance, not wild, because “the first bird shot”.

But many foreign English teachers will encourage us not to be afraid of losing face, to speak out. After all, if there’s any ink in the stomach, there’s only black in the stomach.

6. Watch movies and sing


Watching movies and learning To sing English songs are very good skills to improve English, but this is under the condition of mastering good grammar, otherwise it is no different from just talking with foreigners without learning grammar.

When watching English movies, cover the subtitles with a shield and watch the movie several times, because it is hard to improve with Chinese subtitles.

Learning English songs, you can first translate the songs in Chinese, to find out the meaning, then go back.

7. Read more


Needless to say, read more good books. People like me who can’t rely on looks have to work harder


My name is Xie Enming, the head of the public account “Programmer Union”, the moOCs elite lecturer Oscar, and a lifelong learner. Love life, like swimming, a little cooking. Life motto: “Run straight for the pole”