There are a plethora of online communities and social media platforms online, and many of them are popular among different groups and pockets of coders. However, there are four specific places I find myself returning to and using, time and again.
GitHub is practically the geographic center of the programming world. It is used to host projects, code repositories, websites and blogs, pastes, and a whole host of other things.
While most of the resources on GitHub can be accessed without an account, the true value of the community is in the interaction. GitHub also serves as a sort of combination universal login and cred badge for coders.
There are other similar tools: GitLab and BitBucket being the two most notable examples. There are certainly valid arguments for each, and it may be worth having accounts with all three (I certainly do); but if you decide you only want to sign up for one, make it GitHub!
It may be tempting to maintain multiple GitHub accounts, but let me strongly discourage you from this.
*Yeah, I know, your workplace may have handed you a GitHub account you were supposed to use only for work, or some other such nonsense policy. If that's the case, just flow with it and make your own GitHub account your own. The onus is on them for making you use a second account.]
Yes, the network that is hope to the (in)famous StackOverflow, as well as other useful sites like Server Fault, Ask Ubuntu, and Power User.
People have strong opinions about this community model, and I'll be the first to admit it has its drawbacks. Regardless, Stack Exchange is the de-facto Q&A source for all things coding (and then some).
Sure, we don't want to by Copying and Pasting from it, but without StackOverflow's model, we'd have a lot more of...
Even if you find the model somewhat repugnant, remember that no community can improve when the well-meaning stay out! Whatever your feelings, it is definitely worth having an account, just for the following basic privileges:
Upvoting good questions and correct answers.
Favoriting especially useful Q&As you keep going back to.
Commenting, to help improve, expand, and update answers with current and accurate knowledge.
Proposing edits, to help keep Q&A clean and up-to-date.
Asking questions! This is the fastest way to gain reputation. Read their tips on question asking, ask, and then wait and don't let naysayers get you down. (Downvotes aren't really as big a deal as they seem.)
Answering questions. Share your knowledge. If you get it wrong, or if your genius is underappreciated, just keep going.
Once you've got the basic privileges you want, you don't need to feel obligated to keep heavily participating. Just interact when you think you can add something. Meanwhile, upvote good questions and answers, and favorite things you use a lot. Just a little bit of encouragement goes a long way!
If you'd like some tips on surviving and thriving on StackOverflow and beyond, check out my talk, A Field Guide to Common Nerds.
Slack, WhatsApp, and all the rest of those fancy chat apps are well and good, but IRC is still the core chat technology of the programming world! There are several networks that are worth joining, depending on what communities you want to be active in, but the most vibrant I've encountered is still Freenode IRC, home to the lion's share of the Linux and coding communities.
IRC is one of the oldest computer-based communication platforms, a contemporary of USENET and predecessor to the old Bulletin Board System (BBS) communities. But don't let the age convince you that it's outdated - if anything, it is a mature and stable platform, from which we inherit many aspects of "netiquette" still in use today.
There's a reason why this joke is true:
While it is a synchronous platform, the IRC culture includes the concept of lurking. Most IRC alumni are logged in most of the time, if not constantly (using an IRC relay). Questions may be answered and messages responded to sometimes hours after they are posted. The expectation is that everyone post and wait. This also means that you don't have the same pressure on you in IRC as with other chat apps: you aren't expected to answer quickly.
Getting on is easier than it sounds:
Select an IRC client (Hexchat and Irssi are popular choices.)
Configure your client to automatically log you into your nickname (using SASL) and join your favorite rooms. Autostart your IRC client with your computer, or get into the habit of starting it up regularly.
You should look for communities that both interest you and have community rules that you agree with. Some rooms are very relaxed about topics and behavior, and flame wars can break out as a result. Others are strict, avoiding certain topics to keep things friendly. Unfortunately, as with any community, some rooms reward antisocial behavior and punish good behavior, so be cautious where you join!
You can find rooms for many common technologies and programming languages, and social channels for those same communities. Here's a few of my favorite rooms:
#python: This was the first coding community I ever joined. It's a great place to learn more about the language, ask AND answer questions at any experience level, and find weird-but-friendly coding debates about the language.
##c++-friendly: This is actually my own room, which I founded to provide a safe and healthy C++ discussion room. Small, but growing. (Warning: avoid
##c++- they're relatively infamous for permitting hostile, trollish behavior.)
#ubuntu: Support for Ubuntu-based operating systems.
#ubuntu-offtopic: A great social room, even if you aren't an Ubuntu user. The application of the Ubuntu Code of Conduct keep it relatively active and healthy.)
This one is so obvious, it almost hurts! dev.to is without a doubt the friendliest and most vibrant community of coders on the internet. If you haven't joined yet, what are you waiting for? (You can register with GitHub...see #1!)