To get high reputation, it is easiest to answer trivial questions on popular topics.
- Trivial answers get votes, because everbody can judge.
- Very popular topics get more votes because more people read it. (You can say that it is fair to get more reputation for more popular topics, reputaion is about popularity somehow. But combined with triviality, it is not fair anymore.)
Also consider that many users want to earn the Civic Duty badge, which is easy to earn by voting for trivial answers. On the programmers Stackoverflow, it are typically beginners questions about C# and LINQ.
Sometimes I answer complicated questions on not "top-popular" topics. After spending an hour or more to give a brilliant answer, I get accepted and - when I'm lucky - upvoted once or twice. Which is ridiculous compared to ten or twenty or even more upvotes for trivial questions. I'm not the only one I'm sure. Most people are in the "non-top-popular-topic" area.
I know, "Reputation is not a measurement of your expertise", no need to remind me of that. But I would like to encourage people to spend time on more complex and a bit less on popular questions. If reputation should be a "measurement of contribution", then should putting more work and uncommon knowledge into a single answer also count as more contribution.
Some suggestions to "fix" it:
- Reduce reputation for votes compared to acceptance. For example: accepted answers get five time more reputation than votes.
- Reduce votes reputation when the number of votes gets higher (for example, the first vote gets 10 rep, the second gets 8, the third 6 and so on until they only get 1 rep).
- As above, but the number of votes is counted on all answers together. So if many answers get many votes, they all earn less reputation.
- Rate questions' difficulty by votes (too complicated?)