Why do I get downvoted when I try to learn something about programming on Stack Overflow?

Out of all the Stack Exchange sites, this one is the most unwelcoming to people trying to learn. There was a post where a guy asked an innocent question and one of the comments was let the voting war start. He just wanted to learn and people were downvoting his questions but others would upvote for being genuine. The downvotes make it feel like the community may not welcome beginner and novice programmers(?).

Here are a few examples from me:

  • Using arctan2 to plot I did my research, provided the code, and made the plot. I simply want to know why it isn't turning out correct. Downvote. Edit: tom 10 responded and said it will be helpful to show the actual equation than just the code. If that was the reason for the downvote, why not just say "Hey, from the code we aren't sure what the true equation is"?
  • Plotting multiple plots Again I provided code and explained that the issue was due to eccentricity (e) not having enough in the array, but I wanted to figure out how to plot still. Downvote.
  • Saving images in Python at high quality I wanted to learn what the best method and format to save images is for publication quality. Downvote.

The environment feels so unwelcoming. I am sorry to state that again.

  • 32
    One downvote isn't the end of the world. Nor does it, in any way, prevent you from learning anything. Every single one of your questions was answered, and you accepted two of them (meaning they apparently solved your problem). So what's the actual problem here?
    – Servy
    Commented May 17, 2013 at 16:52
  • 8
    I completely fail to see how your linked posts are any evidence of discouraging you from learning. They have answers, helpful comments, and one downvote between all of them.
    – djechlin
    Commented May 17, 2013 at 16:56
  • 37
    @dustin Because one person downvoted you? Every single time you have asked a question someone has voluntarily taken time out of their day to write a detailed, in-depth, and (based on your acceptance I assume) correct answer. That seems pretty darn welcoming to me. Likewise I see no rude comments or any inappropriate behavior at all. Someone apparently felt that your questions weren't of high value. That's one person's opinion. That person doesn't reflect the entirety of the Stack Overflow.
    – Servy
    Commented May 17, 2013 at 16:57
  • 2
    @djechlin Actually there's 4 downvotes between all of them...
    – Servy
    Commented May 17, 2013 at 16:57
  • 3
    I edited your question title to something more specific. I think it's a bit rant-ish and flamebaiting to go from "a downvote made me feel unwelcome" to "StackOverflow discourages learning."
    – djechlin
    Commented May 17, 2013 at 16:59
  • 4
    @dustin Why? Just because you got a few downvotes here? Are you planning to leave the community despite the fact that it has clearly been a valuable resource for solving problems for you? (If so, it seems it would hurt you more than this community.) It seems to me like you just need to learn not to get upset over a single downvote...
    – Servy
    Commented May 17, 2013 at 17:00
  • 4
    @Servy everyone likes feel welcomed and belonged when you don't it isn't as much fun. If someone is truly not trying, that is understandable to downvote but when people put in effort it is like what is the deal. Since I am not an allstar programmer, I feel hesitant to even ask sometimes.
    – dustin
    Commented May 17, 2013 at 17:02
  • 16
    Downvotes are not personal. Downvotes are not meant to hurt you. Downvotes are not saying "you don't belong here". They at most indicate "hey, there might be something wrong with your post that you might want to address". To attach any emotional consequence to them is pointless. Learn from them if you can. And if they are truly random, shrug and move on.
    – Bart
    Commented May 17, 2013 at 17:06
  • 2
    @gnat I really like the links. The 2nd one makes a lot of sense but seems to not be the norm.
    – dustin
    Commented May 17, 2013 at 17:08
  • 4
    @dustin if you find comments that are rude or offensive, flag them. Such behaviour is not tolerated. No matter how many upvotes a comment might get.
    – Bart
    Commented May 17, 2013 at 17:09
  • 4
    Titles which include proper capitalization and spelling help ward off downvotes.
    – user7116
    Commented May 17, 2013 at 17:11
  • 2
    Stack Overflow is a big city, the biggest among all SE sites. It gets some 7,000 new questions every day. It is too busy to hold everyone's hand and to give a verbose comment about what exactly is wrong for every question.
    – Pekka
    Commented May 17, 2013 at 19:29
  • 9
    "Out of all the stack sites this one is the most un-welcoming to people trying to learn" is a claim I have read on every single SE site I frequent. Just tone it down. Nonsense exaggerations will only help you get more downvotes.
    – ЯegDwight
    Commented May 17, 2013 at 19:57
  • 7
    Downvoting entirely unfounded bold claims is perfectly fine. It's making said claims that is extremely childish. But anyway. You just invested a significant chunk of your life time into complaining about a number on a website going down. This makes me question your entire premise. Are you really "genuinely trying to learn"? Or are you here to watch a number go up? In the former case, go ahead and learn from the answers and ignore the number. In the latter case — well, go ahead and learn how the number works. It's not hard to get it to go up and not down if that is what you're really after.
    – ЯegDwight
    Commented May 17, 2013 at 20:18
  • 2
    @dustin: sure, everyone's got to start somewhere. Nevertheless, when I start learning Symfony2 for example, I'll definitely post my attempt, since I can reasonably expect to be downvoted if I ask a question without trying anything. It's part of the deal here, and I'm okay with that. (I say that as someone who is quite active in the PHP tag, and that gets a lot of no-effort questions).
    – halfer
    Commented May 17, 2013 at 20:27

5 Answers 5


I think an error many beginner programmers make is to look at Stack Overflow as if it was their mentor.

As a beginner, it is helpful to have a mentor who can answer simple questions that have been asked a million times before. Someone who is willing to dedicate their time and energy to help you be a better programmer. Someone who knows you by name and and is interested in your career and/or hobby. Someone who can recommend books to you. Someone to recommend whether you should learn C# or VB, MySQL or SQL Server. Someone who is willing to spend an hour or two to help you track down that bug in your code.

A mentor is great and it's worth finding someone like that. But SO is not your mentor - it was never designed to be anyone's mentor. It's a Q&A site with a tight focus and a strict set of guidelines.

Downvoting is a tool for sculpting and curating the site according to those guidelines. A downvoted question doesn't mean it's a bad question. It means it's not a good Stack Overflow question.

It's been 7 years and this question seems to be generating some activity again, so I think it's worth re-visiting the original "question".

The downvotes make it feel like the community may not welcome beginner and novice programmers?

Downvotes sting, even if you have a lot of rep. That said, here's where things stand with the examples the OP gave us:

  • saving images in python at a very high quality
    5 answers (accepted)

  • plotting multiple plots but whith offset ranges python
    1 answer (accepted)
    1 downvote

  • using arctan / arctan2 to plot a from 0 to 2π
    2 answers (accepted)

Total rep earned: (132 upvotes * 10) - (9 downvotes * 2) = 1,302

The assertion that Stack Overflow is not a welcoming place just doesn't really hold up. Some of the feedback might feel a bit cold at times, even downright harsh, but if you ask a reasonable question more often than not some random internet stranger (usually several) will take time out of their busy day to give you a valuable answer.

If you want legal or medical or financial advice, you'd be paying hundreds of dollars an hour, but here you can get answers to tough questions completely free. I have to say... that's pretty amazing to me, even now. To me, that seems worth weathering the occasional sting of a downvote (which costs me nothing other than some fleeting anxiety).

  • 3
    This was once different though: stackoverflow.com/q/1200621/1313143. But yes you just made a very good point indeed.
    – MarioDS
    Commented May 17, 2013 at 20:20
  • 1
    Oh, but we don't want new users to know this. It's best to keep the site description the way it is. Why don't we say, "Here at StackOverflow we prefer to downvote questions that don't contribute to the repository of knowledge we are building." I understand that StackOverflow is not meant to be your mentor, but why don't we tell new users this?
    – 10 Rep
    Commented Sep 22, 2020 at 1:29
  • 1
    @10Repisn'tactiveonMSE - I mean, the site tries, but folks don't tend to care to read the docs much, then get angry about downvotes and closures. stackoverflow.com/tour "Don't ask about... Questions you haven't tried to find an answer for (show your work!), Product or service recommendations or comparisons, Requests for lists of things, polls, opinions, discussions, etc." There's literally no new content in my answer that isn't readily available in the tour or the copious help links found when writing a new post. See: youtu.be/5ZmHRElAArc
    – JDB
    Commented Sep 22, 2020 at 1:59
  • @10Repisn'tactiveonMSE That said, Stack Overflow is full of people who genuinely want to help. In fact, if you look at the posts that the OP listed, all of them are positively upvoted with answers (One of them has over a hundred upvotes!). So while the advice in my answer holds true, the assertion that SO is not a welcoming place just doesn't bare out in the long run.
    – JDB
    Commented Sep 22, 2020 at 2:07
  • @JDBstillremembersMonica - I never said SO is not a welcoming place. In fact, when I arrived here, I thought the mission of the site was wonderful, which is why I started flagging/cleaning up/answering. I never really cared for rep because I thought it was cool that I was contributing to a repository of knowledge. I just wish it would be a bit more obvious that this site is not for asking a question (or in other words, a help desk). I think one thing they should implement is a pop up saying, "If you're need homework help, consider asking your professor!", or something like that.
    – 10 Rep
    Commented Sep 22, 2020 at 2:43
  • @10Repisn'tactiveonMSE - Apologies for the misunderstanding. Tone is very hard to judge in comments.
    – JDB
    Commented Sep 22, 2020 at 3:01
  • @JDBstillremembersMonica Looking at my original comment, it sounded sarcastic, when I actually didn't intend it to.
    – 10 Rep
    Commented Sep 22, 2020 at 3:06

Being a beginner and trying to learn about C++ or Python or arctan (or anything else) is not a magic cloak that protects against downvotes and exempts you from the cultural norms about writing a good question. Being a beginner at C++ or Python or arctan is different from being a beginner at writing a Stack Overflow question.

We have a ton of information about how to ask a good question - I guarantee you have clicked past some of it - and people who comment on your questions give you even more.

The FAQ link is at the top of every page. It links to How to Ask. That links to the Jon Skeet blog entry. You were shown How to Ask before you asked. This is all stuff you could have read already.

Your question needs to be complete, it needs to be answerable, and the people who read it have to understand what you want and what you don't. Some of the people who feel your question wasn't well written will downvote you and that hurts, I know. Downvotes hurt me too, and I have over 10K rep on multiple sites in the network. But you know what's worse? Some of the people who feel your question wasn't well written will go click on something else without answering you - and they had the knowledge and background to have been able to help you.

You want to write good questions. It's the surest way to get good answers. Read the information you've been provided on how to do that. When you get comments telling you that you forgot some information, edit it into your question. Improve your question and you'll get better answers. That's so much more important than avoiding downvotes or comments that hurt you.

It's a shame you felt unwelcomed. They aren't saying "go away"; they are saying "you need to be better to be part of this." And it's worth it to be part of this, right?


Why do I receive downvotes when I am genuinely trying to learn?

Because someone decided to downvote you. People can vote for whatever reason they want with just a few exceptions related to voting fraud. Perhaps the person didn't find the question interesting, felt that it wasn't clear, was just feeling grumpy, or for whatever reason didn't think that it would be valuable to future readers. We can't know why someone else voted, nor can we say that it is right or wrong. People have the right to vote however they want.

Why when I try to learn something about programming on SO do I get down voted?

While, as I said, we can't know what the downvoter(s) were thinking, I think it's pretty fair to say that they probably weren't downvoting you because you were trying to learn.

Out of all the stack sites this one is the most un-welcoming to people trying to learn.

Well, SO does tend to get a lot of crap. Several other SE sites have this problem as well (as a percentage of content), but none of them can compare to SO in terms of volume of questions (both good and bad). This has resulted in very strict quality standards for both questions and answers. It can also result in regular users becoming frustrated with those asking questions.

We work very hard here to ensure that users don't act rudely or otherwise inappropriately towards posters, even if they post low quality content. It's important to find ways of providing feedback (both positive and negative) while still remaining constructive. I see nothing in any of your questions in which there has been unconstructive or rude negative feedback. It may be a bit terse at times (i.e. just a downvote rather than a long consoling comment). It's important to remember that terseness doesn't mean rudeness.

Why is the culture against beginner and novice programmers?

It's really not. This is just a widely held misconception. The culture here strongly discourages questions clearly asked with little effort put in. If your problem can be solved quickly and easily by yourself with some simple research or your own attempts it may not be well received. This is related to, but not directly tied to, the difficulty.

There are simply a huge number of existing resources for beginner and novice programming problems. So many of these problems can be easily solved by simple searches to existing content.

If a question is clearly very difficult, but still a very common problem that has well documented explanations and solutions it will (probably) not be well received here. Likewise very basic questions that seem trivial to an expert that clearly cannot be easily solved through simple research by a non-expert can be very well received if it's clear that the asker put effort into their own attempts.


Looking at your questions, you are probably getting downvotes because you are asking somewhat hard to understand questions at first. In particular your arctan question wasn't entirely even a stackoverflow question - it seemed like it was more of a math.se question at the end of the day. It also was pretty rambling, not getting to the point very quickly.

Your save plots as high resolution question was a bit vague - for example, the answerer had to assume some information (using matplotlib) in order to answer it. Your question should have all of the information needed to answer it in the question.

Your plot question probably was downvoted because it looks to me like mostly a pile of code without a question that's really distinct from the code. That's why it has a vote-to-close [too localized]. SO is not intended to be a code review site (codereview.stackexchange.com if you want that!) nor somewhere that you ask for suggestions; it's supposed to be specific questions and answers that will be helpful for many other users.

So instead of:

How would like to plot a function of e and nu where e is the eccentricity and nu the true anomaly. I am only looking at elliptical orbits so 0

you probably should have put the question a little differently - specifically, it's clear that your issue wasn't even the shape error itself (as you noted that you understood the error), but your issue was how to accomplish the second part of your code, putting it into only 10 values. It's a pretty small difference, but the important part is that for some other user with a similar problem, searching stack overflow, are they going to find your question? Maybe, maybe not. I don't think it deserved a downvote myself, but I think that it's not surprising other people did.

I downvote when I see a question that is not written in a way that is comprehensible. I largely post in the SAS tag, which gets only a few posts a day, so it isn't really a big deal; but if you're in Excel or Python or god forbid Java or c-variants, you need to ask a clear, comprehensible question that gets to one specific point and can be answered reasonably quickly.

Think of SE as the computer version of having someone at the office who's really smart, and sometimes you need his/her help - but he/she is a vice president and is in long meetings most of the day. Are you going to go over to him/her and ask a fairly broad, open ended question without sufficient details, so that he/she has to figure out what you mean? Or are you going to think about it some and narrow your question down until it's very specific and only takes up a few minutes of his/her time.

  • Firstly, we encourage people to explain their downvotes in comment. This is exactly so downvotes are a tool of constructive learning. In my experience this is done more often than not.

  • In American folklore (and possibly other places, I don't know), Santa Claus visits every child's night on Christmas Eve and gives them presents. Some children, even young ones, realize that there are a lot of children and night isn't really that long, so it is explained that Santa is magic and can be in more than one place at once. On StackOverflow, that is not quite the case. We receive more questions than we can collectively answer so do need to discriminate who to help. Downvotes are part of how we do this. It's a way of saying, among other things, "Your question needs improvement before we are going to help you learn."

    I draw this comparison because the other SO sites you mention are smaller communities that can afford to be more lax. In particular, askubuntu specifically is trying to get very, very novice people to embrace Linux and Ubuntu in particular as something they can use for their day-to-day computer needs. Think of them, partly, as promoters of Linux; so they have more of an interest of questioners receiving first-class treatment.

  • Many of our users admittedly do tend to be sarcastic, but you must remember the simple economy here: people ask questions on StackOverflow and get free answers to their problems. So we tend not to prioritize making people getting free help feel "welcome," the free help is incentive enough. Nonetheless, a lot of people agree with you that this harshness is a problem, and I particularly agree that I don't like programmer culture weeding out everyone but the "rough and tough."

Anyway, I think your concerns / suggestions fall into the following:

  • If it's "be nicer to new users," it's covered in this link.
  • If it's "require downvoters give useful comments," that's covered here.
  • If it's "prohibit downvotes as they're discouraging," we're not doing that, as covered here.

If I'm missing something please let me know. I've voted to close your question as "not constructive" since it seems a bit too unfocused. If you have a concern other than what I've identified perhaps we can clarify your question or leave it open.

  • 1
    +1, and just because I don't use sugary language, does not mean I am being rude. If I do not like you I will let you know with very plain language. ("Your code is bad" / Downvote != "You are a bad person and should be ashamed of yourself")
    – user7116
    Commented May 17, 2013 at 17:22
  • 1
    @sixlettervariables I will say that in my experience as an instructor, a lot of people will take that more harshly. This tends to be true of women more often. Hopefully this stereotype/observation/opinion won't set off a flaming discussion on the topic, but if gender equity in programming is of concern to you that's certainly a consideration to be more sugary. Flipped around, some people will take bluntness well, some won't - and do you want this area of upbringing, culture, emotionalness, etc. to be a factor in whether someone learns to program well here?
    – djechlin
    Commented May 17, 2013 at 17:24
  • 1
    @sixlettervariables so I don't think you're doing anything wrong by using plain language, but, diversity in how listener will take that should be remembered. It's definitely good to be more specific than "your code is bad," because while that's evident to you, they have no idea why. (I know you used a silly example but this also applies to the very common "-1 for lack of effort" - "what do you mean lack of effort, I've been stuck on this for hours.")
    – djechlin
    Commented May 17, 2013 at 17:26
  • @djechlin maybe I just have a different outlook. I have helped many users on www.mathhelpforums.com and www.mathhelpboards.com even when their questions were already answered without hesitation or slight remark. Additionally, I publish all my notes in latex for anyone to download along with mathematica.nb, matlab.m, and now python.py code. I am just more used to helping everyone and being grateful for the opportunity to impart my knowledge to others.
    – dustin
    Commented May 17, 2013 at 17:27
  • 2
    @djechlin: I live in the dirty South, a land of slow flowin' molasses words and liberal applications of ma'ams and sirs (in fact, I cannot break myself from this without a ton of effort). The Internets are a land of text. If you cannot function without a James Joyce level of context, you will do poorly on the Internets. I cannot help this, and those willing to learn will focus on content and will be fine.
    – user7116
    Commented May 17, 2013 at 17:28
  • 1
    @dustin that's a function of site volume. SO has "big city problems." People in New York tend to be more rude than small towns, but if you're familiar with the culture you don't take it as rudeness. But per "be nicer to new user" link, yes, we want more of a culture of that. It would be great if you stuck around and made a point of providing more constructive comments to new users than "-1 for poor effort," we could indeed use more of that leadership on the forums.
    – djechlin
    Commented May 17, 2013 at 17:28
  • @djechlin I am not good enough to answer any questions. I am still trying to learn myself.
    – dustin
    Commented May 17, 2013 at 17:31
  • @dustin what about on mathoverflow.com or math.stackexchange.com? I think the former is more grad level, latter more undergrad/advanced HS (not sure). Plus you might be strong at a mathy programming technology sooner than later, like numpy, matlab, mathematica, R, etc.
    – djechlin
    Commented May 17, 2013 at 17:33
  • 2
    @dustin but the bottom line is going to be that if you want help on SO, you're going to have to be willing to take the range of constructive to impersonal criticism we offer, at least, unless or until we find a way to get everyone to be nicer. If you're not okay with that... then, well, you don't get free answers. That one's on you.
    – djechlin
    Commented May 17, 2013 at 17:34
  • 2
    @dustin also note that on average we have a faster time-to-answer than pretty much every other site out there. City analogy again - big city people tend to sacrifice courtesy for expediency, likewise, here.
    – djechlin
    Commented May 17, 2013 at 17:43
  • Downvoter please clarify?
    – djechlin
    Commented May 17, 2013 at 20:23

Not the answer you're looking for? Browse other questions tagged .