How to ask great (and effective) engineering questions
Learn how to ask clear, effective engineering questions that get results. This guide covers tips, examples, and steps to improve your problem-solving and communication in coding and debugging.
Asking the right questions is a key skill for any engineer. It’s an essential part of growing as a professional and accelerating your learning, whether you're solving algorithmic problems, debugging code, or seeking help from colleagues.
How you ask a question can make a huge difference in how quickly and effectively you get the help you need. Here’s a breakdown of how to ask engineering questions effectively, with some examples and key insights.
Why is asking good questions important?
Being able to ask clear and concise questions is crucial in an engineering environment. Whether you’re:
- Asking for help in a community
- Troubleshooting a bug with a co-worker
- Reporting an issue with your code
How you frame your question can lead to faster solutions and more insightful feedback. A well-asked question demonstrates that you've invested time in trying to solve the issue on your own and are genuinely seeking assistance with specific roadblocks.
Example: A great engineering question
Let’s look at an example of a well-structured question:
“I’m working on recursively finding the maximum value in a binary tree. Here’s the code I’ve written, but I’m failing test case #1.
<Insert neatly organized code here>
I think something’s going wrong in line X. This line is meant to do Y, but it’s doing Z instead, and I think it’s because of XYZ. Am I on the right track?”
This is a solid question because it clearly identifies the issue, provides context, and asks for feedback on a specific area of the code.
Let’s break down the process.
Step 1: Identify the (specific) problem
To get the most out of any mentoring session — whether informal with peers or more structured — be clear about the problem you’re facing. Vagueness can slow down the process, as mentors won’t know exactly where to focus their efforts.
Bad question examples:
- "How do I solve X problem?"
- "Can someone help me with trees?"
- "Why doesn’t this code snippet work?"
Good question example:
- "I’m working on X algorithm. When I run this code with input Y, I’m expecting output A, but I’m getting output B instead."
By providing the specifics, like what you expect versus what’s actually happening, your question will give the mentor everything they need to help you more quickly.
Step 2: Show what you’ve already tried
Before asking for help, show the steps you’ve already taken to fix the issue. This is crucial for two reasons:
- Efficiency. By listing out what you've already tried, you prevent mentors from suggesting solutions you’ve already attempted, saving everyone time.
- To show you’ve put in the work. In any work environment, especially with colleagues, people are more willing to help when they see you’ve put in effort. Asking for help after trying multiple solutions shows that you’re serious about solving the problem and not just seeking shortcuts.
A few tips on this step:
❌ DON’T: Posting a screenshot of your code. This is difficult to read and impossible for others to copy/paste and run.
✅ DO: When you paste in your code, make sure that your code is easily readable.
✅ DO: Get rid of commented-out code, and give your variables good names.
✅ DO: Have a few test cases that show how your code is working or not working.
✅ DO: Try to use syntax highlighting to make your code more readable.
By making the code readable, mentors can dive straight into solving your problem, rather than spending time deciphering what you’ve written.
Step 3: Explain the why behind what you’ve tried
Now that you’ve shared your problem and what you’ve already done, go one step further by explaining why you chose the paths you did. This step is often overlooked, but it’s key for learning and for getting better feedback.
Why is this important?
- Better feedback: If you just describe what you tried, you might get a basic answer like “Try doing B instead of A.” But if you explain your reasoning, mentors can help you see where your logic went wrong, and you’ll learn how to fix your approach for next time.
- Practice explaining your logic: In coding interviews, you’ll often be asked to explain your thought process. Being able to break down your reasoning clearly can be just as important as the solution itself. Practicing this skill in real-world situations helps you refine your communication abilities.
❌ DON’T: “I tried X, but it didn’t work.”
✅ DO: “I tried X because I thought it would handle edge case Y, but I think it’s causing Z instead. My intuition is that the problem might be with how I’m handling the input in line 5, as it’s doing the opposite of what I expected.”
By explaining your reasoning, you help the mentor understand your thought process, and open the door for more in-depth guidance.
Mastering the art of asking questions
Asking effective engineering questions is an essential skill that will serve you throughout your career. Whether you’re debugging, learning new concepts, or collaborating with peers, the ability to clearly define your issue, show what you’ve already tried, and explain your reasoning will result in faster solutions and better feedback. It also helps you practice valuable communication skills that will come in handy during interviews, team discussions, and presentations.
Get holistic interview prep with Formation
Despite the challenging economy, we've been able to help our Fellows land life-changing roles. Formation’s Mentors come from some of the best tech companies in the world, and the personalized career coaching and supportive community make for a great support system.
If you’re having trouble navigating your job search on your own, apply here and get unconditional support from a team of engineering mentors, technical recruiters, career coaches, and more.