Reflect on Smart Questions

01 Jan 1970

“Smart” and “Not-So-Smart” questions.

As software engineers, our journey is one of constant learning and growth, and asking questions is a cornerstone of this evolution. However, not all questions are created equal. Eric S. Raymond’s essay, “How To Ask Questions The Smart Way,” offers invaluable insights into crafting smart questions that lead to efficient and effective solutions. This essay demonstrates why smart questions are paramount for intelligent software engineers, examines two contrasting examples of questions from the standpoint of Raymond’s guidelines, analyzes the resultant responses, and reflects on the transformative potential of asking smart questions. In software engineering, asking smart questions is more than a mere interaction; it’s a strategic approach to problem solving. Smart questions cut through ambiguity, conveying precise issues with relevant context. By demonstrating our own attempts at solving the problem, we showcase respect for our peers’ expertise and time. Smart questions are a pathway to forming positive professional relationships, fostering an environment of collective learning, and arriving at accurate solutions. In software engineering, smart questions serve as the gateway to efficient and effective solutions. By following the principles laid out by Raymond, we position ourselves to receive valuable insights from our peers. Crafting smart questions is not just about problem solving; it’s about building connections, nurturing an environment of growth, and embodying the essence of a true learner. As we continue our journey as software engineers, let’s embrace the art of asking smart questions to unlock the full potential of our collective intelligence. After looking at numerous examples on StackOverflow, an example of a smart question is, “I was looking for the fastest way to pop count large arrays of data. I encountered a very weird effect: Changing the loop variable from unsigned to uint64_t made the performance drop by 50% on my PC.” First of all, the header this developer uses (Replacing a 32-bit loop counter with 64-bit introduces crazy performance deviations with _mm_popcnt_u64 on Intel CPUs) demonstrates a great example of a smart question. The developer is being specific on what part or thing is having the problem and a description of the part as well. An example of a “not smart question” is, “Why does my code does not work even though it is correct?” This question lacks specificity, context, and effort. It fails to adhere to Raymond’s advice, as it doesn’t convey the problem, technology stack, or research undertaken. It leaves potential responders struggling to provide meaningful assistance.

Here is a link to Smart Question Example.

Here is a link to NOT-SO-Smart Question Example