Stackoverflow.com launched 7 years ago, and it had viral growth in the developer community. Today over 5 million developers use Stackoverflow as a place to ask questions about programming and get answers from professionals.
It is a prestige and achievement to have a high reputation on Stackoverflow and i know many developers that use Stackoverflow as a CV instead of the traditional Resumes. In 2015 i employed a guy that had only a Stackoverflow profile and didn't have a CV!
Stackoverlow is not only good as a CV, but it's a powerful tool for self-improvement. In an old Stack Overflow podcast, Eric Lippert explained that a manager once told him that if he wanted to be an expert on something, he had to find a big pile of questions about a certain topic and answer those questions the best way he could.
So if Eric Lippert and Jon Skeet consider Stackoverflow valuable are You ready to contribute?
To help You gain reputation quickly i will describe a set of guidelines based on my experience.
My Stackoverflow Statistics
I wasn't an early adopter like Jon Skeet. I started using Stackoverflow intensively in 2014/2015 and i had a reputation growth of 25x in a one-year period. Here is my growth chart:
Currently i am in top 3% overall with 6.8k reputation, and also top 10 from my country. I got only 4 downvotes in my whole Stackoverflow career. I guess it's not bad for < 6 months of regular contributions.
Keep high contribution standards
To get high reputation, i had to conform to the high contribution standards, and it is a very opinionated community. I think that is a very positive thing, and it requires high discipline when writing questions and answers.
Reputation is built with high quality content and reliable answers, so always have that in mind. Each of your answers should be as good as a Wikipedia article!
Check the Help section for guidelines - http://stackoverflow.com/help
Respect and Help others
I had to Respect time of other people involved on the site, and take care to research and write quality content.
On some occasions i have spent hours just researching the question and hours writing the answer. Make sure you don't contribute duplicated content, since that is disrespectful for people answering the questions and moderators.
Make sure you don't argue and write offensive comments. It is all about respect and building a high-quality community and content to help others.
If people consider your content helpful and well-written, you will get an upvote.
Know there are no easy answers
Don't look for easy answers. The easy answers were contributed in 2008 and 2009 when the site was starting. The average question is much harder to answer in 2016, but that is a challenge for You and not a limitation.
Actually, one of the strategies that i employ is to answer questions that are already answered, and i try to write a better answer.
By picking a harder question you can learn more during your research and you can get more reputation and some less common badges.
Some of my most-successful answers required going deep into C# MSIL or React.js source code.
Verify answers correctness
Verify answers by researching and running small code-experiments. I always create a PoC for any code i am contributing using tools like JSFiddle or by putting together a small code-sample that i can use to verify my solution.
I have a folder on my Mac with hundreds of small code experiments that i used for my Stackoverflow answers.
Learn from the giants
Stackoverflow is a place where you can learn from legends like Jon Skeet, Marc Gravell and others. Make sure to scan and read the content they have written and replicate the quality of their answers.
Don't steal, but learn from others and build something better. Be like an artist that learns from others.
Bad poets deface what they take, and good poets make it into something better, or at least something different. The good poet welds his theft into a whole of feeling which is unique, utterly different from that from which it was torn; the bad poet throws it into something which has no cohesion. A good poet will usually borrow from authors remote in time, or alien in language, or diverse in interest.
Read, listen and research more than you write.
“We have two ears and one mouth so that we can listen twice as much as we speak.”
Compete! it's good for your brain
Set goals and compete with others. Competition is nature's devised mechanism to quickly improve and evolve our brain.
Neuroscience teaches us that when we do things we don't know (e.g. researching and answering some hard questions) we learn and expand our brain dark matter and enforce neural networks.
Going over the frustration of not knowing the answer will build a certain level of discipline and a love for hard tasks, which is invaluable in a programming career.
I managed to have a 50:1 vote ration on an Answer by C# expert and Google Engineer a.k.a. SLaks (#8 on stackoverlow). You can easily get more votes than the SO giants if you provide a better answer!
It is possible to build your reputation on Stackoverlow quickly, but don't think it's an easy path.
However, always remember that you don't grow by taking the easy path. Always look for the hardest task.
Be Ready to fail
Yes, you will fail and people will downvote your answers. That is just a feedback, and use it wisely to improve your next answer.
The community is like a market in capitalism. A bad answer will not survive the community, like a bad product will not survive the market. However, that doesn't mean you should not launch the next product.
“If you want to improve, be content to be thought foolish and stupid.”
Be humble and respectful. Even if you keep learning next 40 years, you will never know even 1% of the knowledge in the software-engineering field. That fact is enough to keep you humble all your life! Never think you know everything.
“It is impossible to begin to learn that which one thinks one already knows.”
There is a way to grow your reputation! and i hope i could motivate you at least 1% to keep trying. The rewards are immense and you will learn a lot in the process.
Check out my stackoverflow profile: