Moment For Technology

Review section: problem solving experience summary review

Posted on Jan. 31, 2023, 12:47 p.m. by Juan Barber Jr.
Category: The back-end Tag: The programmer The back-end

Hi, I'm Jack

Recently I've had the opportunity to really solve a lot of technical problems on my own. I solved about 10 difficult problems in more than a month

As I sit here now writing the summary, I am relaxed. But in the process of solving each problem, but under large and small mental pressure, have many times doubt whether their ability is limited, and after the solution, and affirmed their own: well, I am still very strong. People may be like this, in the face of difficulties and through difficulties after the mood is always quite different. Therefore, it is important to maintain self-confidence and improve the ability to solve problems in the process. Otherwise it is easy to encounter problems, the mood is impetuous, easy to magnify mental pressure, thus reducing the efficiency of their own problem solving......

Therefore, in order to improve their ability to solve problems, give yourself a little more confidence, or to sum up, tell yourself that there are many ways to solve problems, but also hope to be able to read the article you are helpful

First, the basic method to solve the problem

Problem solving is often a process of patient analysis and continuous finding of the root cause of the problem

There are many ways to solve this problem. For example, to check the Bug, you can first reproduce the problem, and then follow the normal logic of the problem step by step to determine the real problem, and then to analyze the cause of the problem. When the cause is identified, the solution to the problem is usually determined quickly;

For a research in a new field, for example, in order to avoid the problem of ES with a large amount of query data, especially slow loading and even process stagnation, it is necessary to find its solution through searching or communicating with others, and then verify the solution

For some problems with few clues, you can first guess the cause, and then keep trying and error; If there is a successful scene, then compare the difference between the failure scene and the successful scene, with this difference as a breakthrough point to study and solve;

Again, through their own experience. Generally speaking, as each person solves more problems, he or she develops a body of knowledge that helps you quickly locate the cause of the problem. This knowledge system needs your constant input and active practice to be built more and more mature.

The last point, which I think is also more important, is the regular review, every time after solving a problem, need to have a review to solve the idea, recall whether you took a wrong path, or what to do, would have solved the problem earlier, this can be avoided in the future; If the problem is easily solved because of something achieved this time, then the point can be maintained. Each phase, such as after a release, can also do an overall review to refine some of their own experience base

I'm going to highlight a few of the more important soft skills

Several important soft skills for problem solving

1, mentality: confidence, firmly believe that they will be able to solve it. It's only going to get stronger

First of all, we must firmly believe that we can solve the problems we encounter in the project. After all, problems have solutions. Even if they cannot be solved for a while, we can also achieve it through another way of thinking. My previous QQ nickname was "rainbow-like smile". Many friends teased me, thinking it was an unconventional name and a bit tacky. But they don't know what it means

When do rainbows usually appear? Yes, it takes a storm to show up. After it appeared, everyone looked at it and felt very beautiful and happy. Corresponding to the real life, after experiencing a period of life after the ups and downs of joy, isn't it like seeing their own rainbow? For example, after the college entrance examination, you always want to give yourself the joy in the end, so you will work harder in the process, until you get that "rainbow smile".

I love running, but is strangely, often at the beginning of two or three kilometers, can feel very tired, have to give up the idea of, this time, the mind will pop up another point: hold on a moment, your strength is often more than that, hold on for a while, you will see different scenery. So, one kilometer, one more kilometer...... They often end up running more than 7km. And finally, take a screenshot and save it. At this time, I felt that my body and mind seemed to be really relaxed. Subconsciously, I felt that I was really strong, so in each running later, I would feel that my strength was more than 7 km, and I would never give up easily

Yes, every time you must believe that you can achieve, then your mind will form a memory, feel that their strength can be higher. With this foundation, you won't panic in the first place

2, calm analysis, don't be impatient, for emergency problems to find emergency plans to deal with

In the process of solving problems in the project, there are many urgent problems, such as your Git pipeline is suddenly unable to execute due to the migration of multiple servers, and most importantly, the project cannot package. People finish feature development, or Bug fixes, and wait for the package to be verified, but can't package. At this time, everyone is staring at you, it seems that the progress of the project team is stuck in your here. Also, because they don't know the technical details, they will always push you to solve the problem. Even if you are inexperienced, you may have doubts about your own abilities as you constantly encounter obstacles in the process. The more this time, you must from a professional point of view, tell everyone, but also tell yourself where the current problem point, let them understand that the problem is not so simple. I also let myself really feel that the problem is too complicated for me. I have seldom touched this area before, so it takes a certain amount of time

Solving the problem that is causing the project to get stuck is of course the first priority, but in order to alleviate the current stuck situation, you can also find a temporary emergency solution first, which will require less experience, but will enable the project to proceed normally

Similar to the restaurant in general will prepare a small generator, in case the power failure can continue to operate, not completely collapsed, especially in the summer evening peak, the frequency of power failure will always be relatively high. You can create the latest package locally and change it to the current image. The steps will be a little bit longer, but the effect will not be affected

Let the fire slow down, and then you can concentrate on how to put it out

3, determine the priority of the problem, create a good state of mind

I just mentioned the need to calm down in order to focus on solving problems. In fact, keeping a good mental state is particularly important. Think about it: you've been working late lately, or responding to a variety of messages at the same time, you've had to decide or discuss a lot of decisions on a project, or you've had another problem in the process of solving it, and so on. You get interrupted all the time, all the time you get a little bit of inspiration and you get interrupted. Because, as you know, a lot of inspiration comes to you after step by step analysis, and then the breakthrough will be found, so the reality that is often interrupted is a challenge to you

Then you need to prioritize everything that is blocking, scheduled, and unresolved that poses a greater risk to the project. These things have a greater impact and need to be addressed first. It's important to emphasize here that priorities really matter. Set your priorities, focus on the things that have the highest priority, and then communicate them to the people involved to minimize interruptions. If it's really hard to avoid, set periodic goals for yourself. For example, spend half an hour in the morning focusing on at least identifying the root cause of the problem. For the half hour you can focus on in the afternoon, make sure you have a rough idea of how to do it. That way, you'll be more productive

4. Find experienced people to communicate in time

Sometimes, the ability to solve a problem on your own is important, but communicating with someone who has experience can open a window and let the light in

Some problems you scratching your head, feel that there is no problem in their thinking, but the phenomenon is always not according to common sense. This time, if have had experience with communication once, after all, they experience a little more than you, will not only stand in the Angle of the onlookers, help you to review your solution, and because they may well be tread similar pit, directly tell you by what way can be avoided, or help you troubleshoot problems, you will be amazed by the original problem can also be in such a way of thinking to think. Even if they don't end up helping you solve the problem, there's a chance that some collision of ideas in your communication will lead to some new ideas. So not only will it speed up problem solving, but it may also open your mind and broaden your perception. Why not?

For example, last time we needed to construct the maximum amount of data for the testing colleagues to do the performance test. When it comes to constructing data volumes, the first reaction, based on our understanding, is that you can insert a lot of data quickly, directly from Java code. But on second thought, there should be a simpler and faster way, after all, the amount of data is still quite large. Therefore, I consulted a colleague who had tested the performance of ES. He said that they had a larger amount of data. At first, they constructed a file, read and processed by Flink, output it to Kafka, and then write it to ES by Logstash to construct a large amount of data. When I heard this, I suddenly realized. Yes, Logstash also supports file data reading. Then I only need to constantly construct some file data, so only need to through simple configuration, can easily realize the structure of the data amount, you say that not only save time, but also broaden the idea?

In fact, the process of communication, when you tell others about your current problems, is usually a process of rearranging your thoughts. Sometimes, in the process of speaking, you may suddenly find that there is something incomplete in your previous consideration, or the direction is wrong, or what aspects have not been tried, and so on, followed by a sudden enlightenment! I've been in this situation several times with colleagues

Moreover, I think for technical people, communication is actually a very important but often underestimated ability. You know, to some extent, you're using the power of your team to communicate. After all, the strength of an individual is still difficult to compete with the strength of a team. After all, reform and opening-up is always much better than isolation

5, search information: search attention to be accurate

For a field that you haven't covered before, you often have to search the Internet to find a solution, either on the official website or on the practice blogs of various big shots. However, it's important to be accurate in your search, otherwise you'll get sidetracked. For example, we are currently using the 7.x version of ES, but most of the material on the web is for 6.x and lower versions, and the functionality of ES seems to vary greatly from one version to another. Therefore, a lot of ready-made schemes, directly taken over for use, often do not work

If you limit your search to the version you're currently using, you'll find the right solution quickly and efficiently

6. Simplify the verification scheme of the problem

For example, the method of verifying a problem can be simplified so that we can quickly verify whether we are thinking correctly. For example, if we need to determine whether the rolling scheme of ES is feasible, we just need to set the maximum number of documents to 2. Then, as long as two records are reached in the index, the rolling action can be performed, and you will see the results quickly

7, develop their own forward-looking ability, find problems in advance, give solutions or solutions

In the process of project management, it is now advocated to do a project sandbox, that is, to conduct a pre-war rehearsal of the project before the start of the project, taking into account the various scenarios and possible risks that may occur in each stage of the project. In fact, in the initial architectural design and module design process, the possible problems and risk points should be considered as comprehensively as possible. Then, prioritize and identify solutions ahead of time through technical prognostications. After the basic determination, and then to the actual project development work, then the whole project will be more controllable. And there is no need to delay the overall progress of the project, or even change of the plan or requirements, because of the solution of some problems not considered in the project process. If this happens too often, it can lead to uncontrollable projects, delays and even failure

8. Mobilize the executive power and initiative of the team, create a good team atmosphere, and realize the spiral rise of the team

Finally, it is the responsibility of a technical leader to be good at observation and communication, to identify bottlenecks affecting the current team effectiveness, and then solve them so that the team can have a higher output. Again, the team's strength is infinite, especially on the team kept active learning, active atmosphere, everybody has his good at technical point, and good at sharing discussion, everyone in the team will grow very rapidly, and the entire team will be more and more mature, the tacit understanding degree is more and more high, then nature will be more and more strong, The problem solving is only going to get better

Therefore, the cultivation of team atmosphere is also a point that cannot be ignored

Third, summary

Recently in the process of solving the problem, the deepest feeling is the sentence I learned in the primary school textbook: difficulties are like springs, you weak it is strong, you strong it is weak. Indeed, only continuous practice, continuous summary, in order to improve their ability to solve problems, so as to enhance their self-confidence, to deal with more and more challenging technical problems! From the perspective of self, we can solve problems with an attitude of growth, and treat the current job as a stage for growth and performance, and show ourselves to the fullest. And every time you solve it, you get better

Well, that's it. Learn a little every day, and time will show you how strong you are

About (Moment For Technology) is a global community with thousands techies from across the global hang out!Passionate technologists, be it gadget freaks, tech enthusiasts, coders, technopreneurs, or CIOs, you would find them all here.