Note: This article has been widely circulated on the Internet.ProgramThe analysis of the characteristics of the staff is quite in place, so it is reprinted. But unfortunately, no real author is found.
Recently, I participated in the Programming Competition held by the company as a referee. I found that experts gathered and I had a deeper understanding of the company's internal programmer capabilities. I think programming skills are important to programmers, but not all. So what kind of capabilities should a programmer possess? This topic is obviously too big. However, I think programmers from other countries may have some reference. I had the honor to have in-depth cooperation with programmers from China, the United States, India and Japan. Although they are not necessarily representative, I think their commonalities are quite obvious. The following comparisons are purely personal opinions. Please refer to them.
Japanese programmer
They are very careful. I think one of the main reasons is that Japanese companies have very detailed requirements. As detailed as on the webpage, a pixel cannot be deviated. In addition, the Japanese have a very strong executive power, and their commitment to the boss is more important than life. A project can work overtime for three consecutive months, and only sleeps for four hours a day. However, the cost behind high execution is low creativity. Today, with the ever-changing Internet, few people have heard of important technologies invented by Japanese engineers. These features are not so much of a Japanese programmer as they are mostly Japanese. In Japanese culture, the pursuit of quality and compliance with the level system are deep-rooted. In addition, many specialized words in the technical field are foreign words, mainly English (forum. These specialized words are often translated into katakana. However, the speech of katakana is sometimes quite different from that of English, which leads to difficulties in communication. For example, the word "virus" in English is pronounced as "virus", and verus is pronounced as "Japanese. For example, the server clause in Japanese is Saba, and the English language is just different. Therefore, communication with Japanese programmers is quite painful unless you know Japanese.
Indian programmer
I work with Indian engineers in the United States. Although they are definitely different from local Indian Engineers, there should be more similar places. I think their common advantages are: well-developed processes and well-written documents. But they writeCodeMy personal opinion is average. I think there are two reasons. First, a considerable number of Indian programmers who work in the United States are half-way entrepreneurs. It's just for the survival of programmers. Second, programmers in IndiaAlgorithm, Data institutions and other basic skills are significantly lower than Chinese programmers. As a result, the logic of many codes they write is not strong and the logic is not good (according to my standards ). However, these two problems have been compensated and concealed by a large number of documents and high-performance hardware devices to some extent. In terms of communication, the English pronunciation of Indians is almost no problem for Westerners, but it is difficult for Chinese people to understand it. Even Chinese people often suspect that they are speaking English.
In a sense, Japanese programmers are very similar to Indian programmers. They are very dedicated and can make leaders satisfied, but do not expect them to do better, because their goal is to complete the tasks assigned by the leaders. Japanese programmers are satisfied with the implementation and enthusiastic overtime work. The way for Indian programmers to satisfy their leadership is to tell them through a large number of documents that it is of great significance to lead their work. The process is rigorous, the materials are complete, and the cost is very low. To put it bluntly, Japanese programmers are good at what leaders want to do, and Indian programmers are good at what leaders want to hear.
American programmer
It seems difficult for American programmers to define them in just a few words. It may be because the United States is an immigrant/country, which is a strange thing. However, most programmers share a common feature: they like technology and even advocate technology. This is particularly prominent in Silicon Valley. As a result, some people in every technology field will study it all over the world. In fact, this is the same as playing games. If you are confused, you will naturally forget to eat, forget to drink, and play hard. The American programmers I know also have a good talent. Dozens of engineers in a company that used to work in Boston could form a symphony orchestra. There are a variety of western instrument hands, such as violin, violin, trumpet, violin, percussion, etc. These brothers and sisters are not playing normally. They have their own fixed band on weekends and often participate.Community. What's more, a colleague who worked in Silicon Valley wrote a program during the day and practiced table tennis in his garage at night, which represented the United States in the two Olympic Games in Sydney and Athens. Speaking of the ability to write documents, American programmers are no less powerful than Indians. However, Americans write documents not for the boss, but for themselves and for sharing. Therefore, their documents are often interesting and practical to read. Of course, this will make the boss sometimes have a headache, because the programmers are not so "Obedient ". They do not deliver to their bosses, but need to implement their own ideas, their own designs, and their perfection. To put it bluntly, American Programmers sometimes have more ideas.
Chinese programmers
Compared with programmers in other countries, I think their features are quite obvious. Their algorithm capabilities are generally higher than those in other countries. This may be caused by our education system, which focuses more on theoretical knowledge. In turn, the practical ability is relatively poor. Our programmers do not have poor execution capabilities, but they are obviously insufficient in solving problems. It is often necessary to break down the task very carefully before it can be completed, and the ability to independently solve the problem is insufficient. In addition, the expression capability is also relatively poor. I believe everyone has seen engineers with high technical skills but poor expressive skills. The most funny thing is that I have seen many engineers write on the whiteboard with a whiteboard pen with no words to write. It seems that the audience can see what he/she writes. Because he/she is completely immersed in his/her own logic and does not experience the feelings of the audience. However, I think these shortcomings are not serious.
Because these are skills and experience, they can be improved through practical work or training. I think the biggest problem for programmers in China is the poor environment, which leads to a considerable number of people who are impetuous and eager for quick success. It is rare to study technology with a deep mind. During the interview, I often find that engineers have a wide range of knowledge, but they have almost no depth. It is difficult for such a person to make a difference in the technical field. The people I want to find are those who dare to admit that they don't, but as long as they know things, even if they are the same, they must understand things better than others and study them deeply. I believe that if a person is better than others on a certain issue, he will certainly be able to surpass others on other issues.
After comparison, we can see a lot of problems for programmers in China. But as a group, Chinese programmers may be the smartest engineer group in the world. Because of the environment, they have to think a lot and have to worry a lot about it. They cannot bring their talents to the maximum extent in technology. Changing this situation begins with the company's management. Only Technical Directors who love technology and pursue excellence can create an environment for technical personnel and encourage them to study and innovate. The Technical Director needs to go deep into the project and discuss the technical design with engineers, so as to improve the engineer's ability through specific problems, and also prevent their technical capability from decline. In terms of technical management, many domestic companies simply use engineers as resources, with too much emphasis on process management and resource management. My opinion is: engineers are not senior blue-collar engineers and cannot manage production lines. The excellent environment is created by everyone. Chinese engineers can certainly become the best engineer group in the world.