The idea of writing this article comes from recent work: YesWorktileIt is a difficult problem for me to upgrade and reconstruct the client and solve the existing accumulated bugs, because this is an old project a few years ago. Although there are not many functions and logic, there are some historical reasons. At present, the colleague in charge of the project has left his post, leaving only a few documents and materials. It can be said that the code is the only document; Second, the project is usedElectronI’m only at the entry-level level, so it will naturally cost me to complete this task. In the process of facing the above problems, I have encountered many difficulties and stepped on many pits. At present, the project has been completed. In view of the above difficulties, I talk about how to overcome and solve them in this “helpless” situation. I raise my process to a level and summarize it as the theme of this paper: as a programmer, how do you solve problems? People who have the ability to solve problems are scarce.
2、 Channels / means
1. Baidu or Google
Baidu and Google are one of the indispensable solutions to difficult and complicated problems. I believe this is also the most commonly used and subconscious method, “programming for Baidu / Google”, “CV engineer” and “crdu”. These labels are not in vain, but don’t think it’s very low-level. Baidu / Google is indeed a very efficient solution. Many times, Google takes five minutes, But I have to listen to “big guys” in some technology groups for two hours. I can only say Google yyds!
When Baidu and Google can’t solve it, then we need other means: find officials and communities.
2.1 browsing official documents
Turning over documents is something many small partners don’t want to do, especially when they encounter non Chinese documents. Fortunately, electron supports multilingualism, but the official documents do have the highest trust and good efficiency. When they are confused, they turn over documents more. Every time they read carefully, they can always find the details ignored before, Often these details can help you solve problems.
2.2 issue of project hosting platform
The mainstream hosting project platforms include GitHub, gitee, etc. they all have a function called issue, which is specially set up for developers to ask bugs and questions.
After I upgraded the latest version of electron, many functions were unavailable, which must be zero tolerance in the project, and this should belong to the problem of partial details. At that time, it was difficult to solve, and each problem took several days. I was very anxious. In this scenario, raising issue in GitHub is one of my rare methods (I almost worked hard because of Google and document before). Fortunately, the official was more active, and the problem was straight to the point. They helped me solve it enthusiastically and quickly. At that time, the first thing I did at work every day was to see whether my email received an official reply.
2.3 official Community
Some well-known open source technologies will have communities. Communities usually have communication methods, some of which are active and some are not. However, when there is nothing to do, this is also a way.
At first, I often raised the issue in GitHub, but because the official is from other countries and the time zone is different, most of me ask questions on the first day and receive the answer the next night. Sometimes when the official is busy and can’t spare energy, I can’t even get a reply for several days. I basically need to wait for four or five days on weekends, which really hurts me, But the authorities seem to understand my dilemma and give another channel in one communication:community。 The community page provides some ways to solve problems:1. AccessionDiscordServer 2. Electron fiddle (tool for providing minimum testcase demo) 3. Stack overflow,Unconsciously, there was more hope. Later, in the process of solving the problem, discipline became a very important communication tool. There was a separate server of electron in discipline, which could communicate in real time, which greatly saved me the time to solve the problem.
3. Q & a community
3.1 Stack Overflow
In the process of waiting for the official reply, I was not idle. I also went to some Q & A communities to ask questions, hoping to get help from others. The first Q & a community I found wasstack overflow, because I have found the answer on this platform many times, and the technology stack is veryrich，The quality of Q & A is very high，The same is true of recovery efficiencyFirst of all, in addition, there are other excellent Q & A communities and blog platforms, so I won’t list them one by one.
3.2 Technical Forum
For the technology forum, it’s best to find the technology stack forum closest to the problem. The closer you get, the easier it is to get the answer, and be active, a post in many communities was silent for a long time. When others answered, the cauliflower was also cold.
4. Consulting professionals
If the above problems have not been solved, it is also a way to find the help of colleagues, friends, technical groups and other bigwigs around. They are good at benefiting the resources around them, but it should be noted that:
- Don’t ask questions when you encounter problems. One is not to rely on others, the other is always troublesome. Others owe human kindness, and not everyone is unreserved and willing to help solve them.
- Pay attention to the attitude and way of asking people, and be sure to ask them with quality. You have carefully considered this question. Don’t ask some questions. They are everywhere on the Internet, which may make people feel disrespectful.
- Carefully summarize the description of your problem so that others can understand it. Sometimes online communication is not as convenient as offline communication, so you need to briefly and accurately describe your problem.
5. Query books
When you are at a loss for skills, reading books may really help you solve problems,In terms of book selection, try to read the newly published books, especially the technical framework. It is constantly changing. The versions are inconsistent. The problems and answers encountered are not necessarily applicable. Generally speaking, reading to solve problems is not recommended. It is considered time-consuming and inconvenient. Not all companies allow you to read books during working hours, Reading is very good as learning and knowledge accumulation. Books are relatively systematic, and paper things also have a good effect on absorption.
When solving electron, I also read a related book, electron development practice. When I read this book, it is not entirely to solve problems. 60% of it is my own interest + learning knowledge, but this book has really helped me a lot. Interestingly, when I see a new feature in the book, I can’t help looking for whether this feature is used in the project, If it doesn’t work, can I use this feature to do something? After reading the code unknowingly, we all know that it’s hard to read the code. Similarly, I saw something I didn’t understand in the process of reading the code, and went to the book to see if there was any explanation in the book. Unexpectedly, I unknowingly did more than half of the project.
Based on the above methods, give some warm tips:
- Learn to summarize problems. I don’t know which celebrity said: if you ask the right question, you will solve most of the problems (completely don’t remember). Many people are also using search engines, but some can’t find the answer.
- To master some common English words and have a good translation software, it can improve your efficiency of reading documents and facilitate communication with foreigners.
- When asking questions to officials, you should provide complete information as much as possible. It is best to have a runnable and small testcase demo.
- When you ask questions in a Q & a community, you should pay attention to the specification and the code formatting of stack overflow (it took several hours to ask questions for the first time)
- Ask people to pay attention to art (see the chapter “consulting professionals” in the article for details)
The art of asking questions, and finally give you some related articles:
🌟 The art of answering in the technical Q & a community?
🌟 How to ask good questions to teachers?