Original article, no reprint.

Born and unavoidably meet all kinds of problems in life, study, life, work, love and so on. Today, I’m going to talk about general solutions to problems. Yes, it’s a universal solution to all problems, not just coding. Why are we talking about this? Because too many ask me the friends in recent years, various problems in the field of all have, although everyone’s different question types, but the solution is actually all roads lead to Rome, it’s like different programming languages, although different, but the essence is not much difference, when you will be able to understand the thoughts of programming, learning other languages is not so much the threshold. The same is true of problem solving. No matter what the specific problem is, the way to solve it is universal. When you can master the way to solve the problem, you can basically solve any problem efficiently.

So how to solve the problem? I briefly outline the following steps:

First, analyze the nature of the problem

This is the most important step, but one that most people tend to overlook. Why is it the most important? Because if you don’t understand the nature of a problem, the subsequent solutions will basically start to deviate from what you want. So if it’s the most important, why is it the easiest to ignore? Because most of the time people take it for granted that they understand the nature of the problem, they have not thought about the nature of the problem carefully, and it is easy to misjudge. Let’s say your neighbor comes to borrow an axe, but you don’t have one. If say fall in must solve this problem big premise, so train of thought of a lot of people is affirmative to help him seek other people to borrow namely. But if you think about it, the key to his problem is not the axe, but to do something with the axe, for example, he wants to cut something with the axe, and then you realize that even though you don’t have the axe, you have a saw and you can also solve the problem. This is where you can solve the problem with minimal time and space cost. So, in this example, the problem is how to cut something, not how to find an axe. Of course, this is just a very simple example for you to understand. In real situations, the analysis of the nature of the problem is not so simple, which is why many people learn it quickly and lose it as soon as they use it, because too many people will not practice even if they have mastered the theory. As for how to combine theory in practice, I will write a separate article on this later if I have the opportunity. I won’t talk too far here.

Second, the disassembly

The second step to solve the problem is disassembly, which includes two types: problem disassembly and step disassembly. First of all, I want to talk about problem disassembly, which is usually used mainly because the problem is so big that it has to be disassembled. For example, the existing question is, how do you build a supersonic car? At first glance the problem seems almost solvable. But if divided into a lot of problems in fact is not can’t solve, such as: how to make can withstand such a speed tire, how can directly under the speed to keep steady suspension system, and so on, the above problem is divided into many small problems, if still feel it is difficult to carry out every little problem, then further elaboration. When it comes to step-by-step dismantling, it’s usually because a problem is taking too long to solve, and it’s best to do it in stages. For example: earn 1000W from 10W principal in 10 years. This is a long-term problem, so the best way is not to always think about how to earn 1000W with 10W, because this is a long-term problem, there is no need to think about the solution over such a long period of time, can be divided into three steps, in 3 years to earn 100W, in 6 years to earn 300W. If you earn 1000W in 10 years, then you only need to think about the first step, how to use 10W principal to earn 100W in 3 years. Although it is still difficult for most people, compared with the previous problem, at least from the realization of ideas, you can come up with many solutions.

Solution and execution

Once the problem and solution steps are clear, the next step is to come up with solutions and implement each step. Be both a giant in thought and a superman in action. Many people clearly know how to do it, but because of various reasons such as lazy, fear of error is not willing to act, this also is met a lot of people always feel it is difficult to solve one of the reasons, just thinking can solve the problem is, eventually need action to solve it, the problem will not disappear because you how to think thoroughly. So that’s what people have been saying about execution, the ability to solve problems efficiently, execution is essential.

Verification and circulation

This step is also a step that many people overlook. Once the problem is solved, there is no reverse observation and verification of the effect of the solution. At the very least, this may cause the problem to recur without solving it thoroughly, and at the very most, not having this habit will result in a lack of ability to solve all kinds of problems in the future. So verification is a must! If you don’t get what you want, start repeating the first step.

The above content is the methodology of the ape to solve the problem, although the number of words is relatively small, but for the real pragmatism, I think it does not need too much text modification, my writing has always been the principle is to use the simplest words to say things that everyone can understand. Students with strong understanding ability should not be difficult to find that many of the above contents are similar to programming ideas, just so, one of the major thinking of programming is logical thinking, and solving problems also requires strong logical thinking ability, poor logical ability, usually will make a mess of the problem. Therefore, the more logical thinking is not good students actually should contact programming!