On the long journey of algorithm learning, many people are groping forward, but they often go astray. Recently, when I looked back on my learning process, I deeply realized that many of my friends had major problems in the way they learned algorithms and data structures. With years of accumulated algorithm learning experience, I hope that my insights can clear up the fog for everyone and illuminate the way forward. Next, I will demonstrate the mistakes first, then explain the correct learning method, and briefly discuss the key points in the interview and review question scenarios.
The teaching method of many algorithm textbooks is like learning Chinese with a modern Chinese dictionary. Take the linked list chapter as an example. From the beginning, we directly define the linked list, draw a diagram to explain, and then list common operations such as searching and inserting nodes. Students seem to understand, but actually cannot remember. They are still full of doubts: What is the use of linked lists? Why study? Where did you use what you learned? These questions may remain unanswered until you read the entire book. Most courses impart knowledge this way. In order to help everyone understand the problem more clearly, I specially checked two open data structure courses from top foreign universities: MIT's 6.006 and Stanford's CS106B (both courses can be viewed online for free).
Even if you study the right way as mentioned above, you still need skills to ace exams and interviews. During the interview process, it is not enough to know what a linked list is. What the interviewer values is your ability to use linked lists to solve difficult problems in actual projects. For example, in my resume I mentioned making a web-based multi-bullet game. However, the game lags due to too many bullets. At this time, thousands of bullets were initialized in advance using a linked list, and a bullet object pool was constructed, effectively solving the lag problem. During the interview, combined with the actual competition display, it will leave a deep impression on the interviewer. Another example is using linked lists to realize operating system memory allocation, using linked lists to connect memories, and cutting and inserting nodes according to usage. This application is more convincing in an interview than simply describing the concept of a linked list. If you want to learn more about the practical applications of data structures, you might as well turn to AI tools.
When studying questions, many textbooks often give answers directly after the questions are asked. However, what really needs to be learned is not the questions and answers themselves, but the tortuous thinking process from the questions to the answers. There is a book called "How to Solve Problems". Although it mainly focuses on mathematics, it does not teach specific problems, but teaches problem-solving ideas, which is worthy of everyone's reference. The same is true when interviewing algorithm questions. If you write your answers directly on the whiteboard after three minutes of silence, you will only leave a general impression on the interviewer, because they will not be able to understand your thinking and communication skills, and may even suspect that you have memorized the questions. During the interview, communicate fully with the interviewer and show your thinking process. Even if you encounter a question that you don’t understand, you may be able to get hints through good communication and finally complete the answer to the question.
Looking back on my study career, I found that more than half of the courses and textbooks used cramming to instill knowledge. I hope that through studying this article, you can avoid the misunderstandings of algorithm learning and find a learning path that suits you. If you found this article helpful, remember to click three times. You are also welcome to share your learning experiences and questions in the comment area, so that we can make progress together on the road of algorithm learning.
Share on Twitter Share on Facebook
Comments
There are currently no comments