A new year has arrived, and that usually means new resolutions for most of us. One resolution that has been on my mind for 2017 is a simple question: how can I give back to the developer community this year?
Having worked as a developer, developer evangelist, and content writer in the past few years, I have gotten a lot of help from a lot of different sources: discussions with friends and work colleagues; talks and workshops at meetups and conferences; online communities like Stack Overflow, Hacker News, Slack groups, Facebook groups, etc.
But, consuming that knowledge is often easier than contributing to it. For example, it probably took me a good couple years before I started interacting and upvoting on the Stack Overflow community. It took even longer for me to be comfortable writing and sharing my first blog post.
So, if you made a similar resolution to give back to the developer community this year and need some help on how to get started, we're going to cover a few different ways that you can do that. First, we're going to talk about online communities: GitHub, Stack Overflow, social media, and writing. Then we'll move to offline communities and talk about meetups, conferences, and public speaking.
Every section will include some general advice, and also some more in-depth links. But before we get to the actionable advice, let's talk a little bit about why we should give back.
Why Give Back?
There are plenty of ways to go about giving back, but before we get to that, maybe you're asking yourself: why should I give back? Well, helping others can make us happy (and some might say that's the secret of happiness). There's a Chinese saying that goes: “If you want happiness for an hour, take a nap. If you want happiness for a day, go fishing. If you want happiness for a year, inherit a fortune. If you want happiness for a lifetime, help somebody.” If you're more skeptical, there are actual scientific studies to back up how helping others positively impacts your life.
Besides happiness and meaningfulness, giving a helping hand can also boomerang back into your life in a variety of positive ways. Helping open-source projects, for example, could lead you to meet other developers who might be your future co-workers. Or speaking at a conference might help you cross an item off your bucket list, and help you give better presentations in the future.
So, let's get started!
I can't count how many times Stack Overflow has helped me solve some horrible bugs, or how to center a div with CSS. And it's really easy to give back here:
Nothing like a website's own guide, so definitely check out Stack Overflow's Help Center. That includes a good collection of guidelines and suggestions, from what topics you can ask about, to how their reputation system works.
If you find a question and answer that helps you solve your problem, make sure to upvote both the answer AND the question. That can help other people that run into the same issue more easily find it.
It's also common for answers to get outdated. If you see that, don't be afraid to suggest an edit to an answer, or write your own. Maybe a new version of a Node.js library came out that changed a method's signature, or maybe you just found a better way to center a div with CSS.
It's okay to answer your own questions! If you couldn't find a solution on the website and want to document it for other people, that's encouraged. If you have a little bit of reputation, you can even post a question with an answer to it at the same time.
The popular work chat app is not only good for use as part of a company. A lot of developer communities have embraced the platform and created public Slack channels that you can join, in favor of the usual Google Groups. For example, you can find specific communities focused on one language like Clojure, to more broad ones like DevChat.
There's no official Slack communities directory, but here's one that I found that include some popular developer communities:
You can also create your own Slack group. Besides groups for specific languages, another option is to create a group for your local community, city, or even country. Buffer has a great blog post about starting your own group that covers why you should do it, how to promote it, moderate, and even measure success with KPIs if you're into it.
One of the best ways to keep up-to-date with news is Twitter. But building a good follower list can be a challenge. That's why Twitter lists can give you a big hand when you're trying to follow a specific topic. They're a curated list of folks that others (or you) can create, and it makes it really simple to follow a specific topic, be it a programming language, to a list of people attending a conference.
There's no way to search for lists right from Twitter, but you can do a Google Search filtering by site, and it should give you back a few good results.
Some conferences also make Twitter lists for speakers or attendants, and that's usually a good way to start interacting online and meeting people even before the event starts.
Chris Wolfgang from Codeship wrote a blog post last year on "Why Developers Should Write", and I highly recommend it. I'm biased here, but I really believe writing is one of the best ways to give back to the community.
This doesn't mean you have to start your own blog and write a 3000-word blog post every single day. There are better (and saner) ways to help your fellow developers with writing
As I mentioned before, writing question and answers on Stack Overflow is awesome.
If you don't want to start your own blog, another option you have is writing guest posts for other companies. Some will even pay you for it, but before you start writing make sure to reach out to these companies first. They might be only interested in certain topics, and sometimes they might even help you brainstorm some ideas for you to write about.
If you'd like to start your own blog, that's awesome! There are a few ways you can go about, like hosting your own with a platform like Wordpress or Ghost. My favorite though is writing on Medium. It's a pleasure to write (and read) on it, it's super easy to get started, and it gives you some help in reaching readers with the Facebook/Twitter connections, and their newsletters.
Another great post/talk on this is Kristina Thai's "Become a Better Engineer Through Writing". She gives a great overview of the benefits and challenges of different forms of writing you can do (journal vs. Q&A forums vs. blogging vs. tutorials). She also shares her journey on starting her own blog, from getting a couple visits a day to being invited to speak at conferences all over the world. And the best advice I think she gives for getting started, you do not have to be the expert. So, don't be afraid of writing even a really tiny blog post about an issue you just solved, or a new open-source project you started.
Facebook Groups & Quora
I'm just going to mention these two: Facebook Groups are still a good way to participate in developer communities, and Quora can sometimes be an underrated source of knowledge for developer questions, but there's some good content in there as well.
As a developer, this might be the place where you spend most of your time next to your IDE. You can find the most popular open-source projects hosted on GitHub, and it may also be where your company keeps its private repositories.
If you're new to open-source, check out GitHub's guide on Contributing to Open-source, and Erika Heidi's post on A Beginner's Guide to Open Source: The Best Advice for Making your First Contribution.
Nowadays, it is really common for even the smallest project to use some sort of open-source framework or library. These are maintained by people, most of them in their free-time. So, if you find a bug, go to the project's repository and see if there's an open issue for it already. If not, open one and try to be as descriptive as possible. Maybe give it a try in fixing it. Reading other people's code is a great way to level up as a developer too.
You can also find events that encourage people to start contributing to open-source like Digital Ocean's Hacktoberfest, which happens every year in October. If you scroll down to the bottom and look at the "Resources" section, they also link to some excellent guides about how to contribute.
A sort of pattern that some projects that need help use is adding tags to certain issues named "help wanted". That makes it super easy to search GitHub for issues that you can try to help. You can do a GitHub search for state:open label:"help wanted", filter by language, and find projects you can contribute to.
Open-sourcing your projects is another great way to help the community. But, as they say, with great power comes great responsibilities. So, sharing your code for other people to use is great, but remember to also include a license with it. That way people can know whether they are free to use it, change it, or distribute it. GitHub even made this easier by creating a website appropriately called choosealicense.com.
This is one of the best ways to give back, and also reap some huge rewards. As humans, social interaction is proven to have all sort of positive effects in our lives. Meetups can help you meet some great people, and also pick up some new skills.
Meetup.com is the biggest platform for organizing and finding these events. And, especially if you live in a big city, it's easy to find developer meetups by creating an account there and searching for your favorite programming languages.
If you're already part of a few meetups, know that most organizers can always use a helping hand. Putting events together takes a tremendous amount of work, so even something as small as inviting your friends, making sure to attend after you RSVP, interacting with other people, and taking pictures and posting them on social media, every little gesture is appreciated.
Buffer has another great post, this one titled "How to Host a Meetup For Your Community: The Who, What, Where, When, And How". I especially like the checklist they have at the end of it.
A great option for starting a meetup, but getting a head start with a little more support and resources, is to look for organizations such as CoderDojo.
CoderDojo is a "worldwide movement of free, volunteer-led, community-based programming clubs for young people." Greg Bulmash is the Lead Organizer for Seattle's CoderDojo, and he has been doing it even before he became a technical evangelist at Amazon. He says "Besides helping prime the pump for the next generation of developers, it helps a lot of public spirited grown-up devs get a chance to build our mentoring skills, connect with peers (fellow volunteers), and get the good karma and happy brain chemistry that comes from seeing a kid light up because they grasped a new concept."
There are also some great organizations out there who are making a difference by empowering women, and making the developer community a more diverse field. For example, RailsGirls, a non-profit volunteer community, aims to "give tools and a community for women to understand technology and to build their ideas".
Helping organize one of these events that have the backing of an organization are usually a little bit easier. They already have experience and resources that you can use, and a community of experienced people to support you.
Here are a few other organizations that you might be able to help as an organizer or volunteer:
Similar to meetups, conferences have much of the same benefits but in a bigger scale. You can meet even more people, listen to and learn from some great speakers, and maybe even do some workshops to polish your skills.
And also similar to meetups, giving a helping hand during conferences can also come in a multitude of ways:
Small things like taking pictures during the conferences and sharing on social media are always helpful. Triple bonus if it's a picture of a speaker that includes a thank you for a talk that you really liked.
A lot of conferences need volunteers, from people to help during the registration process to assisting speakers set up their talks. So if you have some free time, don't be afraid to reach out to organizers and offer to help. That may also help you save some money, and if you're an introvert, it's a great way to help you meet new people.
If you consider yourself more of an introvert, Adam Duvander from Zapier wrote a great blog post on "How to Attend Conferences as an Introvert", so definitely check that out.
Brown Bag Lunch
A cool practice that some companies put together is having "brown bag lunches". That usually involves an office lunch, and a talk by someone from the company or an external speaker.
Brown Bag lunches are great ways to disseminate knowledge across the company, especially when you have multiple teams working separately. It's also a great space to talk about new technologies or personal projects, and even practice a talk that you might be preparing for a meetup or conference.
Giving talks could be its own separate blog post, so I just wanted to share some resources and general tips if you're thinking about doing it:
It might be tempting to just go and try to give a talk at a conference, but speaking to a huge crowd can be really intimidating. You might want to work your way up the chain by first practicing giving a talk to friends or colleagues (internal talks at companies are great). You can then start giving talks at meetups, who usually need more speakers every month. And then, finally, start presenting at conferences.
Don't be afraid to reuse talks, especially if they're well received. Practice makes perfect, and that's the same way with presentations.
Having great slides can make or break a presentation, so do give some thought to them. And by all means, avoid walls of text. Chris Heilmann gives some great advice here on "Prepare great slide decks for presentations".
TED talks are really popular, and they even have a book about public speaking! It's called The Official TED Guide to Public Speaking by Chris Anderson, and it can truly change the way you approach giving talks.
Bonus: if you have some extra time, check out Tim Urban's post (Wait But Why) on his experience doing a TED talk.
Do What Works Best for You
Giving back and helping others is great, and these are just a few ways to do it. It can help you achieve that New Year's resolution, give you a sense of meaningfulness, and even include a few extra benefits like making new friends, landing a new job, or learning a new skill.
If you would like to talk more about any of the topics mentioned here, please reach out to me on Twitter, and I'll be happy to help. :)