2018 Year-End Summary and 2019 New Year Outlook

Merry Christmas!

There are still five days before 2019, and 2018 is about to end. A year passes so quickly. I wonder how your 2018 was. How many of the New Year’s plans you made a year ago did you accomplish?

In my 2017 New Year’s plan, I once wrote this passage:

I recently read Cai Dongfan’s History of the Five Dynasties, learned about the chaotic history of the Five Dynasties, lamented that most rulers were muddleheaded and ruined their states, and that even wise rulers had flaws. At the same time, I put myself in their shoes and asked whether I would be a wise emperor. The answer was no. I am lazy, have no willpower, dislike criticism, and only like praise. If I were placed in the position of an emperor, I would definitely be a ruler who lost his country. Thinking about it is still frightening.

At that time, I was truly in a stage of life where I had very little confidence. It was the winter vacation of junior year. I had just been tormented by compilers for a semester, was facing choices about my future path, had no confidence in controlling my own future, and did not even have a clear understanding of my career plan. Now nearly two years have passed, since that was written during the Lunar New Year. I dare not say my situation has improved that much, but at least I have a clearer understanding of the future and of myself. My confidence has also gradually been built up.
If I were to answer the question from 2017 again now, I would have a different answer.

Putting myself in that position, would I be a wise emperor?
I think I might become a monarch like Emperor Renzong of Song. In the eyes of Emperor Taizong of Tang, Emperor Taizu of Song, Qin Shi Huang, or Emperor Wu of Han, he had almost no imperial authority. But Emperor Renzong of Song was a truly benevolent ruler. During his 40-year reign, the Northern Song produced many talented people, and its economy also developed to the peak of ancient China. He was the ideal emperor that scholars hoped for. Interested readers can learn more about that era and that emperor. Similar emperors include Emperor Wen of Han and Emperor Xiaozong of Ming. “Benevolence” is their common trait, and it is also a very high evaluation I give myself.

Review and Outlook

In the new year, I need to continue good traditions from the past, abandon bad habits, and cultivate good ones.

Keep everything centered on finding a good job.

In 2018, I did make considerable effort toward this, including three internships and multiple internship interviews.
The three internships were: from September 2017 to March this year, cloud platform development engineer at Even Technology; from April to June, recommendation systems algorithm engineer at Kuaishou; and from November to now, data platform development engineer at WeRide. These three internships greatly exposed me to industry demands and real work, improved my coding ability, and most importantly helped me understand myself better, so that I could make a reasonable career plan.
The internship interviews included Kuaishou, Face++, Microsoft, Xiaohongshu, JingChi, and SenseTime. The success rate was only about half, and whether I succeeded was more related to how urgently the other side needed people.

What I need to prepare for next year: a summer internship in 2019. I hope to find a large company, ideally a multinational foreign company, to gain experience. In the second half of 2019, there will be Microsoft’s winter internship to try for. I already know that Google’s first phone interview will be at the end of January, so I should prepare well for it. There is still no news about Microsoft’s summer internship. I will ask a senior for information another day.

Based on my own interests and market demand, I confirm that backend software engineer, or in a more advanced title, architect, is my future career direction.
After four and a half years of exploration, I have found that I am genuinely interested in computer systems, such as data structures, computer architecture, operating systems, compilers, and computer networks. In contrast, I am not that interested in computer science, especially CV/NLP, which have been especially popular in recent years. After simple attempts, basically taking Stanford’s machine learning online course and the vision course CS231n, I think that although this research is indeed impressive and quite fun, it does not compare with the pleasure computer systems bring me.
Second, from market demand, the demand for software engineers (SDEs) is always the largest. Although so-called algorithm roles have been popular this year, this position is actually ridiculous both in name and work content. They are clearly SDEs in different domains, yet the name sounds like scientist. Speaking of names, I remember MIT’s explanation of CS:

Actually, CS (Computer Science) is not really Science; it is more Engineering or art.
CS61A

Based on my interests and personality, I think foreign companies are a more suitable platform for my growth. First, there is no need to work overtime, and work-life balance is emphasized. Although it cannot compare with companies in the United States, it is much better than domestic internet companies. Second, I can focus on writing code and enjoy the pleasure of coding. Foreign companies generally have a more relaxed atmosphere and a stronger technical culture. Of course, choosing a foreign company also means giving up the rapid-growth opportunities and possible financial freedom offered by domestic internet companies. I think I can completely accept that. I am not a very ambitious person. Being able to work happily, enjoy coding, and go home to accompany my wife and children is the life I long for.
Especially during my internship at WeRide, I witnessed many capable people and coworkers fighting for career and wealth while ignoring family and life. I admire such people and respect their choices. But I cannot do that. It is not the life I want. I need to draw energy from family and life in order to work better, and I also want to live longer.
In that sense, technical immigration may actually be a more suitable path for my development. But I still do not understand the relevant information clearly, and the more convenient route of studying abroad, finding a job, entering the visa lottery, and getting a green card is already closed to me.

Speaking of studying abroad, there is another question I want to answer: should I pursue a PhD? My view is yes, but when and where are both worth careful consideration.

First, because I think I truly love computer systems and have the patience to research them deeply. After getting a PhD, whether I continue development work or teach and educate people, both are good choices. I care a lot about my impact. If I can bring even a little positive influence to society or to others, I will be happy.

Second, the process of obtaining a PhD is itself systematic scientific training. After this training, it can be used not only in research, but also in solving problems. This is also the view of my senior mentor at Kuaishou.

Finally, the value of the PhD degree itself. For an ordinary person, the benefits of a PhD are far greater than for an exceptional person. Whether it gives you a title or earns others’ attention, both have intangible value.

Then when should I pursue it? I think, of course, the earlier the better, but quality matters more than speed. So I need to work for several years first, and only then find a good opportunity to pursue a PhD at a top school with a strong advisor. I will try to earn a PhD before age 40.

2019 resolution

Earlier I summarized and looked ahead with a lot of broad principles, but is there no concrete plan or vision at the end? There should still be one, although I think the self-understanding above is more important. These resolutions are very concrete and represent the ideal situation. If I can eventually achieve 80% of them, I will be satisfied. Concrete plans are affected by many factors, including some I cannot control.

  • A healthy body and good living habits. This is an old topic, but every year I still need to remind myself. Since you already cannot run faster than your peers, you can at least run longer than they can.
  • A summer internship at a major large company, as my senior puts it, companies like Google and Microsoft, distinguished from BAT. Try to leave a good impression and get a return offer.
  • An overseas exchange experience, gaining abilities and experience useful for entering a foreign company.
  • Further deepening in computer systems and advanced algorithms. On one hand, this is for interest; on the other, more importantly, it improves professional skills for job searching.
    • LeetCode 300+ problems. I solved 115 this year, although most were Easy. Next year’s direction is to be able to solve Medium problems within a limited time.
    • Books:
      • CTCI (Cracking the Coding Interview), the classic interview-preparation book for programmers in the United States
      • Coding Interviews: Questions, Analysis & Solutions, the classic interview-preparation book for programmers in China
      • CSAPP, Computer Systems: A Programmer’s Perspective, the reference book for CMU’s famous systems course
      • SICP, Structure and Interpretation of Computer Programs
      • C++ Primer, mastering one interview/work language
      • Algorithms, Fourth Edition, basic algorithms
      • Introduction to Algorithms, also algorithms
      • The Beauty of Programming, interviews and algorithms
      • Design Patterns, OOP
    • Participate in more real interviews