I'm here to learn, because StackOverflow is a great place to learn. My teacher is YOU.
A great way to learn is answering questions. Why is that?
When answering a question you can't just write down some vague nonsense hoping there is some help buried in it. StackOverflow is a vigilant community that quickly scourges crap. So you have to know what you're talking about, which takes profound study: learning.
Your questions make me learn about real-world problems and issues. The internet is crammed with smooth code examples that carefully avoid the thorns and thistles that grow in a world that’s more complex than “hallo”. I can’t count the number of times a question at StackOverflow revealed issues I was happy to know about before finding out the hard way.
Reputation ≠ learning
(Or not necessarily so)
As I see StackOverflow as a learning environment I’m hardly ever involved in the Fastest Gun in the West rat race. I like to scan for questions that somehow turn out unanswered when the dust has settled. Then I can take my time and see what I need to learn or recap to answer them. In terms of rep, this is not as rewarding as the quick answers with high visibility, but rep is a small treasure compared to knowledge.
And of course, sometimes I just answer questions because I happen to know the answer :)