Turn: 10 floors for programmers (1 ~ Layer 7)

Source: Internet
Author: User
Tags jumping games
ArticleDirectory
    • Layer-3 cainiao
    • Layer-3 prawns
    • Layer-3 cool man
    • Layer-3 Daniel
    • Layer-3 expert
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 become "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 often worship things of the Titans, 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 C ++ programming languages, in addition to 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; in terms of 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 get through this threshold. Many advanced people have already entered this threshold, but they only need to follow their footsteps. Those who want to step into this threshold may wish to learn TBB open source project source code (link: http://www.threadingbuildingblocks.org/), then on Intel blog (http://software.intel.com/zh-cn/blogs/) and multi-core Forum (http://forum.csdn.net/Intel/IntelMulti-core) go to the relevant articles and read a few more related books.

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, even the title of "chief architect" or "chief XX scholar" is not odd. 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.

Layer-3 Daniel

It is not as easy as those layers mentioned above to climb from Layer 3 to Layer 3. To become a bull, you must be able to do things that the oX can't do. For example, normal people generally do not know how to write the operating system, how to write the compiler, and how to implement the TCP/IP protocol. If you have the ability to implement any of them, then you will be upgraded from the ox to the "Ox.

Of course, because of the differences in various professional fields, the operating system, compiler, and TCP/IP protocols are just examples here, and do not mean that you must be familiar with this knowledge, taking the popular multi-core programming as an example, if you can gain a deeper understanding of the various ideas and principles, you can use them more freely, it also has the ability to implement something similar to the open-source project TBB library, or you can write a server similar to Apache, or write a database, can all be "Daniel ".

To become a "bull" is not a simple task. It requires much effort than the ox people. Generally, at least 200 ~ About 400 professional books and a good grasp of it, in addition, have to pay attention to the latest information on the Internet and journals.

When "Niu Ren" is promoted to "Da Niu" and "Niu Ren" finds that there are more cattle than them, it is conceivable that the "Niu Ren" is shocked. Because of the large number of cattle and their influence on the prawns and cainiao class, the scalpers usually have a high social awareness, it can be described as "attracting countless cainiao, prawns, and cool-Men". Let's take a look at the Linus Torvalds and other cool-ups mentioned earlier.

Although the conditions for becoming a "Daniel" seem very high, this floor is not a difficult layer to climb. As long as you make some effort, the quality is not very poor, there are still many "cool" who can climb to this level. We can see that the number of people on the floor of "Daniel" is not as small as we think. For example, people like Bill Gates seem to belong to this level.

Because there are a large number of people on the "Daniel" layer, it is difficult to count whether there are too many "Daniel" in China or the number of big cows in the West is large? I guess it should be a great number, or there will be more "Daniel" in China.

Many people may think that I am talking about it here. Linus Torvalds has written a famous Linux operating system, and no one in China has written similar things, how can we compare China's "Daniel" with the West? I don't know whether Linus Torvalds just wrote a prototype of "image like" operating system. Linux was developed into a world-famous open-source operating system, it is because many commercial companies that support open source such as IBM have sent many behind-the-scenes heroes on higher floors than Linus Torvalds to develop it.

Some cainiao may think that Linus Torvalds is the god of programmers:

Linus, Richard Stallman, and Don knuth attended a meeting.

"God says I have created the best operating system in the world. "

Richard Stallman naturally said, "God says that I have created the best compiler in the world. "

Don knuth said with a puzzled face: "Wait. When will I say these words? "

It can be seen that the technology level of Linus Torvalds is not as high as expected, but "Niu Ren" and "Da Wei" think "Da Niu" is better than them. In our country, there were some people who were still at the "prawns" layer and could also write books about how to write the operating system, in addition, an operating system with a little image is written. I think Chinese "Daniel" won't compare to the West. The reason why no one writes similar commercial products is completely the reason of the social environment, not the reason why the technical capabilities cannot reach.

The main reason why "Daniel" has become a Daniel is that it is not what they feel when "Niu Ren" is built. Many cainiao, prawns, and even cattle may think that the "Daniel" layer has reached the top, but most "Daniel" is probably self-aware. They know that they have not yet climbed to the mountainside, it barely calculates the level of half a bucket of water. Some of them are still able to climb to this layer without being tired, and they are willing to continue to climb to another level.

Some cainiao, prawns, and cattle may not understand what the floor would be like if they had a higher floor than the "Daniel? Next let's take a look at the mysteries of the 5th floor.

Layer-3 expert

When the experts are really working on an operating system or similar software, they will find that their basic skills still have many shortcomings. Taking memory management as an example, if we directly copy the memory management algorithms of Linux or its open-source operating system, we will be looked down upon. If we implement a memory management algorithm automatically, he will find that there are a large number of algorithms related to the memory management method, and he has not learned and practiced all of them. He does not know which memory management algorithm should be used.

Here, some people may already understand the mysteries of the 5th floor, that is, basic research is required. Of course, the most important word in the computer is the word "computing, to do basic research, programmers mainly focus on the study of non-numerical "computation ".

Non-numerical computing is a very huge field. Not only are the popular "multi-core computing" and "cloud computing" not in the field of non-numerical computing, software requirements, design, testing, debugging, evaluation, quality control, software engineering, and so on are essentially in the scope of non-numerical computing, and even the chip hardware design also involves non-numerical computing. If you have not really understood the meaning of "computing", you have no chance to enter this level.

Some people may still have no idea why Bill Gates was laid on the Daniel layer and did not enter the layer. Although Bill Gates has not graduated from the university and has insufficient academic qualifications, his family has a collection of more than 20 thousand books. He entered the software industry earlier than most people. He can leave his business alone, even if he only looks at his technical skills, he can be regarded as a five-plus-five-car learning. There is no problem with the sum of the common computer software doctors on top, it's better than Linus Torvalds and the like. Why can't we go to this level?

Unfortunately, from the implementation of the Windows operating system, its understanding of computing is superficial. If we compare Google's understanding of computing to college students, Bill Gates can only count as a junior high school student, so Bill Gates will always be a good guy and cannot become an "expert ".

Here, we may be delighted to see that Bill Gates and I are only waiting at the same level. If I upgrade one level, I can surpass Bill Gates. But it's not as easy as upgrading from "Niu Ren" to "Da Niu" to this layer. Bill Gates has over 20 thousand books, so you can read more than 500 books ~ More than 1000 professional books should be difficult to master. Of course, this is not the main condition. More importantly, you need to go to a professional academic site to learn, to ACM, IEEE, Elsevier, springerlink, siam and other places to download papers should be your regular homework. Using academic search in the Google search engine should become your daily required course. In addition, you have to pay attention to whether there are any open-source projects related to your research. For example, when you hear open-source projects such as TBB targeting multiple cores, you should first enter "TBB" in Google to search for the source code, download the source code, and study it carefully. This way, your foot may have quickly reached the threshold for this floor.

When you do it as I said above, there will always be one day over time, and you will find that in many small fields, you have not learned any new things, and you almost know all the latest research results. At this time, you will find that you are not much higher than the level when you are doing "Ox" and "Ox", but you cannot "Ox" at all, because the knowledge and thoughts you have learned are put forward by others, you do not have much of your own knowledge and thoughts to share with others, so you have to continue crawling upstairs.

I don't know how many "experts" are in China, but one thing I can be sure of is that if we count the "brick houses" that are dedicated to everyone, we have more bricks than the West.

The6Layer Scholar

When "experts" want to climb up the first floor, they can see the entrance of the stairs at a glance, but they are surprised that the entrance of the stairs has a high threshold, it says "Innovation. Unfortunately, most people have exhausted their physical capacity when they climb to the 5th floor, and they are unable to go through this threshold.

A few people with sufficient physical fitness can easily go over this threshold, but it does not mean that those who are physically exhausted cannot go over, because you have not mastered the methods to restore your physical fitness, after you have mastered how to restore your physical fitness, you can easily Climb this threshold.

How can we recover physical fitness? Our ancestor "Confucius" has long taught us "learn from the past". In English, the word "research ", the prefix "re" and "Search" do not need to be explained. Some people may think that the "warm and new" and "research" are abstract and hard to understand. I will give you a simple example. For example, if you have been crawling a mountain for a long time, how can I recover my physical strength if I have no physical support in the middle? Naturally, you have to take a break, eat some food again, and your physical strength will soon be restored.

It can be seen that for those who are physically exhausted, resting + re-eating is usually the best option to recover their physical fitness. Unfortunately, the bosses in China do not understand this. Not only does their company not provide enough rest time as stipulated by the normal state, but some companies even have employees "working too hard. Therefore, there are few people in China who can turn over the "Innovation" threshold, which is an order of magnitude different from that in the West.

In addition, the problem of re-eating is exquisite. It is necessary to eat some basic and easy-to-digest simple foods, and not to eat complicated foods with sea flavor. Otherwise, it is difficult to quickly absorb them. Taking search as an example, instead of staring at the complex search structures and algorithms every day, what you need to do is to review basic knowledge such as binary search, hash search, and common binary tree search several times.

Take hash search as an example. First, you need to write various conflict solutions, such as the chain structure and secondary hash, And then try different types of hash functions, then, you also need to try how to implement hash search in the hard disk, and consider how to read data from the hard disk to the memory, how to organize data in a hard disk to quickly create a hash table in the memory ,..., in this way, you may need to write a hash table into a dozen different versions, and compare the performance and functional differences of each version and the applicable scope.

In short, for anything simple, you need to consider a variety of needs to drive research with demand. In the end, you have taken a look at all the basic search structures and algorithms. Maybe one day you may look at other more complex search algorithms, or when you are walking, your head will show up, suddenly, I found a better method, and I was promoted from an expert to a "scholar.

What Scholars do is usually based on their predecessors to make small optimizations and improvements. For example, if someone else invented the chain base sorting method, you may find that some methods are used, you can use arrays to replace the linked list for base sorting, and the performance can be further improved.

As scholars only need small optimization improvements, there are still a certain number of scholars in China. However, it is estimated that the number is an order of magnitude less than that of other countries.

Some people may think that the number of patents applied by many Chinese companies has exceeded or even exceeded that of western developed countries, and we should have no less scholars than them. Therefore, it is necessary to explain the difference between patents and innovations mentioned here.

The so-called patent holders can apply for patents as long as new things are not available in the past. Even the previous things, you have used them to products in a new field, you can also apply for a patent. For example, if you create a cement pillar in the house, as long as no one has applied for a patent for this matter before, you can apply for a patent, and next time you move the cement pillar to a position, you can apply for a new patent, or you can add several holes to a cabinet and change the location of the hole next time ,..., you can apply for a patent.

The innovation mentioned in this layer refers to the innovation at the academic level, which is an innovation in basic research. It is completely different from the concept of patents, and the difficulty is also completely different. Even if you have applied for 10 thousand patents, such as drilling, you cannot add up to an innovation on this floor.

When you climb to the fifth floor, you may have a pleasure of breaking through the limits, because you have finally crossed the threshold of writing the word "Innovation, achieving a "0" breakthrough. At this time, you may have a feeling of "standing on a tall building and wanting to go all the way to heaven", but soon you will find that all you can see is a relatively close road, and the road in the distance cannot be clearly seen. If you have enough physical strength, you will want to climb to a higher floor.

The7Layer Master

There are not many shortcuts to climb from the 6th floor to the 7th floor, depending on whether you have enough energy. If you can design a fast Sorting Algorithm like Hoare, or like Eugene W. like Myers, an algorithm is designed to solve the diff problem by editing the shortest path model of the graph. d. powell also proposed a SQP method that can handle non-linear programming problems. Or you may find that the lower bound of the complexity of a comparative sorting algorithm is O (nlogn ); you can also find that using stacks can convert recursive algorithms into non-recursive ones; or you can design a search structure such as a red/black tree or AVL tree; or you can design a language like C ++ or Java, or you have invented UML ;..., then you climb to the fifth layer and become a "master.

In the above examples, some of them have higher floors than above. Here, they just give an example of their achievements to illustrate their image. From the contributions of some masters listed above, we can see that a master must make a great contribution. First, solving the problem must be more important. Secondly, you must have a greater improvement than the predecessors in some aspects, or you must solve a brand new problem that has not been solved before; the most important thing is that the main idea and method must be provided by you, instead of optimization and Improvement Based on others' ideas.

After reading the above requirements, if the energy is not enough, you may feel a little difficult, so not everyone can become a "master. There are only a handful of people in the Chinese software industry who can be called "Masters", probably more than enough. It is worth mentioning that the foreign "Masters" are as full as our "Daniel.

I will list the masters who I guess the country may enter this floor to serve as a reference. Wang Han's "handwriting recognition" Technology is completely confidential, and he does not know what ideas are used in it. What is the proportion of his original thinking, therefore, I don't know whether to move it to this floor or higher. When Professor Wang Xiaoyun of Shandong University cracked the DES and MD5 algorithms, he did not know whether the method was completely original. If yes, he could go to this level.

Although Chen jingrun has not completely solved his godebach conjecture, his method for solving the problem is innovative. Therefore, he can go to this level. Of course, if we can completely solve the godebach conjecture, we can calculate it to a higher floor.

I wonder if there are large original algorithms in WPS and table processing software, if there is one, even if I make a mistake, place them on the bull layer. Due to the limited number of students, I do not know that there are still people in China who can reach the level of "Masters". Maybe a few professors and academicians who do research can reach this level, if you know this, you may wish to send a post to me.

In view of the halo effect of the title "master", I believe many people dream of becoming "master ". You may find it very difficult to become a master after reading the examples of the masters mentioned above. Now there is a shortcut to the "master" path, that is, the multi-core computing field. There are a lot of places waiting for you to explore.

Previously, algorithms developed in the single-core era need to be rewritten to parallel. Data structures and algorithms, image processing, numerical computation, operating systems, compilers, testing and debugging, and other fields all have a lot of opportunities, it may even lead you to a higher level.

 

Appendix: Excerpted from the Internet

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.