Note: The knowledge at each layer increases progressively, and the knowledge at level N also implies that you need to know all the knowledge below Level n.
Computer Science
Software Engineering
ProgramDesign Programming
Experience
Knowledge knowledge
The undisputed fact in the software industry is that the efficiency of different programmers varies greatly. Many experts clearly distinguish excellent programmers from General programmers.
Most studies have concluded that there is a relationship between the average programmer and the excellent programmer in terms of work efficiency and quality: the ratio of coding time between the excellent programmer and the poor programmer is; debugging time ratio;CodeThe program execution speed ratio is. It is also found that the code quality and efficiency of programmers have nothing to do with work experience.
Let's take a look at how some software programmers look at outstanding programmers and general programmers:
Randall E. Stross: No matter in terms of software standards, creativity, development speed, design ideas, or the ability to solve problems, good programmers are better than poor programmers.
Bill Gates: a good machine tool has several times the average machine tool, while a good programmer has 10000 times the average programmer.
Robert C. MARTIN: 90% of the Code was written by 10% of programmers.
As far as I have been in the programming industry for 25 years and have worked in six software companies, the 10:1 law is true. Based on this law and the difference in programmer productivity, programmers are divided into five categories:
1. Master programmers (visionary/artist programmer)
Master programmers are an absolute rare race in the software industry. They can create something that 99.9% of programmers cannot create. They have invented new applications and software models to drive the development of the software industry. Napster, Netscape, and World Wide Web are created by masters of programmers. For them, software is more about art than science. At this level, speed and quality are not the most important. The wealth they create is the most important. Many development teams or companies are at most a master programmer, usually the technical founder or CTO of the company.
2. trailblzer programmer)
Pioneer programmers usually bring about good ideas and trends. They are usually prototype creators of final products, and most programmers need weeks or even months to do things in a day. Pioneer programmers are always trying new tools and new technologies, constantly learning and searching methods to improve work efficiency, and are usually the mentor and teacher of other programmers, and you often find that when other programmers leave, they still work late at night. Despite the high salaries of such programmers, each successful company or team should still have one or two pioneer programmers.
3. workhorse programmer)
Backbone programmers are the backbone of a company or development team. Although they are not very innovative, they are often more efficient and trustworthy. Give a backbone programmer a set of templates and appropriate tools, and they can always deliver the Code with the least errors in the shortest time.
4. Mechanical Programmer (drone programmer)
Many programmers are mechanical programmers who fill their wallets from nine to five. They are reluctant to access new technologies and avoid learning new things. Many companies or development teams have many such mechanical programmers, because they are very cheap, but do not know that more expensive programmers are really cheaper.
5. Idiot programmer)
The software field is no exception. Programming requires abstraction and logical thinking, but some people who do not yet have the ability to join the field for a good salary. An idiot programmer is always the simplestAlgorithmIt's hard to figure out that they always miss the software deadline and get nothing in the end. The best way for an idiot programmer is line feed. (
Original http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm
Translated http://static.icybear.net/%5BCN%5DProgrammer%20competency%20matrix.htm
From http://news.csdn.net/a/20100322/217537.htmlhttp://news.csdn.net/a/20090610/211855.html