There are several ways to distinguish a novice from an experienced person:

  • Novice, Baidu’s main is grammar. Old hands, Google is mostly about solutions or knotty bugs.
  • Novice, a fierce operation such as tiger, once the test is all bugs, and even need to overturn the design to modify. Old hands, think first, and even draw pictures, leisurely and leisurely start to write, and even write a few lines, drink a few tea feeling, but write out a stable batch.
  • Newbie, when faced with a bug, the first thing is to guess, it should be there, change it again, well, then something else is wrong. Old hands, analyze the code, then look at the log, reproduce, modify, and replay.

So, if I do all the above, am I an expert? Not necessarily, there is another very important factor – the ability to solve problems.

It can be said that after working for 3-5 years, I can basically achieve the above three points. After all, practice makes perfect, but the ability to solve problems really requires both talent and effort.

For the same problem, the novice just wants to patch, while the veteran wants to solve it from the source without affecting the overall situation, but the great god often wants to have a better solution.

For example, the SQL error kill system overshoots.

  • A novice might look, oh, there’s something wrong with this SQL, change it.
  • The old hand looks, this change may have concurrency bottleneck, optimize.
  • This could add a queue, solve the concurrency problem, and then optimize the client experience by providing friendly prompts for responses, etc.

Simply put, it is the pattern and vision is not the same.

So, how can we practice our problem-solving skills?

Learn from the smallest detail.

The best way to learn is experience, we can seize every problem we meet in the work, see how others solve it, think about whether there is a better solution, write down their own review.

Many forums for help, or bosses for the industry pain point solutions, look more, experience their strengths and weaknesses and characteristics, peer is the best teacher.

Finally, think a lot.

As long as the mind does not slide, the method is more than difficult.

Optimize the process

Most of the time, we may wonder why others can’t think of me.

The first is the issue of knowledge.

You never think of what you don’t know.

That is, poverty limits our imagination, which requires us to accumulate, read and learn more.

The second is the optimization of thinking mode, here mainly talk about this.

Scenario analysis, not procedural thinking

I always joke: If you can’t solve it, kill the person asking for it.

This means that if a requirement or problem is difficult, ask the person who made the requirement what the original requirement was, and you may find a solution that is easier to implement and more consistent with the original requirement.

It’s a rare opportunity, and it’s good to have a product and application that don’t fight each other, but sometimes it can work wonders and save a lot of development time. At least you know why you’re doing it, and you don’t complain.

Define the problem, abstract the model

To solve a problem, you need to understand what the problem is.

For example, if the CPU usage is very high, let’s eliminate some of the CPU consumption.

First of all, high CPU usage is not a problem, CPU is used, do not need to solve the problem.

Secondly, optimization is not equal to kill, first find out whether there is empty CPU, and then analyze whether there is inefficient use of CPU.

Finally, determine the solution.

If the direction is wrong, no effort is wrong.

warren

For example, if an interface often times out, some people say that the timeout time should be longer. This is where you might feel lame. But in practice, such patches are numerous.

Once you choose to compromise, you will always compromise. Over time, you become unwilling to think and become mediocre.

Behind any phenomenon, there must be a reason. The patch can only be installed for a while, not forever. For the normal operation of the business, you can patch it, but you must find out the problem in the next step.

It’s like, you go to the doctor and you say I feel cold a lot. The doctor said you should put on more clothes. What would you think?

Programmers look at bugs, in fact, and doctors are the same, watching, hearing, questioning, especially on the server, it can be said that every modification is surgery, must be steady and ruthless.

Verification and review

Any problem, first reappear, can not catch hard to add log, until pull out to change again.

If it can’t be replicated, it can’t be verified, and if the chain of logic is incomplete, there must still be thunder, and one day it will blow up.

After each solution, go over it several times to see if there is a better solution. This way, you will grow on the same problem many times, and after the model is formed, you will solve the problem much faster.

conclusion

If something is wrong, please point it out.

If you don’t understand, please point out and LET me add chestnuts.

If you feel OK, you can like it and let more people see it. thank you