The most important thing to do when asking for help

Asking for help is an admission you don't know everything, and an imposition on the person you're asking. It's also key to solving problems and learning to be a better developer. How should you ask for help in the most effective way? In order to come up with a good answer I asked my wife, a much more experienced and skilled engineering manager than I am. And having asked for help, I learned something new: the most important thing to do when asking for help.

Why is asking for help worth doing right? Whether you're a novice or an expert, asking for help is an opportunity for feedback that should not be wasted. You will learn more and faster with good feedback than you could ever learn on your own. And asking for help means interrupting someone else's work: if you're going to do that, best to do it in a way that helps both you and them.

The most important thing you should do when you ask for help: present some potential solutions to the problem. They don't have to be good solutions, nor do they have to be complete. They should just be whatever you can manage: big or small, vague or specific, likely or unlikely.

Providing solutions along with the question helps you by encouraging you to practice problem solving. Instead of saying "I'm stuck, help" you're forced to see how far you can get solving things on your own. You might only get a little bit further down the path to a solution, but every little bit helps improve your skills. If you get a compilation error talking about a missing file, you could just go ask someone "why?" But the need to provide a minimal solution or two suggests further avenues of investigation: "I need to install something", "the configuration is broken." Following up on those ideas will probably teach you something new, even if it doesn't always solve the problem.

Providing potential solutions also helps the person answering the question. They will learn what you do and do not know, since your solutions will demonstrate your level of understanding. They will allow them to correct any misconceptions you have or provide additional information that you're missing. And in cases where they don't immediately know the answer your potential solutions will give them more context to think about and collaboratively solve the problem with you.

Next time you're asking for help make sure you provide some ideas for solving the problems. You will learn more, and the person answering your question will be able to teach you more and help you more effectively. Think there's something more important to do when asking for help? Send me an email and let me know.

You shouldn't have to work evenings or weekends to succeed as a software engineer. Get to a better place with the Programmer's Guide to a Sane Workweek.