High quality is the technical pursuit of programmers and the requirement of professional ethics.
It is better to make progress slower and ensure the quality of each link in order to achieve long-term benefits.
Personnel management, project management, feasibility and requirement analysis, system design, program design, and testing.
Three basic strategies in software development: "reuse", "divide and conquer", and "Optimization-compromise ".
Progress should be done, but it is shameful not to make progress.
In a new system, most of the content is mature, and only a small part of the content is innovative.
The mantra of Object Oriented scholars is "Please do not invent the same wheel ".
Software Component is a software component that has a certain degree of integration and can be reused ).
Divide and conquer refers to dividing a complex problem into several simple problems and solving them one by one.
Optimization is not a dispensable task, but a necessary task. When optimization becomes a responsibility, programmers constantly improve the algorithms, data structures, and program organization in the software to improve the software quality.
Incorrect ideas:
Concept 1: We have a set of books on how to develop software. The book is full of standards and examples, which can help us solve any problems encountered in software development.
Customer
Overall situation: good reference books can undoubtedly guide our work. Making full use of the methods, techniques, and skills in books can effectively solve a large number of common problems in software development. But practitioners cannot rely on books,
This is because: (1) in actual work, due to the wide variety of conditions, even quite mature software engineering specifications are often unable to be applied. (2) software technology is changing with each passing day, and no software standard can survive
Decline. The original secret recipe is delicious in some fields, while it is lagging behind in the software field.
Concept 2: we have the best development tools and the best computers, and we will be able to make excellent software.
Objective situation: a good development environment is only a necessary condition for producing results, not a sufficient condition. If a group of mediocre people have a good environment, it is difficult to ensure that they do not do anything in the north.
Concept 3: If we lag behind the plan, we can add more programmers to solve the problem.
Objective situation: software development is different from traditional agricultural production. If the cost lags behind
Add new users to the project, which may be more delayed. Because: (1) New users may encounter many new errors, causing project confusion. (2) It takes time for a veteran to explain his work and exchange ideas to the novice so that
Less time. Therefore, a scientific project plan is very important. It doesn't matter how much advance the plan can be. If we use the "Great Leap Forward" method to go to communism, we will only have the consequences of regressing.
Concept 4: Since the demand analysis is very difficult, no matter how many users make the software, the software is flexible and can be modified at any time.
Objective situation: the more accurate the requirement is, the less the software is repaired and supplemented. Some requirements are difficult to determine at the beginning, and must be corrected continuously during the development process. The sooner the software is modified, the less it costs. The later the software is modified, the more expensive the software is.
Program Design is a matter of freedom and happiness. Do not swear to be loyal to the principles of XX and look for troubles.
The failure technique is usually a skill.
Developers should realize that all errors are serious and there are no trivial errors. In this way, fewer mistakes can be made.
The purpose of management is to allow everyone to do a good job together and to make everyone happy and satisfied. When an organization is under outstanding leadership, employees do not even know that they have been under leadership. Completed in Project
They will proudly say: "Let's see what we have achieved through hard work ". Therefore, managers should not remember that they are an official, but should always be aware that they are the main owners of their responsibilities.
True programmers have the following qualities:
I. Honesty
Programmers deal with machines almost every day during their studies and work, and there is no chance to cheat or cheat people. Diligent programmers have been deeply educated in "honesty" When debugging infinite program bugs. If he is dishonest, he certainly does not want to be a programmer or a programmer.
Ii. Simplicity-pragmatism
At present, even the most advanced computers do not have intelligence. The basic job of programmers is to convert complicated problems into simple programs that computers can handle. If a problem is complicated and cannot be understood by a programmer, the programmer cannot compile a program to handle it by a more stupid computer. So programmers believe in "simple-practicality.
Iii. Clear love stories
Many programmers like technical challenges and do not like testing and maintenance. High-level programmers like to work with high-level programmers because they are afraid of "playing chess with the bad guys, the more the games get worse ". Many programmers hate gangs and politics. Believe it or not. How many programmers do you know?
4. monotonous but not boring
Someone asked the programmer: "What is the true meaning of program design ?"
The master replied: "If you are hungry, you will eat it. If you are sleepy, you will go to bed and design the program as soon as the time is right ."
In fact, the life and work of programmers have been integrated. Although monotonous, they are not boring and can enjoy their own loneliness. Evidence of Poetry:
Three days of my programming
No human ears
Only hard disk singing
Conclusion: good programmers have no reason to dislike others. They are far more cute than geeks.
When selecting managers, Microsoft always puts their technical knowledge and the ability to use technology to make money first.
Bigai once described it as intelligent: a person must be agile and be good at accepting new things. He can quickly enter a new field and give you an explanation. The questions he raised are often shot
Damage. He can grasp the knowledge he has learned in a timely manner and remember that he can solve the problem by connecting areas that are originally considered irrelevant. He is innovative and cooperative ......
A good program manager must meet the following requirements:
I. technical level is the highest level among programmers
Every programmer has an arrogance in his head. If you can't beat them, they won't listen to your command. It is a tragedy for a person with poor technical skills to be appointed as a program manager, like a slightly powerful eunuch. On the surface, someone turned to him, but was despised behind him.
2. Do the most and most difficult work
Program Manager programming should be fast and good. If someone else needs to do a day's work, he will be able to finish it in half a day, so that he will have the energy to manage it. The program manager should be responsible for the most difficult development tasks such as system analysis and system design, and instruct programmers of different levels to do their jobs well. If there are not enough people, the program manager should be able to work for several people at the same time.
3. Personality Charm
Soft
Piece development is an intellectual creation process. You cannot expect to produce good works only by executing rules and regulations. The program managers of many software companies are not management professionals, and they cannot play around for good management.
Machine. Well-skilled program managers generally have few bad intentions, so the focus of management should be "set an example" and "treat people fairly ". If the program manager is sleeping on the desk at work, other programmers will do the same.
. If the program manager finds that two programmers are sleeping on the machine, they can't just yell at one of them: "You want to go to bed as soon as you program, look at people, and think about programming when you go to bed ."
If the manager has no personality charm and no one is convinced of you, the team will not be cohesive, and the masses cannot develop excellent software.
Conclusion: managers at all levels of a dynamic software company will not sigh like this, "because I can't do anything, I have to be a leader ."
In the software field, the power of technology is infinite, and the whole industry can change dramatically in one day.
Good soldiers are not born, but trained the day after tomorrow. They must learn to analyze problems calmly and work passionately.
The hierarchy does not limit freedom and democracy. It allows people who think they are smart and cannot accept the rules to learn how to cooperate and struggle. Just as with a ladder, every person has the opportunity to climb the wall and pick the long-awaited wild flowers. When the ladder is scattered into a pile of wooden sticks, it can only make up a few charcoal players.
The technical level is divided into four levels. The first level is the lowest, and the fourth level is the highest. First-level technical level programmers mainly assess basic programming skills and require qualified quality (they are mainly from graduates of college students ). Level 2 Technology
Skilled programmers have a high programming quality. They have worked on several software projects, have several years of experience, and can guide new users. Third-level technical level programmers mainly Assess System Analysis and system design capabilities and requirements
Its technology has sufficient depth and breadth. The fourth-level technical programmer is the designer of a successful software product. He is not only superior in technology, but also can turn technology into valuable goods.
Manage (here only
Management of software services, without considering administrative matters) level is also divided into four levels. Level 1 is the lowest, Level 3 is the highest. A person with level-2 management level does not have a management position, that is, an ordinary employee. The first level of management is development.
The group leader can lead several programmers. The project manager is responsible for Level 2 management. Level 3 people decide whether to develop certain products and how to occupy the market.
When we encounter setbacks in our work, we should analyze the problem calmly (what is the cause of the problem) and find out the internal and external causes of the problem. Internal factors are the most important and should be addressed first.
"Superstitious" is the result of a fool encountering a liar.
In order not to be "stupid", good people should use their brains to learn more and try to let themselves grasp their fate. Don't rush to entrust their life to someone or an organization.
It is impossible for God to assign too many advantages to a person, so that he has no room to be modest.
When seeking, we may be too utilitarian and too picky. As a result, the knowledge structure is very thin, so we are afraid that it will not become a huge tool in our later years. When programmers are good at technology, they must always pay attention to the non-technical skills they are not good. To improve the overall quality.
People are the most valuable resources.
The schedule is not necessarily in the logical order. We should do things that are technically difficult as much as possible, and then do things that are less difficult. That is to say, it is easy to get ahead.
Milestones are like the beacon of the soul, so that busy people are not confused, not lost.
When people do one thing, there are many uncertain factors, and it is generally impossible to achieve the goal by 100%. Suppose that ordinary people can achieve 80% of their goals. If a person's goal is 100, his final score can reach 80. If a person's goal is only 60 points, his final score is only 48 points.
Without a high goal, people will soon fall. Without the "zero defect" quality goal, there may be numerous defects.
Software is so flexible. If there is no specification to restrict it, it will easily lead to chaos due to disorderly preferences. However, if the specification is too strict, it will kill the dynamic creativity of programmers.
Concise is a kind of beauty!
Whenever we indulge in short-term interests, we should remember the great aspirations of childhood and give ourselves some encouragement.
"There are four categories of people: people, talents, people, and scum ."
I have received many dazzling honors, but the honors in the student age are just a kind of encouragement, not a confirmation of my talents and career.
"When you cannot help a person to mount a horse, maybe you should drag him down." ------ Li Yu
Why are the salaries of software system analysts higher than ordinary programmers? It is because of the difficulty of requirement analysis.
If you have learned objective and scientific feasibility analysis, you must be decisive in making decisions.
The advantages and disadvantages of system design fundamentally determine the quality of software systems.
There are science in literature, mathematics in music, and topology in modern mathematics in comics. Cartoonists can draw a person with just a few strokes. No matter how beautifying or beautifying the person, it is a live image. Why? Because the "Several pens" are not anything else, but feature constants in topology. This is the most essential thing of things. ------- Yang shuzi
Architecture is the most essential thing in a software system.
Cohesion is a measurement of the degree of association between components in a module. Coupling is a measurement of the degree of dependency between modules.
The fastest technological progress is not as fast as the increase in people's desires.
An object is an instance of a class ).
Doctors can bury his mistakes in the ground, but programmers can't. We must learn how to test and correct errors, and do a good job in testing and correcting errors.
Testing is not only a technical issue, but also a professional ethics issue.
The test can only prove that the defect exists, but cannot prove that the defect does not exist.
Correction is a process of great sorrow and joy. Within a day, people may fall and fall between the valley of sorrow and the peak of joy.
Errors in the program can only be identified and modified by the developer. If you are delayed due to fear, you will be in a bad mood all day long. So long pain is not as short pain, you need to focus on dealing with errors.
The programmer once said: "Even if the program has only three presidents, you will have to maintain it one day ."