How to Ask a Question?

One of the most critical tools you will ever develop as a human being is the ability to formulate a question about a problem you're having. It's not as simple as it may sound.

This section is inspired by a course by Consensys Academy

Many people incorrectly assume that the most valuable piece of information to a question is its answer. Even more valuable in the long-term is the path taken to find the answer. If you can figure out that path, you not only solve your current problem, you also guarantee a better outcome for any problems you will encounter in the future.

When learning practically anything, formulating a question about your problem is especially helpful due to the massive amount of knowledge, advice, forums, and tutorials indexed online. This is not true for every question, of course, but you can get pretty far on your own with a few well-placed search terms.

Two crucial aspects of asking a question are

  • How to properly Google a problem

  • Once you've exhausted that option, how to formulate your question to someone else

How to Google

A lot of people don't fully recognize how much Googling even the most senior engineers do every day in their jobs. No one can remember everything, particularly with the rapid pace of development. As one commenter on Stack Overflow said:

I would rather be more knowledgeable at searching in general than knowledgeable about what I am searching for. If I am more efficient at searching, I can find anything. If I am more knowledgeable about a single subject, I am only good at searching within that subject.

This cannot be emphasized enough. Senior engineers often use search engines to find answers to their questions. If senior engineers do it, why wouldn't you?

Searching is so important that Google has developed their own search bar syntax you can leverage to get better results. Here are some tips for using Google effectively to find an answer to your problem.

Quotes

Putting search terms in quotes tells Google to only return results with that exact phrase in it. This is extremely helpful if you have a good error message with some noticeable keywords. If you're not getting good results without quotes, try it with quotes to narrow the scope.

Use this feature somewhat selectively, though. The more specific your search, the fewer results you'll get!

"google search operators"

site:

You can harness the algorithmic power of Google to execute a search within a single domain. This is best used if the website does not have a good internal search engine or there are multiple subdomains within a specific site.

An example of a poor internal search engine is the New York Times. To effectively search the New York Times website, you can simply Google

site:nytimes.com metaverse
site:reddit.com metaverse

Other Search Operators

Google also recognizes operators, symbols common to programming languages.

The asterisk * functions as a wildcard operator. This is useful for when you can't remember an entire phrase or a specific word. Substitute what you can't remember in a phrase with the *

"I * rock n roll"

The OR operator, also known as the pipe |, asks Google to return searches related to at least one of the search terms. It's similar to combining two separate searches

(solana OR ethereum) metaverse

The minus operator - can be used to exclude a term from your search results. Let's say you want to know about a certain term but no Wikipedia results, you could search for something like

what is metaverse -wikipedia

The range operators before: and after: allow you to search within a date range. To search for metaverse mentions from a certain date range, you can search

metaverse after:2000 before:2010

How to Ask for Help

At times, all the searching in the world doesn't get you the answers you need. Sometimes you're not getting the expected behavior from your computer, but there are no error messages, just your frustrated face. At that point, you need to ask someone for help.

The first thing to know about how to ask someone for help is when to ask someone for help. If you're totally lost, absolutely reach out for help. However, you should take some time and basic effort of deducing the problem on your own before coming to someone else for help. We do this for two reasons:

  • First, you want to be respectful of people's time. You should follow the steps above to search around on the internet, then you can let the person know what you've found.

  • Second, if you haven't done the basic Googling, that's exactly what the person you're reaching out to is going to do. Many people believe mentors or instructors wouldn't stoop to use a search engine but, spoiler alert, it's one of the most powerful tools. So rather than feeling dependent on someone else to do something well within your capacity, you should empower yourself to do the basic sleuthing first.

Context

This cannot be stressed enough: Context is an absolute, ultimate, don't-even-ask-unless-you-have-it requirement for asking a question. Since we are all virtual, no one can see your setup or be able to look at your computer themselves. As a result, we don't know what led you to have your problem. Also, people in different timezones might have an answer but won't be able to ask if you're already offline.

Question Template

While it may seem burdensome to fill out the following template, it ensures two things.

  • First, it helps you understand the nature of the problem you're asking about. Sometimes doing that can help us solve our own problems.

  • Second, it provides the valuable context mentioned above.

This increases our chances of finding an answer as it reduces the amount of time and effort needed to understand the basics of the situation. And it provides an asynchronous way of someone else understanding your problem so they can still try to help even if you're not online.

My question is

  1. Related to something technical I'm struggling with

  2. A concept I don't understand

1. For technical questions

  • What is your computer environment:

  • What OS version are you running? (Name and release version, i.e. MacOS Monterey, Windows 10)

  • If you're asking a question about a specific piece of software, what version are you running? (Typically, in desktop software, this is found in the "File > About" dropdown menu)

  • What is your issue?

    • Describe your problem in general terms.

    • What did you expect to happen?

    • What actually happened? Please give examples and provide screenshots of the error. Please copy the error message and provide it when asking the question.

    • Please provide the shortest amount of steps to reproduce your issue.

  • Steps already taken

    • What have you tried already?

    • Any promising Google or Stack Overflow results?

    • What do you think the problem might be?

2. For questions about concepts you don't understand:

  • What is the concept you have a question about? Is it in these docs, if so, where?

  • What about this concept do you understand? Are there concepts related to it that you do understand?

  • What about this concept don't you understand?

  • Using specific keywords, have you searched online or in the Discord chat?

  • Please link to any relevant documents. If you're asking about something not in these docs, please provide a link related to the concept.

Last updated