Header image by Regine Tholen on Unsplash.
There's never been a better time to start programming. With the internet at our fingertips, there are tons of resources available to learn any language, library, or framework that you so wish.
There are also online communities for the programming languages you enjoy. There you can meet like-minded people and discuss your favourite languages/libraries, share your knowledge with others, and ask for help if you're stuck.
Previously if you came across errors while programming, you would have to consult a reference specific to the programming language you're writing in — which could be hundreds of pages long — and find the exact section for the error you're having. No Google, Stack Overflow, or freeCodeCamp to help you.
Nowadays everything is available at our fingertips. If you know where to look, a quick web search would get you to your solution. Or you can jump into discussion boards of programming communities to ask for help, and get answers from people who are fluent in the languages that you use.
But there are times where we take the convenience of modern programming too much for granted. And there are times where we forget the web is a huge knowledgebase that people will come across in the future.
Too often I go on the help channels of developer communities seeing this.
Someone asks a question on a help channel in a developer community, hoping for an answer. Then, through some epiphany or otherwise, they managed to solve it. But they just wrote "solved," all whilst leaving people hanging.
This is not good etiquette for asking for help, especially for people in the future who will come across your posts. Let me explain why.
For those who lived long enough on the internet to experience the days of online forums and bulletin board systems (BBS), we all know too well the experiences that I'm about to tell you.
You're stuck for hours on end on a certain tech problem, be it standard computer stuff, programming errors, or something similar. You decided to do a quick Google search. You carefully crafted your keywords hoping it clearly explains the problems you're having.
Jackpot. You found a thread on some random tech forum you've barely heard about, and you decided to click said search result, hoping to find a solution.
One post. Zero replies. The OP explained exactly the problem you're having, in amazing detail. But alas, nobody seem to have replied with a solution. Or even worse, nobody seemed to care.
You felt frustrated. It was so close, yet so far. Did this random person solve their problem in the end? Did they jump around into other forums, and ask the same question hoping someone will answer? Or did they just give up, and continue to throw more solutions into the problem until something works? What did they see?
Truth is, you'll never know. So you ended up finding the closest, but not-so-accurate solution for a slightly different problem, hoping it will work.
There's even a relevant XKCD to this.
In the next section, I ask everyone in the developer communities I participate in to practice good etiquette in asking help from the internet. All you need to do is simple.
The easiest way to prevent the frustrating experience above is to just tell us how you solved the problem.
If you asked for help in a community with a certain problem, and you manage to solve the problem before getting an answer, let us know you solved it, and tell us how you did it.
For example:
OK, I solved it. I turns out that [...] so I tried doing [...] and it finally works!
Even forums like Stack Overflow encourage you to do this. They encourage you to answer your own question when you figure it out by yourself, and they will even give you a shiny badge when you do so.
One recent example is this thread, where someone asked about the performance implications between retained-mode GUI and immediate-mode GUI. Years later, they used the exact same question for their master's thesis, and they went back to the thread years later to post an answer outlining the conclusions made in said thesis.
Telling the world how you solved a problem will not just help you. More importantly, it will also help other people who might encounter the same problem as you in the future.