In the second half of 2021, I will prepare for internship and graduate graduation. In June 2022, I will formally graduate and start working. Although psychological construction was done at the beginning, work is not an easy thing, and this year is even more so.

work

"Busy" may be the key word of this year, but at the same time, it may also be the year with the most practical programming and software development.

Development experience

In April, I started a closed project, in which I was independently responsible for designing and developing a more complex module. It is also this development experience that gives us a real opportunity to practice code design.

I will learn "design principles" and "design patterns" when I look for a job after graduation, but actually I also swallow these concepts with a half understanding.

For example, the simplest "single instance" mode is not recommended or even "forbidden" in actual development. Why? If you simply tell me that a singleton hides the hidden relationship between classes, I may not understand its disadvantages. Only in real development can we find many problems caused by single instance. For example, misuse of a single instance will often lead to initialization timing exceptions. A slight adjustment of the initialization order of a single instance may lead to exceptions. At the same time, there may be user identity switching in the software. Before and after the switching, you need to ensure that user data is completely cleared from memory. However, if you want to do this without destroying a single instance at runtime, you need to be more careful. The use of singletons is not friendly to UT, unless the singleton itself provides a mock. But in general, a single example is not the best choice unless there is a good reason.

This project development has given me full trust and also provided a lot of help. For example, at the beginning of the program review, I discussed several rounds of design details with the leader, and discussed several rounds of demand scenarios and possible future demand scenarios with the business side. These inputs help me constantly think about what kind of design is a good design. In the process of scheme design, there will be several schemes that may meet the requirements. One of the principles of decision making at that time was to avoid over abstraction and over design, but at the same time, different responsibilities should be divided within the module to improve readability.

Rigid contact design module/design principle, easy to set formula. Not necessarily wrong, but perhaps due to lack of experience, the module finally designed looks very powerful, but it is not easy to use. Specifically, it may be that the design is multi tiered/complex, and the business party does not know how to use this module. It is difficult to have a real understanding of these words on paper. Only real practice is the standard to test the "module design", because after development, the interface between the business side and the function iteration of the module are mostly undertaken by oneself. Will this process discover the good aspects of the previous design, as well as the areas that can be optimized and improved.

From April to July, there was almost no rest for three months. I thought that after the end of July, the normal working rhythm (last year) could be restored, but soon found that as long as you are willing to invest, the intensity of work will always exist. "When you go out, you give yourself the intensity of work" is true. From August to December, he was responsible for another project, but at the same time, because more people participated in the original project in the follow-up, he would participate in many related technical review meetings.

In this process, I will communicate with many people, which is unprecedented in the past. There are three changes in this process: better understanding of the real face of the workplace, higher requirements for time planning, and a deeper and more comprehensive understanding of what they are responsible for and the direction of iteration.

The real face of the workplace

When you are just working, it is very difficult to meet the bad things in the workplace. The difference between work and the workplace is like the difference between programming and software engineering. Programming is to do the current thing, while software engineering has another dimension: time. The workplace also has a dimension: interpersonal relationship. For example, arrange testing time with QA, communicate testing details with QA, interface with PM, and communicate technical solutions with other RDs, Review other people's code.

In cross team cooperation, it is also a test of people's ability. After all, in cross team cooperation, there are no superiors and subordinates between you, but there are drivers and driven parties. The other side is polite and cooperative because he has a high professional quality. If the other side doesn't cooperate, he will humiliate you and really have no way to take others. Of course, it's probably the next best thing to find the superior of the other party. After the problem really rises, is it possible for the other party to work together "amicably" next time? At the beginning, I didn't expect that others would not cooperate with me, and I rushed forward with the hope that everyone would cooperate with each other. Until I was denied several times later, I felt that there was no such pure and simple thing in the workplace.

In addition, cross team cooperation will also encounter the problem of boiler throwing. Everyone may have inconsistent understanding of the cause of the problem, which is likely to lead to disputes. I have experienced such a thing personally: the code modification of the new requirements developed by another team colleague is related to the module I am currently responsible for. When a crash occurs online, the crash stack is in his code. At first, I can't find the recurrence path. I found the recurrence path according to some recent demand changes. The reason is that a new interface combination call of the business exposes this problem. The root cause of this problem is that the colleague code did not consider this scenario (I also did not consider this scenario before) , so the code he wrote does not provide null pointer protection for this scenario, resulting in a crash. From my point of view, it is obvious that this colleague can simply add null pointer protection and fix it, but he thinks it is a problem introduced by business calls, so he is not responsible for it. Then I directly pulled my leader and his leader in the group, which has a great attitude of evaluation.

Although these things are very troublesome, I hope that in the new year, I will not tend to avoid communication at work because of these experiences. Work is better to achieve goals and accomplish things. If the other party does not cooperate, it is the other party's business. You need to think of other ways to achieve goals. The most important thing is to focus on whether your work has expectations and whether you have solved problems. Work is not a place to make friends.

Of course, I have met some good colleagues in the cooperation, thank you very much! But in a word, the workplace is not a job that can be done with hard work.

Time planning of work

Time planning is also an interesting topic. Before working, I had some research on TODO task planning, such as GTD (Get Things Done), and I also used many task software. In my work, those task planning skills are too cumbersome for me. I am more accustomed to using a document to record daily tasks and progress. The most important thing in this process is the priority ranking. It is very important to always do the things with the highest priority, but this is also very continuous. Because people like to do things that are easy and have high returns on their achievements, they always unconsciously "procrastinate when they can" for hard bones that need complex thinking. It is crucial to overcome this.

Another important thing in work is the reliability of commitment. There was a period of time when I was very busy, and I always felt it was natural to postpone my commitments. However, this is actually an unreliable behavior, and even if there are reasonable reasons, it should not occur many times. If we cooperate with the other party, we also hope that the expected delivery time given by the other party is accurate. Even if there is an unexpected delay, we must not delay telling the reason for fear of being blamed by the other party. This is very important.

Thinking about code design

The longer the working hours, the more things you are responsible for, and the more freedom you can do, that is, the so-called "consistency of power and responsibility". Compared with what others said at the beginning, now they will also think about whether there is any need to improve the modules they are responsible for, such as some code refactoring. This is a very natural process. At the beginning, I am not familiar with the module. Later, as more and more problems are found, I will understand the details of the module more clearly and find some problems in the historical code design. These problems may arise continuously with the requirements iteration.

They often say "Don't over design". What is over design? In fact, only those who really maintain the code can really feel this degree.

It is often said that "high cohesion and low coupling" is the same. If you blindly pursue decoupling, unnecessary code complexity will become higher. Sometimes the positioning of the two modules is tightly bound together in the current and future visible time. So why add an intermediate layer to decouple, and add many unnecessary interfaces to establish the relationship between the two modules? So these code design principles are really subject to the requirements.

About the experience of code design, I will also organize a separate article to exchange with you later when I have time.

Summarize the process

One thing I learned from my work is: summary of events/processes. The summary of the same thing is completely different for different people. For example, in a problem troubleshooting process, the user may not need to know what the specific bug is, but give an expectation of repair; For the leader, it is necessary to know the scope of impact of the problem, the general cause of the problem (not requiring too much technical details), and the repair version; For other RDs, you may want to know more in-depth technical details and the real reason for the problem. Each dimension and role requires different information, which is also a skill. This skill runs through the whole work process OKR、 Quarterly summary, performance, reporting to superiors, etc. will be used. It is critical to know what the reader expects to read. This can only be understood after real practice.

Sometimes when I read someone else's technical proposal, I can't understand it at all. Some abbreviations may be very clear to the other party, but as a person who doesn't understand the content of his work, I can't understand it, or the flow chart doesn't match the text written, or a part of key processes is omitted.

Such problems may also happen to me. It may be because of time problems, lack of experience in improving documents, or because I always stand in my own perspective, so I need to constantly introspect. So this year I will also devote more time to learning technical documents and content summaries.

Workplace mobility

After just one and a half years of employment, many changes have taken place around me. Last year, a colleague who was recruited by the school changed to base, and another colleague who had communicated a lot before also changed to base. At the beginning, mentor was transferred to base. In the first half of this year, another mentor also left his job, and my own work area also changed.

There may not be much sense of change in the workplace, but in fact, the workplace is constantly changing. In this process, we need to be aware that all identities, codes, articles and honors in our work are fleeting. Only the knowledge left in one's own brain is ultimately true. If you don't realize this, you will pay too much attention to many things that are not of great value and ignore the most important things.

life

Life experience

This year's life was simple. I didn't go out much on almost all weekends. I slept from Saturday morning to noon, and the time passed quickly in the afternoon and Sunday.

Chest tightness began at the end of April, and it has not been completely well up to now. At the beginning, I looked at the respiratory department for CT, and later I suspected that it was related to chronic pharyngitis. I looked at the otolaryngology department, and then looked at the gastroenterology department and cardiovascular department, and almost all of them were examined from top to bottom. Now, according to the symptoms, the gastroenterologist judges that it is chronic gastritis and gastroesophageal reflux, but has not yet done gastroscopy, so he has been taking drugs to inhibit gastric acid.

My house expired at the end of June, and finally I changed from a house shared by five people to a house shared by three people. Unexpectedly, one pit jumped into another. Every morning, the sound of closing the door would wake me up, and it was about 6:50 to 7:30 in the morning. There are also 3 to 4 months of upstairs decoration in the middle. For several weeks, the sound of electric drill starts at 8 o'clock every morning!! Fortunately, the lease will expire at the end of March this time and will not be renewed this time.

The goal of life is more relative freedom

The day before New Year's Eve, I asked for a day off to pack my bags and go home after my haircut. In the morning, I had a long queue to get a haircut, and it was not finished until two o'clock in the afternoon. So I'm going to find something to eat for lunch. So I went to a McDonald's and ordered a chicken leg, a chicken chop, and a glass of coke to sit down near the window. Because it was near New Year's Eve and in the afternoon, there were almost no guests in the store except me. Occasionally someone passed by the store.

Just after cutting the hair, you can eat whatever you want at McDonald's, and you can forget all the pressure at that moment when you are ready for the coming Spring Festival holiday. You can let the delicious food fill your stomach and look out of the window aimlessly. At that moment, you feel special freedom.

Often, when I am in a bad mood, I ask myself what the purpose of my life is. Experience more different experiences? I'm a very lazy person, and I don't like excitement. Those novel experiences don't attract me much. Traveling is not my goal. Live a better life? You should know that there is no definition of "better". Some big houses want good furniture, and they want better and more extraneous things. These are the quagmires I don't want to fall into. But at that moment I may understand that the goal of life is to have more and more freedom.

When I was young, eating kebabs and pizza was very luxurious. When I was supposed to be in primary school, my parents worked in Beijing. I would come over in summer vacation. In the evening, kebabs on the roadside were already three yuan a bunch, and pizza was not eaten at all. Until my college years, when I had some income, I ordered a kebab takeout for more than 90 yuan, and I, my mother, and my father could not eat all together. Why did I order so much? In fact, I didn't want to do that in the past. I always worried about being too expensive, and said against my heart, I didn't want to eat, and I couldn't eat. Later, when I passed Pizza Hut, I bought pizza in the store for the first time and took it back to eat. I remember it was more than 60 yuan, but now I think it is still very expensive (the takeout is only more than 20 yuan for one person).

Some freedoms are acquired or lost with the change of age. For example, when you are studying, you will be trapped in campus and dormitories. Without an independent economy, you cannot freely choose your own life. In my opinion, each age has different constraints, but at present, it may be the time when I feel relatively free.

It seems that freedom and discourse power/status are somewhat similar, but in my opinion, they are completely different. Freedom is the release of self imprisonment, which basically does not harm the interests of others. However, the right of discourse and status is to override others to debase others and gain more space for themselves, which is a very bad practice.

Freedom is always relative, and there is no absolute freedom to decide. The so-called absolute freedom means that you can do nothing and do whatever you want. It is always necessary to use some things as a price to exchange for the part of freedom that we really need. The price itself may be some freedom. If we take absolute freedom as our life goal, we will be disappointed to the end.

Accept loss and cherish the present

Accepting the loss means facing the reality. Only in this way can you cross the threshold, but you can know how to go next. For example, if a person is sick and does not realize it, or does not believe or accept that he is sick, how can he treat and recover?

This sentence may appear in many chicken soup, but it is not easy to accept the loss. As the title says, "Life is a desensitization experiment". You may not accept it at first, but over time, you will be told by various means that you have lost it. For example, if you are sick and lose your health, you will feel uncomfortable

Time and time again, you have to pay attention to this matter and realize that you are ill. Next, we must spend time to pay attention and only treat this problem. Life will press itself on the ground again and again until we accept the reality. I have read a sentence before that time is a good medicine for everything. At first, I didn't believe it. What about one year, two years, three years? Can you forget it completely. But a few years later, things that used to be very important have become blurred.

It's a pity to lose, but there are still plenty of reasons to cherish. If this reason is not clear, it is a slogan to cherish the present, and we are not distracted.

I complained every day at a time when I was slightly ill. Why did I suddenly feel unwell? It's really unlucky! We know that at any moment, the current state has different possibilities, which may be the branch of good health, or the branch of bad health or worse. At that moment, I always compared with the branch of "better possibility", and I could only feel complaints, dissatisfaction and pain. Later, my illness became more serious. At night, I needed to take deep breaths with a higher frequency to alleviate it, even affecting my sleep. At that moment, I missed the days when I could breathe normally. As long as I can breathe comfortably, I'm sure I won't complain about anything. At that time, the state of life that has been complaining has become the state of yearning for the future!

This is the reason why we need to cherish the present. The possibility of life going to a worse story line is not very low, but very high. The present is very likely to be the life state that we yearn for in the future!

Just like "living to death", people say "The best is not come yet", but the reality is probably "The worst is yes to come". Only when we realize this, can we feel more satisfied with the present from the heart.

or go on, go on, go on

Go ahead Go ahead Go ahead

if you are thinking that the worst is yet to come

If you think the worst is yet to come

Small talk is "meaningless words"

I am not good at chatting. When I eat, I will observe what people are talking about and what I am chatting with others. I will also observe what others are talking to me. After a long time, I will find that most of the chatting is about wheels, in other words, "meaningless words". Either we can talk about what we did, bought and saw last weekend, or we can talk about the topics we talked about again because of different scenes.

I read a joke that when "I" went out, my neighbor always asked me to go to work. Otherwise, at 7:00 in the morning, should I carry a bag to the nightclub? My dog I concluded that I have to go to work at this point every day. In fact, this is the reality. When I see someone I know coming out of the canteen, I will ask, "Just finished eating.". Come out of the tea room and talk about drinking water. Think carefully about whether such greetings are meaningful, and what is the meaning of ordinary small talk?

If there is any meaningful information and growth from these words, there is certainly no such thing. But I gradually feel that not everything is done because it has a clear meaning, or in other words, many of our days are meaningless. For example, is it meaningful for us to brush short videos? Most of the time, we don't want to know anything from short videos, but just pass the time to get pure happiness or curiosity

The same is true of people to people chat. It is not necessary to seek any meaning in itself, but to pass the time. In this process, if you can deepen the familiarity between chat objects and increase the contact between individuals and groups, it will be an extra gain. This is my thoughts on this topic.

Behind the beautiful things is blood and tears

Bing Xin, Author of Stars · Spring Water

The flower of success,

People only admire her present brightness!

But her bud,

Soaked in tears of struggle,

The blood rain of sacrifice.

A little poem in the primary school textbook has had some deeper feelings this year.

It is estimated that many people have seen such a video, that is, a little girl mimics an adult to frown, causing everyone to laugh. The child's parents have an account "Bounce and Honey" on Station B. I have been following this video for a long time. When the epidemic happened, they opened a fried chicken shop, and I watched them live. Both live broadcast and video are the family atmosphere that I envy very much, although their family is not rich. This year, I saw that his family was also divorced, and because of the divorce, my parents released videos related to self certification under their respective accounts. As an ordinary netizen, I always have something to say.

This time, I really felt the other side of the so-called "short video of good life". This is not an example. The shaking voice slogan is "recording a good life", but actually it is just editing a good video. It is necessary to realize that these seemingly beautiful videos actually contain a lot of deductive and false elements.

The good life is not as easy as short videos. If we want something good to happen to ourselves, we must pay a price. We must have the psychological preparation and awareness of paying a price. This is actually the point I want to make.

It is unrealistic to beat chicken blood for a long time

When I feel that my life is not "progressive" enough, I often set a goal for a short time, hoping to change the status quo and life after reaching it. But it is increasingly found that this is unrealistic.

The so-called "beating chicken blood" is to ask oneself to obtain obvious benefits in a relatively short time with a relatively high requirement. For example, I want to lose 10 kg a month and read xx books a month. It's like a car that doesn't start. If it starts up and runs at a speed of 120km/h suddenly, it is easy to have problems, and it is difficult to continue when it returns to the real scene.

So the better way to stick is to start with smaller (very small) steps and smaller (very small) goals, Don't set the ultimate goal at the beginning, but set a very small step on the current basis and start first , and persist for a period of time, know that this step has become the current habit, then set a small change on this basis, and continue to iterate.

One method here is the "three things a day" list. You can use a document to record the three things you need to do every day. Maybe you will say that I have to do so many things every day, how can there be only three things. What you should record here is something that challenges you a little, or something you are unwilling to do before. For example, if you can't go to bed early before, you can take sleeping at xxx as one of the items. If you don't want to wash clothes, you can take washing clothes as one of the items. There may be many things you want to do at the beginning, but Ensure that no more than three things are always recorded I suggest you start by recording one thing. If you have time to do more than this number of other things, don't write them on this list. You can do them in obscurity or record them on another list.

I tried this process for a month last year and it was very effective, but I didn't adhere to this habit later. On the one hand, I didn't even have time (laziness) to do anything. I will continue to try this thing this year.

Always regret, don't regret

We have made many choices and decisions in life. When looking back, it is inevitable to feel regret for some choices. From the current perspective, the choices at that time seemed unwise.

Regret and regret are not the same thing. I think it is very necessary to clarify these two concepts. Qipa said that there was a discussion on this topic in a certain issue (EP24: Do you regret being an ordinary person all your life). Regret is always accompanied by the assumption that if I had not chosen, the result would have been better, and regret is frankly accepted and recognized the fact.

For example, if something is unfamiliar with someone's feelings at that time, the result is something that can be regretted. But if you always think that if you had done that, you would not have broken with someone, then this behavior is regret.

Regret is a very unnecessary internal friction. First of all, the assumption in regret is to go back to the past. Frankly ask myself, I don't want to go back to any stage in my past. My current stage is the result of my efforts at any stage in the past. I don't think the current stage is worse than any stage in the past. At least in the part I am concerned about, it is not worse. Secondly, even if I go back, can I make a better decision based on the perspective, experience and environment at that time? I don't think so. There must be a reason for doing so at that time. I am not crazy or stupid. Back in the past, this reason still exists.

So the essence of not regretting is not to overestimate the need for the past self to make the best decision from the perspective of God, but to accept every decision you made in the past. You can sigh for some decisions that were not particularly correct (perhaps) in the past, and then accept it.

Last modification: February 16, 2024
Do you like my article?
Don't forget to praise or appreciate, let me know that you accompany me on the way of creation.