The Community Taught Developer
I do not have a formal education in Computer Science, nor did I attend a Coding Boot Camp. In fact, I took my first job as an application developer with the understanding that I had ZERO experience and we would be doing the “sink or swim” method of onboarding. Instead of drowning in the deep end, I learned how to Google and figured out how to code by taking advantage of the online resources provided by other members of the development community. By the time of my six month “well is this wacky experiment working?” review, I was ready to push my first application into production. For years, I considered myself to be “Self Taught” but as time has gone on, I have realized that while I can absolutely own the persistence and self motivation it takes to learn to code, I could not do so without acknowledging the vast swaths of knowledge created and maintained by my fellow developers. This is why I now use the term “Community Taught”.
Being community taught takes a significant amount of organization and tenacity on the part of the learner, simply because there is no one road map through it. There is no prescribed structure or curriculum. Whether it’s reading through answers on Stack Overflow or poring over the documentation for an open source library, there are countless examples of free knowledge readily available to anyone with the motivation and desire to learn. But it is up to the learner to figure out their own way through that information. This is not to say that traditionally taught developers don’t also become community taught in one way or another. There are very few positions that require only the exact set of skills a person acquires while earning a Computer Science degree. As developers we are constantly tasked with learning new software. Our field changes daily and learning how to learn new skills is imperative to our success.
The other side to the community taught developer are the teachers. Without people writing articles(e.g. Brian Love, Netanel Basal, Minko Gechev), giving conference talks (e.g. ngConf, Kubecon, React Conf) or streaming tutorials (e.g. egghead.io, Pluralsight, thinkster.io) there would be no content available. Our field has largely moved off of the printed page because the presses cannot keep up with our pace of innovation. As a community, we are constantly evolving our bank of knowledge to incorporate new technologies. We develop new platforms and formats to share our ideas and methodologies. Through networking apps, social media, and user groups we have the opportunity to meet and communicate with other developers. This year especially, I have witnessed our community flex to the challenges of a global pandemic to further open up opportunities and bring together groups of developers that were previously isolated by geography and financial opportunity.
The longer I have immersed myself in the development community the more I have come to appreciate the gate openers, those who empathize with lonely new developers doggy paddling through their days; who purposely reach out a hand to help pull others up to offer opportunities or advice. They write their blog posts with thoughtful links to help fill in knowledge gaps or to cover concepts outside of the scope of the article, and they make themselves available through talks and social media. Largely, they provide their time and knowledge without financial compensation.
For me, personally, I have come to appreciate that I can be one of those contributors. I can give back to the community that I wore as a life jacket through those early months and years of learning to stumble through code. I can offer my experiences and share the expertise I have acquired along the way. We do not have to be experts in everything to have knowledge worth sharing, we just have to be willing to take the time to share, because after all, It takes a community to raise a developer and, as a community working together, we can all write better code.
For those of you out there who are interested in learning to write code, here are some of my favorite tips for taking advantage of the resources available through the online community:
Searching - When searching for answers, examine the exact language used by the people responding to questions. Searching on these phrases may start to turn up better results.
If someone uses a word you do not understand, open a new tab and google it. This is how I learned what a ternary operator is.
Links - Follow links in articles and bookmark any links that you want to come back to. Links are typically included by authors because they contain more information than an article or an answer to a question can cover. Bookmark library docs and helpful how-to articles for quick future reference.
My most used links are often to docs, some of my favorites are:
Social Media - When someone provides a link to a social media profile, follow it. When Twitter suggests similar accounts, follow those too. Through the people and pages I follow, I find out about new developers, technologies, releases, podcasts, user groups, and conferences.
Some of my favorite Tech Twitter People to get you started:
- Tracy Lee(@ladyleet)
- Jennifer Wadella(@likeOMGitsFEDAY)
- Stephanie Ihezukwu(@StephAndSec)
- Cecilia Martinez(@ceceliacreates)
Conferences/User Groups - Even if you are unable to attend a conference or a user group, follow the conference pages. They will often post videos of previous sessions and talks and may be a good resource for keeping up to date on new releases. Some conferences offer scholarships for attendance. Look at the speaker lists and follow each of the speakers as well. These are people who are already willing to share their time and knowledge with you.
- ngConf - Salt Lake City
- DevUp - St Louis
- Prairie.Code - Des Moines
- THAT Conference - Wisconsin Dells
Podcasts - Find podcasts related to the tech you are trying to learn. This is a great way to learn about innovations coming to various libraries and it also gives you an opportunity to listen to how developers talk about their code. Not having a traditional computer science background, I have often felt insecure about the vocabulary I use to describe my code. This was a big reason I started listening to podcasts and attending user groups and conferences.
Open Source - Spend time looking through the code bases for your favorite open source frameworks and libraries. Not only can you see how the code is written, but they will often post issues and accept Pull Requests (PRs). This is a great way to get involved with other developers. A PR that simply rephrases the docs to make them more understandable can be a valuable contribution to an open source code base.
Online Communities - Platforms like Slack and Discord create spaces where developers interested in specific technologies can meet and discuss. Joining these channels gives unique access to people who work in these technologies every day.
Lara Newsom(@LaraNerdsom) has been a software consultant with Source Allies for two years. Lara enjoys sharing her knowledge and experiences in development with others. She has spoken at EnterpriseNg, Angular Toronto MeetUp, and CIJUG. Hear her talk on second episode of The Angular Show Podcast series on RxJs Transformation Operators.
In her spare time Lara is an avid runner, responsible adult to two teens, and a kitten enthusiast.