Reproduced to: http://www.delphifans.com/infoview/Article_4628.html
(Note: The following content is the author's personal learning experience and experience, which only represents my opinion. For Delphi Program Development under Win32, some content or ideas can also be applied to software development under other tools or platforms .)
The most widely used word in the programmer's job information may be "familiar" and "proficient. It is not easy to evaluate a programmer's comprehensive ability. The following text attempts to use Delphi Program Development as an example to define a method to describe the programmer's development ability.
I. Division of learning stages.
Based on my personal experience, Delphi programming is divided into the following stages:
1. Familiarity stage.
This stage refers to people who have never touched Delphi, at the beginning, I learned how to get started with Delphi syntax, visual programming, Object-Oriented Programming Concepts, Delphi IDE development environment, basic code writing, and program structure.
After the familiarization stage ends, the learner should be able to write simple programs and have a certain understanding of the entire Delphi development environment, but cannot engage in development work yet.
This process may take several days to dozens of days, depending on whether the learner has experience writing other language code and has been exposed to object-oriented programming.
2. entry stage.
After you are familiar with Delphi, the entry mark is that learners can use Delphi's powerful visual development environment and combine some conventional code writing techniques to compile some small programs, or complete a simple database application. At the same time, you should master the basic program debugging methods.
After getting started, programmers can engage in simple development work, or serve as the user interface design and simple code compiling tasks for small and medium systems.
Similarly, without coding experience, this process will take one month or more.
3. advanced stage.
Quite a few programmers are in the advanced stage. They accumulate code writing and program debugging experience through regular development work, and find various code writing skills through various channels. Based on your own work or interests, you can develop small-sized, low-tech systems in a large number of practical aspects, or write common code in large and medium-sized systems.
The vast majority of on-the-job programmers are at this stage. If a programmer does not learn, summarize, or improve at work, it may be at this stage for a long time, years, or even a lifetime.
4. Small phases.
Only by systematically mastering the structure system of Delphi, from practice to theory, has its own complete programming ideas and styles, it is a small achievement to achieve a considerable level in depth, or to have a considerable experience in the breadth of knowledge.
At this point, programmers can implement almost everything they want to do as long as they have time to write code. Many functions, You can cite several implementation methods and optimize the selection in terms of efficiency and readability.
In addition to Delphi, programmers should have a very deep understanding of the operating system, learn new knowledge and apply it in a short time, read the vast majority of Delphi source code, and complete debugging of complex programs.
To develop in depth, programmers should be able to write components with a certain level, experts or more professional programs. If the development is wide, you can complete small and medium-sized development tasks, or write core code in large and medium-sized systems and perform most system analysis work.
At this stage, there is almost no ready-made experience to learn. It depends entirely on individual practices and insights. After a small achievement, programmers can stand alone in software.
5. Master level.
If the first four stages can be regarded as "Applications" to some extent, the master programmers will be at the level of "design and creation.
They have already entered the realm of skill. They can play Delphi as they wish, create new things, grasp the development direction, and use the code written with them as teaching materials. Borland engineers, well-known foreign software, control packages, and a few programmers in China are at this stage.
Ii. Code Reading and analysis capabilities.
For a programmer, reading the code written by others is a basic capability. This includes not only reading well-written programs, but also reading well-written or even poorly-written code.
Code Reading and analysis can be divided into three levels: one is the ability to read the Code itself, the other is the ability to understand the code writing ideas, and the third is the ability to analyze and design algorithm models.
To understand the functions and functions of a piece of code, you should first have a lot of experience in code reading and writing, and then quickly obtain the required information from the manual. However, many excellent codes are still difficult to understand. This requires the Macro Analysis and association capabilities of programmers.
Like all other things, many codes only exist in a specific environment. Experienced programmers don't rush to read a piece of code immediately after they get it. Instead, they need to analyze the function of the unit or project where the code is located, from the macro perspective (system framework structure) and Micro (specific code) Analysis of the author's design intent, framework structure, implementation method, learn from the experience or evaluate the quality of code writing.
Further exploration is the algorithm design of code and software. Here is a piece of code for implementing the DES encryption algorithm, UCL compression algorithm, or MCNN multi-layer grouping neural network. If you do not have any theoretical knowledge, you cannot understand the source algorithm model.
Iii. coding and debugging capabilities.
Programming capability generally refers to the ability to write and debug code. The programmer's Code directly represents his programming level.
1. code writing specifications.
Code and annotation writing specifications directly reflect a programmer's attitude towards program design. Different organizations define different code writing specifications, but from the perspective of appearance, well-written code looks almost the same, while bad code is varied.
2. Program Framework and algorithm structure.
Many programmers lack detailed analysis and planning on the development goals when writing code at the beginning. They write and modify the code. The code structure written in the results is lengthy, the algorithms are messy, and the code structure is readable and easy to maintain, especially when many developers develop, it is easy to cause slow or even deadlocked development progress in the middle and late stages. Excellent programmers have concise code writing, clear algorithms, and reasonable structures. They are good at using the powerful syntax checking function of the compiler to reduce potential errors, the program portability and upgrade capabilities are fully taken into account when designing and writing code.
3. Software Testing and code debugging capabilities.
The ability to debug complex code is also an important factor in distinguishing the programmer's ability. For problematic codes in the same segment, debugging time may differ several times or even dozens of hundreds of times. In particular, debugging of component development and other non-visual code requires that a programmer without much experience complete it is unrealistic. A good programmer should also be a good tester. The ability to discover and solve problems is equally important, although not everyone can recognize this.
4. programmer type.
From the perspective of the programmer's work and interest, we can simply divide it:
1. application type.
It can be divided into "other fields combined with software development" and "software development combined with other fields.
The former has its own professional knowledge, but is not suitable for simple operations and applications. It uses the powerful RAD capabilities of development tools such as VB and Delphi to develop professional software. The latter's job is to apply computer technology to other fields, mainly for enterprises to write a variety of software based on commercial databases and network communication or some automated control applications.
Application programmers generally develop in the "breadth" mode. They do not focus on the study of the underlying system knowledge, but on "application ", use development tools to implement "industry rules" without having to read and write the underlying and complex code.
2. technology.
This type of programmers is purely software-based, and their development focuses on computer software itself, which belongs to the "deep" development model.
Most technical programmers are pursuing perfection and nitpicking. For them, it is cool to spend several hours optimizing a piece of code to improve program execution efficiency by 10%. Technical programmers generally have the same name and do not have the same benefits. They like freedom and do not want to be constrained by the existing framework. In every shocking move, most of them are Maverick or responsible for writing core code in software development, the world has become beautiful because of the existence of these programmers.
3. Creation type.
Creative programmers combine the characteristics of applications and technologies.
They have both a savvy business mind and strong technical strength. They are both management talents and technical talents, and are a hot figure. There are already many descriptive media about them.