Why do you need to ask questions?
Not just the beginners but even experts sometimes find themselves in situations, where they don’t know how to solve a problem, or they are not able to understand a piece of code, or during learning to use new Frameworks, not sure how to tweak and use it the way they want. And beginners, who are starting to code or are very new to a specific Programming Language always get stuck at one thing or the other. The quickest way to resolve this is to ask questions to community of experts, or even developers.
Be sure you want to ask?
By this I mean do necessary Googling about the issue you are facing. Trying searching for error and do all your research. More often you will find same issue reported or questions related to similar problem and you then don’t have to ask. This is also important because its very frustrating for the community to answer similar questions over and over again. In most forums, moderators will close your questions with “Duplicate” tag if its similar to other questions. Once you are sure that you wanna ask, proceed to next section.
Where to ask questions?
Developer community is so large, that there’s always someone out there to help you when you are in need. But how to interact with them? A lot of online forums with active community are there, most important of them, I think, is Stack Exchange Network. Other then that, mostly all major open source projects have there huge chatrooms on IRC or Slack or Gitter, where you can ask question and get answers from the developers themselves. Most common IRC network is Freenode.
Don’t hesitate, thinking that you are not an expert or no one will reply. Remember, even the experts today were Noobs once. So, nobody thinks that way. Infact, a lot of Forums are Noob friendly and have separate sections for Beginners, like Archlinux Forums Newbie Corner.
How to ask?
First and most important thing to consider is describe your problem in full detail. When you miss important details, people will either not reply as they are not able to understand, or they will make assumption in there solutions which you probably don’t want. This create misunderstanding instead of solving problem.
Next if you are facing issues with a piece of code, and you want to share code, then it depends on the place you are asking that how you want to share your code. Like you don’t want to spam IRC channels with 100 lines of code. Also, Slack and Gitter, comes with builtin syntax highlighting, so your code will be displayed beautifully, but if you want to share a big piece (more then 5-10 lines), its not a good idea to paste directly in chatroom. For this use services know as Pastebin. There are a lot out there, few common ones are :
Also a lot of big projects now-a-days have there own Pastebin. Few of them to mention are:
However, in most forums there is appropriate syntax highlighting and its convenient to paste your code there. But if syntax highlighting is not present in specific forum then use Pastebin.
Next thing to talk about is output. If you are asking question about a specific software or are developing one then output is very important part to mention in your question. Don’t skip parts of your output, show the full output from the program. If output is more then 5-10 lines long, use Pastebin.
Don’t be a Jerk
The community members are volunteers, not your servents. Show them respect and during discussion actively test the solutions given by them. Healthy discussion and Positive arguments are much appreciated by all, but Negative or offensive comments and arguments are not. Do this and you will be Banned.