
Tell me if this sounds familiar: you’re stuck on a bug in your code, and you’ve tried Googling the solution, but to no avail because your code still won’t run. Even after consulting Claude or ChatGPT, you still can’t get it to run. Your next step would be to ask one of your friends, if not, post your problem on an online forum. In order to get a good answer to your problem, this is where you need to know how to ask a smart question.
As a software engineer, knowing how to ask a question is an important skill to learn. Being able to ask smart questions helps you get better answers to your problems, so you can get your code working faster. Smart questions are clear, concise, and are easy to understand. If a question is vague (big blob of code with little to no explanation), it’s less likely that people will help to answer it because they don’t know what or where the actual problem is. Smart questions are much easier to work with, so your classmate/coworker/online peer will have a clearer idea on how to help you answer it. Smart questions promote clear communication, which is essential when working with others collaboratively on building projects.
One example of a smart question is this StackOverflow question from over 16 years ago, titled “A Question on Smart Pointers and Their Inevitable Determinism.” The user that posted this needed help developing an API in C++ with smart pointers. He clearly stated the context of his problem with using smart pointers, as their automatic garbage collection takes control away from the programmer, which can introduce some level of indeterminism. He provided useful code snippets that display an example of the problem he’s trying to solve. Finally, he explicitly stated the kind of help he needed, which was how someone else would design this example system with smart pointers.
Because of the user’s well-asked question, he got a really good answer from someone else. The reply detailed how he should handle designing the system, provided sample code and sample results, and even diagrams for the system design.
Link to “A Question on Smart Pointers and Their Inevitable Determinism”
One example of a not-so-smart question is this StackOverflow question from 3 years ago that’s titled “I don’t know where to start debugging my code.” This user was trying to make a number-guessing game, but it wasn’t returning any code. First of all, the question title is very vague, and it doesn’t tell anything about the actual problem. Another reason why this question is not-so-smart is because the user just posted his whole code file in the post, which is malpractice because it doesn’t specify where the problem in their code is; this makes it more difficult for another user who would want to help them.
Someone did answer this question, but this user was more terse in their answer than the smart question from the previous section. They simply said “You have several errors in your code,” and that they were mostly syntactic errors. However, this post was subsequently closed because StackOverflow deemed that it needed more detail or clarity.
Link to “I don’t where to start debugging my code”
The main thing that I learned from looking at questions is that it is important to know how to ask a question in the clearest way possible. People are less likely to respond, or give favorable responses, to your question if you aren’t clear about your problem and what you are trying to solve. I also learned that before immediately trying to ask a question, you should use the tools at your disposal (i.e. Google, documentation, generative AI, AI coding assistant). You can’t expect other people to help you if you don’t even try to help yourself.