On so-called "smart" questions and elitism

09 Sep 2021

I don’t often find myself asking questions. It’s not that I don’t see the value in it, in fact I would not be able to get nearly as much done if it weren’t for the wealth of questions and answers available on the internet. I rarely ask questions because I usually find the answer after a few searches, and if I still can’t find the answer, then the problem poses an interesting challenge which I take pleasure in solving for myself. I recognize that people often do not have the desire or the time to solve their own problems, and I do not look down on anyone for seeking help from others.

What is effective communication?

I do pride myself on my communication skills, however, and I take issue with people speaking prescriptively on effective communication, expecially when they are speaking for a broader community. Communication is an exercise in mutual understanding. If I have an idea or concept that I wish to impart onto one or more people, how clearly I am able to accurately convey my thoughts determines how effectively I’m communicating. On the surface, this seems incontrovertible, but like most obvious truths, there’s more than meets the eye. In the realm of art, a great deal has been said about the different impressions made on different people by a single artwork. A piece of art may communicate a great deal, but it says something different to each and every viewer. The reason for this is that communication is always a two-way street. It is with that in mind that I would like to examine How To Ask Questions The Smart Way by Eric Steven Raymond.

Smart questions

I’m not going to do a harsh critique of the content his essay - it serves its purpose well, at least on the surface. He very clearly breaks down the expectations of him and the community for which he claims to speak with regard to technical questions. Given how widely this article has been shared, I imagine that a great many people do agree that he speaks for them, and he appears to be an active member of various online communities.

It’s the entire premise that I take issue with. The incredibly specific and detailed answer given to a very broad and open-ended question. By specifying criteria that can be checked off on a list, Raymond seems to believe that he’s solved the problem of effective communication. This is an issue that I have with prescriptivism in general, especially when it comes to issues with language or communication.

People answering questions do not necessarily adhere to his style guide, nor do we always have the same pet peeves or standards of etiquitte. And things have moved on beyond Raymond and his ilk. As the internet has become nearly ubiquitous, at least in the more developed and commercialized parts of the world, self-ascribed “hackers” are not on top of any real heirarchy. Ascribing the quality of “ineffective” to questions that do not fit his criteria is not a call that I’m willing to stand by.

Ineffective or doubly effective?

An example of a so-called “ineffective” question might be the following (from Stack Overflow):

Are multi-line strings allowed in JSON?

Is it possible to have multi-line strings in JSON?

It’s mostly for visual comfort so I suppose I can just turn word wrap on in my editor, but I’m just kinda curious.

I’m writing some data files in JSON format and would like to have some really long string values split over multiple lines. Using python’s JSON module I get a whole lot of errors, whether I use \ or \n as an escape.

Perhaps it seems simple and straightforward at first, but it is apparently unclear exactly what is being asked here. The most upvoted answers seem to be split between whether the OP is asking about how to add line continuation characters in JSON (like \ in Python or ... in MATLAB), and how to properly include the newline character \n into a JSON string so that it is correctly parsed by the Python interpreter.

I find this question extremely interesting because it asks one question ineffectively but answers two. People come to this question seeking answers for one of the two and find the answer to both, because it manages to be vague in just the right way.

Simply seeking answers

Ok, so maybe this is all irrelevant to you. You’re just looking for tips on how to get a satisfying answer to your problem as quickly as possible. In that case, Raymond’s article certainly provides a wealth of useful information. But his tone is dangerous, and his perpective is part of a toxic elitist culture, that permeates not just the internet, but society at large. Ask stupid questions, and get interesting answers. Break the rules. We are all a part of the internet, and we all get a say in what effective communication looks like. Language evolves, and what worked today might yield different results tomorrow.

Here’s an example of a question that I believe Raymond might like (from Stack Overflow):

How do I undo the most recent local commits in Git?

I accidentally committed the wrong files to Git, but didn’t push the commit to the server yet.

How can I undo those commits from the local repository?

The only way seems to be to copy the edits in some kind of GUI text editor, then wipe the whole local clone, then re-clone the repository, then re-applying the edits. However,

This can cause data loss. It’s very hard to do this when only an accidental git commit was run. Is there a better way?

It’s clear, concise, and describes the OP’s understanding of the process as well as what they tried. It’s one of the most upvoted comments on Stack Overflow. It’s boring.

My advice

My advice to you if you’re asking questions would be to say the first thing that comes to mind. Provide as much information as you think is necessary. Express yourself. People will take it as they will. If it gets downvoted, then try a different approach. Experiment. Communication isn’t going to be solved by making and following a bunch of rules. And above all else, speak creatively and listen intently.