You’ve just decided to start your travel in the world of programming. You are new to this world, there’s so many things and everything is very confusing. It’s tempting, and it is okay, to ask programming questions. But there’s a few things you should do before asking them.
I have been programming since 2006. I started learning when I started high school, and I have asked thousands of programming questions in my way and I know what kind of questions are going to make other programmers avoid your questions. You have probably heard that programmers are assholes by many other people. But this is not necessarily true. You see, when people ask questions in Stackoverflow or other places, they should make sure their programming questions fill a few requisites before asking them. The truth is, many of us, who have been programming for years, are willing to help you with your problems, but we expect you to have done your research and try before doing so. Yes, we think many questions are a waste of time – yes, many times we think the person asking questions is lazy to provide details to their problems, and yes, we think that it is a waste of time to help someone who hasn’t tried any solution at all before asking for help. People who think programmers are assholes are people who didn’t know how to ask programming questions in the first place.
Read this article before you ask programming questions to anyone or anywhere. Be it on Stackoverflow, a Facebook group, an old-fashioned forum, or anywhere else.
1. Ask specific and straight questions.
“Hi i just started learning *insert language or technology help*. Pls help!”
STOP for a moment there. Okay, you just started learning something, and you need help. Sure, cool. But help with what? Do you need help setting up the Facebook SDK for iOS? Where are you having problems exactly? If you need help setting up the Facebook SDK, have you read the documentation at all? Are you stuck, do you get an error message? What is preventing you from doing what you want to do?
“I cannot install the Facebook SDK. Please help.”
I cannot install the Facebook SDK to use with my Corona SDK app. I followed the official guide but when I get to step 8, I get an error saying that my Facebook tokens are invalid. I have created the tokens via my Facebook developer panel and copy and pasted them into the SDK. Can somebody help me with this?
Yes, the “Good Question” in this case is long. More often than not, you will not have to write something this long to ask for help, but the point still stands – The good question is specific. It’s saying exactly what’s wrong, what he has tried, and what he has tried to do. This is how all your programming questions should be.
2. We don’t care how old you are.
I see this a lot, specially in Facebook development pages and iOS development pages on Facebook.
Hi I am 12 years old and I’m learning how to make apps. Please help.
Many people seem to think that their age is an excuse to get exclusive, extremely aided help with their problems. This is not the case. Regardless of how old you are, if you ask programming questions, then ask good programming questions – If you are a 9 years old learning Assembler, we are expecting the same quality of questions someone “older” would be asking us. You should not be expected to receive exclusive help based on your age, gender, or nationality.
3. Before you ask, read the docs.
“How do I install the Facebook SDK?”
If you ask this one, you will get a thousand of responses, but none of them will be a walkthrough or step-by-step tutorial to install the SDK – All the answers will be people linking you to the docs of what you’re trying to learn (or tutorials, in case of a language), LMGTFY links, and people belittling you for being lazy and not reading the docs.
If you don’t like reading official documentation, then programming is not for you. So get into the habit of reading documentations, tutorials, and books before you ask programming questions
4. Google It.
This is exactly what I said in the previous point. Research before asking. Don’t waste our time. Don’t waste your time by wasting our time.
5. “What have you tried?”
There is nothing we hate the most than people asking for help by showing us no proof they have tried anything at all.
I can’t post to the user’s timeline using the Facebook SDK.
Yeah okay, cool. But what have you tried? Tell us what you have tried so we can tell you what you did wrong. You didn’t try anything? Sorry dude, here, have this link to the docs. Hope it helps.
Sometimes, it is perfectly fine to ask questions without trying, and that is exclusively if you have no idea of what to do next. But this should never happen. With the vast amount of tutorials, articles, and docs, it’s impossible to simply not know what to do. If you don’t understand something in the docs, then it is fine to ask questions without trying. But for most cases, there is no excuse to simply not know what to do.
6. We will not do your work for you.
“I want to get a user’s friendlist with the Facebook SDK. Pls gimme the codes”
I will do that for $us 1200.
“Soz i am a 14yo old programmer and I’m poor.”
Shucks. Have this link to the docs. Hope it helps.
7. “It doesn’t work”!
Naturally, when you ask programming questions, chances are something just doesn’t work. But what doesn’t work, exactly?
I want to send an inbox message to all the users in a friendlist using the Facebook SDK but it doesn’t work. Please help!
What errors are you getting exactly?
What happens and what is supposed to happen instead?
We are not mind readers and in software, there’s virtually thousands of things that could break other things to the point they just “don’t work”. But if you are not giving us error messages, a description of the unexpected behaviour, and optionally the code you have tried, there’s nothing we can do. All “doesn’t work” things have a cause. Is your app crashing? Do you get an error message? Does your computer turn into a sadistic robot and spanks your wife? If you don’t tell us why it doesn’t work, we cannot help you at all.
There are times when things really just “don’t work”, but we expect you to tell us that.
“I’m trying to get to send an inbox message to all the user’s friendlist using the Facebook SDK. I have read the documentation and read about the inbox/send_all method but it just doesn’t work. My message is not being sent and I do not receive any error message at all. Literally nothing happens. Can somebody help me? Here’s my code:
If you are just learning programming, let me tell you that when you start shipping products to the world, your users will message you saying your software just “doesn’t work”, and you will be frustrated if they do not give you any details at all. You will have to inquiry your users and ask them to describe step by step what causes their issues, and sometimes ask them for crashlogs. “Doesn’t work” is one of the things we programmers hate the most. We need to know what you’re doing to ruin everything.
8. Please do not ask us for personal help.
We are happy to help you with your problems – That is, as long as we find your programming questions in Stackoverflow or other places we frequent. But please do not bother programmers asking them for their emails or Skype handles so you can have an experienced programmer handy whenever you have problems. I’m telling you right now, we all hate that. We are not your mentors, and we simply are not willing to give you personalised help all the time (some may do it if you pay them). Instead of attempting to keep personal touch with programmers who helped you before, learn to ask questions appropriately so you can effectively ask them in Stackoverflow or other places so you can get help.
I have no intentions of discouraging you of asking programming questions, but I, and all other programmers who have been writing code for years, want you to ask questions in a way we can help you and in a way you don’t waste our and your time. This field requires you to read a lot and to be ready to do your own research. It’s fine to ask questions, but keep in mind other programmers are not willing to keep up with your problems all the time.