Note: Before you go ahead, make sure you have read my How I Started to Learn Android Programming blog post. There I explain more generally how to start learning Android development as a beginner.
Learning programming is hard an can be quite frustrating. Google helps with a lot of questions, but often times there is some uncertainty left and you would rather ask another human directly. Often your question is tailored to your situation and you don’t have enough practice to convert it to your project and fill in the missing gaps yourself. But who to ask? Others value their time and helping a stranger for free on the internet doesn’t really provide them any value. But of course we can’t pay someone every time we have a simple question. Fortunately the programming community is very helpful. BUT they are also fed up with repetitive beginner questions and sites like Stackoverflow actually ban people for asking too basic questions that have already been answered multiple times before. So where should you post your question without annoying anyone? Where do you ask if you feel like your question actually is a beginner question, but you still don’t understand it?
In this post I made a little list to show you, where I ask what kind of questions. It goes without saying that this is list not exhaustive. There are a lot of programming forums and sites and a lot of them are probably amazing. This list just represents what I use regularly at the moment. Leave me your suggestions in the comments!
Question level: absolute beginner
Answer quality: good
This is the right place for you if you just start out and have no idea about the most basic concepts of programming. Maybe your question isn’t even Android related and just very general. Like “What is an array?” or “Which programming language should I choose?”. This sub forum is a nice place to ask your beginner questions and you will get a lot of help here.
Question level: beginner to advanced
Answer quality: good
The Reddit androiddev sub forum is a good place to ask Android development related questions, that are not good enough to ask on Stackoverflow. If your question is very simple, don’t create a new thread, instead head for the “Weekly Questions Thread” that is usually pinned at the top of the forum. As long as you don’t spam super simple questions here, usually no one will complain. If you think your question is a bit too complex, it might be appropriate to open a seperate thread. I usually do this only if I didn’t get an answer in the Weekly Questions Thread after 2 or 3 attempts. The answer quality is not quite as high as on Stackoverflow, but you can still get really good help here, because there are a lot of passionate and helpful programmers in this forum.
Question level: absolute beginner to advanced
Answer quality: highly depends on who answers you, be careful for false information
If you have a question directly related to the content of a Youtube video, it is a good idea to write a comment under the video. Viewer engagement helps the channel as well, so it’s a win-win situation. And the creator of the video should already have a good understanding of that particular topic. I am happy about every comment under my videos and I really love talking to you guys and helping wherever I can. Other viewers can also see your question and might have the correct answer for you. Of course you can’t take everything you read here for granted, because Youtube is not a programming forum and the answerer might be a newbie himself, but it’s a good place to get some ideas and opinions. However, please make sure to ask specific questions. For example most error messages could have 1000 different reasons so you can only get help if you do some preparatory work. Check logcat and pay close attention to what error message you get. Research a bit. And then ask the question.
Stackoverflow / Stack Exchange
Question level: any question level as long as it hasn’t been asked before
Answer quality: very high
Stackoverflow is where you get the highest answer quality and a lot of skilled and knowledgeable people are active here. However, they are also very painstaking about question quality. Only ask here if you couldn’t find an answer after extensive research and if you are sure that it hasn’t been asked (like this) before. Pay extra attention to your phrasing and describe your question in a very clear and understandable way. Also format your code properly and make sure that it looks correct in the preview. Just see opening a thread on Stackoverflow as a “big step” and not something you do easily. If you ignore these steps, users will downvote you, which can eventually lead into a (temporary) ban from the question functionality.
Also keep an eye on other Stack Exchange sites (Stack Exchange is the question network which also provides Stackoverflow). I recently discovered codereview.stackexchange.com where you can post whole code snippets and get feedback on your overall coding style.
Don’t worry, with time it gets more and more easy to just google the question and draw your own conclusions by looking at the source code yourself. At the beginning this is much more confusing and it can be helpful to ask another person. Just remember that there are millions of people with programming questions and everybody values their time. Be thankful if someone helps you and see it as a gift. Always be specific about your questions, no matter where you ask, and always do some research before.
Of course there are more sites and forums for programming related questions, but this is my pick. If you have any other good sites, don’t hesitate to write a comment under this post.
And if you are just starting out, I recommend you to buy a good beginner book to learn the basics. I can recommend the following 2 books (choose 1):