Programmer transformation in practice

Source: Internet
Author: User

When a software technician chooses his own development direction, how should he lay a good foundation for achieving the goal? Here, we want to talk about the knowledge of the teaching method that software technicians need to learn, and how to train their own ways of thinking and software development habits.


?Booster 1: Basic Software Knowledge

First of all, you must fully learn the basic knowledge of software. When a beginner comes into contact with software development, he often wants to start development immediately. This is a common phenomenon. There are many modern software languages, and many languages are very convenient to develop. You can start development by reading a book. In this case, technicians are often misled, when you follow this "convenient" development path, you may find that your progress is not great and you have developed many applications on your own, but why can't you afford it, not big companies? I think this is because the lack of Software basics has limited the development space. Imagine, how can we build high-rise buildings without a deep foundation? Building a house on the ground can only create a bungalow. The development and building principles of software technicians are the same. Only by laying down profound basic skills can you go further and farther away in terms of software principles.

What basic knowledge should software developers possess? I should first learn the C language. Learn data structures, operating systems, and databases based on the true knowledge of the C language. This is the foundation. For technical personnel engaged in application development, these basic knowledge does not have to be able to develop databases and operating systems on their own, but they are mastering the concept, it is very important to skillfully apply these concepts during the development process.

For technical personnel engaged in application development based on the Java System, the basis of the Java language is very important. It is best not to learn application development before learning the Java language. If you do not have a good Java language foundation and only learn application development, you can only know it most of the time, but do not know why. In terms of software technology, it will not go too far.

It is boring and time consuming to learn basic knowledge. By studying these basic knowledge over and over again, we can lay a good foundation for future development. At this learning stage, we must be able to withstand loneliness. It is worthwhile to spend a lot of time.


?Booster 2: Application System Knowledge System

You can learn application knowledge on the basis of basic knowledge. For people with good basic knowledge, the learning of application knowledge will become very simple and profound. For a Java engineer, a typical application knowledge is Web Application Development Based on JSP, JavaScript, and servlet. Java layering, EJB, and distributed computing development based on enterprise computing is actually a J2EE-defined enterprise application development knowledge.

So how do you allocate the learning time between basic knowledge and application system development knowledge? When you are learning basic knowledge, boring and frustrated things will come to you at any time. However, this is a challenge you must overcome. It usually takes a lot of time to learn basic knowledge, it is common to use a basic knowledge for three months, six months, and one year. Don't worry, don't envy those who can develop applications. You know, you have learned a better foundation than they do. Lu yaozhi Ma, want to make yourself a master to cultivate internal strength, internal strength is these basic knowledge, spend a lot of time is worth it. Application knowledge is usually a collection of knowledge points. Learning a knowledge point can be completed quickly. It is a common task to complete an application knowledge in a few days. For application knowledge, it must be accumulated continuously and be systematic, only when your knowledge structure forms a system can you achieve integration and improve the system level. Of course, the degree of application knowledge is related to whether your basic knowledge is solid. The more solid the basic knowledge, the more profound the understanding of the application knowledge; otherwise, the application knowledge you have learned is just a fur, and this fur is not enough to support you to go further.


?Booster 3: Software thinking

In addition to the basic knowledge and application development knowledge, good software thinking methods are also very important for the improvement of capabilities. What kind of thinking methods should we have?

L start with the framework

Many things in the world seem to have common connectivity. When we write an article, we first need to prepare an outline. when building a house, we need to draw a blueprint, lay the foundation, and pour the frame. Similarly, when developing software, we must first design the software framework. So what is the software framework? When we accept a task, we will divide it into functional points that are suitable for the development language from the functions of the task, and design the software design mode based on these functional points, then determine which programs will implement these designs. This entire thinking process is a thought process starting with the Framework.

What is the framework? Is the outline of the software system. This system has formed these five functional blocks in our brain, and our future work will focus on this framework. This process is called system analysis or business modeling.


L modular (componentized)

Software naturally forms different modules in the Process of framework conception. modular thinking is to use unnecessary program groups for different functions in software design and architecture, instead of a program group, it has all the functions.

L object-oriented

The concept of Object-oriented has been put forward for a long time. It is very important for software developers to establish an object-oriented way of thinking. The concept of Object-oriented has been born for more than a decade and has not been clearly stated. What I understand is a way of thinking. It is an abstract and general process of thinking in the form of process, instance, and logic. An object is the product of process, entity, logical abstraction, and generalization. This product is a class. Objects are abstract, specific, parent-child, and inclusive, to establish an object-oriented thinking, you must use one class or a group of classes to encapsulate one or more related process, logic, and entity thinking methods.

L technical solutions

When you are on the opposite side of a task, after you have conceived the framework and modules, an important question is what kind of technical solutions are used. Sometimes technical solutions are completed before modularization, because many times modularization needs to be determined based on technical solutions.

In many cases, we do not need to develop advanced technical solutions. The technical solutions must be reasonable and meet the performance requirements. In this case, the more concise and clear, the more conducive to development and maintenance. This process is called system architecture and system design.

L meticulous and logical

It is important to describe the way of thinking of software in detail and logic. Whether the software performance is stable or not, and whether the customer satisfaction and level are closely related to this thinking. This kind of thinking is like a sense of responsibility, that is, asking you to anticipate various possible situations and provide a way to handle them.

For the performance of the software, the running speed, resource usage, and other conditions should also be considered. If you do not consider these situations, it is very likely that a simple program will consume a lot of system resources, and even cause the entire software system to crash.


?Booster 4: good habits of software processes

After learning the basic software knowledge and application knowledge system and establishing software thinking, we can usually become a good programmer, but this is not enough. For a software engineer, it is very important to continue to understand the laws of software engineering. It is also necessary to learn some software engineering theories and software engineering planning. However, in actual work, we cannot blindly pursue complicated software engineering planning, nor apply models for the sake of standardization. Be sure to select the specifications and processes that suit the company's characteristics and the Project characteristics. Good standards and processes can control the development process, avoid some risks, and reduce problems. Generally, we need a complete process of requirement, design, code, testing, and review.


?Transformation Process

The software development profession is sometimes cruel, and some people say that software development is "a meal of Youth ". Although this is not nice, it makes sense. As a software technology developer, if he is always engaged in low-end development work, as he grows older, he may be removed from the development team by the edge of the industry. By that time, the "Eat youth dinner" sentence may become a reality. In the face of this cruel reality, a programmer must make continuous progress and constantly change during the growth process to gain a firm foothold in this industry, in the software development industry.

Figure 1-4 illustrates the programmer and transformation process.

It can be seen that a programmer has grown from a junior engineer, experienced senior engineer, architect, and project manager, and can finally become a department manager or technical director. In this process, programmers have to undergo three transformations. The first transformation from a general engineer to a core engineer is a transformation from a senior engineer to a project manager or architect, to complete this transformation process, the technical level needs to be further improved to form a knowledge system and accumulate a large amount of project experience. The third time, the system is transformed into a department manager or a technical director, this process is a "management" transformation. to complete this process, you must make yourself a good manager.



As a programmer, you must understand your own characteristics, the current situation of the software industry, and plan a suitable path for yourself. At the same time, we must make ourselves constantly "transformed". Only the ever-changing software industry can be successful. Otherwise, it is difficult to find our own position in this industry as we grow older.

Once you have chosen the path of software development, you must constantly enrich yourself. Programmers must have a solid Software Foundation. If they are engaged in Java-based system development, they must have a profound understanding of the Java language, which is the basis of everything. At the same time, to form a knowledge system, only the knowledge system can have an overall understanding of the system. In addition, we must constantly train our own software thinking, learn more about excellent systems, and form good development habits.

Programmer transformation in practice

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: 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.