As a programmer, technical knowledge is most important, but in addition to improving technical ability to tackle a problem, there are other aspects to consider most. One of the important skills to get is Structured thinking and it is a formula for solving most of the real-life problems, and the beauty is that structured thinking can be trained.
Mastering structured thinking will enable you to complete the project quickly, handle complex problems in an orderly manner, effectively arrange learning and work, and quickly master the knowledge.
Structured thinking can be simply defined as:
Structured thinking is to construct an answer to a big question by asking several small questions.
How many toilet papers are sold in a country every year? How many kilometers of train tracks are there?
In a job interview, you may be asked questions like brain teasers like the one above. You may think, what is the point of asking this kind of question that can be answered in five seconds using Google? This is to test your structured thinking ability and the ability to solve problems.
Suppose that during an interview, there are two interviewers and ask how tall the building. A person guesses an answer and the guessed answer is very close. Another person walked outside and measured the shadow of the building with his footsteps, and then compared it with his own shadow to get an approximate height of the building, but the obtained number was not as accurate as of the previous one. If you were an interviewer, who would you choose? I think you will choose the second interviewer because he knows how to use thinking to solve problems.
By practicing reasoning, disassembling the big question into several small questions, and then constructing the answer for the big question from the answers of the small questions, a structured thinking habit will be formed. With structured thinking, you will systematically break down problems one by one and solve them one by one without worry, panic, or clutter.
Anyone can improve their structured thinking through practice. The best way is to ask yourself some “meaningless” questions, those that you can’t easily find answers online.
For example, if you see a restaurant in the center of a city, you can spend a few minutes thinking about how many customers will go to this restaurant every year. Take this as an example, how to do it? This can be done.
1. First, suppose the city where the restaurant is located has a population of 3 million, and then assume that one-third of the population lives in the urban area, which is 1 million. Inaccurate numbers are not important, it is important to assume that allows you to further decompose the problem, and then find a breakthrough and start iterating.
2. Then, suppose there are 10 regions in the city, and each region has a population of about 100,000 people. If a person eats outside for lunch and dinner every day, then it counts for 14 meals a week. In big cities, for most unmarried young people, 5 times a week is not an exaggeration. Therefore, the conservative average is 3 times a week. That is in this district, 3 X 100,000 = 300,000 meals in restaurants every week.
3. Next, a district is assumed to have about 100 restaurants. If distributed equally, each restaurant has 3000 meals.
4. Let us check again. Can this restaurant serve 3000 meals a week?
let us have an over the envelope calculation
The restaurant is open 12 hours a day, 7 days a week that counts for 84 hours a week, while accommodating 25 people and serves food quickly, with an average of 5 minutes. At 100% capacity, they can provide 125 meals per hour, which is 10500 meals per week. Even if the place is full 30% of the time, serving 3000 meals per week can be done.
5. Finally, suppose that the restaurant is closed for two weeks each year due to holidays. In 50 weeks, there are 150,000 customers every year.
Here we start from the big number and then turn to the small number, but you can also go the other way around, or you can start from both ends. The suggestion is that you start from which number you know. For example, in the above example, if you do not know how many people are in the area where the restaurant is located, you can continue to find a breakthrough in the larger area-the city. It doesn’t matter if you don’t know the specific number, you can assume a number first.
Is the final answer 100% accurate? Certainly not accurate. Is it on the order of magnitude? maybe. It does not matter. What is important is that you can learn from inferences based on your limited experience and solve problems in real life. For example, for this restaurant, through this kind of structured thinking to analyze, we can find potential problems in restaurant operations, and finally, find possible solutions to these problems.
Structured thinking seems to be applying a fixed pattern, but it is a kind of creative thinking. It is within the scope of the ruling mode so that your mind can freely roam on objects that do not seem to be related, and on this basis, connect each object one by one.
By frequently doing exercises like the above, you can improve your problem-solving skills, which will benefit you for life. Remember, we need to think often, but we need to know how to think.
Not that life has become easier, but that we have become stronger and stronger. The essence of life is to constantly solve new problems. When you know how to think, it gives you the ability to make your life easier.2