Three Steps to Learning English for Programmers

Three Steps to Learning English for Programmers

Reading documents is not just reading code

It is the habit of many programmers to only read the code when reading documents. This is also one of the reasons why programmers have not improved their English level even though they have read a lot of English materials. I have seen an article in "Programmer" that introduced the method of reading technical books. It proposed the method of "code first, then text", that is, "read the code first, and then read the text if you don't understand it." This reading method can greatly improve reading efficiency, but if it is enough to only read the code of technical books, what is the use of text? In many cases, the code is just the tip of the iceberg. The thinking and logic behind the code are the real highlight. Only written text can explain it, and only reading text can understand it.

For example, the code is "x = 5;", but sometimes the explanation is x should be not more than five, and sometimes the explanation is x should be no more than five. Without looking up the dictionary, can you figure out the difference between the two statements? The former means "x must be less than or equal to 5", while the latter means "x should only be 5". They have different meanings and are used in different ways and occasions.

Over the years, programmers who want to translate technical documents often come to me to discuss translation issues and want to know how to express some sentences. At first, I also thought it was a problem of Chinese expression, but later I gradually found that more problems were caused by English reading, so my answer is often: What do you think the author means here? I guide the other party to gradually express the meaning of the original text. In fact, at this time, the real translation has already surfaced.

The most recent example comes from this sentence: "But as with any web-based system, atom-based solutions trade scalability for latency, making atom often inappropriate for very low-latency notifications". The reason why this sentence is difficult to translate seems to be that, apart from the main body of the sentence, there is a But as... before and a making... after it. However, I have always found that programmers who have questions about this sentence actually don't understand the usage of trade...for... (translated as "atom-based solutions need to balance latency and scalability") at all. If you understand that it is "sacrificing xx in exchange for xx", the whole sentence is quite easy to understand and very easy to translate: like all web-based systems, atom-based solutions increase latency in pursuit of scalability, so atom is usually not suitable for notifications that require extremely low latency.

To solve this problem, the first thing to do is to change the habit of "only looking at the code but not the text", at least to "after reading the text, realize that its meaning is consistent with the code"; the second is to learn some new knowledge (such as detailed explanations of in-depth principles) by reading pure English materials. I have recommended this method to many friends and it is very effective.

Pay attention to pronunciation

I used to hear people say that Chinese people learn English for many years, but they are actually dumb English. I don't know how much the situation has changed now, but from what I have seen, many programmers have read a lot of English materials, joined English discussion groups, and dared to speak, but they still have many problems with pronunciation. The "pronunciation" here does not refer to the correct accent, but the pronunciation of some terms.

As we all know, the terminology of computer science comes from a wide range of sources. For example, in design patterns, there is a pattern called Facade, which many people often pronounce directly as blob.png. In fact, this word comes from French, and the correct pronunciation is actually blob.png. Another example is the "pseudo" in pseudocode, which is correctly pronounced as blob.pngblob.pngblob.png, but I rarely meet programmers who can pronounce it correctly, and many people simply cannot pronounce it.

Some people may say that these issues are not important and that we can just "make do with it" and accept it as a convention, but it is not that simple. Recently, I attended a technical gathering, and a guest (technical expert) pronounced the framework name chameleon as blob.png, while the correct pronunciation is blob.png. Because there was no textual material, many people listened for a long time before they understood what he was saying. Some listeners who were not familiar with chameleon did not understand it until the end. This is the case even for Chinese gatherings. If you have the opportunity to participate in Sino-foreign technical exchanges, the problem caused by mispronunciation will be even greater.

To solve this problem, there is a very good way, which is to learn open courses from American universities. The computer departments of schools such as Yale and Stanford have released many high-quality open courses. Learning some of these excellent courses can not only consolidate the basics, but also learn many terms that we encounter every day but do not know or mispronounce. For example, I learned from them that the pronunciation of the data type char is [kɑ:], not [t∫ɑ:].

Practice English expression

If you have memorized words, you may have heard of "passive words" and "active words". The former refers to words that you can recognize when you see them, and the latter refers to words that you can actively use when you express yourself. According to my observation, most of the English that many programmers know is "passive English" - they can recognize it when they see it, but they may not be able to express the same meaning.

This may not seem to be a problem at ordinary times, but if you need to look up information, not being able to express yourself will cause a big obstacle. Compared with the rampant "irresponsible reposting" in the Chinese technical information world, the quality of English technical information is much higher, and the accuracy of Google search information is much higher than Baidu; but to be able to successfully use English information, you need to "actively" input information and describe the problem, and this is when "passive English" becomes a big problem.

I have encountered this situation many times: even if the answer is within reach, the first result of Google is the answer after entering the correct keywords, but the programmer is at a loss - because he does not know that the "beep" sound of the computer is beep, does not know that concurrency should be used to search for "multithreading" information, does not know that "freeze" is system halt, and "black screen" is blank screen...

To solve this problem, the best way is to read the materials carefully and remember these statements. On the other hand, browse websites like stackoverflow when you have nothing to do. Don't ignore the questions because they are irrelevant to you. Pay more attention to what these questions are and how they are expressed. In this way, when you encounter problems, you can quickly find possible solutions and save time.

<<:  Exploring the potential and challenges of developing games for Apple Watch

>>:  Google's 20 rules for developers

Recommend

Google and Apple both failed! Talk about the bugs in Android 8 and iOS 11

With WP officially announcing its defeat, Android...

Tesla officially announced its plan to build a factory in Shanghai

Electric car manufacturer Tesla's plan to bui...

In fact, the Xiaomi bracelet can be sold for 49 yuan

Selling for only 79 yuan, the impact of the Xiaomi...

Can we predict adult height by cracking the "code" of bone age?

Author: Li Kai, attending physician, Beijing Jish...

Make Flyme more down-to-earth YunOS version Meilan system experience

The launch of Meizu Blue allowed Meizu to officia...

Ford is helpless as GM executives are selected into Trump's think tank

According to foreign media reports, General Motor...

Floating Menu 6.0.7 shortcut software

【Software Description】 The floating menu is a too...

If the fruit is moldy, can I still eat it after removing the moldy part?

Do you know what mycotoxins are? How does it ente...