Programmer Level Analysis

Source: Internet
Author: User
Tags what scripting

Whattofix.com published a Daniel Markham article "What level programmer are you?", According to the technical level, programmers are divided into eleven stages from "read and write" to "God" to help programmers find their own position and find their development direction. The following is an article summary:

With the development of technology, programming has quietly integrated into our lives. We can't do without those programs and programming languages. Many people are talking about how to program to varying degrees, and many programming language rankings have emerged. How should programmers grade them?

First, you must understand what a programmer is. Design your own Apache Web server? Create a complicated Excel guy? Or can I develop RPG games on my own? Minecraft players? Which of these belongs to the programmer's level? What does this sentence mean when we say "Everyone needs to understand programming?

Therefore, we need to develop a programmer level so that programmers can understand their own environment and development direction.

Level 1, read/write-they understand how to set up the web server, in general cases, they can get what they need through configuration. They have basic knowledge of using text editors and file systems, as well as the ability to move and operate files, such as zip and FTP. Abstract symbols, parsing methods, and system skills can also be used in the structure.

Level 2, script-the ability to write linear scripts to tell the computer what to do, the ability to learn and use their own symbols. If they have enough time and written guidance, they can use Bash or VB to write some simple scripts to do practical things for themselves.

Level 3, administrator-these people know about libraries and APIs and have the ability to learn more. They know that no matter what scripting language they use, they need to connect to the library. If they encounter problems, read the user manual or search for a database online. At work, he can discover or develop his own symbols (using struct to write functions or declarations ). Most system programmers are at this level, and the primary macro system users of Excel are also at this stage.

Level 4, senior practitioners-beginning with coupling and kernel, they can write their own object-oriented scripts (with public/private members and methods ). These people can learn about the library and build classes. If classes are not used, they can also create their own modules or code files. Advanced script users can do more than this. They have some EXCEL skills and experienced stock brokers who use their own VBA as the basic code without realizing that they are at this level.

Level 5, master a variety of skills-once it reaches this level, it will encounter a variety of troubles. The next stage of common programming is the ability to use multiple frameworks. These people can write C # and know how to create tables and write SQL statements. They can also write C and use JavaScript and HTML. These two skills do not mean they are masters, but they need to find answers in different ways to learn to understand the same question.

Level 6, Junior Architect-talents at this stage are truly engaged in programming. Their daily work is to gain a deep understanding of libraries and APIs. They are not required to remember this, but to understand how to implement their goals in different modes. Want to draw in Win32? Some GDI resource handles may be required. They know that the handle is a uint32 hash somewhere in the system table-a common Win32 example. Want to add jquery in your own library? There are many formats in the new library. They should know how to do it and explain how it works. At the same time, you also need to learn how to refactor your code, highlight the highlights, and enhance the quality of your code.

Level 7, Senior architecture engineers-they use time to create their own APIs, platforms, or libraries. Maybe this is a necessity for a large project, maybe they just want to promote their knowledge. The system they developed solves practical problems for users. The audience is Level 5 programmers. In this phase, you need to go deep into OOAD, templates, and practices. Most of us will make a mess at the beginning and cannot understand how to simplify complicated things in a simpler way. This phase takes a long time and requires constant error correction, development of high-quality systems, and creation of more complex and flexible databases. When they get back from outside for a couple of months of training, they certainly want others on the team to understand what they have done.

Level 8, Releaser-in some cases, they hope that these people will be aware that a large amount of complex information can be put into the structure and architecture to better describe the language of a specific domain, and their audience is Level 4 programmers. As the complexity of the Code increases, the number of codes can be reduced. dsl enables code to be displayed in various places. In short, they will become writers of the scripting language used by programmers. Open their systems to beginners through easy-to-use scripts and guidance. These skills can be learned separately, but most of the time is the path to DSL after complicated structures. Soon we can see the initial scale: using your own DSL can better understand the problem.

Level 9, functional programming-slowly approaching the bonus, they will begin to learn how to function programming. The audience is Level 3 programmers. Function-based programming is essential to help them easily break away from DSL and greatly reduce the number of code to solve problems. At the same time, it has high scalability. Some functional languages can be hot-swap while the system is running, and they will gradually feel that they are nearing the advanced level. Functional programming is the answer to all questions. It can reduce bugs and improve development efficiency, but the code is also relatively difficult to learn. Programmers need to remember a lot of things in their minds-they must remember complicated and tedious symbols. However, functional programming is just a stage on the road, just like OOAD.

Level 10, for Language designers-they view all newly created programming language programs. The only difference is what the new language should do. They know how to develop object-oriented languages, language functions, and scripting languages, and how each language uses it. The audience is Level 2 programmers. They asked every project: "What languages do we need for this project ?" After the project is completed, they will get a good tool that solves the problem and is easy to understand and extends the entry-level programmers. Most projects do not need to be oriented to Language designers.

God-level computer scientists-either the top of programming or not-depend on their own views. This is scientific planning. There are many cool things in it. Anyone is a target audience. But the focus is not to do what people want, but to promote academic development. Because most programming skills are based on people, it is also necessary for people to live around the world. How can we simplify the exchanges between the two countries?

You may be inspired by a lot here, for example, first learning functional programming and then learning oop. You can also develop your own compiler. Isn't it a pleasure of college? Or an assembly, or a true understanding of the set theory, or how to develop structures suitable for databases and programming data, or develop your first programming tool.

Link to the original article: whattofix.com

Http://www.paulwangblog.com /? P = 290

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.