DEV Community

Cover image for The Art of Asking Questions
Yunus Emre Altanay
Yunus Emre Altanay

Posted on

The Art of Asking Questions

Especially if you have just started software and I can clearly say that even if you haven't started yet, you have asked or wanted to ask hundreds of questions to people working in the software industry. Although I guess what your questions are, in this article, instead of answering these questions, I will try to explain how you can ask effective questions and increase your chances of getting an answer. In addition, although you may not realize it in the article, "asking a question" is a much more important and serious issue than you might imagine. That's why I recommend that you read this article and the "question guide" that I will share at the end, very seriously and carefully.

I said increasing your odds of getting an answer because asking the right question can really increase your odds of getting an answer. Also, this is a possibility because there is no rule that you will get answers to all your questions. People may want to spare their precious time to help you, or they may easily choose not to help you for hundreds of reasons, such as a small word mistake in your question, your reactions to previous answers, your contribution to the community, or even for no reason.

No matter what level of knowledge you have, you will ask questions of others. As your experience in software increases, you will witness a serious change in two things.

  1. The depth and quality of the questions you ask will increase.
  2. You will ask fewer questions and have the ability to find answers yourself faster.

The questions of someone who has not yet started the software are usually as follows;

Where should I start? Which language should I learn? Can I find a job? I went to school, can I find a job? Which language can I find a job faster if I learn? Which language should I start with? I learned X language, what should I do now? Can I learn by myself? Which course should I go to?

The most important skill you need to acquire and develop before asking questions is the ability to research. All of these questions you see above have been asked millions of times and answered millions of times. Before you wait for someone to take the time to answer your question, don't stop, take time for yourself and see if your question really has an answer. Especially if you are planning to enter the sector or if you have just learned the software, that bright question that comes to your mind is very big, but most likely, thousands of people have thought of it before and I am sure it has been answered. So use Google and search.

If you start to develop your research skills from the very first levels, you will find that you are very comfortable as an experienced software developer. Use the internet and rip the information out of her heart!

After showing some professional progress, your questions focus more on technical issues. Most of the technical questions are also probably already answered. However, you may not be able to find the answer because it does not fit with your current scenario. As time progresses, you will easily find how a similar technical question has been answered regardless of your scenario, but it may be difficult to achieve at first. Because you don't have the experience to visualize how many different scenarios a technical application or piece of code can work in yet.

Then you will ask questions, but where? How? to who?

There are software groups on social media, whatsapp or telegram groups, discord channels, and many channels where you can get help with software. Search, find and join these groups related to your language or technology.

You've joined these groups, but don't see the people here as people who dedicate all their time to helping you and others like you, eagerly waiting in line to answer your questions. Everyone is there to help each other and get help when needed someday. Having to learn new things all the time is a must for software and we software developers love to be wherever we can learn new things.

So I want to remind you again, SEARCH before asking a question. Read the documents, see other answers, go through local and foreign sources. I'll recommend a very simple pattern so you can ask your question when you're sure you won't be able to find it through research.

But first, let me convince you why you need this pattern. Before asking a question, you should try to foresee the size of the area covered by that question. For example;

“I want to design a user login system, how do I do it? Can you help me?"

If this question is not a job offer, that is, I want to have a user login system in my project, I am open to your offers, bravo, you asked your first bad question. The scope of your question is so great at first glance; What language, what kind of architecture? Are you designing an API? Is this a service? What do you mean by login? Token? what? Lots and lots of questions. So you askedThe long question gave rise to huge questions. Answering these questions is not something that will happen right away. People will either make fun of you, say a few annoying things, or post an instructional video as broad as the question you ask.

The question you will ask should not be one that you can find the answer to with your education and research. No one can give you a huge education there. It cannot discover what the structure you want to build is and design an answer accordingly. So first make sure your question has a small scope and can be answered right there.

You have determined the scope of your question, but you are still far from asking it correctly.

“I want to post X information, but my Y function is not working, what can I do?”

I don't know? X information Y function, what does it do, what did you write, what is this program? I don't know what you intend to do...

While people are asking questions, they may fall into the misconception that they know the content of the code, so others can understand it. No matter how experienced he is, no one can give an answer to a structure whose contents he does not know.

Here, I will share a simple pattern with you to avoid this mistake. This pattern is the first thing I teach my students when they ask me questions. If you ask your questions through this pattern, your probability of getting an answer increases.

  1. What Do You Want To Do?

  2. What did you do?

  3. What happened?

  4. What did you expect to happen?

It's the perfect template for you to place your question in and divide it into. Before you ask your question, if you answer these questions, fill them in, and paste examples from the codes you have written, there is almost no chance that you will not get an answer to that question. Now let's fit the above question into this pattern.

What I want to do: I want to send the X information from the form filled by the user to another service via Post.
What I did: I wrote a method called Y for this and as you can see below, I think it looks right.
What happened: the information does not go, I guess the method does not work… XX error appears on the console.
What did you expect to happen: The information from the X form should have been sent to the service I wanted via this method when the submit button was pressed.
The question has become much clearer. In fact, the answer to this imaginary question has started to form in my head, I think you wrote a method, but it seems like you forgot to trigger it somewhere.

What inexperience! While I pride myself on answering the question you asked in my own fantasy world, I say you should read the following guide.

http://www.catb.org/~esr/faqs/smart-questions.html

Asking the right question is the key to getting the right answer…

Top comments (0)