In order to learn a subject, you must find some repository that contains information on said subject. This could take the shape of a professor giving a lecture, or simply an online database such as Wikipedia. In all such cases you as the learner are going to the learned and extracting information. Many times however, the information that we manage to extract will be directly related to the questions we ask. But what are the “right” questions? How do you determine the “right” questions?
Effort begets Effort
It all comes down to a single, simple phrase, “do the due diligence”. What does this mean? It means YOU as an individual need to put in some work. A smart question does not occur the moment you have a problem, rather a smart question appears after you have gotten stuck AND you done all you can to solve the problem on your own. Why is this important? If you get stuck and put in no effort to find the solution yourself and are handed the answer, chances are you will be asking that same question again at a later date. You must put in the work specifically because by putting in the work you will get a better understanding of the problem, and you will be able to hone in on the exact part that you are misunderstanding. If you don’t know what is going wrong, and where it is going wrong the problem becomes much broader than a simple explanation.
Example of a good question
https://stackoverflow.com/questions/54120862/does-the-c-standard-allow-for-an-uninitialized-bool-to-crash-a-program
The above link is an example of a “smart” question from stack overflow. When you examine the question, the first thing you may think is “wow this guy is providing a lot of information”. Such A thought would be well placed as the asker of the question provides as much context and relevant information as possible. This allows other users who may be more skilled to see exactly what you are doing and why you are doing it and then be able to provide much more pertinent help to your current situation, rather than a broader, vaguer answer that is closer to a guess than actual trouble shooting.
Example of a bad question
https://stackoverflow.com/questions/10464547/how-to-solve-java-lang-nullpointerexception-error/10464596
As pointed out by stack overflow itself, this question has already been asked and answered on the site. It would have taken far less time and effort on everyone’s part had the asker simply gone to the previously answered question. Aditionally, by not submitting any code with the question, the asker limits how precise the answerer can be because he doesn’t know exactly whats going on with your code, they can simply give an educated guess. While this works on simple problems such as the one shown, the harder the question is, the more information will be necessary to give an adequate answer.