Random talk: life perception of a programmer who has worked for two and a half years

Preface

After graduating in 2018, until today, September 19, 2020, I have been working for two years and three months without knowing it. I have joined two companies. In these two work experiences, I can feel that I have achieved great growth. This growth is not only technical, but also learning the psychological qualities and softness that a workplace person should have. strength.

Student spirit when you first left school

When I just graduated, others could tell at a glance that I was a newcomer to school. At that time, I was complacent and felt that I was quite young, hahahaha.

But is "like a student" really a compliment to you? In fact, this is not the case. Although this is just a casual talk by others, the word "student" for a workplace person just shows the person's lack of professionalism. The first impression given to others is "This person has just graduated, and he has no experience and cannot be alone."

 

In fact, most fresh graduates have a sense of student spirit. And people with one or two years of work experience, in addition to the difference in dress, this kind of "student spirit" can better reflect the difference between the two.

What is student spirit? It is to think and do things by keeping the students' thinking. To give a simple example, when a student encounters a bug, the first thing he thinks of is to ask the teacher. This is a habit that has been cultivated in the student's life for more than ten years. As students, we are always encouraged to ask questions, and teachers are willing to answer. However, in the workplace, it is not that you cannot ask, but you cannot ask like a student.

 

What do you mean by "not asking like a student"?

In some technical groups I have added, I often see many technical novices asking questions, but their questions are often not answered, or they are answered by people of the same level. why? Because their questions are either too general or too simple, or they just post an error and ask what happened when the error was reported. This is called not asking questions.

For example:

The correct question should be to throw out your own troubleshooting process and conjectures and results after you have thought about it, gained a certain insight, and ruled out some possibilities, but still cannot solve the problem.

For example, in a previous job, I encountered file system corruption of multiple virtual machines in an openstack cluster. If I just graduated, I might ask : "Brother x, many machines in the cluster virtual machine can’t be turned on, no Know what's going on, help me see."

After working for a month, you may ask : "Brother x, the cluster virtual machine cannot be turned on. The error message seems to be that the file system is damaged. How to repair the file system?"

After working for three months, you may ask : "Brother x, the file system of the cluster virtual machine is damaged. After the file system is repaired, the file system can be turned on, but the file system is damaged after the shutdown. , And rebuild the virtual machine from the snapshot, this problem is solved, but I don’t know why this happens?"

When I can stand alone : "Brother x, the file system of the cluster virtual machine is damaged. After repairing the file system, I try to troubleshoot and check the cluster operation log. I found that a host has left the cluster due to network fluctuations, but it did not go down. After checking the ceph The investigation with openstack found that it was not a storage problem, but that some virtual machines were running on two nodes at the same time. It is estimated that after that host left the cluster, the cluster triggered a hot migration, and the original running on that node was changed. The instance was started on other nodes, but after the startup, the node that left the cluster returned to normal, but the virtual machine instance was not killed, resulting in a virtual machine running on two nodes at the same time, reading and writing disk at the same time, so the file system is written Broken. At present, the interval of hot migration triggering has been modified, and the modification may cause the recovery time of the virtual machine after the node is down."

From the questions asked by a person, you can see the level of the person. Too low-level questions or questions that are asked without thinking can easily arouse the disgust of others, and no one may be willing to answer. So, before asking someone questions, do two things first: 1. Try to solve it yourself. 2. Describe the problem clearly.

 

Sense of responsibility

When I first worked, I often skipped lunch because some things were not resolved. The longest time was one person overnight, and still did not delay going to work the next day. I was so busy not only because of the heavy workload, but also because of the fact that a problem had to be solved for a long time.

As my ability grows, I don't need to work overtime much anymore, but I am still very busy every day, not just for work, but for myself.

Now I basically study for another two or three hours every night, sometimes it is to translate some official documents of the framework, sometimes to read a book or two (technical or non-technical), sometimes to look at the application of the latest technology, sometimes to brush one or two. Daoli buckle questions, usually it is already 12 o'clock when you go to bed.

 

I have always believed that the process of work should not only be an output to the company, but also an input to oneself .

 

In the early stage of work, there is often no work experience, and the growth of people is directly proportional to the output of the company. What you do at this time is what you learn. However, most of the work content is often repetitive and monotonous. Except for a small part of the work, no matter what the rest of the work, you can only find a reliable person to teach you about the first half of the year. After adapting to work, it is difficult to continue to learn something at work. With the improvement of work ability, the pressure at work will be reduced, and how to arrange one's spare time is how to be responsible for oneself.

It is said that programmers are eating young rice, but they are actually eating the rice of learning ability. At the beginning of my graduation, many companies’ JDs only wrote hive and spark. If the requirement is higher, add Hbase. Now hive is not used much. Spark is the foundation, and the higher requirements have become Flink, ClickHouse, Kudu, Hudi, Impala, etc. . . In just two and a half years, there are so many more technical requirements for big data development. Therefore, if you want to maintain your competitiveness in the workplace, continuous learning of new technologies is indispensable.

However, due to the two major professional characteristics of programmers: fewer people in contact, and solid thinking . That's right, it's the hardening of thinking. A programmer who is addicted to technology to the extreme will inevitably harden his thinking and become rigid. He may be able to program flowers, greedy algorithms, DFS, divide and conquer, backtracking, linear programming network flow. . . And so on, the algorithm may be as perfect as possible. However, when you ask him to persuade a person who does not understand technology to use his product, you can see him chatting with joy, and the face on the other side may be like this:

Therefore, learning in spare time is inevitable, but you can't just learn technology. An excellent GC doctrine successor must be a comprehensive development of morality, intelligence, physical education, and art.

 

How to see your own value

Most programmers have a sense of superiority. Indeed, most programmer friends also have this superior capital: high education, high salary, high ability.

The threshold for most companies now is a bachelor's degree. At present, the number of people with a bachelor's degree in China is about 5%, although it is expanding every year. In other words, most programmer friends have beaten 95% of the people in the country in terms of education.

At the beginning of this year, Premier Li Keqiang said that there are still at least 600 million people in China with a monthly salary of around 1,000 yuan. The average salary in Shanghai in 2019 is 9,580, and most programmers earn more than 10,000 yuan. Salary can be above the average in Shanghai at least.

As the translator between the business department and the server, programmers can realize the various requirements put forward by the business department in their work, and they must speak these requirements to the machine in a good way (no bugs), at least in this respect. Say low.

But are these three highs really the essence of programmer superiority?

No.

Take the big data technology as an example. Data is an important asset of an enterprise, but the value of data is reflected by empowering business. For example, for a long time, many companies have made major decisions based on their leaders’ experience and intuition. With big data technology, leaders can use data to make rational and objective decisions; The data of each customer digs out their preferences and demands, and will reach consumers from the past "water flooding" to precision marketing represented by "thousands of people". These are the value of data, not the value of big data development engineers. As a big data development, is SQL difficult to learn? Or is the framework difficult to understand? neither. Then why is the salary of big data development higher than other developers? It is because the value of data is higher than the industrial value brought by other developments .

Therefore, as a programmer, our value is reflected in how much help can be brought to the business, rather than the technology itself. Programmers who are light on business and heavy on technology can't go far or high.

 

How to view the 35-year-old crisis

As mentioned before, programmers are a profession that eats learning ability, and with age, learning ability will decline. The 35-year-old crisis rumored in the industry is not groundless.

In fact, I am just a little boy who has just graduated for more than two years. I don't have much right to speak about the 35-year-old crisis, because I can't understand it personally for the time being.

However, none of the architects, project managers, and technical directors around me are under 30 years old; development engineers around 35 years old have also seen them, and the salary is also considerable; but it is true that some companies are hiring people It is clearly stated that it is required to be under the age of 30 and be able to accept long hours of overtime.

Therefore, I don’t express too much opinion on the 35-year-old crisis. I can only say that I plan ahead and plan ahead. Learn more technical knowledge before the age of thirty-five, and transfer to an architect or other technical management positions in a few years; either take root in a certain industry, learn business knowledge, combine technology, and become a technical application expert in this industry; or return to your hometown to take this A few years of savings and entrepreneurship give a go.

How to get along with PM

In two years of work, I met three PMs:

The first one is the leader when he just graduated. He didn't know the technology, but he knew everything about project management. The one thing I said the most was "You just let go and do it first. If you think you can't finish it a few days before the dead line, then tell me." , I'll arrange it." But generally I can do it. For such a PM, basically it can work very smoothly.

The second and third are in the current company. To be precise, they are an architecture A and a project manager B. The two have completely different personalities and styles.

A is not rushing or slow. For a project with an expected three-month cycle, he may not arrange tasks until the last half of the month. To cooperate with this kind of PM, you must manage the progress of the project yourself, otherwise the project may not be completed on time.

Compared with A, B is very impatient to do things. For example, if she raises a demand, you estimate that it will be completed in three days, and she will urge you to complete it in two days; if you estimate it will be completed tomorrow, she will let you do it today Finished before get off work. For this kind of PM who likes to bargain, you must be as relaxed as possible when estimating the time. For example, if you think that a task can be completed in three days, estimate it in five days. Anyway, the cycle will be compressed, and the end will be completed in three days. Of course, this is not a paddling. On the contrary, it is responsible for the project. A development that has been compressed for no reason. If there is a bug, it will take more time to solve it. In terms of efficiency, it is not worth the gain.

Generally speaking, the style of PM is different, but PM is not the enemy, but the partner who completes the project with the programmer. When getting along with the PM, maintain good communication. If you really can’t get along with the PM, don’t tear it. The most important thing is to complete the project, and sometimes it is necessary to play tricks.

Guess you like

Origin blog.csdn.net/x950913/article/details/108687174