Recently added a lot of new friends, most of them are beginner developers. Most of them are junior developers, and they all want to join the developer group to exchange and discuss the problems they usually encounter. New friends have this idea is actually quite good, but many people do not seem to know how to effectively put forward their own problems, they often a picture or a sentence to the group thrown, and hope that a group of friends to give their own answers.
In most cases, these questions will be dropped into the sea, and in a few cases, some enthusiastic group members will point out that the description of their questions is not effective enough, and then guide them to improve their questions. However, with more and more newcomers, this kind of newbie question seems to be always inundated in the group, and slowly, no one is willing to give newcomers an answer anymore.
Let's take another example: I am a technical group group leader, saw a newbie raised a problem that I do not know the head and tail, I was enthusiastic at first to teach him to improve the description of the problem, and patiently guide him to solve the problem, and then he did not say a word disappeared in the group, and finally I found that he seemed to get the answer to the problem after the group. How do you think I feel and will I be willing to help these newbies in the future?
The above example is a bit extreme, but I would like to express that the questioner, as the one who was helped, has to be polite to the person who helped him/her. As a developer, I'm selfless and don't expect anything in return, but I didn't expect you to be so heartless!
Since the dawn of human society, the human condition has abounded.
Well, with that out of the way, my goal in writing this article is to show developers in the it space who are not good at asking questions to others how to be an elegant (polite and effective) questioner. Next, I'm going to explain why you need to ask questions, how to solve your problems, and how to ask questions politely and effectively.
Why ask questions?
Since joining the nine-year compulsory education, teachers usually ask the students at the end of the class if they have any questions.
When studying, some students may not be able to ask a question a year, while others ask questions in almost every class, and years later, most of those who ask more questions are better off than those who don't ask questions.
Before we begin to learn how to ask questions, we need to understand why asking questions is so important.
- Accelerated learning process:: Complex concepts and techniques can be understood more quickly by asking the right questions.
- Addressing practical issues: When faced with a technical problem, effective questioning can help you find a solution faster.
- Establishment of professional networks: High-quality questions can attract the attention of your peers and help you build a professional network.
- Improvement of communication skills:: Learn to articulate technical issues clearly, a skill that is critical in a professional career.
Asking questions is not only to solve problems, but also to show your professionalism as well as communication skills, no one will come forward to ask you if you don't ask! Here is a quote for you "Brave people enjoy the world first".
Attempts at self-resolution
Before seeking help from others, it is best to first search online, it is no exaggeration to say that most people in the field of it encountered problems in the Internet have ready-made answers. It's just that you may not have mastered the correct search method, resulting in not getting the answers you want.
So before we can all solve our own problems, I've got to give you the lowdown on how to search for problems!
How to search for questions
Internet search engine
The most commonly used in China is Baidu, most people know the existence of Baidu, that why in the console after getting a string of errors, do not want to feed Baidu, but threw to the group a large string of error log?Conditional developers can also use Google with the English search, the search results will be more accurate.
official document
Most popular languages, frameworks, and middleware provide official documentation. The official website is usually the most authoritative and up-to-date source of information, and many projects have FAQ sections on their official websites that contain the most frequently asked questions and answers. Browsing through these will solve most of your questions.
Browse related forums and communities
Platforms such as , GitHub Issues, Reddit, etc. may already have people asking similar questions. If so, then the comments section often contains ready-made answers.
Usually I prioritize my search questions by search engine -> official documentation -> browsing related forums and communities. Most questions can be answered in the first two steps. It is only when I encounter some rare errors in frameworks and middleware that I need to look in the Github Issues section to see if a similar problem has already been solved and if there is a solution.
Reproducing and analyzing problems
recurrence problem
First check if it's a must-have problem or an occasional problem, this helps save time when someone else helps you with the problem.
analysis
Look for error messages, logs, stack traces, and other information. The error messages returned by most frameworks and languages actually tell you why the problem occurred. It's just that modern operating systems are foreign in origin, and the keywords for most programming languages are in English. This is really an obstacle for a Chinese novice to learn a programming language, compared to the next-door San, who has English as an official language, and is really a bit more advantageous than the domestic people in the field of it.
Fortunately, nowadays there are a variety of translation software, for most of the programming language errors, you only need to move the hands of this paragraph of the English translation to know what the root cause of the problem, and then contact the code to see where the problem is.
Elegant questioning
When you can't solve a problem by yourself, it's time to ask for help. Although I suggest that you try to solve your own problems if you can, I suggest that you set an end time for yourself, and if you can't solve it after that time or if the cost of doing so is huge, then you should just go and ask for external help, and there is no shame in that, because you've put in the effort too.
Valid questions
Who doesn't know how to ask a question, but let's be clear, you asked the question, and of course you know the context, the context, the code, etc., in which the question was asked. But what about the person being asked the question, does he know about it? Have you considered that the questioner can understand your question in the first place? Is it necessary for the person being asked to answer questions that you don't know the beginning and the end of, or that are described in a single sentence?
Next I'll show you what works and what doesn't through two real-life examples.
Invalid question 1
This is a question posted by a friend in the group one day, which came up with a classic English log, and then asked how to solve it. To be honest, I ignore this kind of question by default, it doesn't inspire me to help others. Let me tell you why.
- Background: In what environment is this log being generated? Is it Java, Javascript, Python, or a browser?
- Provide Context : Explain what you are trying to accomplish and where you ran into problems.
- Reproducible code: provide minimal code sufficient to reproduce the problem.
- Polite language: You have to be polite when asking for help. Not a log line that goes on and on about how to fix it. Why should anyone give you a solution? You don't even have basic manners.
After reading the reason why I ignore, you should be able to understand me. So how to turn this invalid problem into a valid one? I used the search engine to search this log directly after getting the context of the problem and the reproduction code (this problem has been encountered by others, and provide a solution...). After searching the log directly with a search engine, I got the context of the problem and the reproduction code (this problem has already been encountered by others and provided a solution.
Valid questions 1
Versus Invalid Question 1 Can you see any changes to the question I posed?
- Background of the problem: Front-end developers are reporting errors in the browser chrome console.
- Provide context: Clicking on a radio box gives an error when using the radio box component el-radio-gruop provided by element ui.
- Reproducible code: the problem code has been provided.
- Polite words: the first words at the beginning are bigots, full of curiosity.
Invalid question 2
This is a picture sent by a group friend directly at me in the technical group on a certain day, asking me what is the account password of xxl-job backend, after I carefully looked at the picture he sent, I thought that the login box of xxl-job backend is not so long as in his picture! How can I reply to you? The conversation was more like an encrypted call.
In this question, the questioner started out missing the context of the problem, the context, the last sentence I know what the problem is, the end of the topic closed the scene, for him the equivalent of their own flash of insight, a quick solution to the problem, but for those who want to help him solve the problem can only be said to be inexplicable.
After trying to understand the background and context of his question, I came to the conclusion that he might have mistaken the address of the xxl-job backend with that of the other system backend, and when logging into the backend of the other system, he couldn't log in by entering the password of the xxl-job backend, which is in fact an oops. So can this kind of oops problem be turned into a valid problem so that people don't feel puzzled?
Valid questions 2
Versus null question 2, the following changes were made.
- Background: xxl-job background login failure
- Provide context: backend addresshttp://localhost:8081/login, use xxl-job default account password admin/123456
- Reproducible code: this issue is not needed for now.
- Politely ask for advice: the first words at the beginning are bigots, full of curiosity.
summarize
OK, this article ends here, for how to do an elegant questioner on this topic, I'll give you a summary.
- Don't panic when you have a question, use search engines, official documentation, and technical forum communities such as Github to find out if the answer is readily available.
- Analyze the cause of the problem, analyze error logs when encountering errors, contact the code, try to locate the cause of the problem, and self-solve.
- Ask questions with background and contextual information to make it easier for others to understand, be polite enough to ask for help, and don't be stingy with the word thank you.
If you think this article is well written, you can follow my public number [programmer wayn], the first time to update more technical dry goods, project teaching, experience sharing articles.