Closing Words Learning Never Ends

Closing Words - Learning Never Ends #

Hello, I am Tang Yang.

Time flies, and the four months of learning are coming to an end. In these 103 days and nights, we have studied together 45 articles on high-concurrency system design, gradually progressing from the basics to the evolution, and finally conducting practical analysis and explanations.

During this period, we have communicated and interacted with each other. Many students were studying and leaving comments even late into the night. In the comment section, familiar figures can often be seen, such as @LittleMeowMeow, @EatingRice, @Keith. Some students have also shared new knowledge, like @BlueDemon. Your enthusiasm and efforts have encouraged me to keep moving forward and made me realize that knowledge is endless. In addition to writing, I have also subscribed to several courses on Geek Time and bought some relevant books, striving to deliver high-quality content to you. Although these 103 days and nights were tough, they were also filled with gratitude. I sincerely thank you for accompanying me on this journey!

I know that some students hope for more practical case studies. This is how I think about it: as the saying goes, “Without a deep source, it is difficult to have flowing water in the distance; without strong roots, it is difficult to have a tall tree.” Some theoretical foundations are necessary, like the source of water or the roots of a tree, they cannot be bypassed. Furthermore, a practical case study cannot fully cover a theory, on the contrary, a theory can support many practical case studies. It is often said that giving someone a fish is not as good as teaching them how to fish. When studying mathematics, don’t we first explain the origin of formulas before solving practical problems? I believe that after applying and utilizing theoretical knowledge, you will gain valuable practical experience and come up with better technical solutions in your actual work.

Looking back on these years of work, I would like to share with you some of my personal opinions. When I first started working, I often heard people say that there is an age limit for programmers, and 35 is the age where programmers end. At that time, to be honest, I felt a bit uneasy. But as I grew older, I saw more and more people feeling like a fish in water in the industry after the age of 35. I think that the number 35 does not emphasize personal age, but rather refers to a stage. It emphasizes that at that stage, we may be content with the current situation due to various reasons and no longer update our knowledge repository, which is a mistake.

To quote from the “Book of Rites,” first, we should seek broad knowledge. You need to constantly innovate your knowledge. The so-called ceiling is actually more of a knowledge ceiling. Learning throughout your life is your winning formula in this industry. Therefore, we should make use of various high-quality platforms and spare time for learning. However, at the same time, you should also be aware that knowledge is now more fragmented. How to learn systematically and organize knowledge into a system, and make it your own foundation, is crucial and difficult. Here are a few recommendations:

Systematize the basic knowledge. Reading books is a great way to acquire systematic knowledge. For example, study “Introduction to Algorithms” to improve your understanding of data structures and algorithms; study “TCP/IP Illustrated” to gain a deep understanding of the TCP/IP protocol stack, which we are most familiar with, and so on.

Read the source code of classic projects such as Dubbo and Spring, understand the design ideas from them, and your coding skills will greatly improve.

Make good use of fragmented time to read articles from WeChat public accounts, supplementing the lack of practical examples in books and enhancing your technical perspective.

Next, think carefully. Indeed, during the process of expanding knowledge through reading, we need to think. In actual work, we also need to think deeply. No theory can be applicable to all unforeseen situations, especially for high-concurrency systems. They are full of possibilities. The best way to cope is to summarize and think deeply about every unexpected situation under the guidance of theory.

Then, ask questions. This kind of questioning is asking ourselves:

What is the root cause of this sudden problem?

How to prevent similar problems from happening again in the future?

What is the optimal approach to solving this problem?

At the same time, it should also be a kind of supplementary response after team cooperation and brainstorming. For example, if you have an apple and I have an apple, we can exchange them so that each person still has one apple. However, you have one thought and I have another thought. By exchanging ideas, each person will have two thoughts. Therefore, continuous team communication is also a good way to improve oneself.

Next is the ability to discern. By reading extensively and accumulating a large number of work cases, you need to internalize this knowledge and form clear judgment. The sudden collapse of a celebrity’s Weibo account, or the sudden failure of a community system can happen within minutes. To become an excellent architect, you must use your abilities to make clear judgments and quickly find solutions. Only by doing so can you minimize the losses. And this kind of clarity in judgment varies from person to person. The knowledge reserve and deep thinking you have will determine the clarity of your judgment.

Finally, it is about putting it into practice. No matter how much theory you learn and how much thinking you do, it can’t guarantee that you can solve all the problems. For high-concurrency problems, we still need to continuously improve our abilities through practice.

I believe you often see jokes like this, such as many people thinking that our fixed image is “wearing glasses, wearing plaid shirts, and carrying a backpack, going to Uniqlo to buy clothes by the basket.” Joking aside, we don’t need to take it seriously, nor should we pursue external appearance too much, because what ultimately affects your career is thinking, connotation, and knowledge reserve. So how can we become more elite?

First of all, I think we need to have gradients. We always hope that every job has a progress bar, and our career should have a gradient progress bar as well. For example, from a workplace rookie to an expert and then to financial freedom, you need to know how long it will take for each step and how to gradually move forward. Of course, not everyone can adapt easily, but having dreams is always good, so that you have goals and direction in your life.

After setting gradient goals, the next step is to have speed. Just like how products push you, you also need to push yourself, constantly refuel, update, improve, and achieve your career goals as soon as possible.

With these two points, you will have a certain height. You are standing at a high point, overlooking your career goals, taking an overarching view, instead of blindly climbing. After that, what you need to achieve is depth. Some friends always want to expand their knowledge horizontally and learn some new and interesting things. This can broaden your technical perspective, which is understandable. However, if you give up deep understanding of basic knowledge because you are chasing after new technologies, it would be a little bit of loss. You should know that basics like algorithms, operating systems, networks, and other foundational knowledge are very important. Only with a deep understanding of these knowledge levels, can you apply what you have learned to quickly learn new technologies and help you improve your breadth more quickly.

You also need to have enthusiasm. We love and fight with product managers during the day, and love and fight with family members while staying up at night. If you lack sufficient enthusiasm for work, this kind of repetitive life will eventually wear you out. Only when you have planned gradients, improved speed, strengthened depth, and broadened breadth in your industry, will you have enough confidence. Then, when you have confidence and the ability to speak, you will have a sense of happiness, and naturally, enthusiasm will be maintained. Under the heat of enthusiasm, you start a new round of planning, creating a positive cycle. With this, you will be able to handle your work with ease and experience a happy and fulfilling life.

At the end of the article, I have prepared a questionnaire for you. The questions are not many, and I hope you can spare two or three minutes to fill it out. I really want to hear your opinions and suggestions on this column, and I look forward to your feedback! The end of the column is also the beginning of another phase. I will iterate on the content. For example, from mid-November to the end of December, I will have a one-month closed period. During this time, I will take the time to handle any messages that I haven’t had a chance to reply to. And for some common problems that students have, I will plan a Q&A session or extra content.

Finally, I want to emphasize why we should strive to improve ourselves and enhance our business abilities. Simply put, it is because we hope to have the right to make independent choices, rather than being forced to make a living; to have the ability to have a say, rather than being forced to execute. As I grow older, I increasingly realize that a sense of accomplishment and dignity can bring us happiness.