It industry is now a hot industry, programmers are also a lot of people envy of the work. Pay high, do not took, knock on the keyboard, look at the screen, all work is done, easy and convenient.
Is that so?
Not really, in fact, the programmer's career is also a process of seeking the road, the need for continuous improvement and learning, IT industry knowledge is fast, often let programmers have the danger of falling behind, no day not trembling, not a little slack.
The programmer's career can also be divided into four stages, junior programmer (Novice), senior programmer (Skilled Worker), System Programmer (Master), software Master (Maestro), his works also go through four realms:
Programs that you can run
Robust and efficient program
A beautifully structured program
A process of deep thought
1
The first stage of the programmer is to write a program that can run, many from "Hello World" start, when the first time according to the textbook steps, the source files are compiled, connected, run, on the screen display "Hello World", The excitement of the heart is no less than Alibaba opened the door of the Treasure house.
The goal of the novice programmer is generally to let the program run, they confuse the library functions of the numerous, do not know which one, they also have to learn the basic syntax, so that the program compiled through. Novice programmers generally do not consider design patterns, software architecture and other issues.
Programmer Rookie of the time to write the first large program is my undergraduate thesis topic-A computer-aided experimental system, development tools for Turbo C, under DOS development (at that time Windows is not popular), the entire software about 7000 lines of code, at that time has been able to do a lot of things, In DOS can also display a lot of fancy graphical interface, support Chinese, support mouse operation (at that time in DOS need to handle the mouse event interrupt), was also quite popular.
But today again to review the work of the past, really a little mixed to see, the whole software has no structure to say, a total of two source files or because the compiler does not support a too large source files and forced to separate, the entire system is the source code of the 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.
2
The second phase of the programmer has accumulated a lot of programming experience, grammar and library functions are no longer a barrier, they are no longer satisfied with the correct operation of the program, functional implementation is correct.
They need to understand what's going on behind the program, understand how the operating system works, and how to develop a more secure program, which programmers often don't know how to protect their programs, so they need to use a third-party security platform to encrypt the program.
Also understand the memory management, file system organization, etc. to understand the details of the development tools, such as the function call mechanism of C, the transfer mechanism of parameters, the building process of the stack, and so on. Learn about the mechanisms behind Java encapsulation, inheritance, and polymorphism, and virtual function implementation mechanisms. Not only do they know how the program should work, they know why it works, and they can write efficient, robust programs.
3
The third stage of the programmer can build a beautiful structure of the software system, software system structure of rationality, scalability, maintainability, testability is the focus of the system programmer, the beautiful structure of the software system of the same building complex, each part of the work, collocation reasonable.
Always believe that a good software system should have aesthetic characteristics, such as concise, harmonious norms, hierarchical sense and so on.
A good software system should be concise and easy to understand;
Should be a harmonious norm, each part high cohesion, low coupling, both division of labor and Cooperation;
Should be structured, easy to maintain and transplant.
So, for programmers who are designing software systems, when you've designed a system, you need to ask yourself: "Is it beautiful?" And if the answer is no, then I suggest you need to reconsider the design of the system, if the answer is yes, then, congratulations, you have reached a fairly high level.
4
The final level may be the culmination of every programmer's dream, programming is no longer a simple tool, but a master's wand to change the world, from C to Java, to COM and cobra, to XML and Web SERVICES, each change, not software syntax and development tool upgrades, It is a revolution of software thought to build the real-world model with software, and the software has the soul and intelligence.
If you do not understand this, think that Java is just better c,com is just better Java, you do not understand their essence and ideological.
five-stream programmers than technology and tools
Five-stream programmer is concerned with what tools can produce what results, they know that with Safe.ijiami can easily detect the vulnerability of the program, and do not go to a code of Lashio bug, the use of tools can greatly improve efficiency, save time.
And go after him. Listening to the latest, best, most fashionable technology, immersed in some small exercises, but rarely out of the ivory tower and the customer or the market for real communication, and even complete large-scale real cases.
Four-stream programmer comparison integration and management
The four-stream programmer cares more about where to use than the former, and his mind is placed in a map that integrates various technologies, rather than a single tool or technology, he cares about the risks of running a campaign, and the cost of funding, including development time, maintenance difficulties, user training, or marketing ...
three-stream programmer than creative and design
Three-stream programmer not only asked to "finish" the matter, but also asked himself to "do a good job", his work is full of moving and life, even if a few years later, you will still feel those creative and design, break through the limitations of time and space, can only imitate can not be replaced.
Second- rate programmers than communication and character
Second-rate programmer to jump off tools, than interpersonal communication, he knows how to communicate with the boss, how to communicate with colleagues, but also know how to communicate with customers. He has a mature and stable character, so that anyone can work with him with a sense of security, and feel happy.
first-class programmers than attitudes and methods
First-class programmers are more than learning attitudes and methods, including the ability to control themselves, that is, discipline, and we don't look at what he does, but how he is going to do it, including the time it takes to solve the problem, and how to learn something new.
As long as he has mastered his own attitude and method of learning, then he can start from any moment to learn, and show the best results, as to whether now, do not understand is not important, because as long as he wants, he is ready to be, also can get. Whether you use it or not, learn or not, good resources are there.
Super programmer than thought and quality
The program is only a language expression, while language is the quenching of thought.
The super programmer not only changes our behavior, but also attempts to change our mind. You don't need to judge his qualities from the code of a super programmer, but to feel him from the words he wrote, and the words he says, because there is no such thing as that thought.
Reprinted from: Programmer's Home