Contribution Debt: Why & How to Contribute to Stack Overflow
Tags: beginners, productivity, opensource, motivation
Published: 2019-10-03 01:20:24

## Why & How to Stop Procrastinating and Start Contributing

Stack Overflow is world’s leading Q&A sites for developers with over 18+ million questions, 28+ million answers and 11+ million users.

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/2g6timzpff0fzyh5i54q.png)

A huge majority of developers use [Stack Overflow](https://stackoverflow.com/) on daily basis and I would like to share my thoughts on

- Why do I contribute?
- How to contribute? 
- What are the benefits of contributing? 

<a href="https://stackoverflow.com/users/1225551/raf">
![](https://thepracticaldev.s3.amazonaws.com/i/crqt8168iquj4h07ji1j.png)</a>

I joined the Stack Overflow community in 2012 and my contributions in the form of answering questions peaked between Nov 2015 — Feb 2016 which attributes to a huge chunk of my reputation score.

- I have posted 168 answers and asked 22 questions with a people reach of roughly ~648K
- I have ~5.2K reputation in Stack Overflow, 792 in Drupal Answers and below 200 in other communities
- I have 27 helpful post edits, flags and casted a total of 585 upvote and downvotes

I am no rockstar contributor but, do I feel good about it? Ofcourse! I feel great to have been able to contribute back regardless of the quantity.

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/wzbndpu5ie9cahjx1fcs.jpg)

--- 

# Why do I contribute?
Stack Overflow without any doubt has helped me countless times throughout my software development career.

- Search for answers to specific questions
- Clear my confusion about topics
- Quickly learn about a topic instead of going through articles and books when I don’t have enough time
- Come back to my favourite questions and answers

All of the above become possible because somebody, somewhere selflessly decided to share their knowledge.

> I benefit from other’s contributions and this is good enough reason for me to contribute back and hope that my contributions help others.

I have come across developers who use Stack Overflow on daily basis and some of them have not even bothered to signup. Somebody asked about this in Stack Overflow. 

<a href="https://meta.stackoverflow.com/questions/297527/why-dont-people-sign-up-and-contribute">![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/g6kkkja9ohvxuvxill8s.png)</a>

While the [accepted answer](https://meta.stackoverflow.com/a/297528/1225551) is not wrong, I still believe that you should sign up regardless of the reasons highlighted in the answer.

> Remember! Signing up is the first step towards contributing back.

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/q0kr6suahs6rfz61mxzc.png)

--- 

# How to contribute?
Any kind of contribution that leave the community in a better state than you found it is a good form of contribution. For instance, any of the following is a valid form of contribution

- You can improve the quality of a post
- Ask good questions that has not already been asked
- Answer question about a topic that you are knowledgeable
- Upvote questions and answers that helped you
- Downvote but, do not forget to share your reasons
- Leave helpful comments
- Vote in the community election
- Motivate others to contribute back

## Ask questions
The Stack Overflow community has come under the spotlight for not being welcoming to new users and questions however, there are many ways that you could ask a meaningful and welcoming question.

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/k0g3q3og9a06clhgnrnn.png)

- Make sure to read the necessary guidelines before posting a question. Read it [here](https://stackoverflow.com/help/minimal-reproducible-example)
- Ensure that the question has not already been asked. If there are any related questions and does not necessarily solve your use case, then state that in your question.
- When posting a question, be sure to share what you have done so far. This shows that you have put some efforts and done your research.
- Make sure to format your question and use the appropriates tags
- Do not copy/paste class assignments and projects
- Do not cross-post your question to different communities and platforms

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/669bg7br55q0vcgm2f3q.png)

If you make a post, keep an eye on flags and comments and update your post to address the concerns of those who flag your posts.

## Answer questions
Do not underestimate your ability to answer questions and there are many ways to do that.

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/am60e6xycxy31sktqxos.png)

I am not an expert in any of the above domains but, I know enough and have used it either at work or in side projects.

- Configure your profile by subscribing to tags (i.e. java, typescript, react, etc.) and Stack Overflow will filter questions that match your tags.
- Do not post an answer if your response can be a comment instead.
- Before writing an answer clarify any confusions via comments.
- Keep your environment ready to try something hands-on in order to validate your solution.
- If you quote or copy/paste content from a tutorial, documentation, or another posts then make sure to link the source and give credit where due.
- If you wish to gain more reputation tackle questions with bounties. These questions would require a little more effort.
- If none of the answers to a question resolved your issue then, be sure to post the solution that fixed your case.

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/eeyy3tknzkq9pno236nn.png)

## Answer your own questions
There will come a time when you won’t find an answer to your question in Stack Overflow. What do you do next?

- Use your ninja search skills to look for answers to your question.
- Consider posting a question in the Stack Overflow and hope that you get an helpful answer soon.
- While your question is awaiting to be answered, do your research to find out an answer by reading the documentation, articles, books, and other materials.
- If and when you find the answer then go back to your asked question and answer it yourself.

As weird as this sounds, IMO it is basically sharing your knowledge so that the next person who have stumbles upon a similar question could benefit from your findings. This is a [list of questions](https://stackoverflow.com/users/1225551/raf?tab=questions) that I asked and answered them myself and people have found it to be helpful.

{% stackoverflow 51180269 %}

I was playing around with financial charts and wanted to remove the weekend datetime from the graph.

{% stackoverflow 42603177 %}

Likewise, I struggled to find answer to my non-Spring Boot related questions and when I did find the answers then I shared it.

{% stackoverflow 48634417 %}

I was using Swagger for my APIs and at one point I noticed that each endpoint has around seven (7) swagger annotations. I thought to myself, can I make these annotations reusable?

The following question was asked way back in 2014 and since a lot has changed and different versions of the framework has been released. None of the answers worked for my use case and I posted my own version of [answer](https://stackoverflow.com/a/47246045/1225551) and not surprisingly 21 people have found it to be helpful.

{% stackoverflow 26490967 %}

## Upvoting and downvoting posts
There are many advantages when it comes to upvoting posts such as

- Your vote help rank the posts
- Your upvote shows your appreciation
- Your upvote encourages the author to make more helpful posts

All you have to ask yourself is, did this question or answer help me? If yes, then upvote the question and answer. Simple as that.

When you downvote, be sure to provide a comment explaining your reasoning and keep an open mind. I have `3 downvotes` and `566 upvotes`.

---

# What are the benefits of contributing?
In my opinion, it is the right thing to do and that’s is good enough reason.

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/2z9ycb5xj4etafp5f5pw.png)

Here are some of the benefits of contributing to Stack Overflow vs not contributing

- Give back to the community ❤
- Communicate with other developers
- Share your existing knowledge
- Acquire new knowledge
- Learn how to write effective posts
- Use your Stack Overflow profile elsewhere to promote yourself
- Setup your job preference in Stack Overflow to explore jobs and receive offers

--- 
# Conclusion 

Thank you for reading. Please feel free to share your ideas, suggestions, feedback and strategies on how to get started and succeed at contributing to Stack Overflow community.

If contributing to open source interest you then you might find the following article useful.

{% link https://dev.to/rhamedy/why-you-should-think-twice-about-contributing-to-open-source-1l4d %} 

I also wrote an article on some of the key habits that in my opinion would help you become a better developer.

{% link https://dev.to/rhamedy/key-habits-and-things-i-wish-i-knew-earlier-as-a-developer-2c97 %} 

Please follow me for future articles and feel free to add me to your professional network on [LinkedIn](https://www.linkedin.com/in/rhamedy).