Finding a Community of Professionals
You've just stopped being a study group. You've become something unstoppable. I hereby pronounce you a community.
Jeffery Winger (Community s01e01)
I recently had the opportunity to speak at a local developer conference, Big Mountain Data and Dev. While preparing my talk, I was struck by how important the communities I belong to have been for me. I first learned about Pluralsight while attending the local Software Craftsmanship meetup, and without the relationships that I developed there, I probably wouldn't be working here today.
More than just helping me get a single job, though, the software development community has helped me to grow both as a developer and a person. The friends I've made have challenged me to continue to find ways to improve, rather than sitting back on my laurels. Without their help, I might be the stereotypical developer - headphones on, shutting out the world, ignoring the social context of my programs in favor of pure technical correctness. Thanks to their prodding, I now seek out ways to help others in turn.
The value of community
Not only individuals and interactions, but also a community of professionals
There's a remarkable power that comes from finding a group of like-minded individuals. As Linda Rising wrote in Fearless Change, "We all need help at times. People who set a high goal will eventually find that they cannot achieve it without other people". Real change, real improvement, requires dedicated effort over a long period of time. When we attempt that kind of change on our own, it's all too easy to become discouraged by our lack of progress. If, instead, we have friends going with us, we gain both increased ability and strengthened resolve.
Our abilities increase because as we build communities to support each other, we are able to teach each other from our unique experience. On our own, the only way to gain the wisdom that we need to build complex systems is by gradually experiencing a wide variety of systems. With a community, on the other hand, each individual is able to bring their individual experience to the table, allowing the group to form a degree of collective wisdom beyond any single individual. If you assume that each developer should learn on their own, the statistics around the average experience of technology professionals are daunting, with over half of respondents to the Stack Overflow survey having less than 5 years of experience. With so many new developers, sharing experience is vital if we hope to avoid repeating the same mistakes indefinitely.
On the other hand, even the newest boot camp graduate will know something that the most experienced graybeard may not be aware of. This interplay, helping and being helped, creates an opportunity for everyone to improve, and for everyone to succeed. In looking for a community of professionals, it's not enough to look for a place where we can be helped, we must also look for a place where we can provide help. The act of offering help will simultaneously provide us with a sense of belonging, and improve our own understanding.
Communities strengthen our resolve in two main ways: they provide accountability and evidence of progression. As anyone who has ever made (and subsequently broken) a New Year's resolution can attest, it's much easier to say you're going to change than to actually follow through. Most of the time, when we give up on our goals, it's either because we forget about them, or because we feel that our effort is wasted. By becoming part of a community of people with similar goals, we make it much harder on ourselves to ignore our goals, because friends will remind us of them. At the same time, those social interactions can provide us with opportunities to demonstrate how much we've learned, providing us chances to share the experience we've acquired.
How do I get started
It can be daunting to try and find a community to belong to when you don't know where to look. The trick is not to let those feelings prevent us from trying. While there are lots of ways to find a community to join, here are a few that I've used in my journey so far:
User groups are a great way to meet members of the local communities you'd like to become a part of. They generally meet (either virtually or in person) on a fairly regular cadence, and offer both helpful content and a way to meet people with similar skills and interests to yours. Their biggest downside is traditionally that they are somewhat challenging to find, since they generally are run by people without much skill in marketing, and often on a very small (or even non-existent) budgets. Fortunately, meetup.com has helped a lot with this, providing a great way to find groups that you may not have heard of, but fit what you're looking for. Not all user groups are listed, of course, so don't be afraid to ask your coworkers what groups they are part of as well. You'd be surprised at the great opportunities that are just waiting to be discovered.
If you're in Utah, I'd invite you to take a look at UTSC, the software craftsmanship user group that I organize. We're eager to share what we know, and learn from your experiences as well. Even if you can't make the meetings, join us on Slack to share your thoughts on better ways to create software. I'd also suggest checking out Global Day of Coderetreat, which provides a great chance to meet people who are interested in improving their ability to code. Pluralsight is hosting events in both Boston and Salt Lake.
Large national (and international) conferences get a lot of attention - and they deserve it! Those major conferences offer tremendous opportunities to learn from industry leaders in a variety of fields. On the other hand, they are often quite expensive, and unless you're living in San Francisco, they probably require travel, which can easily double the cost to attend. Local conferences, while likely to have fewer famous speakers, require a much lower investment of both time and money. The lack of famous speakers is often more than made up for by the fact that many, if not all, of the speakers are local developers who are happy to answer questions, and much more available than the bigger names.
In addition, local conferences provide an excellent opportunity for you try your hand at speaking. A large part of the benefit of communities is that they provide you with an opportunity to give back, and speaking at a local conference is a great way to share your knowledge. Even if you don't consider yourself an expert, there are things that you know that other people would love to learn, and the only way to get better at teaching (an important skill for everyone) is to practice.
In Utah, a couple of my favorite local conferences are Big Mountain Data and Dev and OpenWest. When searching for local conferences, don't forget to look for
Code Camp - a popular term for local conferences from a few years ago.
Maybe you actually do live in the middle of nowhere. It's possible, if unlikely, that there are no user groups or local conferences that you can attend. Fortunately, the internet makes it possible for people across the world to come together as a virtual community. While it lacks some of the benefits of finding people you can meet face to face, you gain the opportunity to interact with people with greater levels of expertise than would otherwise be possible.
One word of caution - while following along with mailing lists (or slack groups, or irc, or ...) is a great way to learn, to really get the full benefit of a community, you have to speak up. That can be intimidating, especially in the presence of the actual experts. But speaking up has two vital benefits. First, the best way to correct your mistakes is to expose them, even if that correction can be painful at the time. Second, by actively engaging you'll change the way you view the group, and develop the relationships that can help you overcome challenges. If you start by offering help, you'll be amazed at how much help you can get when you need it.
It's Dangerous To Go Alone
No matter where you are in the world, and no matter where you are in your personal journey to mastery, we all have opportunities to help those behind us, and be helped by those who have gone before. It's a cliché that "none of us is as strong as all of us", but the power of communities can make that cliché a reality. We unlock that power by both asking for help and freely offering help to others. Each of us needs a place to belong, and I truly believe there is a place for each of us.