How to ask good questions as a developer

Knowing how to ask questions in the right way is a key skill for life in general. A well-structured question will, more often than not, return a useful, direct answer.

When it comes to coding, there are some steps you can take to increase the chances of getting a good answer.

So, one of the skills I try to improve with my students in class is how to ask good questions when they run into an issue.

Here are the main points I teach them:

Do the basics

The very first items on your good-question-asking-quest (⚔️) are the basics.

In the early lessons of an in-person course, an instructor might talk you through the solution, while fixing your code. But, in the big bad world of online communities, not doing at least the basics is often like a red flag to a bull.

Check your code editor for typos and syntax errors

Syntax highlighting is a powerful ally when spotting simple typos.

Especially for any Brits out there:

In the early days, the majority of your errors will be typos and syntax errors. These should be a quick fix with the help of your trusty code editor.

Check for written errors

If the language you’re writing provides written errors, check the console/logs. Read through the error to see what and where the error is.

Try to understand what’s going on

Once you’ve done the basics, you’ll be a little more informed on what the issue might be.

Now it’s time to read through the code line-by-line. Use any debugging tools available for the language and dig into the problem.

Take your time here. The deeper your understanding of the problem, the more hypotheses you can create. This will, in turn, lead to a clearer question.

If it’s a user interface (UI) issue, use your browser’s developer tools. Toggle styles off and on and see which ones are being over-written by others.

Otherwise, use debuggers and inspect the values of variables. Are they what you expected? Is something showing as undefined when you expect it to have a value?

If necessary, comment-out blocks of code to zero-in on where the issue is.

Do a few Google searches

By now, you should at least have an understanding of the problem. This means you should be able to structure a focused question. Before asking anyone else for help, head to Google to do some searching.

Google is a developer’s best friend. Even experienced developers need to Google their way out of problems on a regular basis. Good developers are also, very often, good Googlers.

Here are a couple of examples of questions asked following this structure:

Make sure you do a few different searches. Read through any results that seem appropriate for your issue. With a bit of luck, someone before you will have had the same problem and will have had their issue resolved.

Bottom-line is: nobody wants to sort out the formatting of your code before they can even start helping you.

2) Ensure the code you’re sharing recreates the error

Before you share your code, make sure it recreates the issue you’re experiencing. This should go without saying, but it will be extremely tough to help you if the code you’re sharing doesn’t recreate the error.

If the code requires a few steps to get up-and-running, be sure to include those steps when you share the code.

Show the efforts you’ve gone through to solve the problem

At this point, you’re either raising your hand in the classroom or heading to somewhere like StackOverflow or a Slack channel to get an answer online.

When asking, it is crucial to go through the steps you’ve taken so far to resolve your issue. Provide anyone who might be able to help with as much information as possible to clarify your issue.

Here’s some of the information you should be sharing:

Your understanding of the problem. This could be a few different hypotheses by now. It is important that you articulate what you think the issue might be and what you’ve done to try to fix it.

Screenshots of your issue/error. If it’s a UI issue, annotate your screenshot to highlight the problem.

Code (preferably in a sandbox environment) that recreates the issue.

Read and re-read your question, if posting online. Be sure that you are providing as much detail as you can to help others help you.

A vague question is much more time-consuming to answer online than in-person.

Keep everyone updated

If you’ve posted the question online, you might resolve your issue before anyone else has time to answer it. If this is the case, be sure to post your own answer to your question.

It may seem strange to answer your own question online. But, people do it all the time and it could help someone else in the future.

Thank anyone who tried to help you

This. Is. Crucial.

Thank everyone who tried to help you. Even if they didn’t actually help resolve your issue. They’ve taken time out of their day to help fix your broken code. Show your appreciation ?

Do you have any tips or tricks about asking good questions that you’d like to add? Please write them in the comments.

Our mission: to help people learn to code for free. We accomplish this by creating thousands of
videos, articles, and interactive coding lessons - all freely available to the public. We also have
thousands of freeCodeCamp study groups around the world.

Donations to freeCodeCamp go toward our education initiatives, and help pay for servers, services,
and staff.