System Programmer growth plan-Sequence

Source: Internet
Author: User

Background

After several large and failed projects, I finally realized that nothing higher than the quality of programmers can determine the success of the project, no matter what the process, programming languages and development tools, leave high
Quality programmers are in vain. Without a doubt, people are the most important factor in software development, but not everyone is important. Not everyone is important. Only high-quality programmers and
Talents with outstanding contributions are important.

But there are few high-quality programmers, so from the very beginning, I was thinking about how to train team members. I have made many attempts, learned from the group to take a big lesson in the entire department, and finally returned
Individual individual counseling; from conducting on-site education through codreview to developing a grand training program, and finally returning to a simple training process. Many problems were encountered, and training was not enough at the beginning.
System, the results were not very satisfactory, and later it was unable to be implemented because the plan was too "Magnificent" until it finally became a simple and practical training solution. It took several years in the middle, it wasn't until last year that the entire plan was
Tend to improve. I call this training program a growth program for system programmers. This is what I want to write in this series.

The training content does not come from a certain book. After eight years of graduation, I insisted on reading books constantly. I had seven storage boxes in my home and more than 300 different types of books, it includes most of the classic It books. When
Not all of the content is from books. Over the past few years, I have learned a lot of nutrition from open-source software. Some ideas and experiences have been fully utilized in the broncho project. They can be said to be theories, experience and Practice
. However, I don't try to explain anything profound. On the contrary, I wrote for recent graduates and amateurs, aiming to enable beginners to become professional programmers.

Why is it a growth plan for system programmers? Programmers are too broad,
Although there are many similarities in software development, I am completely a layman for the hot web development. I want to talk about everything, but the result is not clear, so I have
The training program is limited to the scope I am familiar. First define the System Programmer: engaged in operating system kernel, DBMS, GUI system, basic function library, application framework, compiler, virtual machine and other basic software development
Programmers. These trainings are also applicable to desktop software and smartphone software development. I think they will be helpful to other software development.

Laws of strawberry sauce and jam. When I first saw the law of strawberry sauce in the mystery of my consultation, I felt very interesting. Of course, this series cannot be separated from the magic of the Law of strawberry sauce.
Rong, I taught more than a dozen colleagues with good results. When hundreds of readers read these articles, I do not expect the same effect. But with the encouragement of the jam law, I believe that at least
The value of some content will not disappear because of the increase of the reader group, so it is decided to write it.

Central Ideology

Where is the difficulty of software development? Different people have different answers to this question. The same person may have different answers in different career stages. As a system programmer, I think software development has two major difficulties:

First, control the complexity of software. The complexity of software is getting higher and higher, while human intelligence remains unchanged. How can we control the complexity of infinite expansion with limited intelligence? I have experienced several large projects and analyzed
After a lot of existing open-source software, I come to the conclusion that we can't solve a single problem or technical details, and all these problems occur in a project, the exponential increase in complexity often leads us
No strategy.

Second, isolate changes. User requirements are changing, application environments are changing, and new technologies are emerging. All these require software development to target mobile devices. Even when developing basic platform software
After the development cycle of time, the demand changes are amazing. Demand changes are not terrible. The key lies in the impact of changes on the system. If the system is changed, a small change may cause a fatal impact on the system.
Impact.

To solve these two problems, methodological scientists have been working hard for decades to invent or improve the software development process and design methods. The basic software that system programmers face is usually large and complex software, and its versatility also needs to accommodate more changes. Solving these two problems is also the main goal of the system programmer's growth plan.

Article Features

Focuses on guiding readers to think. Training can create qualified programmers, but cannot create first-class experts. Training is a passive process. We all know the effect of lectures in universities. I don't want this series of articles
Instead, we need to become passive and take the initiative to maximize the learning effect. In most cases, I first ask the readers to think about the problem and try to solve it by themselves. Can this problem be solved?
This issue is not important. It is important to improve yourself in thinking. If you cannot find a solution to the problem for a certain period of time, there will be reference by professional programmers (maybe not the best ).

A simple example is used to describe complex design methods. I once made an ambitious training program and failed because I forgot that I had struggled crawling before I walked. This time I learned the lesson and used the simple
A single example describes a complex design method, and does not make too many assumptions about the reader's background. There will be no complicated data structures and algorithms, or large software will be introduced to attract people. There are enough challenges to make readers feel
It's boring, and everything is under control, so it won't be motivated by setbacks.

Both technical competence and work attitude. The ancients said that people with both ability and political integrity are gentlemen. Similarly, to be a top-notch programmer, you must have both moral and moral skills. When I teach others by hand, I not only hope that they will learn how to speak.
I hope that he can learn my work attitude and moral qualities as a programmer. Of course, there are some things that can only be said and not expressed in words. In any case, this is one of my original intentions.

Reader Group

This series is intended for beginners, including students, fresh graduates, and other amateurs. I have interviewed many recent graduates, most of whom do not have programming skills, the only excellent
The potential is to have a thorough understanding of the basic theory. This series of articles is tailored for them. After more than a dozen people's practices, they have achieved satisfactory results. Most people cannot write a line of code at the beginning, and they will be trained.
Generally, small modules with thousands of lines can be independently developed/maintained at the end. This series of articles is not a golden key. The final learning effect is closely related to your understanding and efforts. However, if you read these articles,
You will have a lot to gain.

How to Use

He said that the doctor's prescription includes medicine and medication methods, and both are indispensable. The effects of different learning methods vary greatly in the same teaching materials. My suggestions on how to take this series of articles
Yes. If you want to solve the problems raised in this article, you can check the information. after at least two or three hours of thinking, continue reading, at last, I wrote it independently based on the method I learned. More programming skills are required.
Write more exercises, otherwise the effect will be greatly reduced.

Enjoy it!
(Welcome to criticism, encouragement, and suggestions)

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: info-contact@alibabacloud.com 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.