The final chapter of Programmer's career planning

Source: Internet
Author: User

(Transferred from: http://www.boode.com.cn/share/programmer_career.html)

The final chapter of Programmer's career planning

We have previously analyzed a few of the areas of development that programmers can choose in their careers: project managers, system analysts, product managers, software test engineers, and system architects, and when we find that the future is full of possibilities, we re-create dreams for programmers, but I believe many people are still playing the drums. How can we get to the position we dream of? "This article will summarize the previous analysis and provide some important career information, it is worth thinking about, in order to prepare."

We all know that programmers can develop to managers or team leaders. But many programmers do not understand the manager's expectations and job requirements for this position. Of course, we all have managers, but how can we be managers? What qualities should be possessed? What is the difference between a middle-level manager and a senior programmer? let's look at a potential career path for a novice programmer to grow to a top CTO.

Many programmers intuitively look at their career path from income, which represents achievement and social satisfaction for individuals, and the following figure shows the average wage for each position of the programmer. Note that on a vertical level, some people may hold twice or three times times the wages of others (such as banking, trade, etc.). So these numbers represent only an average level, not comprehensive.

First, the junior programmer

(1) 0-3 years work experience (usually just graduated from university), will write a simple script

(2) Initial understanding of the entire application lifecycle

(3) Preliminary understanding of database and application services (queues, caches, etc.)

(4) No need to understand every part of a complex application

When you are just stepping into the ranks of programmers, you may feel shy and upset. Often feel that their qualifications are shallow, surprised why others can write such a large and complex program. Look at other senior programmers, and you feel like you're doing the same job as they do. But the difference is that the novice programmer lacks experience. Even the fastest and brightest novice programmers are not exposed to enough code and boundary conditions to be competent for the work of high-level programmers. In software development, software design mode is also a kind of wisdom. Although you can read the relevant books in this regard, you still need to write enough code to make mistakes as much as possible and to really understand the value of software design patterns.

Second, senior programmer
    • At least four years working experience
    • Able to write more complex programs
    • Deep understanding of the entire application life cycle
    • master database and application services (queues, caches, etc.)
    • To understand every aspect of an application

Competent senior programmers are very good at building large programs. Being a senior programmer accounts for most of the programmer's career. In fact, you can always be a senior programmer if you don't like the management job and just like to write code. Advanced programmers can act as a transition, and once they have mastered enough technology, they are likely to be the founders or CTO of a tech start-up company. As a founder or CTO, writing code will be less, more of the need to deal with the skills of the transaction. But a deep understanding of technology is necessary, and is an essential part of doing the job.

Third, team leader or architect

(1) More than seven years development experience

(2) Mastering the skills required by advanced programmers

(3) Team leader: transitioning to architect

(4) Architect: no higher technical position

Seven years a programmer's career has been able to make the technical skills of a programmer sufficiently sophisticated, and if you want to engage in a more challenging position, consider being an architect, which is the pinnacle of technology. Architects sometimes write code, but most of the time they are designing complex systems and then handing them to a team of junior and senior programmers. The architect's job is to create the right architecture for a software project by leveraging his technical smarts and years of experience (learning program patterns and anti-patterns). When there is a new requirement, the software architect needs to choose the right direction for the project and estimate the size of the application.

Iv. Middle-level leadership
    • Typically includes positions for managers and principals (development manager, Project manager, product manager)
    • The boss of a hair worker (e.g. personnel work)
    • Reporting to senior executives

Managers usually develop to engineers. They have a lot of direction: if you like to reach out to the development team and are interested in the details, then you can choose the product Manager to be your partner's ally; If you're obsessed with product features and performance enhancements, being a product manager is the best option.

However, most people choose to be the development manager. This is a very classic position that requires a balance between the needs of the project manager and the product manager and the character of the development team. This position has a high demand for personnel handling and conflict resolution skills, and often makes concessions.

V. High-level leadership

(1) Vp,cto or CEO

(2) is the boss of the middle-level leader (e.g. in charge)

(3) Report to another senior leader or board of Directors

Senior leaders are responsible for managing middle-level leaders. Managers, however, usually do not need to be managed and they need guidance. Middle-level leaders need to be aware of the direction and follow-up of senior leaders and will not be given very specific instructions. Top leaders work to make important decisions and motivate staff to keep up with decision-making and to increase confidence in their work goals.

The farther you go on this road, the less chance you have to write code. When we reach the peak, we do all the personnel work. Middle-level leaders can still experience fun at the core technology side, but for top leaders, they must spend all their time on personnel: motivating employees, leading, and assigning strategies. If you write code, it can only be unimportant items (unless you are Bill Gates, but most people are not bill, he is an extreme exception).

Conclusion

Today, the choice of programmers is colorful. and the professional requirements for programmers are higher than at any time in history. This is a good time for the program ape. But it's not too late to plan your career at any time. Hope this article can be put in handy, give you some guidance and spiritual food.

The final chapter of Programmer's career planning

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.