People will expect you to give up some of the real work, such as programming, as your age increases and your personal conditions are limited. Move to a bigger task, such as managing a team or raising money.
This is true in academia, where the "real professor" decides the details, leaving only the "things in the direction". In other words, the organization faces vertical collaboration: Top managers manage some (cheaper) employees in a parallel structure. In research institutions, senior scientists put forward ideas, and the task of junior scientists is to achieve these ideas. Over time, senior scientists may not do what junior scientists do, but they will become experts in financing. So there is an extensible model: Senior scientists can instruct mid-level scientists to guide junior scientists, and so on. Jorge Cham the model as Profzi scheme, because it behaves exceptionally well once money is plentiful.
Horizontal collaboration between peers
In this model, senior scientists do everything from ideas to implementations. They like to avoid complicated jobs as much as possible. Cooperation is mainly used to get a different point of view and professional complementarity. This model can still run well under the condition of lack of funds, but it can't adapt to the phenomenon of too many participants: Horizontal collaboration is too close.
Each model supports different types of work. In my opinion, vertical collaboration facilitates long-term and predictable work. Horizontal collaboration contributes to occasional situations and "wild" ideas.
I'm willing to spend valuable time on programming reasons
I prefer horizontal collaboration, which is why I'm old but I'm still programming. This seems unusual, and perhaps some people are puzzled by it. Some programs take a lot of time, and I spend two or three months of programming time in a year. Although my time is very precious, I can also spend some of my work to outsource to go out, but I would like to do this in the eyes of others to waste energy things, why? Here I quote Donald Knuth to explain:
Those who are committed to higher levels and abstract thinking often mistakenly assume that low-level concrete ideas are relatively worthless and likely to be forgotten. On the contrary, the best computer scientists need to have a thorough understanding of the basic concepts of the actual operation of computers, and the essence of computer science is the ability to understand many levels of abstraction at the same time.
But I also have my own point of view:
I want my work to be important and influential. However, even the widely cited research papers are rarely read in detail, because few research papers can have a significant impact. However, engaging in software-related things is easier. For example, a Facebook team recently integrated the compressed bitmap index library in my published Apache Hive: Based on the Hadoop Data Warehouse framework. In Apache hive I compress one of the bitmap index libraries: A data warehouse based on the Hadoop framework. But I bet no one on the Facebook team would take the time to read the original paper I wrote about the software.
Time and time again the practice experience is just to let oneself better understand own idea. The common scenario is that some of the ideas that sound plausible may not be achieved through practical means. I also often find bugs by performing my math argument. Can I outsource this job to someone else? But the results are not expected to be very satisfying.
As time goes on, you're doing a better job of programming. For decades, I've been exercising my expertise. If you start at the beginning of the day and solve a problem within days, especially when you know that it may take weeks or months to solve a problem, that feeling is enjoyable.
If my argument is reasonable and even Donald Knuth supports my point of view, why would I still be surprised when I admit that I am a programmer scientist? I think it's possible that most people will refuse to do low-level work like programming, which can be confirmed by the "Idler class theory." In fact, we tend to pursue fame rather than practicality. In order to maximize the credibility, we must understand the meaning of leisure class: Your work must not have a practical role. Therefore, being a CEO or politician is more prestigious than being a nurse or a chef. Scientists who are farther from the real world will be more prestigious. Programming is a job like making tools, so people from the leisure class don't like it. People call themselves engineers, analysts, or developers, but they rarely call themselves "programmers" because it's too utilitarian.
So, not everyone should learn to program. It is a time-consuming activity. I've written so many programs that I've spent so much time that I can't do a lot of exciting things.
What happens to old programmers?
Before the "It review of foreign periodicals" to see an article, is talking about a 55-year-old old Programmer's regrets, to his old situation after the sad unceasingly.
Your career will be a problem when you are more than 50 years old. If you have good technology, someone hires you, you will have a high title, or you are an expert, or have a good interpersonal relationship, you are likely to find a new position. Otherwise, you will be reduced to homelessness from food and clothing. It's true. I am 55 years old, my resume will make you feel very good, 10 years ago I can earn up to 1 million dollars. Now I'm a tramp. I'm not very good, no medical insurance, no dentist. The job I can find is just some manual labor that basically doesn't require skill, and I can't do it.
I don't want young programmers to be like this again, only to give you some of the following suggestions:
Climb up in the workplace, don't stop.
Being an expert on one side-although it's important to keep the technology wide enough, you won't be eliminated.
Build a human circle. Enlarge it.
Diversify your investment.
Health insurance must be on when you have a job. If you don't have a job, no money, and no health insurance, it's going to be a serious problem.
Kindness。 But don't be stupid. Most of the people you've helped won't repay you.
Plan early, life is not the best of ten.
Where is the programmer's way out?
Has 10 years of experience in the software industry, focusing on Microsoft. NET technology field and project management Xu Hongjun according to own present situation summarizes three way out, hoped is useful to you.
Oneself is also a programmer, all day job, debugging, sometimes also think, really one day to write not move, or the company is more inclined to use young people to do these things, because cheap and have energy, then what should I do? Although there are many old programmers abroad, like some German colleagues I know , but also a software engineer. They don't care about the name or the benefit, they are all interested. But I am not the same! The domestic and foreign environment is also different. Often to the internet to learn some programmer's way out of the problem, summed up that the following three more feasible.
One way out: transition to it trainer
Analysis: It enterprises in the recruitment of new, generally have to be trained to post, this training is sometimes carried out in the job, by the rich practical experience of the "elderly" responsible. Young people who want to enter the IT industry must receive such professional training. Today it training market cake is quite large, profit space is considerable, industry development prospects. Whether in the internal transformation of the IT company for training, or to the IT training institutions as teachers, there should be room for development. This kind of work will not be too much pressure, and more stable, no requirement for age. And it's not out of line.
Advantages: In this industry for many years, with rich programming, project experience, has participated in many successful cases. and accumulated over the years the industry contacts, but also can help us to develop corporate customers, by the way of market development work.
Challenge: lack of training experience. If you want to transition to a trainer, you may need to receive some professional training to improve your ability as a trainer.
The way out two: transition to it marketing
Analysis: It and other industries, because of strong technical, marketing staff generally must have a strong technical background, and preferably have rich experience. Internet companies,
E-commerce companies, software companies need to have a technical background of the marketing staff, in addition, the resurgence of e-commerce, so that traditional enterprises began to pay attention to e-commerce marketing, but also need to have a technical background of the marketing staff. This kind of work salary is not low, plus the Commission should be able to get higher than the programmer's salary, but also more stable.
Advantages: A deep technical background, a wide range of programming software and tools, the IT industry has a relatively in-depth understanding, these are relatively large advantages.
Challenge: Programmers generally rarely deal with people, eloquence is not very good, and marketing work just need to deal with people, this may be the biggest challenge, requires a radical change in the way of work, strengthen communication skills and interpersonal skills; In addition, marketing work will face the pressure of sales indicators, these problems are before the transition must be considered in depth.
The way out three: to project management efforts
Analysis: If the previous two ways to change the composition of many, then the project management can be said to be more convenient way of development. At present, the software project manager is the talent market hot talent, has the rich experience, the foreign language Good software project manager is the sought-after fragrant pastry, in short supply, the salary naturally also rises. In the newly released 2005 software industry salary survey of the Shanghai Labor Department, the project supervisor's salary is the highest in the same level of supervisor, the annual salary is up to 211011 yuan, the average annual salary is 109414 yuan. The most important thing is that a good project manager can work in this position for a long time and have the possibility of further promotion to the top.
Advantages: For those who have experience, technology, people, ability, participated in many software development, have certain experience, project management is undoubtedly a good development direction.
Challenge: There may be programmers who have been involved in the project team and have rarely worked as project leaders. Many companies in the recruitment of project managers, the need to lead the team to develop the project experience, this is a disadvantage. Preferably take part in Project management training courses, self-study related knowledge, increase their ability in process management, communication and coordination, in order to accumulate capital, and gradually to the project management position.