Understanding of a senior programmer-solutions to misunderstandings between programmers and experts

Source: Internet
Author: User
[Switch] a senior programmer's perception-misunderstandings of programmers and Masters since the advent of computers, programming has become an enviable profession, after being favored, programmers are easy to develop into a group with many bad habits but can often find their own bad habits. & Nbsp; the "real" programmers circulating on the Internet are said to be like this: & nbsp;
Since the advent of computers, programming has become an enviable profession.
It is easy to develop into a group with a lot of problems but can often be smug.
The "real" programmers circulating on the Internet are said to be like this:
(1) real programmers do not have a schedule, and only those who are pleased with the leadership can have a schedule. Real Programmers will
Leaders are brave.
(2) If a real programmer does not write a statement of use, the user shall guess the functions of the program on his own.
(3) a real programmer rarely writes comments of code. if the comments are hard to write, it is naturally hard to read.
(4) true programmers do not draw flowcharts, and the original and illiterate will do this.
(5) a real programmer will not read the reference manual, but a novice or timid programmer will read it.
(6) real programmers do not need to write documents or documents. they only use documents if they do not understand the program.
(7) real programmers think they know what users need better than users.
(8) a real programmer does not accept the idea of team development unless he is the first.
(9) a real programmer's program will not run correctly for the first time, but they are willing to guard the machine for several
30-hour debugging and error correction.
(10) real programmers will not work between AM and PM. if you see him working at AM
This indicates that he has been doing this since last night.
......
The more features, the higher the level, and the old qualifications. So don't be surprised, the programmer has many shortcomings.
It can be appreciated as an advantage. It's like in martial arts novels, those who are dedicated, unrestrained, and somewhat evil
Hands are the most admired. I once believed in this and hoped that I would become such a "real" programmer.
Failed.

I have been diligent and studious since I graduated from college to my PhD. I have compiled hundreds of thousands of lines of C ++/C code. Yes
I should have been a programming veteran?
The software I developed is related to scientific research (integrated circuit CAD and 3D graphics), and tens of thousands of lines of programs are involved,
The technology is complex and difficult. These software were frequently awarded, and one software won the first Chinese college students' computer competition soft
First Prize. A set of graphic software libraries developed in 1995 will be purchased by another person in 2000. List these "businesses
Performance ", which means that I am a programmer, right?
Unfortunately, this kind of personal feeling is not equal to the fact.

I used one year to develop a 3D graphics software product with nearly 0.1 million lines of C ++ code during my blog.
I am proud to ask a real software expert modestly. Although he has never been involved in the 3D graphics field
Multiple major design errors of the software were identified within dozens of minutes. It makes people feel that the set of software is made of beautiful paper clothes.
Remove one piece and stamp a hole. I was dumbfounded to realize that this software was of no practical value and a year of painstaking efforts.
White and killed the software company.

A person's epiphany usually occurs at the most heartache moment. after being frustrated and heartbroken, I made a profound reflection, "face-to-face"
Half a year, review the basic knowledge of software design. After completing the "internal strength", I felt that the waist was hard. Doctor
Half a year before graduation, I went to the Chinese Research Institute of Microsoft to find a job and accept an interview with a senior software engineer from Microsoft.
He asked me to write code for the strcpy function.

Is it too easy?
Error!
Such a small function is examined in three aspects:
(1) programming style;
(2) error handling;
(3) algorithm complexity analysis (used to improve performance ).
No one in college has examined my program so strictly. I modified it for half an hour and modified it several times,
He is not satisfied yet. let me go home and think about it. I entered the "test room" with great vigor and sweat ".
This "master" is also too cool. I reflected on it again.

I wrote my reflections and posted them on the Internet, which aroused the resonance of many software developers.
Therefore, I have the honor to have extensive exchanges with Chinese large IT enterprises, such as Huawei, Shanghai Bell, and ZTE. Everybody
It is considered that improving quality and productivity is the core issue for software engineering. High-quality programming is an important environment
After all, software is implemented by programming.
Can our veterans and Masters compile high-quality programs?
Not necessarily!

As far as my experience and experience are concerned, the computer education in Chinese universities has never been instilled in high-quality programming.
Concept, teachers and students seldom consciously care about the quality of software. Diligent and studious programmers
I am an example.
Software developers with a bachelor's degree, master's degree, and doctor's degree in domestic IT enterprises are everywhere, but they are receiving
When I was in college education, I was unable to realize a qualitative leap as soon as I got to an enterprise. How many software development projects are available?
Accuracy, robustness, reliability, efficiency, ease of use, readability (comprehensibility), scalability
Are you familiar with quality attributes such as usability, compatibility, and portability? And can be used freely in practice ?. "High quality"
It's not something that can be done with care!
We have good concerns:
(1) programmers may be programming in implicit and wrong ways for a long time.
Believe it is true!
(2) programmers can write very good code in a certain field, but they may not be able to grasp the quality of software globally.
Aspect.

This turns out to be the case. I have been in Shanghai Bell for a year and have successively interviewed or tested nearly a hundred "new" and "old" courses.
The programmer's programming skills, the quality pass rate is about 10%. Few people can write if
Statements, many programmers have a thorough understanding of pointer and memory management ,.......
Leaders cannot believe this is true. I did an on-site test: I once got 14 new master students in the department.
They will be given a thorough examination of "C ++/C programming skills" before the gala. It's not difficult to ask questions? All people
The answer is not difficult. No one passed the test, and half of them scored zero points. Friends from rival companies have also done experiments,
The same failure.

It's really not that I'm so keen or demanding, but that many software developers have insufficient requirements for me.
High.
We need to know that the quality of employees of Huawei, Shanghai Bell, ZTE and other companies is at the forefront among domestic IT enterprises.
If their programming quality is so poor, how can we expect small and medium-sized companies to come up with high-quality software? Connection
The collation is not good. I still want to talk about how to revitalize the national software industry.

I plan to define a programmer and a programmer. don't laugh.
Definition 1: programmers who can write high-quality programs stably for a long time are known as experienced programmers.
Definition 2: programmers who can stably write difficult and high-quality programs for a long time are called programming experts.
According to the above definition, I immediately got the first inference: I am neither a master nor a veteran.

Before I write this book, I have read a lot of English books on programming. Because you find yourself
Even the basic programming skills are not fully mastered. most of them are second-class skills. Xi
I hope that programmers and friends who are home-grown in China will be able:
(1) correct the error;
(2) learn new things frequently due to warm-up;
(3) keep learning and study every day.

------ Solution --------------------
Some truth
The doctor should be a knowledgeable man, and he should not be a good doctor.
------ Solution --------------------
After all, software compiled by one person is not as good as the result of teamwork.
The best technology should also have a better way of thinking.
If you are not afraid of your food, you are afraid that you will not be able to make progress for a long time.
"The road is long, and I will try again and again"
------ Solution --------------------
It is software. in web, it should be difficult to achieve perfection. every time you read what you write, there are errors. But there is no way. on the web, these spam codes are fast food. don't think these things are nutritious and the construction period is the first. Is there a vulnerability ?! Write and upload and modify it.
------ Solution --------------------
How many people care about programming as a tool for food mixing ??

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.