Developers like to help other developers. Many times via text chats like IRC, Slack, Gitter or Discord.
This article is mainly aimed at developers asking for help. However it can also be applied to other situations, even if the concepts don’t fully apply.
Now for the short overview for the very impatient, though especially those should take the second to last point to heart and read the full article:
- Directly state your question
- Don’t ask for 1:1s
- Answer inquiries in full detail
- Read linked resources thoroughly
- Reference documentation and examples when asking
Before I get into the details, I want to mention that I have been helping all kinds of developers via text chat for a couple of years on multiple different platforms. Some days I’m a bit more patient, other days I’ll just give up. Don’t be angry at people when they don’t want to help you anymore, they’re doing this (most likely) for free!
Directly state your question
The solution is not to ask to ask, but just to ask. Someone who is idling on the channel and only every now and then glances what’s going on is unlikely to answer to your “asking to ask” question, but your actual problem description may pique their interest and get them to answer.Jari Komppa
You may often be tempted to ask if anyone’s available or understands your framework. Don’t (ask), people will help if they can. If you ask to ask first, they may not even get involved, because there’s no problem there that their brain wants to solve.
When stating your problem, try to refrain from explanations like “it doesn’t work”. It not working is obvious to the helper, otherwise you wouldn’t have to seek help. Describe what you’re trying to do and what’s actually happening, just like you’re reporting a bug. Especially when dealing with programming, it often helps to include an excerpt of what you’re currently doing that’s not working. Stack overflow has a good guide explaining how to craft an answerable coding inquiry. Then there’s this guide to help you with sharing code.
Don’t ask for 1:1s
When asking for help in a multi-user chat room, you should also expect to troubleshoot your issue in that chat room.
If you’re insisting on getting help in a 1:1, I can recommend looking on Twitter; some people love to help you in their DMs.
You don’t want to share your code with a public chat room for confidentiality reasons? You probably shouldn’t share it with one random stranger from the internet either. Just saying.
Answer inquiries in full detail
You will get asked follow-up questions, because you probably left out something or there are specific conditions for a bug. Answer these questions in the fullest detail possible. Pay close attention to the wording, experienced helpers will ask well formulated questions.
Read linked resources thoroughly
Before going on and assuming, completely read linked documentation, guides and so forth. Don’t just skim the contents, read thoroughly and try to understand. Just like questions you’d get asked, documentation uses very precise language to describe things.
It’s fine if you don’t understand the documentation. You can ask specific questions about it so that you can learn to eventually read the documentation yourself without having to ask for help. That’s the end goal, after all. You don’t want to end up always having to ask other people to solve a problem. Try to develop new skills when asking questions; especially understanding documentation is a very valuable skill.
Reference documentation and examples correctly
When asking for clarification on details you don’t understand, try to reference to examples or documentation, that way helpers don’t have to try and figure out what exactly you’re talking about.
To the helper it will often be ambiguous what you are talking about without that, since they potentially know much more about the language or library. That’s why they can help you after all. Sometimes they’re just your rubber duck to bounce things off of and spot the missing semicolon (P.S.: please use static code checking like linters).
Tell people when their suggestions are too complex
Developers are usually very excited about new things. New syntax, new libraries, new patterns, they’ll suggest all of them to you. While it’s nice to learn about them, try to understand your problem in the technologies you know first before exploring new grounds as an alternative solution. Sometimes it will not be possible to solve your issue with things that you are familiar with.
Usually this kind of “technology creep” is easy to spot when descriptors like “nicely” or “elegantly” are used to describe a solution. Or when they ask you about the specific environment you’re in. Just to be clear, these aren’t absolute indicators, and you shouldn’t be afraid to learn a little bit of new technology. After all, you want to learn and improve and not just stay stuck with the things you already know.
In short, tell people when they’re pushing too many new things on you that you can’t follow. Usually there’s a simpler solution than to use three new syntax features and two new libraries.
Lastly, please keep this article in mind. Not only to make the lives of helpers easier. One day you will hopefully be helping others, and linking them to such a resource is surely very helpful! 😉