18 years of development experience sharing (iv) Problem Solving (II)

Source: Internet
Author: User

For the source of this series of text, you can refer to the first part of the original intention and content positioning. The link address is as follows:
Http://blog.csdn.net/binarytreeex/article/details/8174445
Http://www.cnblogs.com/WideUnion/archive/2012/11/12/2766397.html
The address of the previous article is as follows. If you are interested, you can access the following connection:
Http://blog.csdn.net/binarytreeex/article/details/8625156
Http://www.cnblogs.com/WideUnion/archive/2013/03/01/2938315.html
 
In most cases, software engineers are attacking the city to solve their own problems. These problems are often covered by your own knowledge and experience, so they are basically smooth. However, there may also be other situations, that is, a problem that you don't know. These problems have an external phenomenon: the content of the problem is within the scope of responsibility or the current development task, but there is no idea or solution to the problem, simply put, the first response is that you don't know how to solve this problem. For ease of writing, I will name the so-called "no problem" as a "Difficult Problem" in the following article.ProgramPersonnel will not solve the problem, rather than other meanings.
 
In general, we always strive to solve the problem in a simple way. Once we encounter a problem that we will not solve, it often means that our situation is not very good, or we are in a difficult situation. This article mainly shares some of my experiences in dealing with these situations. We hope to help software engineers better deal with such difficulties and dilemmas. Of course, we will discuss the problem on the premise that the problem must be solved. We will not discuss how to avoid the problem and whether it is necessary to solve the problem. Here, we also need to make assumptions about the so-called non-problems. This article assumes that if this problem can be solved, what we lack is neither knowledge nor experience. Otherwise, our topic will focus on learning and experience accumulation, rather than directly discussing how to solve a problem we don't know. Of course, I would like to emphasize again that the content introduced in this article comes from my personal practices. For a broad group of developers who have such a great topic to solve the problem, limitations and one-sidedness are inevitable. Therefore, we recommend that you make your own choice and make appropriate changes based on your own experience in actual application scenarios so that you can better apply the content described in this article. If the shared content can play a positive role for our colleagues to solve problems in their actual work, then my goal will be achieved. Of course, it would be the best if it could be as easy as Ding Jie Niu.
 
I. What is the problem?
This is mainly compared with the general problem, first from the source. Generally, we should not encounter any problems. In terms of risks and progress, everyone related to the project should try to avoid such a situation. However, in some cases, the problem persists. The reason is the objective existence of the problem. Engineers try to solve practical problems. The difficulty of these problems is not determined by the subjective will of engineers, but by the problems themselves. Another reason may be the project's own requirements. For example, in order to have a competitive advantage, some difficult requirements will be put forward in implementation.
 
In terms of difficulty, this type of problem won't be solved by engineers in their first response. The knowledge and experience of Engineers cannot be directly told to engineers to solve the problem. This is the so-called difficulty. Therefore, when trying to solve the problem, the problem cannot be solved. This is especially important here. If a problem cannot be solved, there is no need to spend more time.
 
In terms of methods, there is an extra step to solve the problem, that is, analysis. This analysis is an understanding and understanding of the problem itself, which is a prerequisite for solving the problem. Of course, this understanding is not only an understanding of the question level, but an understanding of the structure of the problem itself. To achieve this understanding, engineers are often required to have a certain amount of practical activities before solving the problem.
 
In terms of strategy, you need to clarify your strategy when solving a problem, because the problem is often the key to success or failure of a product or project. Therefore, there are often a lot of resources invested. If there is no good strategy to cope with the problem, and at the same time, the risks involved in the problem may be out of control, this may cause serious consequences. Therefore, an appropriate strategy is required.
 
2. Strategies for solving difficulties
When preparing or starting to solve the problem, engineers are required to have a clear understanding of the problem solving strategy and strictly abide by this strategy in the process of solving the problem. This aims to reduce the loss of failure. It usually takes time to solve the problem, and it is more likely to increase the consumption of other resources. How can we solve the problem if it fails? If it is unsuccessful, then it is not a smart choice. Therefore, when encountering a problem, engineers must ensure that they are in a situation where there is room for advance and retreat. This is the strategy to deal with the problem.
 
The first strategy to solve the problem is to avoid it as much as possible. This does not mean to shirk or kick the ball in case of a problem, but to analyze and design the architecture,Algorithm, Train of thought, and so on every step and detail should take a simple strategy to avoid difficulties. This strategy is a bit contradictory, but it is the same as the strategy of the Special Police to solve crisis events. On the one hand, the special police should try their best, and on the other hand, they should try their best not to shoot at the scene. Of course, if you must take a shot, you must take a shot to solve the problem. It is unwise not to challenge the problem to show your talents or to show off the limelight if you have nothing to do with it. It will be difficult to get stuck early or late.
 
The second policy is time management. In fact, solving any problem takes time, but the time spent on a simple problem is completely within the acceptable range, therefore, the most important and basic constraints of time are often invisible to us. However, the amount of time it takes to solve a problem is often uncertain. When the time exceeds or even far exceeds our expectation, it will cause a lot of trouble. Therefore, it is best for the leader in the team to determine the possible problems in advance and reserve enough time to deal with the problem. This is of course a negative side, but it also has a positive side. Because we can also assume that the problem can be solved after the reservation time, and this assumption is also reasonable in many cases. In this way, it is easier to arrange the development plan.
 
The third strategy is risk management. This is very clear. We only need to consider whether we can bear all the consequences once the problem is solved. This is the bottom line of risk management. If you cannot do this, you must be very careful when deciding to solve the problem. In my opinion, it is best to give up. Another general approach is to have a candidate solution if the problem fails to be solved. In this way, we will be able to move in and out, more active, and more steadfast in our hearts. This is a general practice. Of course, the actual situation will be more complex, often because the difficulty of the problem is not estimated, or some difficulties are not estimated, and so on. Therefore, problems may arise, especially in the development or prototyping of a new product. At this time, we need to look at inner strength and luck. Emphasize that at least you should never be sure that you can solve the problem at the tactical level.
 
Iii. Methods for Solving difficulties and basic conditions for solving problems
When faced with a problem that can be solved, we usually solve it directly. Even if we need to think about it, we can think about it on the premise of "what we can do. Of course, this is a kind of thinking, but we need another kind of thinking in the face of a difficult problem. This kind of thinking is about the problem itself. We need a certain amount of repeated practices (or attempts) and thoughts to gradually understand what kind of problem we are facing and what the problem looks like. So that we can have a clear understanding of the nature of the problem, and then use our knowledge to describe the problem, or to clearly understand the structure of the problem, know what a problem is and how many simple problems it is. I call this process an analysis. Then we can solve this problem directly by using our knowledge or solving every simple problem in sequence. This is an important new step compared with the content discussed in the Problem Solving article. Once the analysis steps are completed, the subsequent work can be done as usual.
 
In the previous article, we mentioned two basic conditions for solving the problem. Here we need to talk about one more, that is, IQ or how smart you are. I think IQ is the most important of the three basic conditions. Of course, this does not sound good news, because IQ seems to be provided by God. But in fact, this is not the case. The effort of the day after tomorrow can greatly improve the inherent shortcomings.
 
The Knowledge mentioned in the previous article is certainly useful in solving problems. Compared to the scenario used in the previous article, it is insufficient to simply reuse your knowledge when solving a difficult problem. Engineers need to use their knowledge in a more creative way of thinking. In practical activities, we also found some simple knowledge, or even basic knowledge, which often plays a better role in solving problems and plays a main role.
 
Iv. ways of thinking
I will introduce several ways to think about problems. These contents are very important and practical.
 
1. Mathematical Thinking
Let's talk about a mathematician's way of thinking about the problem. This example was seen on TV many years ago. At that time, I didn't think much of it, but with the increase of age and the increasing difficulty of dealing with problems, I began to understand its role more and more. The following example shows how mathematicians think about the problem.
 
Suppose we can do one thing. This is to put a water bottle filled with water on the stove, and then boil the pot of water. So when someone gives you a kettle full of water and asks you to boil water, you can do it directly. Well, now, if someone has given you an empty kettle and asks you to open a pot of water, how can you solve this problem? You don't have to think about how to deal with this problem in your life. Just fill the water in the kettle and put it on the stove to burn it. However, it takes us a little effort to solve this problem in the way mathematicians think. Mathematicians follow these steps:
 
The first step is to realize the difference. What we will deal with is a pot filled with water, which is now empty. In practice, this step requires us to have enough observation, recognition, and a sensitive professional sense of smell to find the key points of the problem and the correct direction to solve the problem. This is the same as the contrast method mentioned in the previous blog post, but it is used in different occasions, and of course the difficulty is also different. In fact, this is also a step to analyze the problem, but this step is just a simple comparison. Through this comparison, we find the difference, which tells us the connection between the problem and the problem we will solve.
 
Step 2, and then consider whether there is a way to make an empty kettle into a kettle filled with water. If possible, the problem is solved. The highlights of the mathematician's thinking are in this step. This is a skill to start thinking about and solving problems. It shows us hope that we will never come. In many cases, our idea is to change the method, or simply make a judgment and I will not, instead of trying to create or try to create the conditions we lack to solve the problem. The mathematician's way of thinking provides an important inspiration.
 
Step 3, find that one of the ways to process an empty water bottle into a water bottle filled with water (you can also spend money to make it for you) is to fill the water in the empty water bottle. Note that this is a discovery and a step towards solving the problem. In this example, it is still a key step. Therefore, this discovery is very important. In actual work, it is to check whether your knowledge, experience, and information are sufficient for us to find this practice. At the same time, it also puts forward requirements on how you use your knowledge. The above two steps are encountered and analyzed. This step is to find a solution to the problem based on the analysis.
 
Step 4: now we need to check whether the water will be filled in an empty water bottle. In actual work, we think again about a subproblem (or substep) after thinking and analyzing a problem. Obviously, the actual situation is what we will do. At least most of them can be tapped by hand.CodeProgrammers will do it. Now, when we think about this step, we can know that this problem can be solved. Here, the second step is the key, and the third and fourth steps are the subject.
 
This example or method of thinking about the problem demonstrates how to use existing knowledge to solve a problem that is not covered by existing knowledge. Of course, there are many such examples. If it is limited to pen and ink, I will not talk about them anymore.
 
2. Newton's method for solving curved edge trapezoid Area
Newton used the knowledge of our middle school in the mathematical principles of his famous book (now the middle school has already talked about the limit and derivative. I mean at that time) defines and proves the limit and derivative, and then gives the calculation method of the curved edge trapezoid area. This is the final example that I have seen so far using my own simple knowledge to solve the problem. All engineering teams have learned high numbers. We suggest you take a look at the deduction and proof of the part in the mathematical principles to see why Newton was Newton. Of course, I want to emphasize that this example tells us more than that.
 
The process of proving the mathematical principles, of course, also includes the discussion of the wording, and a comparison with the proof in the Advanced Mathematics Textbooks we have learned, we will find that Newton's proof in the mathematical principles is very simple, if possible, I would like to say that it is simple. If I use this description to prove a question, my senior teacher will not allow me to pass the examination. In textbooks, the Limit Concept is described in ε-delta language, while Newton basically uses natural language, even without symbols (here, the question of the translation level is not taken into account). In comparison, Newton's proof is nothing. This fact tells us that when we solve a problem, we may not quickly find a satisfactory solution, but often just a seemingly possible solution. At this time, we still need to stick to it, because it is a great improvement to have a solution than to have no solution. After all, it is a step closer to the target. If Newton had to wait until he described the Limit Concept in the ε-delta language to complete the establishment of calculus, then the industrial revolution may be postponed for one hundred years.
 
3. Evidence of the Big Bang Theory
Astronomy observed that the distance between all stars is getting farther and farther. Based on this fact, what conclusions can we draw? Scientists have proposed the theory of the big bang, that is to say, the universe has exploded from a very small so-called singularity, thus producing the current universe. So how did scientists launch the Big Bang theory from this simple fact? The deduction process is simple and surprising. If at this moment all the stars are moving away from each other, the positions of all the stars in the past are closer than they are now. This conclusion is clearly correct. In this case, the positions of all stars in the past are closer than those in the past. This is obviously correct. Well, the distance between the stars will be closer and closer based on this idea, and we can only get together. So the big bang theory (of course, it should be just a hypothesis at the beginning) was born. From this example, we can see that an excellent or clever way of thinking has an immeasurable effect on solving the problem. In the example of the Big Bang, we didn't use any astronomy-related professional knowledge at all. We just came up with this hypothesis through correct reasoning. I hope developers can understand and learn from them.
 
The three examples above are examples that give me an impression and provide guidance for me. I believe there are many similar examples and you can find out which ones are suitable for you. Mathematician examples are the most basic and important. I think all methods can be deduced from this example. Newton's example shows how to use knowledge creatively. The last example is to test our IQ or observation.
 
5. methods to solve the problem
There are two methods to solve the problem. The first one is the so-called analysis. In general, this analysis is about understanding the problem. Of course, apart from the question review and correct understanding, we are more concerned about whether we can use a strict description to express the difficult structure. If this can be done, the possibility of solving the problem is greatly increased. From the perspective of analysis, there is probably only one method, that is, practice. Through the contact and interaction with transactions, we can examine the structure and nature of the problem, so as to achieve the goal of understanding the problem. I once went to an interview and the examiner gave a question, saying that there are three types of images: rectangle, circle, and elliptic. How to Design the class to express these three types of images. I did not think carefully at the time. The first reaction was to design classes according to Geometric definitions. For a rectangle, It is a rectangle class. The property is the coordinate of the upper left corner, the other two are width and height, and the circle class has two attributes: The Center Coordinate point and the radius. I forgot to define the ellipse at the time, so I will not write down my thoughts to the examiner. If I want to explain it using UML or Ood, I may say the last section. However, there is only one actual data structure: rectangle. This is proved in the future when we come into contact with GDI + programming. This example shows the external differences between the three types of images with completely different geometries. The nature of the problem is just a rectangle, which is the correct structure of the problem.
 
Observation is an important auxiliary capability when analyzing problems or trying to understand problems during certain activities. Because many activities are completed through human-computer interaction, it is very important to observe the information displayed by computer output devices (usually displays. Any minor changes or results may be important clues to the problem. I used this example to show the color of the control background. I was still using VC, so I tried it in red. The result is that the background color of the control has not changed. At that time, the control was very passive, so I had to figure out why the red color was not displayed, so I didn't know how to solve it. Result in an accidental operation, it seems that the window is minimized and then maximized. The result shows that the background of the control is flashing, and the operation is repeated and the result is red. This phenomenon indicates that the red background is painted, but it is overwritten by the current background color of the control. The clue to the problem is how to prevent the background color of the control from overwriting the color I have drawn. Starting from this clue, the problem was finally solved.
 
In addition, I also need to emphasize that the recognition activities adopted should be diverse and changeable, so that I can understand the problems as much as possible. Sometimes we take some actions, but we often do not get much of it. In this case, we need to think about it. Instead of simply repeating activities, we must adopt different activities to identify problems. The key point is change. For example, if we implement a file copy function, the result copy fails. Here, we ignore the returned values of the replication function or throw exception information, and directly ask ourselves how to take actions to understand the cause of the failure and then help solve the problem? For me, the activities I take may be:
1. Create a text file without writing a program, and then copy the file directly.
2. copy the files to be copied directly without writing a program
3. Copy files in the program by directly executing commands
4. Write a fixed string to the target file instead of reading the file content.
5. Can I create a new file at the target location?
6. Create a new file with the same name directly at the target location, and write the copied content directly to the new file without reading the file.
7. Read the file content and write it to a file that has been copied successfully.
8. Read the file content, but write only the part of the copied File
I guess these activities can basically find out the cause of the problem. I suggest you learn to think about different ways and content. In this scenario, you can consider leaving your hands on the keyboard, people standing up and leaving the computer, taking a walk outside, and carefully considering the methods to be taken during the walk.
 
Another powerful tool for analyzing problems is arrangement and combination. Simply put, it is the addition of laws and multiplication theorem in middle school. A more complete statement is the counting methods, theorems, and their properties in combination mathematics. There are actually only two core components in the arrangement and combination: Count and enumeration. If we can count the problem, we can understand the structure of the problem. If we can complete enumeration of the counting result, the enumeration method and process are the methods and processes for solving the problem. So I would like to emphasize that the knowledge in books is useful and most useful.
 
The second method to crack the problem is simplified. If a problem a cannot be solved, we can ignore the requirements of some problems to reduce the difficulty of the problem, and then try to solve the simplified problem. If it still cannot be solved, you can consider simplifying it again or constantly simplifying it. This method is similar to iterative development. Here is an actual problem encountered by the wideunion team. Entity model Studio supports graphical UML modeling. A function is designed to check the syntax of the User-designed UML model before the code is generated, one of them is a ring that does not allow links. For example, the ring of the inheritance relationship: Class A inherits from Class B, Class B inherits from Class C, and class C inherits from Class. Obviously, this language check needs to find out all such links in the model. A more standardized description is to find all the rings in a directed graph.
 
In my learning, the teaching book only tells me how to judge whether a graph has a ring instead of finding all the rings. Therefore, this is beyond my knowledge scope. The first reaction is of course not, no. The first step is to construct several instances that constitute the ring and look at the graph to give yourself a perceptual knowledge. Then we can simplify the problem. Here there are two strategies to go through. The first is to assume there is a ring, and the second is to have a ring and directly form a ring, that is, two nodes direct to the other side. I took the first policy. Then improve the algorithm so that the algorithm can complete this function: as long as there is a ring in the figure, it will be able to be found out. In this way, the second step is taken to solve the problem and multiple loops are searched. This step is actually completed in two small steps. The first small step is to restrict the appearance of different edges and nodes in different rings. In other words, the new ring is composed of different directed edges between the same nodes. Then we can improve the algorithm to make sure that we can find multiple loops in the graph. After completing these steps, you can proceed to the last step. Any ring is composed of nodes and edges. The preceding steps implement all the rings composed of different edges in the same node. If this algorithm is abbreviated as, next, we need to change the node and execute algorithm A again. As a result, a problem that won't be solved will be solved by gradually simplifying it. Recently, when I was reading a book, I accidentally found that the algorithm for finding the Hamilton ring should also be of reference.
 
Sometimes the problem is solved due to lack of conditions or unclear conditions. At this time, there are two simple and practical methods to use. The first one is hypothesis. This method is often used in the logic issue. We can assume that condition A is true, or assume that the content of a is XX, to construct a clear known condition to help solve the problem. Another method is the inverse method that is very familiar. The nature of the anti-Evidence method is also a hypothesis, except that the conclusion is true. If the conclusion is true, then the dependent conditions must also be true. The direction for successfully constructing these conditions is usually the entrance and start point for solving the problem.
 
6. instance analysis
Next we will discuss how to use the content mentioned above to solve the problem through two representative examples or examples that can explain the problem.
 
I want to introduce a TV program that I accidentally saw. Around middle March, CCTV's world Geographic channel broadcast a program, one of which is about how a doctor injured a little boy. A simple description of the event is as follows:
Symptoms: the boy's back and big legs have about several hundred thorns, similar to the pompball.
Q: How can I pull these thorns out?
Method: 1. directly use a single device for pulling. The doctor's practice proves that the efficiency is extremely low and unacceptable.
2. Stick the thorn with tape paper. The results won't work either. The adhesive tape is not sticky enough and the thorn cannot be pulled out.
3. Use hair removal supplies and tape for women. Successful, very good results.
 
What is the correlation between this story and how our software engineers solve the problem? To put it simply, there are the following points:
1. The problems the doctor encounters are not a cure, but a repair to the human body. The same problems encountered by software engineers are not necessarily technical problems in a strict sense, but you need to solve them as long as you meet them. Whether or not you should at least try your best to solve the problem.
2. Tape usage. I believe that when the doctor was studying at school, he would never use tape as a tool to tell the students to treat the patients, but he did this in practice. For software engineers, the solution is often not based on Orthodox book knowledge. The so-called "left-side" is also required.
3. Use of hair removal products. This is obviously a highlight. If the use of tape is out of book knowledge, then the addition of hair removal products is a qualitative change in creative thinking. This is a reference for programmers. It requires them to have flexible and creative ways of thinking and abilities. Is 100% of your knowledge exhausted? Is it creative to use your knowledge instead of simply repeating it.
 
We can also raise a few more questions and examine several details. We can find that there is more content in this process to give us inspiration and reference.
1. The first method is the most orthodox method, but the efficiency is low. Why does it decide to give up?
Low program efficiency is a direct cause. But in general, there should be different solutions to the same problem. When I see this, the first response is whether it can improve the barrier action, or ask another doctor to do it. That would be different from the doctor's choice, so there is a different approach. When solving the actual problem, engineers should decide how to use it according to their own environment.
 
In addition, if the doctor finds that the efficiency is slow after trying, will it be very slow? I believe that the efficiency of different doctors varies. This shows that to solve the problem, we must give full play to our technical expertise and use our strengths to solve the problem.
 
2. Use of tape
The thorn is inserted into the body, and the thorn and the body form an angle, which leads to the fact that the thorn and the body surface are not parallel. So there will be some trouble when using tape. In addition, when the tape is torn off, the force and the direction of the thorn are not parallel. Obviously, this action will bring pain to the boy. These details tell us the specific implementation of the method, the engineer's own operation process is also very important. The operation skills can often make up for the shortcomings of the method, and may affect the effect of the method. When we decide whether to give up or use a method, we need to consider it based on the actual situation. So we can see that the use of tape indicates that the doctor was in trouble.
 
3. Use of hair removal Products
The doctor was inspired by casual chats with nurses and tried to use hair removal products. This tells us that the solution to the problem is often not from the main battlefield, but may be from the details of life. Another thing to note is that the negative impact of a creative method needs to be taken into account. This is very important and must be noted. For example, the use of hair removal products not only does not solve the problem, but brings more trouble, so how passive and embarrassing the Doctor's situation will be ?!
 
The second example is from the entity model studio product. This problem was encountered during the development of the sequence diagram. Let's briefly explain the background of the problem. When creating a time sequence diagram, you can drag the message with the mouse to change the position of the message and message lifeline in the time sequence diagram. This is a function that should be supported by all time sequence diagrams. Taking the sequence diagram in Visual Studio as an example, after you drag a message, the directly related and sequentially adjacent graphs are adjusted based on the new position of the dragged message, this ensures that the image is still in a reasonable position after dragging. This is called automatic adjustment. This is what we want to achieve. The following describes several key points in sequence.
 
1. Question proposal
If this function can be implemented, the user operation will be very convenient. Otherwise, the user must manually adjust each related image, which is very troublesome and has a poor experience. Therefore, the requirement for implementing this function is put forward for this purpose.
 
2. implementation risks and difficulties
Among the products we have tested, there are also products that do not implement this function. Therefore, at the strategic level, this automatic adjustment function is not necessary. In this way, our risk is much lower, because even if the implementation fails, the product is also feasible, and of course the best implementation is possible. The difficulty of implementing this function is that this is the first time we have tried to solve the automatic adjustment function of the Image Location. We have no knowledge of related algorithms and knowledge, and we have no relevant experience, so at the beginning, we didn't know how to solve this problem. But the reason for the final decision is that, apart from the low risk, I really want to or want to implement a function that Microsoft does very much, because I have failed two challenges in history, so this time I want to be ashamed.
 
3. Problem Analysis
The analysis of this problem begins with the time sequence diagram of Visual Studio. It repeatedly constructs different graphs, and then drag the message to investigate its behavior to find out the rule, I have an initial perceptual knowledge of this issue. Through this process, we realized that the design of the data structure needs to be changed. By observing these behavior manifestations, we also realized that we may need to use certain theorems and algorithms that we don't know. This is the most terrible thing. Further analysis was made to confirm this question. Practice shows that there can be a work und, which is a bit similar to Newton's definition of the limit with middle school knowledge. All are describing an unknown new content with known simple knowledge. In this process, observation and thinking play a very important role.
 
4. Simplified Problem
The problem is simplified in two steps. The first step is to try the simplest situation, then evaluate the implementation process and results, obtain information from feedback, and determine whether our understanding is correct, whether the difficulty is acceptable. The second step is to analyze different structures that may exist and process each structure in sequence to dismember the problem. Here we need to use some basic knowledge, such as the counting method.
 
Through the above steps, we can basically determine that the problem has changed from a problem that will not be solved to a problem that can be solved. Of course, the method is not the only one. I believe our colleagues will do better.
 
 
7. Last words
In general, solving the problem is very difficult and challenging. From the method and the way of thinking, I found that some simple methods and knowledge are very unexpected to play the main role. The difficulty is how to apply them. The thinking methods of doctors, mathematicians, Newton, and the writers of heaven give us the inspiration that the methods for solving problems and ways of thinking are interconnected, and there is no industry or field restrictions, the so-called stone in the mountains can attack the jade. We must learn to accumulate such experiences, absorb nutrition, enrich knowledge, and expand our thinking to improve our ability to analyze and solve problems. This phenomenon can be summarized in one sentence: Kung Fu beyond the question.
 
The process of solving problems is a painful and happy process. Engineers must have the courage and courage to face such challenges. You will suffer, but you will also have a happy experience. If you love one, let him solve the problem, because it is heaven. If you hate one, let him solve the problem, because it is hell. In view of some unpleasant behaviors, I hereby declare that if Dana needs to repost or modify any blog posts written by me, please obtain my permission first.
 
Well, this time I wrote it here. The topic of how to solve the problem is now a paragraph. Through this review, I have quite some experiences and have indeed gained some things. If you are interested in further communication, you can add my group: 244054966. This group is positioned as a startup and will not be used by new users. The other is: 231233168. This group has no restrictions. Add the message "csdn blog" to the group. In the next article, I will talk about the topic related to competence. The name is tentatively set to "Capacity Development.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.