The four realms of programmers--that's what people say.

Source: Internet
Author: User
Programmer's Four Realm master Wang Guowei thought that the ancient and modern became the big cause, the great scholars, must go through three kinds of realm, the first one realm: "Last night the West wind is Green tree." Alone on the high-rise, looking at the end of the world road, "The second realm:" Shiriko eventually do not regret, for the Iraqi people Haggard, the third realm: "The public find him 1100 degrees, suddenly looking back, that person is in the lights dim place." The master of a generation is really sensitive, a few words, the road to do the people's mind course, will be a person from the taste, confused to profound process summarized, is penetrating.

It industry is now a hot industry, programmers are also the envy of many people's work. Pay high, do not thing constantly since, knock on the keyboard, look at the screen, all work is done, easy and convenient. Is it true. Not really, in fact, the programmer's career is also a way of the process, the need for continuous improvement and learning, IT industry knowledge update, often let programmers have to lag behind the danger, no one day not trembling, not a little slack.

The programmer's career can also be divided into four stages, beginner programmer (Novice), senior programmer (Skilled Worker), System Programmer (Master), software Master (master), whose works also go through four realms:

· Programs that you can run

· Robust, efficient programs

· A beautifully structured program

· A process of deep thought

The programmer's first stage is to write a program that can be run. A lot of people's programming career from "Hello World" began, when the first time according to the textbook steps to edit the source file, compile, connect, run, on the screen show "Hello World", the heart of the excitement is no less than Alibaba opened the door of the Treasure house. The goal of a beginner programmer is to get the program to work, they are confused by the many libraries, they don't know which one to use, they have to learn the basic syntax to compile the program. Novice programmers generally do not consider design patterns, software architecture and other issues. Remember I wrote the first larger program is my undergraduate thesis title-A computer-aided experiment system, development tools for Turbo C, in the development of DOS (at that time Windows is not very popular, how, age long enough), the entire software about 7000 lines of code, At that time has been able to do a lot of things, in the DOS can also show a lot of fancy graphics interface, support Chinese, support mouse operation (at that time in DOS need to handle their own mouse event interruption), was also quite popular. But today again to review the works of the past, really a little mixed can not bear to see, the whole software has no structure to say, divided into two source files or because the compiler does not support a too large source files and forced to separate, the whole system is the source code simple stack. Believe that every programmer needs to go through this stage, it is the beginning of the programmer's career, there is no shortcut can be crossed, only continuous practice, learning and summary.

The second stage of the programmer has accumulated a lot of programming experience, grammar and library functions are no longer obstacles, they are no longer satisfied with the proper operation of the program, the implementation of the correct function. They need to know what's going on behind the program, need to understand the operating system principle and scheduling mechanism, memory management, file system organization, etc. understand the details of the development tools, such as C function call mechanism, parameter transmission mechanism, stack process, and so on, understand the encapsulation of C + +, inheritance and polymorphism behind the mechanism, The realization mechanism of virtual function. Not only do they know how the program should work, they know why it works, they can write efficient, robust programs.

The third stage programmer can construct the graceful software system, the software system structure rationality, the expansibility, the maintainability, the testability is the key which the system programmer considers, the structure graceful software system is the same perfect building complex, each part has its own duties, collocation is reasonable. I always think that a good software system should have aesthetic characteristics, such as simplicity, harmony, level sense, a good software system should be concise, easy to understand, should be harmonious, each part of high cohesion, low coupling, both division of labor and Cooperation, should be structured, easy to maintain and transplant. Therefore, I suggest that those who carry out software system design, when you finish designing a system, you need to ask yourself: "It beautiful." "If the answer is no, then I suggest you need to reconsider the design of the system, if the answer is yes, well, congratulations, you have reached a fairly high level."

The final level may be the culmination of every programmer's dream, the design is no longer a simple tool, but a master's wand to change the world, from C to C + +, to COM and cobra, to XML and WEB SERVICES, every change, not software syntax and development tools upgrades, Instead, it is a revolution of software thinking that software constructs the real world model, and it has the soul and intelligence. If you do not understand this point, that C + + is just better c,com just better C + + words, you do not understand their essence and ideological.

"The programmer's Road is long, I will be up and down and searching", hope and all the programmers to share.

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.