How I Started a Code Study Group (and Why You Should Too)
My Story
To get my foot in the door at BigCommerce, I started out working on the Technical Support team as a Tier 1 agent. As the first line of contact, I had the responsibility of working directly with our customers to discuss and problem-solve a wide range of topics. These conversations would sometimes include working with developers who had custom BigCommerce stores. I especially loved working on these support cases. I found myself looking forward to discussing the more technical intricacies of our API and the Stencil framework. The conversations I had with developers were different from any previous role I had and I found myself wanting to learn more.
During this time, I was looking at code on a daily basis, albeit in a limited capacity. I had experience in JavaScript and knew I wanted to further my understanding. After chatting with other support reps, I realized that many of my peers were interested in learning about programming too. This was my light bulb moment and I began to plan the first meeting of a code study group focused where tech support reps could become web developers. To emphasize the focus on “newbies”, I named the group “Code Noobs”, a beacon for those who might shy away from a more expert level or exclusive-sounding name.
Studying with co-workers made it easy to meet (we were already around each other all day!) and it gave us a built-in support group, which helped incentivize us to all grow. I was continuously motivated by the questions raised in our group — from both newbies and seasoned programmers. These factors and more led to a group of like-minded individuals collaborating on code, as well as an internal resource for future employees to dip their toes in. While my intentions were to level up my own abilities, the results ended up being invaluable.
What is a Code Study Group?
Before we dive into BigCommerce’s Code Noobs, I want to first talk about what a code study group is, what you can expect when attending one, and why they are beneficial to your workplace.
Code study groups are small communities of programmers sharing knowledge and usually have a goal such as learning a new language or assembling a group project. They gather together either virtually or in-person meetups.
Meeting Formats
There are three main styles for code study group meetings. First is a “show and tell’ or code review style meeting where members will bring their own projects to share. Each member takes 15–20 minutes to present, share their code and answer questions from the audience as they explain the logic. By sharing code, new developers become accustomed to having other eyes on their work, and their peers will gain experience in code review. This is a great style for groups with varying experience levels where you both easily learn and mentor others.
Another style of code study groups is to hold meetings with a pre-determined discussion topic. For example, a scheduled meetup could cover the topic “What’s webpack and how can you use it with your apps.” During this meeting, a facilitator would lead a group conversation about the topic. Anyone can chime in, share examples, and ask questions — as long as they are on the designated topic.
[Tip: Facilitators should prepare a list of sub-topics or question prompts to keep the conversation flowing.]
In these meetings, facilitators can benefit by gaining experience and expertise. They create lesson plans as subject matter experts solidifying their own knowledge before presenting, and by helping others with questions they further their understanding of communicating with others about code. This results in earning an audience’s buy-in for their explanations/discussion.
And last but not least, another popular meeting format is to bring in a guest speaker. These meetings are led by a presenter or subject matter expert sharing a project and explaining how it works. The guest speaker can be internal to your workspace or peer group or someone from the tech industry. A recognized face as a respected member of either your or another organization can help newer developers key-in on broad topics.
For example, we’ve been fortunate with Code Noobs to have many of the BigCommerce Product Support Engineers attend and present as speakers. Their team works on difficult, customer-impacting bugs that affect the BigCommerce platform. In our meetings, they’ve been able to share their real-world experience and help connect the dots from how a function works to how it plays a part in the BigCommerce app.
Who Should Attend? And Why?
If you’re interested in furthering your technical ability or helping others do the same, people of all skill levels should feel welcome to join a code study group. This becomes essential as your group grows, too. Showcasing a variety of expertise, level, and roles, will give your members the opportunity to learn from diverse perspectives. More skilled members can become mentors to the group and contribute code or presentations. These tangible benefits will serve your group well. The first goal is to learn — but gaining cross-departmental connections and finding mentors is also hugely beneficial.
With Code Noobs, all of the attendees have the significant benefit of working for the same ecommerce company. Having that common ground lends allows us to easily collaborate and propose ideas potential BigCommerce projects. It importantly gives us a communication path to technical experts with our own org. This can be a huge benefit both personally and professionally.
By making these connections, I was enabled to learn more about processes our software engineers follow and to work closely with the teams that have code in production (😱). This was helpful when I was promoted to the Tech Support Tier 2 role. I gained even more freedom to work in the code developers had questions about especially when it came to BigCommerce APIs.
It was in the Tier 2 role that I began to understand how important a code group was for the company. Having an internal group that can ask questions about our APIs provides a unique insight into what an actual developer could experience. It also guard-rails prospective software engineers from falling too far off the beaten path, ensuring someone curious about code feels that they are progressing as they learn.
Code Noobs at BigCommerce
Code Noobs began as a word of mouth movement at BigCommerce. For the group to succeed I would need to involve groups like the Product Support Engineers mentioned earlier to provide oversight. After confirming future presentations to follow the first meeting, my idea began to snowball. Word of a new code group had spread, and we decided to create a Slack channel and set up a time to meet. Code Noobs was born.
When launching the group, my first challenge was determining the best way to schedule our regular meetings. We had a lot of initial interest from Tier 1 Tech Support Agents. However, due to the call-center nature of their job, they have rigid schedules and it can be difficult to schedule time away from the support queue. In order to make it work, I had to be a little creative in my approach to our meeting time.
To prepare for our first Code Noobs meetup, I created a poll several weeks our Slack channel to gauge interest in possible dates and times. The frequency between meetings varied between once or twice a month, depending on availability. To align with our work schedules, we met on weekends after 6 or 7 PM, when other Technical Support Reps would be ending their shift and ready to code. There were occasions when we’d need to work with our resource management team to make a meetup possible for a member with an uncommon shift. This wasn’t always viable, but by planning this in advance you’ll be more successful in these requests.
Code Noobs meetings follow the “show and tell” or code review format. I kick off each meeting by opening the floor for anyone to share projects that they are working on or questions. From there, our members take turns in front of the group sharing. As a group, we move from topic to topic and cover a lot of ground during the one-hour meeting.
In order to keep the group engaging and sustainable, we are flexible with our conversation topics and don’t stick to a rigid schedule or outline. While a meeting might start out to cover one topic, I like to let the conversation flow naturally and take us down tangents when necessary. This is helpful to developers who might not be able to stay for the whole meeting and it also gives us leeway when the group lost track of time while discussing tangents. As long as it is relevant to the group, tangents can often lead to priceless places in my experience!
Code Noobs helped reinvigorate my love for learning and coding. The non-judgment zone, no stupid question attitude it brings allows me to learn at my own pace within a group of liked minded people as well as experts to help guide me through the learning process. — Josh Popperwell
During one popular meetup, Brian Davenport, BigCommerce Senior Product Support Engineer, gave a presentation on git flow. This topic can be complicated for even the most veteran of programmers, so curiosity was piqued from multiple groups. To help guide his presentation, he created a GitHub repository (or repo) in advance. This gave the group a visual reference to follow. When the group arrived we were instructed to “clone” it and we were able to mirror his work in real-time. While simple in hindsight, creating presentation-based repos became a trend going forward, which helped engage members of the group. This inspired the next meeting I led. To lead a topic on jQuery I created this GitHub repo which includes starter code. By the end of the meeting we reached the “final” version, after snaking through approaches and code that members suggested.
Lessons Learned
Code Noobs has been an active group at BigCommerce for two years. Over the past couple of years, I’ve learned a lot about programming — and a lot about how to run a great code study group.
Just recently, I’ve re-evaluated my approach to scheduling and subject matter. Instead of a scheduling discussion, members can join a weekly calendar invite that doesn’t change and they are encouraged to join from home using Google Meets. It’s no longer an expectation that a topic will be presented on, which is more in-line with other code study groups, where members’ projects are the focal point. As a by-product, members of the group are gently pressured to create and collaborate on their code which is our goal.
It was apparent early on that a GitHub organization would be necessary to keep track of our projects, and would ease the previously mentioned scheduling conflicts. When a member changed shifts, regardless of how polarizing, they could pick up where we left off and continue to contribute.
One commonality that I found was similar questions being asked every few months (“How do I install the Stencil CLI?”), and this was a pattern of new members joining the group. New members should feel welcome to ask repeat questions, this was an inefficiency on the group’s part though. We came to an agreement that each meeting should be recorded and stored for future viewing. We also recognized that future members would be interested in tinkering with the CMS back-end that we chose to move forward with. This led to an internal website built on Ghost, an open-source CMS.
Conclusion
Although the group and its members have changed and evolved over time, I’ll never forget that first meeting with over 20 attendees bombarding each other questions. My co-workers have inspired me to see just how far the group could go. The knowledge and confidence that I gained even helped me land my current role at BigCommerce as the Developer Community Moderator.
Sharing in developers’ experiences with different languages and creative thinking has been a gratifying experience that I recommend all developers take part in. If you’re thinking about starting your own code study group, but you don’t know where to start, I would recommend freecodecamp.com. It is an excellent resource for finding local meetups.
Are you a leader or member of a code study group? I’d love to hear your lessons learned and how it helped your career. Let us know in the comments below or hit me up at @kyle_o on Twitter.