When Smart Isn't So Smart

10 Sep 2024

The “Hacker” Way

What constitutes a “smart” and “not so smart” question? Well, according to the condescending ramblings of Eric Raymond in his article “How to Ask Questions the Smart Way”, anyone who doesn’t know the difference is a “time sink,” draining the precious time of someone like him—a self-described “hacker.” That attitude might not sit well with certain people, but Raymond dismisses such concerns by advising them to “check their assumptions.” However, despite reeking of elitism and superiority, Raymond’s advice does provide some useful information, which I will summarize by inspecting two posts on StackOverflow.

Simple and Effective

First, let’s examine the “smart” question, which can be found here. Asked by the user Elias Zamaria, this seemingly simple question seeks to learn how to add commas as thousands separators in a number like “1,234,567.” Zamaria makes his objective immediately clear with the title: “How to format a number with commas as thousands separators?” StackOverflow’s tags indicate the programming language, which works for this straightforward problem, but more detail on the environment and JavaScript version would make the question even better. Zamaria also provides an example of both his desired output and what he has already tried, showing that he’s made an effort to solve the problem himself. While he could improve by referencing any research or documentation he has consulted, he’s primarily seeking improvement on his method rather than a direct solution. By specifying additional context, like the fact that he doesn’t need locale-specific formatting, and maintaining a polite tone, Zamaria asks a “smart” question according to Raymond’s standards.

Missing the Mark

Now, let’s turn to the “not so smart” question, which is accessible here. The user, Ilya Chernomordik, provides an unclear title: “Visual Studio Code shows wrong typescript errors that disappear after file reopening.” This title doesn’t give the reader enough detail, leaving them wondering what specific issue Chernomordik is facing and what outcome he’s hoping to achieve. A more useful title could have been: “Why is VSC Version x.x Showing Parsing Errors in TypeScript Version x.x that Disappear After Reopening the File?” Furthermore, Chernomordik doesn’t make an effort to diagnose the issue. He provides only a screenshot without mentioning critical details like the version of VSCode, TypeScript, or any relevant plugins. Instead of investigating potential causes, the user merely reports the symptoms, which doesn’t invite much engagement from the community. Informal phrasing such as “strange typescript errors to me that are not real” also detracts from the seriousness of the question, likely dissuading potential helpers.

Beyond “Smart”

In the end, as students of software engineering with generally little experience, I believe that certain aspects of asking “smart” questions are more accessible to us: being polite, being precise, showing effort to solve the problem first, and describing the goal clearly. However, Raymond’s often pedantic and belligerent writing could easily put off a newbie, ultimately serving to gate-keep the profession. Making mistakes—even in the way we ask questions—does not justify an onslaught of insults. Perhaps what’s truly “smart” is recognizing that one doesn’t always need to be “smart” to seek help or make progress; one need simply be brave enough to ask.