While there's room to disagree about the best way to learn how to code, nobody would argue that you should do it alone. The journey to learning anything is more fun and more effective when you have peers and teachers to push and inspire you along the way.
That's why we want to offer some thoughts on what effective community support when learning to code actually looks like, and why it makes for a faster path to mastery.
We’re focusing on Python specifically in this article because it’s emblematic of what a strong community looks like, but it’s definitely not the only one. No matter what language you’re learning, look to these pillars of community for support.
Why Code with a Community
Consider the traditional classroom—you have a question, you raise your hand, and you get an answer from a trusted authority. Before, during, and after class, there are ample opportunities to talk about what you’ve been learning with your classmates, and plenty of chances to work together on assignments. Kid tested, teacher approved.
In comparison, learning to code online can be a lonely endeavor. It’s entirely possible to go from writing your first line of code to being a seasoned veteran without ever having a face-to-face conversation about what you’ve been learning.
It’s possible to overcome that isolation, you just have to know where to look. Luckily for anyone learning Python, there are online and offline resources that make the experience less lonely and more effective.
Learning Python IRL
Even the pros didn’t go it alone.
Tim Mullen is a curriculum developer at Codecademy who designed our new Pro Intensive, “Programming with Python.” I spoke to him about his personal experience learning Django, a Python framework geared toward developing web applications, and about the role that community support played in his learning process.
When Tim started learning Django, he attended a weekly meetup at a coffee shop in New York City with a small group of more experienced Django developers. Though he was the least experienced Django developer in the group, Tim said the group was consistently “warm and welcoming,” a key component that kept him motivated to learn.
In-person Python meetup groups like these exist all over the world. Just search “Python” on Meetup and you’ll find thousands of options. These range from huge groups with a broad focus like the popular “NYC Python” meetup, to smaller groups with narrower focuses, like Django-NYC and countless other framework-specific groups in localities around the world.
There’s a group out there for anyone. Whether you prefer to learn within the cozy confines of a group like Tim’s or the buzzier, busier atmosphere of a group like NYC Python, there’s no shortage of options for taking your learning offline.
Online Python Communities
Of course, for every in-person Python meetup group, there are dozens, if not hundreds, of online equivalents. That has its advantages—segmentation of a nearly limitless scale, access to information and resources independent of geography, and so on. If the NYC Python group qualifies as "huge" with 12,000 members, what does that make a subreddit with 120,000 subscribers?
With scale like that comes a unique set of challenges. When you raise your hand to ask the internet a question, there are millions of teachers who could chime in to give you an answer, and each one of them might offer a completely different one. It can feel counterproductive to take in too many sources of information, and it’s easy to feel like every additional answer to a question crowds out the answers that came before it.
So if you pose a question about Python syntax on Quora, how do you ensure that the answer you run with is the best one?
Let’s start by acknowledging that there’s no such thing as a perfect answer, and by extension, there’s no such thing as a perfect learning journey. When learning Python or any other programming language, doing something the “wrong” way can be just as instructive as doing it the “right” way. Exposure to all of the methods the internet might present to you is educational in its own right.
So how do you filter out the noise? Start by finding sources you trust (this will probably require some trial and error), read enough to feel like you know the lay of the land, but not so much that you feel overwhelmed, and then try out as many solutions as you’d like. Iterate and then iterate some more.
One of the primary advantages of the traditional classroom is that you’re surrounded by peers who are experiencing the same lessons, and the same frustrations and triumphs, at the same time you are. Open forums like the Learn Python subreddit and most Meetup groups can’t replicate this experience because of the same quality that makes them great—membership is not restricted, so members of the group have different levels of expertise.
In cases like these, it can feel intimidating or uncomfortable to raise a question or request feedback on a project as a novice. The fear of asking a “dumb question” is amplified when the audience fielding the question might be experts.
That’s why many people turn to private communities of peers, like Facebook groups or Slack channels. For example, when you enroll in a Codecademy Pro Intensive, you’re enrolled in a private Slack workspace with other members of your cohort.
Peer groups like these Slack channels help to minimize the anxiety that can come with asking a question or requesting feedback. There are no bad questions when everybody fielding your question or offering feedback has had similar exposure to the same course material you have.
On the flip side, peer groups like these are also safe spaces to take a crack at answering questions. Beyond just being a nice thing to do, paying it forward is one of the best ways to reinforce your learning. The mere expectation that you’ll have to teach what you're learning has been proven to increase retention. In the words of the Roman philosopher Seneca, “while we teach, we learn.”
Granted, it can be scary to answer a question or give feedback on a topic you don’t feel like an expert in. Paradoxically, one of the best ways to start feeling like an expert is to teach like you are one.
These communities aren’t exclusive to Python. There are meetup groups and forums dedicated to just about every programming language, and they carry the same advantages. No matter where you start, ask questions, answer questions, and treat everything as a learning experience.