A Free Trial That Lets You Build Big!
Start building with 50+ products and up to 12 months usage for Elastic Compute Service
Practitioners in every industry will get older. Do you have to continue to work in the past after you get older? It is estimated that no one is willing, unless it is physically exhausted. What we will talk about next is how programmers can embrace the transformation of their work after getting older!
People will expect that as the age increases, when personal conditions are limited, you will give up some practical work, such as programming. This leads to more advanced tasks, such as managing a team or financing.
This is true in the academia where "Real professors" decide the details. They only keep "things in the general direction ". In other words, organizations face vertical collaboration: top-level managers manage some (cheaper) employees in a parallel structure. In research institutions, senior scientists propose ideas, and the task of junior scientists is to implement these ideas. Over time, senior scientists may not do what junior scientists will do, but they will become finance experts. As a result, a scalable model has emerged: senior scientists can ask middle-level scientists to guide junior scientists and so on. Jorge Cham calls this model profzi scheme because it performs exceptionally well once it has sufficient funds.
Horizontal collaboration between peers
In this model, senior scientists do everything from ideas to implementations. They like to avoid complicated work as much as possible automatically. Cooperation is mainly used to get a different angle and complementary points of expertise. This mode can still run well without funds, but it cannot 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 is conducive to long-term and predictable work. Horizontal collaboration is helpful for occasional situations and "wild" ideas.
I am willing to spend precious time programming reasons
I agree with horizontal collaboration, which is why I am old but still programming. This seems unusual, and some may be puzzled. Some programming takes a lot of time. I spent two or three months programming in a year. Although my time is precious, I can spend some money outsourcing my work, but I am willing to do such a waste of energy in the eyes of others, why? Here I will introduce the words of Donald knuth for explanation:
People who are devoted to higher-level and abstract thinking often mistakenly think that low-level concrete ideas are relatively worthless and are likely to be forgotten. On the contrary, the best computer scientists need to thoroughly understand the basic concepts of computer practice, and the essence of computer science lies in the ability to understand many levels of abstraction at the same time.
But I also have my own point of view:
I hope my work is important and influential. However, even widely cited research papers are rarely carefully read, because few research papers can have a significant influence. However, it is easier to engage in software-related tasks. For example, a Facebook team recently integrated a compressed bitmap index library in Apache hive I released: Based on the hadoop Data Warehouse framework. In the Apache configuration Unit, one of my compressed bitmap index libraries is a hadoop-based data warehouse. But I bet no one on the Facebook team will spend some time reading the original paper on the software I wrote.
Practice once and again only to make yourself better understand your ideas. The common situation is that some ideas that seem to make sense cannot be implemented through practical means. I also often find Bugs by executing my mathematical arguments. Can I outsource my job to others? Maybe. However, the results are not quite satisfactory.
With the passage of time, you will be better at programming. For decades, I have been training my professional skills. If you solve a problem in a few days from the very beginning, especially when you know that it may take weeks or months for others to solve the problem, it is very enjoyable.
If my argument is reasonable and even Donald knuth supports my opinion, why are there still people stunned when I admit that I am a programmer scientist? I think most people may reject low-level jobs like programming. This is evidenced by the theory of the idle man class. In fact, we tend to pursue fame rather than practicality. To maximize credibility, you must understand the meaning of the leisure class: Your work must not have a practical effect. Therefore, becoming a CEO or politician is more prestigious than becoming a nurse or cook. Scientists farther away from the real world will be more prestigious. Programming is a job similar to production tools, so people from idle classes do not like it. People call themselves engineers, analysts, or developers, but seldom call themselves "programmers" because they seem too utilitarian.
Therefore, not everyone should learn programming. It is a time-consuming activity. I have written so many programs that I can't do so many exciting things.
What will happen to old programmers?
I saw an article in the "It comments" about a 55-Year-Old programmer who was saddened by the situation after he got older.
When you are in your 50 s, your career will become a problem. If you have good technology and someone hires you, you will have a high rank, or you are an expert or have good interpersonal relationships, you may find a new position. Otherwise, you will be left homeless. This is true. I am 55 years old. My resume will make you feel very good. I earned as much as $1 million 10 years ago. Now I am a tramp. I am not in good health, no medical risks, no dentist. The work I can find is only physical labor that basically does not require technology, and I cannot do it either.
If you don't want a young programmer to become like this in the future, you can only give you the following suggestions:
Where is the programmer's way out?
Xu hongjun, who has 10 years of experience in the software industry and focuses on the Microsoft. NET technology field and project management, has summarized three ways out based on his current situation and hopes to be useful to you.
I am also a programmer, coding and debugging all day, and sometimes I am thinking that I can't write it all day, or the company is more inclined to use young people to do these things, because it is cheap and energetic, what should I do? Although there are also many old programmers abroad, like some German colleagues I know, I am still a software engineer who is doing well. They do not care about their names or interests. They are all interested. But I am not the same! The domestic and foreign environments are also different. I often come to the Internet to learn about some programmers and find the following three feasible solutions.
Solution 1: Transition to IT trainer
Analysis: IT enterprises generally have to be trained before they can take up their posts after recruiting new recruits. This training is sometimes conducted on the job and is undertaken by the "old man" with practical experience. To enter the IT industry, young people must receive such professional training. Nowadays, the IT training market is very large, with a considerable profit margin and promising future for the industry. There should be room for development, whether in the IT company's internal transformation as a training job or as a teacher in IT training institutions. This kind of work will not be too stressful and stable, and has no requirements for age. In addition, it has not left the bank.
Advantage: I have worked in this industry for many years and have rich programming and project experience. I have participated in many successful cases. The accumulated connections in the industry over the years can also help us develop enterprise customers and expand the market by the way.
Challenge: lack of training experience. If you want to transform to a trainer, you may need some professional training to improve your ability to serve as a trainer.
Solution 2: Transition to IT marketing
Analysis: It is different from other industries. Due to strong technical skills, marketers generally have to have a strong technical background, and it is best to have rich experience. Internet companies,
E-commerce companies and software companies all need marketing personnel with technical backgrounds. In addition, the popularity of E-Commerce once again has led traditional enterprises to pay attention to e-commerce marketing, marketing personnel with technical background are also required. This kind of work is not low, and the Commission should be higher than the programmer's salary, and it is also relatively stable.
Advantage: it has a profound technical background, a wide range of programming software and tools, and a relatively deep understanding of the IT industry. These are big advantages.
Challenge: programmers usually seldom deal with people, and their eloquence is not very good. marketing work needs to deal with people. This may be the biggest challenge and requires a thorough change in the way they work, strengthen the communication and interpersonal skills. In addition, the marketing work will face the pressure of sales indicators, which must be considered before the transformation.
Solution 3: work toward Project Management
Analysis: if there are many components in the transformation of the first two ways, project management can be said to be a more convenient development path. At present, software project managers are the most popular talents in the talent market. software project managers with rich experience and good foreign languages are eager to compete. in short supply, their salaries are naturally soaring. In the software industry salary survey released by the Shanghai Labor Department in 2005, the project supervisor's salary was the highest among supervisors at the same level. The annual salary of the project supervisor reached 211011 yuan, with an average annual salary of 109414 yuan. The most important thing is that a good project manager can work in this position for a long time and can further improve to the senior leadership.
Advantages: project management is undoubtedly a good development direction for experienced, technical, networking, ability, and many people who have experience in software development.
Challenge: Some programmers may have been involved in the work in the project team, and rarely served as Project leaders. Many companies need to have the experience of leading the team in project development when recruiting project managers, which is a disadvantage. It is best to take some training courses on project management, learn relevant knowledge by yourself, and increase your abilities in process management, communication and coordination, so as to accumulate capital and gradually move towards the project management position.
Start building with 50+ products and up to 12 months usage for Elastic Compute Service