I have been confused for a long time and feel that computer programming is very difficult. It is a cross-cutting hurdle. In particular, the corresponding algorithms are used to solve a problem, such as sorting, binary tree, red/black tree, and hash algorithm, there is no clue about the KMP pattern matching and some column problems. Now, it is true that when you encounter a real problem domain model, it will naturally drive you to find a solution, first, you should first solve this problem in your own way, instead of thinking about it from the computer perspective, solve it with our unique thinking ability, and then think about the feasibility of this solution, for example, whether it can be completed in one minute, one hour, or even longer, and then consider economic costs. If this solution does produce practical benefits, you can naturally think of the Computer perspective, consider the time and space cost issues, whether to complete it in the existing time, whether it will cause memory overflow, stack overflow, and so on... Not complete to be continued!
Cultivation of computer programming thinking