Broadly speaking, my understanding of technology and the construction of my own technical system went through three iterations between 2019 and 2021.

In 2019, I had just started looking for internships. I kept looking for interview questions because I wanted to improve my chances of passing interviews. From the perspective of interviews and learning, I divided technology into programming languages (Java basics, collections, multithreading, and the virtual machine), databases, computer networks, operating systems, data structures and algorithms, design patterns, scenario design, and several other areas. I kept filling in these areas and improved considerably; I also received quite a few offers.

After my internship ended in 2020, I had gained a little work experience and began to rethink the construction of my technical system. The problems I encountered at work were mostly at the application layer, so they could no longer be categorized according to the old logic. I also felt that the original categories were too textbook-like and needed another level of abstraction to better organize the articles I summarized at work. I therefore divided technology into five areas: scenario practice, foundational knowledge, architectural thinking, source-code analysis, and lessons from pitfalls. This covered everything from high-level architecture to fundamental technology and programming techniques.

After graduating and moving to Hangzhou for work in 2021, I encountered more and more business projects, and my understanding of technology became more business-oriented. The old system was mainly a way to categorize articles, while I wanted to build a unified technical methodology. So, from a development perspective, I divided technology into two core parts. One core of business development is practice, including micro-level programming practice and macro-level architectural practice. The other core is thinking: extensibility, high performance, high availability, and the consistency problems that may arise among them.

My technical system is still immature. I wonder what it will evolve into after 2022 ends….

Attached: a large diagram of the third-generation technical system (under construction)

2023-01-15 update:

There was still a lot of business work in 2022, and I also began to take responsibility for developing and operating a product, so I learned quite a lot. To be honest, however, I was exhausted from responding to changing requirements and produced relatively little in the way of distilled ideas or useful material. The overall methodology remained consistent with 2021; I mainly expanded the part about macro-level architectural practice and learned more about it. I hope to organize and summarize these things in 2023.