ArticleDirectory
- Layer-3 cainiao
- Layer-3 prawns
- Layer-3 cool man
Program 10 floors
Since the western Renaissance, China lags behind the West in natural science, and the software field is no exception. Of course, many programmers in China may have many different opinions on this. Some people think that the level of programmers in China is far behind that in the West, some believe that China's programmers are not inferior to western programmers, but the entire software industry lags behind.
So, is the level of programmers in China worse than that in Western countries, or is there many excellent programmers in China that have reached or surpassed the level of Western programmers? To solve this problem, we must first know how many technical levels the programmer has and what technical levels each level needs, and then compare the number of people in China and the west at each technical level, you can see whether there is a gap or what the gap is.
Of course, there will be different criteria for dividing the technical hierarchy of programmers for different companies or people. The following criteria only represent personal opinions. If anything is inappropriate, correct the problem.
Layer-3 cainiao
The fifth floor belongs to the floor, and the entrance to this floor is very low. Basic understanding of basic computer operations, basic knowledge of computer science, and knowledge of a basicProgramming LanguageSuch as C/C ++, Java, JavaScript,..., you can get started with this layer.
On this layer, China has an absolute advantage. In addition to a large number of people who have graduated from the computer science field, there are also a large number of people in the field of communication, automation, mathematics, and other related majors, in addition, there are a large number of other professionals who are definitely more people than in the West. Another advantage is that our team's average IQ is definitely higher than that in the West.
Not many people are willing to work as cainiao for the rest of their lives, because the taste of being a "cainiao" is really bad. The old guys are waiting all day to install machines and build a test environment, you can also perform some black box tests against the test cases written by others. A better one can be arranged to write some tests.Code. Of course, if you are lucky, you may have the opportunity to write some formal code when you encounter some industry-style companies in China.
So cainiao are always studying hard and want to climb a higher floor.
Layer-3 prawns
It is easier to climb from Layer 1 to layer 1st. For C/C ++ programmers, as long as they are familiar with the C/C ++ programming language, they can master the C standard library and common data structures.Algorithm, Master the basic implementation and usage of STL, master the basic knowledge of multithreading programming, master a development environment, and then use the APIs of various operating systems, network Programming, of course, requires a good grasp of socket programming, and then learns some object-oriented design knowledge and design patterns, and learns some basic knowledge of testing, software engineering, and quality control, most people go through 2 ~ After three years of hard work, you can climb to the fifth layer and be promoted to "prawns ".
The number of "prawns" and "cainiao" in China is estimated to be less, so this layer is still far ahead of the West.
Prawns are usually somewhat self-aware. They know that they can only implement some simple functions and cannot do big things. Sometimes they may encounter some problems, so they generally worship the big bull-class figures, such as Robert C. martin and Linus Torvalds in China, such as Qiu bojun and Wang Zhidong, are the objects they worship. Some of them hope that one day they will be able to reach the level of these big bulls, so they continue to climb upstairs.
Layer-3 cool man
As the "prawns" are often stuck by some difficult problems, the "prawns" have to continue learning. They need to master the previous knowledge, for example, if you are familiar with the c ++ programming language, apart from learning some basic C ++ books, such as C ++ primer and Objective C ++, think in C ++, exception C ++, etc. More importantly, you need to understand the principles and implementation mechanisms of the C ++ compiler, understand the internal mechanisms in the operating system, such as memory management, process and thread management, and the basic knowledge of the processor and the code optimization methods, in addition, it is necessary to learn more data structures and algorithms, master more in-depth testing and debugging knowledge, and manage and control quality methods, and have a better understanding of various design methods.
Learning the Knowledge mentioned above is not an easy task. It is impossible to read a book of thirty or fifty books and master it. In terms of Data Structure algorithms, at least five to five data structures are required ~ 10 books in this regard; for software design, it is not enough to understand structured design, object-oriented design, and some design patterns, we also need to understand the software architecture design, interactive design, aspect-oriented design, use-oriented design, data structure algorithm-oriented design, emotional design, etc., otherwise it is difficult to enter this floor.
Of course, in addition to the above knowledge, prawns also need to learn a variety of experience and skills. Of course, this is hard to beat them. Now there are a lot of books published, and there are even more technical articles on the Internet. Then I will make a bubble in various professional forums, master the various experiences, skills, and skills in these books and articles, and then learn about some well-known open-source projects such as Apache or Linux operating systemSource codeImplementation. At this time, it is common to deal with general problems. cainiao and prawns will think that you are a "cow", and you will climb to the 3rd layer and be promoted to "Ox.
After reading the above requirements, some prawns may have to be dizzy and become a cool man to learn so much! Is the requirement too high? In fact, the requirements are not high at all. If you cannot grasp anything, how can you make others think you are "awesome?
It is worth mentioning that, after entering the multi-core era, it has increased the threshold for multi-core programming from the first layer to the second layer. Of course, it is not difficult to pass this threshold. Many advanced people have already entered this threshold, as long as they follow their footsteps. To step into this threshold may wish to learn TBB open source project source code (link: http://www.threadingbuildingblocks.org/), and then on Intel blog (http://softwareblogs-zho.intel.com/category/multicore/) and multi-core Forum (http://forum.csdn.net/Intel/IntelMulti-core/) to see the relevant articles, buy a few more books to learn.
In China, once you become a "cool man", you can usually go to many well-known companies. If you are lucky, you can stick up the title of an architect, it is not surprising that the title of "chief architect" or "chief XX scholar" is attached. Many people who climbed to this layer thought they were on the roof. They could see the sky with their eyes. They started to look empty and thought they could do everything and understand everything, it is the best picture of this group to hit bricks on the Internet. From this, we can see that the number of cattle in China is still large, far more than that in the West, and it is still leading this layer.
There are also many modest "cool people" who know that they are not yet half a bucket of water. They know that building-jumping games are like monkeys moving on a tree. Looking down is smiling faces and looking up is ass. In order to look at smiling faces and look down on the buttocks, they did not stop here, but they continued to look for a new level of stairs to continue crawling.