2020 Work Log

Browse the 2020 work log day by day.

61 则 第 2 / 7 页

2020-06-28

Back from the holiday!

Now I need to adjust my mindset and approach work with the right attitude. But what is the right attitude? Let me try to define it below.

On Wednesday night, there was a heavy rainstorm. After the rain stopped, I had a call with Sophie (senior). The topic was that I was thinking about quitting.

She started by saying not to rush, and to view my career over a very long time span. For example, a person might work until they are 70 before retiring (I strongly suspect I will work even longer). Therefore, every decision should be made with a long-term perspective, looking at a 15-year horizon. What will I become in 15 years? What do I hope to become? Then make various decisions based on that expectation. For myself, I hope the 40-year-old me will be an engineer like Liang Xiao—a rational, calm person; an architect; a knowledgeable person; someone who still closely follows and is confident about the latest trends; someone who can see the essence of trends, decompose the constant elements, and focus on the truly worthwhile problems—valuable and challenging ones, such as software complexity.

To achieve that, I must keep learning, keep a humble attitude, and test truth through practice. In fact, all learning is about testing truth through practice. First, we encounter a problem, then look for a solution. What are the solutions? Those so-called “truths” are necessary tools for solving problems, and practice is the sole criterion for testing truth. But applying everything in practice is too costly. We must accept certain risks and learn from others’ cases of testing truth through practice. The risks here are:

  1. Learning false truths.
  2. Dogmatism due to shallow understanding of the problem.

The second point is more dangerous than the first, because the first is easier to verify, while the second is a deviation in thinking. This world is not black and white. The danger of an incomplete truth (i.e., one that does not fully reflect reality) lies in its partial correctness, which makes people think it is universally applicable and thus use it to solve the wrong problems. This leads to many so-called “silver bullets”—FP, OOP, TDD, and so on. The pursuit of “silver bullets” never stops, nor should it, but we must acknowledge that risks and benefits coexist.

Back to the conversation with Sophie: under calm analysis and decision-making, use a long-term view to see what you need now. That gives priority. Combining these factors makes it easier to think comprehensively. Then she gave some practical advice: try to detach yourself from work. Don’t invest too much emotion or energy into it.

打开这一天

2020-06-24

On the last day before the holiday, I started to slack off with peace of mind, and did a little refactoring work that should have been done.

打开这一天

2020-06-23

Unbelievable! It’s 19:00 now, and I’ve done absolutely nothing today.

I mean, I’ve been procrastinating all day, browsing various websites online. Now that I think about actually working, I feel quite guilty. Reflecting on the reasons, it might be because of what happened on Friday, or perhaps because the Dragon Boat Festival holiday is just two days away, leading to a lack of motivation. But ultimately, this kind of behavior is not good. Even if I’ve decided to leave, I should not slack off or neglect my duties. Every day, I need to take my work seriously—not just clocking hours, but genuinely solving problems. If I’m leaving, I should be even more committed to this.

Ah, now I’m filled with remorse.

The recent task is the refactoring of TLM, splitting the data structure into ultra-small layer data structures. It’s a very tedious job. It’s not difficult per se, but because I disagree with the concept (I don’t think splitting into ultra-small data structures is a good design—small data structures have the advantage of flexibility and ease of modification).

打开这一天

2020-06-22

Started off feeling down, spent the whole time analyzing a bug. Eventually found it was a minor issue caused by Ziliang. Left work at 9 PM.

打开这一天

2020-06-19

Today something very important happened: I had lunch with Liang Xiao. I need to sort it out properly.

打开这一天

2020-06-18

As of today, we’re finally about to finish the work from the previous iteration.

I don’t feel very good overall, and the reason is that the significance of what we’ve been doing is unclear. In fact, I think it’s fair to say it has almost no meaning.

So, how do I define meaning here?

For me, the current work has meaning in this order of importance, from high to low:

  1. The ability to ask questions—to identify valuable and meaningful problems.
  2. Accumulating the ability to model problems, so that in the future I can solve a wider variety of problems.
  3. Modeling problems in a way that makes it possible to solve a whole class of problems described by that model through a single effort.
  4. Through my efforts, solving specific, meaningful problems—where solving one problem at a time is less meaningful than solving multiple problems of the same class with one effort.
  5. Maintaining a sense of pleasure and achievement from solving problems, and the inherent interest of the problem itself.
  6. Communication and relationships with people.
  7. Salary (This is a form of security; not that it’s unimportant, but the rest should be built upon it.)

This may not cover all of my work motivations, but it reflects at least part of the truth.

The main reason I feel frustrated today, I think, is the loss of interest. First, the problem itself doesn’t seem meaningful to me, which takes away some motivation. Second, the modeling of this type of problem is insufficiently precise, so the solution doesn’t address all issues (of course, there are rarely models that solve everything, because models inherently simplify and abstract problems; here I’m talking about solving problems within an acceptable range). This leads to back-and-forth—specifically, the bug reports from QA colleagues. While some of them stem from an incomplete understanding of the requirements or are simply QA’s own issues, the time spent analyzing the problems still takes up the most time-consuming part of the entire problem-solving process.

Sometimes, a superficial understanding of a problem results in solutions that are not fundamental, causing people to waste time on useless work. In such cases, points 3, 4, and 5 of the above are not satisfied, which makes me frustrated.

Another thing to consider is that so far, I’ve been solving problems that should have been resolved in the previous iteration. I haven’t even started on the tasks for this iteration. This will compress the time for this iteration, and it might even negatively affect subsequent iterations. This is a vicious cycle that should be avoided at all costs. Considering its even deeper impact on relationships between people, I think it’s even more unacceptable.

Therefore, starting tomorrow, before I do anything, I should try to think through all its aspects, and only then tackle the problem.

Looking back at what I’ve done over the past ten days or so, it feels like work progress has been completely stagnant. On the first Monday after arriving in Beijing, which was June 8, I mentioned: “Let’s talk about work. After this period of busy delivery, the main task is the refactoring of TLM (Typed Lane Model). This time, we need to clarify the goals, control ourselves, avoid impulsive refactoring, and proceed strategically with controlled progress.”

For now, one good thing I see is that I have been recording what I did every day. Even though the entries are sometimes brief, or even written the next day, I believe that consistent logging is the seed of change.

Also, let me add a quote I saw earlier that I think is incredibly insightful:

“A few years ago, when I bought my first house in New York, a real estate agent said something very wise: ‘This house needs a major renovation, a complete one. This 65-year-old house has absolute appreciation potential. Now you need to make a list of everything that needs fixing and get it all done within six months. Absolutely solve the problems within six months.’
‘Are you crazy? I have no money left after paying the deposit, taxes, and attorney fees. And I’m a very disciplined person; I can take five years to fix everything slowly.’
She said, ‘No, you won’t, because after six months, you’ll get used to the current state. You’ll think everything is fine. Even if there’s a dead body in the living room, you’ll just step over it.’
I still remember those words. What amazes me is that she was right about everything. I was the one who was wrong. The things I didn’t clean up in six months were still not fixed when I sold the house five years later.”

This is so true. Must stay vigilant and careful.

打开这一天

2020-06-17

The main work today was wrapping up the previous iteration, which involved fixing bugs.

打开这一天

2020-06-16

After arriving today, I’ve been reviewing all the time. There’s quite a lot that needs to be changed, and I started to feel a bit slack again. However, I managed to get it done barely. Then Brother Kuan found several bugs.

In the afternoon, I learned that Brother Xiao was leaving. I was shocked for a long time.

In the evening, I fiddled with Scheme and managed to compile and reference a custom library.

打开这一天

2020-06-15

Wow, it’s already 3 AM and I’ve spent most of the day procrastinating, browsing various Scheme-related websites. I can’t keep doing this.

Today I have to tackle HDMAPMDK-1378, which we’ve been putting off: adding so-called lane mark directions inside intersections. But roads within intersections don’t have lane marks, so how can we talk about lane mark directions?

It’s really frustrating. After going back and forth, I finally figured it out.

打开这一天

2020-06-13

A very leisurely day. After submitting the test build, I spent the whole time fiddling with my own automation scripts.

At first, I planned to write them in shell, but I really don’t like shell, so I started tinkering with Scheme instead. So satisfying.

打开这一天