In China, programmers cannot be over 35 years old. It seems that it is an indisputable fact that software development is just a young man. At most, the ten years after graduation have exceeded this age, if you fail to become a manager or move into other fields, it seems that there is no better choice. Even if you occasionally stick to development, you will be considered an alternative. This is not the case for foreigners. There are still many developers at the age of 40, and many cool people, including Robber, who won the Compaq best Software Award, are still working on his favorite coding work, why is this difference. I thought for a moment, especially this year, I attended too many technical training sessions, and I have come to some conclusions.
First of all, the nature of software development in China determines all of this. The product development we make is really low in technical content. After years of training and practice, students who have graduated from Colleges and Universities, we can basically master these skills, and our existing product development and design level is limited. Our understanding of software development is limited to coding. To fulfill these basic requirements, the product progress is the first driving force, in particular, some small companies have set fast product development as the highest goal. The software design quality is poor, and maintainability and scalability are rarely considered. These important software quality attributes only pursue functions and progress, the product is designed, coded, rarely tested, or even not tested at the fastest speed, and delivered directly to the customer, exposing various problems to the customer, developers began to solve such problems for customers. After the software was done, many people could not go out of the traps that they had been exploring, step into finding bugs in complicated systems, solving bugs, adding features, introducing new bugs, and then solving bugs. In this endless vicious circle, we are engaged in some low-level development work, the understanding of software development cannot rise to a higher level, and every day is exhausted. Software maintenance costs are high, even if the project ends, and the next software development process repeats, these endless low-level development and maintenance work, it will consume all the passion and energy of a person. With the increase of age, enthusiasm and physical strength are fading. These jobs, as long as graduates are trained, can also be competent and have a low price, as enthusiastic graduates compete, old programmers who are physically and mentally exhausted are bound to face greater competition pressure. In the end, they will lose their interest in software development, even get bored. Is there a big difference between ten years of development experience and five years of development experience in this fast development model? Why not use cheaper developers.
Another reason is that we Chinese people have always adhered to the official standard ideology. Developers are always in a very embarrassing realm. It sounds like they are engaged in high-level technical work, which is also "people-oriented". However, how many enterprise managers really attach importance to and recognize developers, even masters and doctors, who are only common workers in the face of "Big officials and little officials. Programmers are an industry without a future, even if their qualifications are deep, their abilities are strong, and they are still workers. Only when they become leaders and take management is the final way out. Otherwise, their salaries will not go up, the status cannot go up, but can only face the fate of being eliminated.
Otherwise, this problem is a misunderstanding of software development in China. If software development is just code writing and looking for bugs, it can be said that it is really some low-level software behavior. after ten years of development, it is indeed not as many as three years of development, it is a simple and repetitive job. It can be done after three years of work, with greater enthusiasm and energy. However, we should jump out of this strange circle, move to a higher field, and re-recognize software development. We need to understand that software development should be integrated with engineering ideas, have a high degree of design capabilities, pay attention to more software operation attributes and design quality attributes, and share the same system, different software personnel make completely different software. The formal and efficient development team is dozens of times higher than the guerrilla development team. Software development should focus not only on functions and performance, but also on quality attributes such as maintainability and scalability, not only on code, but also on design and reuse. Software development is not only about writing C language code, unit testing, peer review, training and learning, but also the basic quality of developers and the most basic means to improve software quality. For example, if the unit test is completed, the development efficiency can be greatly improved and the maintenance cost of the software can be reduced. Release developers. Peer review allows developers to communicate with each other and strictly control the software quality in the design and coding stages. Training is the best way to improve their technical skills and theoretically improve themselves. Previously, these major quality behaviors were ignored, and this is precisely the best way to get out of low-level development. At the same time, there are higher levels of design and development, software restructuring, modularization, system architecture, building a unified software platform, and measuring software quality. With reconstruction, the software with good readability and maintainability will be written, therefore, we can improve our software design capabilities to reduce the possibility of errors. modularization enables software to be reused to the greatest extent possible, and improves software development efficiency and quality. The software architecture design, at the technical level, first determines the fate of the Software. Here there are too many technologies, design patterns, software planning, and so on, building a unified software platform from coding to designing is an inevitable path for large products and serialized development. It measures the quality of software, it will make our software development more transparent and clear, so that we can better grasp the software development process and control the software quality from all aspects, instead of simply recognizing it with emotion, we can remedy it.
The above knowledge is impossible for a person to possess all the skills even if he has studied hard for a lifetime. If you are 35 years old, it's not too late to be 70 years old. Of course, you need to truly love it and keep learning and learning. Therefore, software developers have to do too many things. Software is really a huge mental project, and even makes people think it is an industry with the lowest input/output ratio, because there is too much knowledge to learn, and it is always necessary to keep learning and updating every moment. Now that you have chosen it, you can enjoy it. Most importantly, we can and are willing to recognize this and jump out of the strange circle of low-level development to a higher level.
At the same time, we must realize that a senior developer serves no less than a manager. A brilliant enterprise should be given the same treatment, it is necessary to train and reserve Senior Technical Talents as the key development direction of high-tech enterprises so that enterprises can continue to accumulate in the field of talent, so that senior developers can bring out efficient development teams, to develop high-quality and efficient software, so that enterprises can win in the fierce competition. You must understand that not everyone is suitable or willing to switch to management. Many people are suitable for development. They can go deeper and become experts. They should give full play to their abilities, make the entire team work efficiently.
Therefore, developers are not only 35 years old. As long as you are willing to develop for a lifetime, you can enjoy more happiness.