Walking the Tightrope of Asking “Smart” Questions

27 Jan 2022

Balancing on the Tightrope

When I first decided on pursuing a career in the computer science field I thought to myself: “Man, I guess I’m going to be stuck behind a computer all day for the rest of my life.” I’ve come to realize that having sufficient communication skills is crucial to anyone in this field. You don’t code in a vacuum after all! If one is to be smart and efficient as a programmer they must learn how to communicate well and ask “smart questions”. What’s the best way to ask for help? When should someone ask for help? These questions have recently plagued my mind as I learn more in my coding classes and find myself struggling to understand certain concepts. And when it comes to asking for help on a public forum, it takes a lot to do it right and do it well. It is very easy to find yourself wobbling back and forth on the tightrope of asking smart questions. Asking a smart question in the right way should be thought-provoking, teach yourself and others, and help develop your understanding as a programmer. An un-smart question or question asked in the wrong way will waste other people’s precious time and not help you grow and develop. And trust me, taking the time to know the difference could save your life as a programmer.

How to Not Fall off the Tightrope

The Do’s of Asking “Smart” Questions

First off, here are some basic do’s on asking smart questions:

DO perform an adequate amount of research before asking your question. Don’t immediately jump onto a public forum and ask for help the second you don’t understand something. Look up your problem on Google, look at other forums, phone a friend for help, and if all else fails, THEN you post your question.

DO make it clear that you’re willing to actively participate in solving the problem. Be clear that you need someone to point you in the right direction, not hand you the answer on a silver platter because if you do, you definitely won’t get the answer you want or need.

DO be precise and informative when asking your question and answering any possible follow-up questions. Describe the diagnostic steps you took to debug your code, what research you did (see the first DO), and don’t dump huge chunks of code for people to squint at. Make a small test case by taking the chunk that doesn’t work and providing only the necessary code needed for it to compile.

An Example of a Smart Question

Here is a link to the sample from StackOverflow: link. This post starts with their situation. They ran some JavaScript code through Crockford’s JSLint and it gave them an error: Missing “use strict” statement. They did research and found they needed to add “use strict” to their code. They added it and the error stopped but they searched on Google and couldn’t find out the usage of “use strict” and questioned its relevance. This is an excellent example of a smart question. This person clearly did adequate amounts of research before asking the question, showed they were willing to be active in the finding solution process and was precise and informative on what they needed help with. The language used was respectful and used proper grammar and spelling. The thing that really makes this question “smart” is that it helps the entire community deepen their understanding. This question was posted 12 years ago so there are other resources available now on “use strict” but now, this post is a resource in itself. This post is one of the top results when typing “use strict” in Google. Anyone who wants to know more about it can scroll through the many helpful answers posted to the question. The answers to this post have very detailed explanations and the top answer has even been updated in 2021.

How to Fall off the Tightrope

The Don’ts of Asking “Smart” Questions

Now, here are some things you should never do:

DON’T be rude. The people you are asking to help you find a solution to your problem would be taking precious time out of their day to help you out. The least you can do is say ‘please’ and ‘thank you’. If your question isn’t answered or you are given an unsatisfactory answer, don’t whine or complain or decide to re-post your question on multiple forums and bother other people.

DON’T be lazy when asking your question. Take the time to make sure you used proper grammar, post your question in the appropriate forum, and use a good header. Don’t put in all caps: ‘NEED HELP’ or beg for help in the header. A good way to format your question is (what is not working) - (how it’s not working) Another thing to note is that once your question is answered, add something to the tagline or header that indicates the problem was solved so others can see it.

DON’T not do all the DOs mentioned above.

An Example of a Not Smart Question

Here is a link to the sample from StackOverflow: link. First off, the header of the question is: “django page not found help me”. Not only does this not effectively explain the problem, but it also comes across as needy and not intellectual. Their post has the code for the URL in their project and then the code for the URL in their web application. They then proceed to ask: “why visit http://127.0.0.1:8000/register/ page not found 404 ????? help me”. Not only is there bad grammar and a clear indication of begging for help, but you can also tell that this person is looking for the answer to be spoon-fed to them. Their language is clearly rude and lazy. But, the most “un-smart” thing about the way this person asked their question is that they asked it in the first place. By typing “django page not found” into Google, I found several other answered forums asking the same question as well as several videos on the “page not found 404 error” they were experiencing. And this question was posted only 5 months ago. There were plenty of other resources available at the time. This is why it should come as no surprise that this post had 0 answers given.

Walking the Tightrope Together

As easy as it sounds, asking a smart question isn’t as simple as posting a question on a public forum and waiting for the answers to roll in. Up until recently, I thought that asking a smart question was about asking a group of strangers to help you with your code. I’ve come to realize it’s about asking a smart question in order to contribute to the community’s learning as a whole. Thinking about it that way, when asking a question, it is your responsibility as an active member of the community to ask it the smart way. As I continue to learn and grow as a developer, I’ll do my best to bear this responsibility with all of this in mind. After all, we’re all walking on the tightrope of asking smart questions together.