I want to start this post by saying that I think the push behind teaching people to code is fantastic. The opportunity is there and I also think that that opportunity is not in working for someone else, but by being able to make something useful for humanity with your own 2 hands in the comfort of your home. This was not possible before the Internet.
There are a ton of different communities out there for people that want to learn how to code: FreeCodeCamp, CodeNewbie, 100DaysOfCode, Reddit subreddits, MOOC courses, Meetups, you name it. All these communities are fantastic and certainly, increase the chances of someone actually following through on their commitment learning to code.
Let’s take FreeCodeCamp Gitter room as an example. As of this writing, there are 48,904 people in that chat. Wow! That’s a fantastic community. But how many of these people are actually active? How many of them did FCC for a day, a week, a month and disappeared? My wild, completely non-scientific guess would be that it’s gotta be north of 50%. Heck, I was definitely one of those people and the reason behind this post.
Too many people get excited about opportunities (squirrel!), give it a shot, and then life happens. Maybe there is something going on in their personal life that interrupted this drive or they ran into a problem and decided that this is too hard. Whatever it is, the dropout rate is huge, and unfortunately, it hurts people that are more dedicated.
We need to continue embracing large communities as we currently are AND we also must start building smaller ones. I believe, that if we are able to connect 5-8 people that are all following the same curriculum, have similar goals and circumstances (family, school, location, etc) we can form connections that become friendships and increase accountability. I can’t imagine how much my learning would improve if I was accountable to deliver what I promised last week publicly to my coding “mastermind” group.
I am willing to bet that I am not the only one that needs this help. As a Scrum Master, I have hands on experience of success a small team can experience by working together. Even more, the events used within a Scrum Team are extremely applicable to these groups! Let’s take a look at a rough outline of the process I am envisioning:
1. Connect 5-8 people with similar goals, background, and circumstances (keep the groups small).
2. Create a communication platform (ie Slack).
3. Create a hub for writing down commitments and tracking progress (ie Trello).
4. Commit to weekly/bi-weekly video calls (I would encourage video as a must if at all possible).
5. Create a group contract addressing absences, non-participation, and commitment to learning code.
With the above established you can have touch points where everyone has a chance to share their progress, obstacles, and successes. It is an opportunity to get help with something that you’re stuck on or walk someone through something you built.
With Slack, you can hop in and out to get some laughs with your group, help someone with their coding challenge and ask for help with yours.
With Trello you can monitor your weekly commitments of getting something accomplished and transparently share with others.
1. Every group must have a leader. In many cases, this will be the person that initiated the desire to have a group. This person becomes a facilitator of the conversations and makes sure that everyone participates and has an opportunity to participate.
2. There must be an understanding that the only way this will work if there is a safe environment to share. Making someone feel dumb or uncomfortable asking questions is not acceptable.
3. Commitment. Everyone has to be bought in and committed. Everyone needs to be a leader at some point. Loners will hurt the rest of the group by not getting involved, and stragglers will hurt it by not having the same level of commitment.
4. Different levels of knowledge/experience is great. Maybe someone is further along in the curriculum than you are and they are able to explain you some concepts they already wrestled through. As a bonus, teaching someone else helps one grasp the concepts even better, so its a win-win.
I am looking to lead a group of people interested in learning Python and I would love to help others find groups as well.
I am located on the East coast of the US, have a little family and am learning Python through Treehouse and Learning Python The Hard Way. If you would like to join me, fill out this form!