Career development for programmers
This article is reproduced, for reference. Because there is no source of the original author's article, so there is no original link. Know the original address of the friend trouble to give a link. Thank you.
Ku Weidong, general architect of IBM software group Greater China
Some young programmers ask me, how should the future road go? As the saying goes, all roads pass through Rome. Different roads can lead to success. Which way to choose depends on your interest. Maybe a programmer would ask: what if you haven't found your interest yet? My advice is to try harder, and that's the only way to get a career. When you have accumulated a certain amount of technology and experience, you will face a variety of options. Which route to choose, varies from person to person.
If you are interested in one or more of these technologies and can continue to delve into them, you can gradually grow into an expert programmer after a certain period of accumulation. Expert programmers for the mastery of the professional skills of non-general programmers can, and all kinds of common programming problems in their hands can be solved, it can be said that such experts "the older the more valuable", but such experts also have a certain risk: with the increase in experience and age, these people will be more and more high wages, When companies change their technology routes and no longer need the expertise of expert programmers, or want to reduce the cost of doing things, they may face unemployment or other job-hunting situations. (Related reading: "How to become an expert developer" written by Danish veteran developer Jenkov. )
The senior training expert is also a good development direction. To become a training expert, not only need deep technical skills, but also have excellent communication and expression skills, because their main work is not to develop a certain technology, but the dissemination of technical knowledge. This road is very wide, some excellent technical trainers in addition to the job, but also part-time to the university lectures. Although training experts may not be able to meet the level of expert programmers, the work content is relatively richer and more people are contacted.
Becoming the company's technical director is a dream for many programmers. This route was developed from a junior programmer to a senior programmer, focused on doing the project, then developing into a project manager, a development manager, and eventually becoming a technical director and even a vice president of the company. These programmers go to the technical management line, starting from the project, gradually accumulate management experience, and then grow into a good technical manager. The technical director's influence in the company and even the technology world is unusual, and it is a big temptation for programmers who are interested in becoming the leader of the company. But the power and the number of people, it means more pressure, technical director not only to maintain sensitivity to new technologies, but also to take the energy to do management. The road may be more difficult than being a purely technical expert.
There are also some programmers who are the end point of career development is the total architect, master Designer. The interest of such programmers is not a particular technology, but rather a preference for the design of software products or software application projects. If the software project development team is likened to a band, then the programmer is the equivalent of a musician (such as a violinist, a flute player, etc.) who is responsible for playing the instrument, the project manager is the conductor of the orchestra, directs and coordinates the band's cooperation, and the architect is the composer. Starting with an architect, you are becoming a senior architect and even a master architect. Like a great composer in history, an outstanding architect can compose melodic "tunes" in a variety of software.
Other programmers with the ideal of entrepreneurship, wait until they have a certain technical accumulation, and then master some of the market demand and management methods, they will start the road to entrepreneurship. Once successful, such people will be very influential, such as Google and Yahoo's founders, are a success model of technology entrepreneurship. But this road is also the most arduous, there is a word called "improper home do not know rice expensive" not personally entrepreneurial people also difficult to understand its hardships. Entrepreneurship involves all aspects, a little bit wrong will be fall short, to join the entrepreneurial programmer and a lot, but the real success of the few. Stepping on this road requires not only extraordinary courage and boldness, but also perseverance and deep business acumen, coupled with market opportunities, to win the final.
Many programmers embark on technical support routes and develop into business-savvy technical and industry consulting experts. This type of programmer will join the sales team after becoming a senior programmer, directly facing the customer, responsible for the technical aspects of the problem. If a particular industry (such as banking, telecommunications) is very familiar with, over time, become proficient in this industry technology experts, if for a certain type of solution (such as ERP, CRM, SCM) very good, can develop into a cross-sectoral technical experts.
There are also some programmers who will become it columnists and freelancers. These people are usually interested in writing, the ability to express words is also good, they will be engaged in technical work of the content or experience to write, and then publish articles to earn royalties. As long as the technology is proficient enough, such people are very popular with the magazine. In North America there is also a freelancer called a contract, which is an unscheduled project, signed an agreement before the start of the project, and ends the cooperation after the project is completed. (Note: Many foreign freelance developers undertake projects in the Elance, Freelancer and odesk platforms. For an introduction to these platforms, please see the article "Introduction to the Global 3 project outsourcing and receipt of orders". Although this profession is not much in China at present, its freedom is also very attractive to many programmers.
Several of the routes mentioned above, programmers can choose according to their own interests, but in general, regardless of which path, there is a prerequisite: From the Novice programmer advanced to senior programmers. Because before that, you don't even have the chance to choose. From beginner to advanced, it usually takes 2-5 years, depending on individual qualities. Everyone said that programmers should be tolerant of loneliness and boring, young programmers to overcome the impetuous mentality. In the initial stage of career, many people will always feel the mind, then must be quiet, multi-skilled programmers to ask, slowly familiar with technology, familiar with the development process and industry. Sometimes you feel like falling into a knowledge ocean, surrounded by strange things, difficult to grasp. So it is more to go around, and gradually find the direction, in the search for progress.
The success of advanced programmers does not mean that the future is bright. If learning is required from the beginner to the advanced level, then from the senior to the expert, the need is to constantly try and persist. This process is much longer than the previous one and usually takes 5-8 years. In this period, because of the previous accumulation, and has achieved certain achievements, people will be more confident, but also more hesitant, there is a problem will often hover in the brain: The future of the road in the end how to go? At this point can use their accumulated resources, do some more trying to try different roles, different projects, with different customers, long time, will naturally find the most suitable for their development direction.
To sum up, the junior programmer and senior programmer period, all belong to the first stage of career development, we can call it the Golden Age. This stage of the programmer's age between 20~35岁, because young, so good at learning, and physical strength, a lot of programmers who have walked through this stage have worked all night. In this period, you have a lot of time to learn to improve, for the future career to lay a solid foundation. And once more than 30 years old, whether physically or mentally, will change, from the 30~40岁 is the transition period. At this time the programmer (many people are no longer programmed) has identified their own direction of development, and towards the goal of efforts to make their own achievements. 40~60岁 is the expert period, at this point, a good programmer will completely realize the "broken cocoon into a butterfly" desire to grow into an expert.
The programmer's career is wonderful, but also very hard. Enjoy high wages, the latest technology, it is possible to become a successful entrepreneur, and even have the opportunity to change the human way of life (such as Internet browser development, e-commerce applications, mobile phone messages, etc.) this is the life of the programmer in the eyes of others, perhaps it is therefore, every year a lot of new people to join this huge team, Experience the Wonderful Life you've long dreamed of. But most people overlook the hardships behind the bright, high wages are the price of high work intensity, the cost of learning new technology is the pressure of work, the price of becoming rich is exhausted, and if you want to change the way human life, it must withstand the dull and lonely day after day. The ups and downs have to taste their own, programmers have a lot of development path, just see how you choose.
Career development for programmers