You can raise your reputation mainly by answering people's questions with good answers (that get upvoted) or asking good questions that the community appreciates (enough to upvote).
It's true that a lot has been asked and a lot has been answered already. Yet we have new questions every day, which proves that the subject is huge and the languages, technologies and frameworks we're talking about are numerous enough to provoke new questions by the minute.
You'll have to keep in mind that in Stack Overflow there's enough traffic so that the easier questions are answered within a minute (often multiple times), while the harder questions remain unresolved for somewhat longer. Still, most questions are resolved fairly early, so don't bother actively looking for questions to answer. Instead, browse the home page (which lists the questions with the most recent activity) a couple of times and if something looks like you can handle it, go for it. Lots of high rep users give the answer quickly (which already gives them a few upvotes, while the question is still "hot") in compact form and then spend some time editing that answer to include all the information, context and explanations they feel is necessary.