The stage of programmer growth
Source: Shangpin China |
Type: website encyclopedia |
Time: April 26, 2012
Beijing website construction Shangpin China (www.sino web. net): This article is excerpted from the book Programmer Growth Roadmap published by China Machine Press. N216, Zhang Lei and Ji Yang, the authors of the book, recalled and summarized their decades of programmer growth experience together, and gave their own views and suggestions on the hot, key and difficult issues that programmers are concerned about. By dividing the growth stages of programmers, programmers at all stages can "follow the lead" and solve their problems.
Book cover:
The necessary stage for programmer growth
The growth experience of programmers is often very similar. Most people have gone through the same path in the front, while others have gone further. Summarizing their own history over the years, this may help young programmers to avoid detours and grow faster; Maybe it is better to let everyone get some inspiration from it, enter the stage of excellent programmers as soon as possible, realize their dreams and release their passion.
Phase I At first, I learned basic computer knowledge in school, learned classic programming languages, and wrote small programs for testing. This process can be said to be the initial stage of computer and programming. At this stage, I developed my interest in computer software and laid a good foundation of computer knowledge.
Phase II And then took part in the work of computer software development. According to the job requirements, while learning and programming, I can finally put my own program into operation. At this stage, I suddenly felt my value and the magic of software, and the software I wrote became a practical product. This stage realizes the transition from learning to production.
Phase III With the increase of work, I began to write various programs and develop various systems. At this time, I was busy with the accumulation and application of programming knowledge. It should be said that at this stage, I feel very full of myself, as if there are endless things to do, and the level of programming is still at the language level.
Phase IV After accumulating some programming skills, I began to think about this question: Am I the best programmer? Can I write the best program? This process is a stage of reflection. My requirement for myself is that I should not only be able to program, but also program well, and focus on the quality of programs instead of the quantity of programs.
Phase V , began to improve their software development level. After a variety of system development, especially the development of large systems, it is found that many functions in the software are repeated. Therefore, I spent some time on compiling various library functions, calling the same functions through different systems, so as to reduce repeated development and realize function sharing. What I was proud of at that time was that the library function was not called by me alone, but by the whole project team, even by different systems, so I realized that writing library functions was particularly valuable. The symbol of this stage is the library function, and the programmer level has risen to the library function level.
Phase VI When we reached the library function level, we soon found that it was not enough to implement the program function level calls alone. When you have done many projects, including large projects and small projects, especially cross industry projects, you will apply the sharing idea of library functions to project development. You will think: Why can't different projects have the same architecture? If there is the same architecture, there will be a relative standard for development, and we will be able to implement systems with the same architecture through configuration. So I put forward the idea of IASG (Interactive Software Automatic Generator), and implemented IASG instances in C and other languages. The fastest time I remember was to write a system (bicycle information management system of the public security department, mainly used for registration of lost bicycle information), which took only three hours (from demand to installation disk). This matter has a great impact on me. At this stage, I went up a great step, from program to software. The core idea has risen from library function sharing to software sharing. The specific process is to establish a general system architecture, which has many common functions, such as parameter setting, user permission management, database table management, etc. In addition, it also provides information to establish a query development template, which can quickly complete the development of a system through configuration and preparation of special functions. Now I think that IASG has been 20 years away from me.
Stage 7 After reaching the IASG stage, I found that no matter how improved the technology is, it cannot change the reality that development lags behind the requirements. Generally speaking, no matter how high the level of programmers is, they are only good at pulling cars. However, they do not know where to pull cars. If this road is a bright one, programmers will be more energetic and promising; If this is a dead end, programmers will waste their time; If this is a long road and the future is unclear, the programmer may be tired and fall on the road. In reality, the level of programmers is low and their income is low; The system requirements are not clear, and the system development cycle is delayed again and again; The system is repeatedly developed, and information cannot even be shared within an enterprise, let alone between enterprises and industries; A variety of enterprise level software ERP, CRM, BI emerge in endlessly, and none of them can meet the Chinese market; All kinds of new technologies and new concepts are constantly emerging, but no technology or concept can really play its intrinsic value, and ultimately it is still in the stage of being learned and applied.
This process is the stage when programmers break away from the technology itself and start to think and seek the source. At this stage, the thinking of programmers has made a qualitative leap. In the past, only pulling cars did not look at the road, but now we have to look up at the road.
Stage 8 With the idea of looking up at the road, I embarked on the journey of finding the way. I first figured out what the road under our feet was like and why it was so uneven and not broad. From the perspective of software life cycle, software is mainly initiated by user demand, which is the fundamental reason for software survival. Different enterprises and users lead to different demands - a large number of unordered demands. This demand driven approach inevitably leads to various phenomena I have described before. This stage is the stage of finding the root cause. As long as we find the root cause, we can have a chance to solve the problem. This process is relatively difficult, which requires not only programming technology, but also a lot of knowledge. To understand this root cause, you are forced to learn and accumulate more knowledge beyond the program.
Stage 9 When I found that software is demand driven, I began to consider what is user demand? Why do users put forward these requirements? We can further analyze the root cause of user demand. Can we turn disordered demand into ordered demand? Of course, we have conducted in-depth analysis on these issues, and its process is difficult to explain here. I can only say that the final conclusion is that the demand of users comes from the operation of enterprises. Many people think about problems based on needs rather than from the perspective of enterprise management. Do not underestimate this change, which will eventually produce a theory. So we try our best to stand in the perspective of enterprise management and look at enterprise management, enterprise informatization, etc. However, we should finally solve the problem of the concept of enterprise operation. If we can't define the concept of enterprise operation clearly, or we can't define the concept of enterprise operation scientifically, then all the specific phenomena based on enterprise operation will be in disorder like a source without roots. Just like the so-called enterprise information products such as ERP and CRM, without the support of an enterprise operation definition, they can only propose solutions for some aspects of enterprise operation. These products do not lack the support of demand, but the support of the most basic business definition. This concept is EOM.
EOM starts from the definition of enterprise operation, and puts all kinds of research and development activities we will carry out in the future on a theoretical basis. Only after the definition of enterprise operation can we analyze what software we need and what technology our software uses to achieve the goal of enterprise operation. Through EOM, programmers learn what kind of software is needed for enterprise operation, how valuable the software is, what technology can be used to realize the software, and what technical level they need to improve to obtain greater value.
This process is the EOM phase. Through EOM, we can understand the source of software and where valuable software lies, and then choose our future direction.
Stage 10 After I established EOM, I started the EOM implementation phase. This implementation phase is divided into two parts. Through the combination of these two parts, we can gradually see the examples of EOM software products and the real value of EOM.
The first part is the technical implementation of EOM. With EOM and based on EOM theory, we must technically implement the architecture of enterprise informatization, otherwise the architecture will remain in the theoretical stage forever and is not feasible. We can use various existing technologies to implement this architecture, but the existing technologies are built and developed based on the original business requirements, and they are applicable to the original application objects. The current EOM is a new business concept, so we must establish a new software architecture to adapt to and best implement this concept. Fortunately, we have found a technology called NSS (New Software Structure) software new architecture, which reflects the direction of enterprise operation and development, reasonably layering software, and standardizing the software development mode with the latest software technology in accordance with the architecture, so as to achieve maximum function sharing and achieve software scalability.
The second part is the business implementation of EOM. After we have identified the EOM, we can re plan the overall architecture of enterprise informatization according to the EOM. We can subdivide various platform products, general products, and professional products in this architecture. We can also subdivide various technical architectures and implementation means implemented by this architecture, and can subdivide various standard functions and standard information in this architecture. Through such analysis, our programmers can choose software products and technologies according to their own strengths, hobbies and value judgments. Under the condition of clear goals and directions, through their own efforts, they constantly improve their various skill levels, organically combine their own values with the business value of the enterprise, so as to achieve their own ideals.
From my experience as a programmer, we can see that the growth of programmers is endless. As long as we work hard with a clear aim, we will step up. I think there are three major stages in the growth of programmers, namely the general technology stage, the market stage, and the professional technology stage.
At this stage, programmers can conduct in-depth research on software product business design or software product technology implementation, and become domain experts. This is essentially different from the simple requirement analysis and simple technical implementation we usually involve.
1) The special technology stage is the stage when programmers recognize the great market value of this software and technology, devote themselves to this field, and become experts in this field. Programmers should understand not only technology, but also customer business. The technology and business of different programmers become incomparable. This scarcity creates great value for programmers.
2) The general technology stage is the stage where programmers focus on improving their programming level, that is, the stage of "only pulling cars but not looking at the road". What the programmer can do, the programmer can also do. The programmer is highly substitutive, the market value of the programmer is relatively low, and the programmer only focuses on the programming technology itself.
3) The market stage is the stage when programmers jump away from the technical level and start to think about why they want to develop this software and what its value is. They re recognize their own direction by seeking the source of the software.
These three stages are actually three processes, and each process is a leap. Programmers know how high they can fly, relying on their learning and vision; Where programmers can fly, it depends on their own efforts. A programmer can have no ability, but he can't have no vision. This article was published by Beijing Website Construction Company Shangpin China //ihucc.com/
Source Statement: This article is original or edited by Shangpin China's editors. If it needs to be reproduced, please indicate that it is from Shangpin China. The above contents (including pictures and words) are from the Internet. If there is any infringement, please contact us in time (010-60259772).