Answer lots of questions with thoughtfulness and details and working code examples that are correct.
I find that about 90% of the points I get are for answers I made to a question that was not answered completely with sufficient details. I might not get the check mark, and the question might already have an "accepted" answer, but in many cases over time I will get a higher voted answer than the one that gets marked "accepted".
Answering unanswered or incorrectly answered questions shortly after they are asked helps, but is not essential.
This site isn't about getting points as fast as you can, it is about answering questions correctly and completely, to create a knowledge base for everyone to benefit from.
The reputation points are a reward, and a gauge that people can use to know that you probably know what you are talking about if they don't completely understand the answer you provided.