What I've learnt: Asking Questions
Tags: devjournal, learning, career, dev
Published: 2020-12-02 19:44:43

We all know that being in the technology field requires constant learning. In order to pick up new concepts, we study about it, get our hands dirty by implementing it in projects and at some point scrambling to find answers on StackOverflow on issues we encountered. 

By asking questions, we learn to how clear up confusions and ambiguities. Additionally, we get a validation of whether our understanding is correct or not.

From my personal experience, especially in the beginning of my career. I'm always hesitant to ask questions due to this mindset:
 
> Ask a stupid question and you get a stupid answer.

Of course, I learned my lesson the hard way, perhaps it's a story for a different time. BUT, in reality:

> There are no stupid questions.

Over time, I realise asking question is like a unique skill. It's difficult especially when you don't even know where to begin. Just like any other skills, it takes time and practice to master.

# The art of asking question

## Start simple, "Yes" "No" questions ✔❌
Have you ever felt like you have a million things to ask and no idea where to even begin? A cliché as it sounds, start with a simple question that will get you a simple answer - Yes or No. Even complex scenarios can be simplified into a flowchart.

_"Does this complicated function X produce an output?"_
_"Is my input correct?"_
_"Have you tried turning it off and on?"_

## Ask for validation 🤷‍♀️🤷‍♂️
Once there's enough context, explain it in your own words and ask for a validation. This is a tough one, because we're still trying to understand and might not get it right in the first attempt. So keep iterating till you are satisfied. Most times, you'll find how helpful and patient other people can be when explaining things. Remember to thank them afterwards for their effort and time 😊

_"So this function X takes in 2 numbers, adds it up and produce an output?"_
_"Ok, my input is correct, but in a wrong format?"_
_"Rebooting doesn't work, maybe some configurations are not setup properly?"_

## Who or where to ask 🕵️‍♀️
There are also situations when we think the person knows the answer, but it turns out as the opposite. The person might know not have an answer, but might be able to point you to a new direction whether it's a website/documentation/person which has. Aha, now you know what to ask, right? Now, we have a new lead and can easily repeat the process above.


_"Function X performs addition on 2 numbers. Does it have a maximum limit? Do you know who knows about this?"_
_"What should be the correct format for this input? Do you know where I can find the documentation for this?"_
_"The configuration looks complicated. Do you know how I can log a ticket to fix this?"_

## Open ended question ❓
By now, you probably have a better understanding of the whole context which enables a discussion. Ask open ended questions to know about other's feedback or thoughts and you might find valuable information. Like edge cases you never would have thought of or a new way of doing things.

_"What do you think if Function X takes 3 numbers?"_
_"I read the documentation but it took a while for me to understand it, can we update the documentation?"_
_"Is there a way to automate the setup of this configuration?"_

It's not easy to ask the "right" question and I'm still learning how to be better at it. Not sure if I can kick off a discussion here, some food for thoughts:
How do you ask specific question? 
What useful phrases do you use to get your answers?

Thanks for reading and hope this helps.