Okay, I admit the title is a bit cryptic but I couldn't come up with something better.

As some of you may have noticed I have started spending a lot more time on code golf answering questions/challenges. I usually prefer to answer in C#, though I have started with a couple of other languages, as that is what I am comfortable using. It's also quite fun using this as a challenge as it is hard to golf to lower byte counts.

However, as I use C#, and answer late (not usually around when a challenge is posted), my answers tend to get few upvotes. I used to think this was due to me using C# and having a higher byte count but recently I've been noticing that a lot of other answers of similar or higher byte counts get upvotes, most notably JavaScript and Java answers.

Is there a "secret" to get more upvotes?

Side note: I don't answer here for the upvotes, I like answering the challenges. But similar to many here I enjoy seeing that little green icon informing me that others liked my solution as well.

  • 9
    \$\begingroup\$ I personally am much more likely to upvote if there is a clear explanation accompanying the code. \$\endgroup\$ May 31, 2017 at 16:32
  • 1
    \$\begingroup\$ Answers constitute question activity which is immediately visible on the homepage. Getting only few upvotes most probably means that few people were interested. \$\endgroup\$ May 31, 2017 at 16:32
  • 1
    \$\begingroup\$ Early-posted, well-explained, better-golfed-than-competition, no mistakes on first post, in a language that is abnormal but well known, or that one would not immediately think of. \$\endgroup\$
    – Stephen
    May 31, 2017 at 19:47
  • \$\begingroup\$ @Dada Did you even read my footnote? I do answer because I enjoy it, the upvotes are a nice "bonus" and something that makes you think that others liked what you've done as well. \$\endgroup\$ Jun 1, 2017 at 8:06
  • \$\begingroup\$ I think JS might get higher upvotes than others because (1) more people are familiar with the language and (2) the results are often available right there in the answer via a stack-snippet. \$\endgroup\$
    – Octopus
    Jun 2, 2017 at 18:01
  • \$\begingroup\$ I agree that upvotes are sort of not fair. I got about thirty upvotes for one of my answers in Python. It was completely trivial and it didn't do anything clever, so it didn't deserve many votes. It would be nice if people were encouraged to upvote things that are elegant and that actually have something different to the other solutions, rather than simply upvoting things because they're short. \$\endgroup\$
    – 0WJYxW9FMN
    Jun 8, 2017 at 16:02
  • \$\begingroup\$ @J843136028 But getting things short is the goal of most of the challenges here? Just because it is trivial to someone who uses a language a lot doesn't mean it is trivial for everyone. \$\endgroup\$ Jun 8, 2017 at 16:03
  • \$\begingroup\$ @TheLethalCoder Perhaps we should discourage users from upvoting unless they actually understand the code. Yes, getting things short is the goal, but what's actually interesting is the method you use to get the code short, so you should be commended more if you find a really clever way to get your code short. \$\endgroup\$
    – 0WJYxW9FMN
    Jun 8, 2017 at 16:10
  • \$\begingroup\$ @J843136028 In that scenario how would you deal with someone posting their new language for the first time? Should they get no upvotes because no one understands it? Similarly for languages a few people use. \$\endgroup\$ Jun 8, 2017 at 16:14
  • \$\begingroup\$ @TheLethalCoder They can explain their code and how their language works if necessary. \$\endgroup\$
    – 0WJYxW9FMN
    Jun 8, 2017 at 16:17
  • \$\begingroup\$ @J843136028 I think you're coming at this post from the wrong direction anyway. I wasn't asking for more upvotes, merely why it appears my answers don't get many. \$\endgroup\$ Jun 8, 2017 at 16:19

1 Answer 1


Optimizing for upvotes is, unfortunately, quite different from optimizing for providing good answers.

The first thing to note is that although language choice generally is about what you find fun to golf in, and you can compete among other people who use the same language, voters tend to favour programs which look golfed. Typically, this implies being as unreadable as possible, which gives golfing languages something of an advantage. (The unreadability of golfing languages is a bit of a problem here, as most people can't determine whether a golfing language entry is well-golfed or not; so they often just get upvoted indiscriminately.) People also tend to upvote entries which use languages they're familiar with, which would be another disadvantage of C# on a site like this. Finally, people tend to upvote entries in languages which are particularly fitting for the challenge; C# tends to do badly on this metric too.

Answering a challenge quickly is one of the most vital things for getting upvotes, though. The vast majority of interesting challenges on PPCG end up on the Hot Network Questions list, and get a lot of drive-by upvotes from other Stack Exchange sites (presumably mostly Stack Overflow, as it's by far the largest). If your answer isn't in while the challenge is on HNQ, it's unlikely to ever get the opportunity to score highly.

Another way to get more upvotes is to get more people looking at your answer. Probably the least abusive way to do this is to give useful feedback on other people's answers; that'll not only get them looking at the challenge (and thus possibly competing answers), but when they edit their answers to incorporate your feedback, they'll bump the post and more people will see your answer as a consequence. I've gotten quite a bit of reputation from this trick, but because it ends up improving the site as a whole, it doesn't even seem particularly underhanded.

Finally, answers to easy challenges tend to get more upvotes than answers to hard challenges. This is clearly backwards (answering a hard challenge tends to be more impressive!), but also pretty easy to explain: easy challenges have a lot more people attempting them (often multiple times), and thus a lot more people see the other answers to the same challenge. (An exception: if the challenge is so easy that your answer gets pushed back to page 2 on both "votes" and "active", it's unlikely to ever see the light of day unless it's the subject of a bounty.)

In order to get really high vote totals (100+), an answer normally needs to abuse the challenge specification in some way, or else optimise for something other than what the challenge is asking for. Such answers also have a risk of being downvoted and deleted. (Occasionally, such answers are highly upvoted and yet deleted anyway when a diamond moderator notices they break the rules.) About the best you can do is conclude that Stack Exchange voting incentives are completely messed up, and stop worrying about the votes.

  • 7
    \$\begingroup\$ I won't downvote the answer just for this, but I disagree strongly with "The vast majority of interesting challenges on PPCG end up on the Hot Network Questions list". Very few interesting challenges end up on HNQ: lots of trivial ones do. \$\endgroup\$ Jun 1, 2017 at 6:27
  • \$\begingroup\$ Just to reiterate I don't post for votes and try to get them, however, I like knowing that others appreciate the effort I took to make a solution etc. \$\endgroup\$ Jun 1, 2017 at 8:20
  • \$\begingroup\$ @PeterTaylor: I could change that to just "the vast majority of challenges", I guess. Trivial challenges nearly always end up there too. The ones that don't tend to be nontrivial and yet noninteresting. \$\endgroup\$
    – user62131
    Jun 1, 2017 at 19:17
  • \$\begingroup\$ Perhaps, in order to rectify the fact that answers to easier challenges get more votes, we could have a way to measure how hard a challenge is. This should be something like awesomeness = how long the challenge has been up / number of answers on the post, where you get k * awesomeness reputation for an upvote (where k is a constant adjusted as required). This isn't ideal, but I can't think of any better way. \$\endgroup\$
    – 0WJYxW9FMN
    Jun 8, 2017 at 16:08

You must log in to answer this question.

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