"Turn" a senior programmer sentiment-the wrong way to solve the problem of programmers and experts

Source: Internet
Author: User
"Turn" a senior programmer sentiment--the misunderstanding of the programmer and the master
Since the advent of computers, programming has become an enviable profession, and programmers, after being pampered,
Easy to develop into a problem, but often self-smug group.
The "real" programmers now circulating on the Internet are said to be like this:
(1) Real programmers do not have a schedule, only to please the leader of the horse-polisher has a schedule, the real programmer will let
The leader is nervous.
(2) The real programmer does not write the instruction manual, the user should guess the function of the program himself.
(3) Real programmers rarely write comments on code, and if the comments are difficult to write, it is certainly difficult to read.
(4) Real programmers do not draw flowcharts, and primitive and illiterate people do it.
(5) The real programmer does not read the reference manual, the novice and the coward will see.
(6) Real programmers do not write documents and do not need documents, only the idiot can not understand the program to use the document.
(7) Real programmers think they know more about what users need than their users.
(8) A real programmer does not accept the idea of team development unless he is the boss himself.
(9) Real programmers do not run correctly for the first time, but they are willing to keep a machine for several
30-hour Debug error.
(10) A real programmer will not work between 9:00 and 5:00 if you see him at 9:00
, which shows that he has been working from last night until now.
......
With the above characteristics, the more the higher the level, the old qualification. So don't be surprised that many of the programmer's shortcomings
Can be appreciated as an advantage. As in the martial arts novels, those who are solitary, unconstrained and with a little evil are high
Hands are most admirable. I used to believe it, and I wanted to be such a "real" programmer, and the result
Did not get a good end.

I have been studious from university to doctoral graduation for 10 years, and have compiled hundreds of thousands of lines of C++/C code. Yes
This kind of elbow grease and fatigue, I should be called a programming veteran, right?
The software I have developed is related to research (integrated circuit CAD and 3D graphics), and tens the process.
The technology is complex and difficult. These software won the award, there is a software to obtain the first Chinese university students computer contest soft
Show First prize. A set of graphics repositories developed in 1995 was bought by 2000. List of these "industry
"Can you describe me as a master programmer?"
Unfortunately, this personal feeling does not mean the truth.

I spent a year in the study of the development of a nearly 100,000 lines of C + + code 3D graphics software products, I
Heart proud surface modestly to a real software expert to consult. Although he has never been involved in the field of 3D graphics,
Several major design errors in the software were noted within 10 minutes. It feels like the software is made of paper-paste finery,
Drop a piece and poke a hole. I was stunned to realize that the software was worthless and a year of painstaking work
Albino, and killed his own software company.

Human insight usually occurs in the most painful moment, after depression and heartache, I made a deep introspection, "wall"
Six months, re-review the basic knowledge of software design. After repairing the "internal strength", and feel the back of the hard up. Dr
Six months before graduation, I went to the Microsoft China Research Institute for a job and received an interview with a senior software engineer from Microsoft Corporation.
He asked me to write the code for the function strcpy.

Too easy, huh?
Wrong!
Such a tiny little function, he examines from three aspects:
(1) Programming style;
(2) error handling;
(3) Algorithm complexity analysis (to improve performance).
No one in college has ever examined my procedures so rigorously. I took half an hour, changed it several times,
He is not satisfied, let me go home to ponder. I went into the "examination room" with vigor and sweat out of the "Examination room".
This "master" is too timid. I had a good reflection once again.

I put the reflection after the experience of writing on the Internet circulated, causing a lot of software developers to resonate.
So I have the honor of large-scale domestic IT enterprises such as Huawei, Shanghai Bell, ZTE and other companies of the comrades have extensive exchanges. Everyone
It is considered that improving quality and productivity is the core problem of software engineering. High-quality programming is a very important ring
Software, after all, is implemented by programming.
Can our old hands and experts write high-quality programs?
Not necessarily all can!

As far as my experiences and experience are, the computer education in domestic universities has not instilled high-quality programming
Concepts, teachers and students also seldom consciously care about the quality of the software. Studious programmers for a long time in low-quality
The program heap roll crawl, eat all the pain after some experience, progress is very slow, I am an example.
Now domestic IT companies have a bachelor, Master's, PhD Diploma software developers everywhere, but they are
University education when the "inherent", how can one to the enterprise suddenly achieve qualitative leap. How much software development do you have?
Accuracy, robustness, reliability, efficiency, ease-of-use, readability (understandable), scalability,
Do you know the quality attributes of sex, compatibility, portability, etc.? And can be in practice freely? High quality
It's not a job to be careful.
We have good reason to doubt:
(1) The veteran programmer may have long-term programming (habit) in the form of an implicit error, and find that the problem is not
Believe that's true!
(2) The programmer can write very level code in a certain field, but it may not be able to grasp the software quality from the global side
Facets.

It turns out so. I have been to Shanghai Bell work for a year, has been interviewed or tested nearly hundred "new" "old" process
Programmer's programming skills, the quality pass rate is about 10%. Very few people are able to write the If that meets the quality requirements completely
Statements, many programmers on pointers, memory management smattering, ....
The leaders can't believe it's true. I did the field test: There was a new department in the 14 graduate students, in the open Huan
Prior to the meeting, they were "c++/c programming skills" test. I ask you the question is not difficult? All the people are
It's not hard to answer. As a result, no one has passed, and half of them have 0 points. Friends from rival companies have done experiments,
The same.

Really not I "ruthless" or demanding, but a lot of software developers on their own requirements are not enough
High.
To know that Huawei, Shanghai Bell, ZTE and other company's staff quality in the domestic IT enterprises are relatively forefront, if
If their programming quality is so bad, how dare we expect small and medium-sized companies to come up with high-quality software? Connecting process
Sequence are not good, also talk about the revitalization of national software industry, not nonsense.

I'm going to define programmers and programmers, please don't laughed at.
Definition 1: Programmers who are able to write high-quality programs over a long period of time are called programming veterans.
Definition 2: Programmers who are able to write highly difficult, high-quality programs over a long period of time are called programming gurus.
According to the above definition, immediately get the first inference: I am neither a master nor a veteran.

Before writing this book, I read a lot of English works in the design of the program, the more I look more shame. Because I found myself
Even programming basic skills are not fully mastered, at most is a second level, but also the nerve to talk about what veteran and master. H
I hope that the same as me in the home-grown programmer friends can do:
(1) Change the knowledge and mistakes;
(2) Always warm and know new;
(3) Insist on study, Day day up.

------Solution--------------------
There's some truth to that.
The doctor should be a learned man, and edged should not be his business.
------Solution--------------------
After all, a person's software is not as good as a team work.
Better technology should also have a good idea to achieve.
Not afraid of their own vegetables, afraid of no long-term upward mentality.
"The road long its repair far XI, I will go up and down and quest"
------Solution--------------------
It's software, it's hard to be perfect on the web, and every time you look at what you write, there's something wrong. But there is no way, in the web, these garbage code is fast food, do not think that these things are more nutritious, the project is the first, loopholes?! Write while you upload and change it.
------Solution--------------------
How many people care when programming is reduced to a bread where-eating tool?
  • 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.