← Back

What coding bootcamp taught me about learning

Jon Grinnell · Oct 18, 2019 · 4 min read

Ever think about how much time you spend per day on your computer or phone, sending a Tweet, talking to Siri, sending emails? Do you ever wonder how these digital applications we spend so much time in actually work, so as to understand them on a more fundamental level, and potentially change them? That's why, in the summer of 2019, I enrolled in a part time, remote coding bootcamp with Thinkful, a company that offers technical education online. As I had hoped for, I learned how to be an engineer, how to solve problems and implement solutions using code. But I also gleaned a new mental model for learning, by applying 3 proven techniques known to be effective by L&D and educational professionals alike. In this article, I'll explain how spaced repetition, commitment, and mentorship help turbocharge my learning.

Spaced repetition. Spaced repetition is a solution to the Ebbinghaus forgetting curve problem (figure 1). It's easy, particularly when learning new languages such as JavaScript, for us to forget information we learned over time. Spaced repetition helps address this by revisiting information at spaced intervals. To practice spaced repetition, I started using Anki religiously. With Anki, I turned every note, every screenshot, every important line of code into a quiz question on a digital flashcard, which I'd review repeatedly at varying time intervals. I created 292 cards and answered 1048 questions in total. Ultimately, I was coding faster and deploying sooner because I had the fundamentals down. I'd estimate with Anki, I saved ~3–4 hours per week, time that could have been lost scanning Stack Overflow.

The Ebbinghaus forgetting curve
Figure 1: the Ebbinghaus forgetting curve

Commitment. Commitment is perhaps the most important ingredient when it comes to learning. The Thinkful curriculum was designed such that in order to graduate, technical interviews and assignments must be passed. So with graduation in mind, my first step was to identify leading and lagging indicators for success. My leading indicator: study 20 hours per week and add/review 10 questions per day in Anki. My lagging indicator: simply pass technical mock interviews (they watch you code!), which could only be possible if I passed my assignments. This served as a scoreboard: if my indicators were consistent, I knew I was in good shape. Here's a screenshot of my hourly time tracker (figure 2).

Chart of coding hours per day
Figure 2: my hourly time tracker, June 2019–August 2019. I averaged ~2.9 hours/day.

Mentorship. In 1984, educational theorist Benjamin Bloom published The 2 Sigma Problem, which suggested that students performed 98% (2 standard deviations, or 2 "sigma") better than traditional classroom training when both mastery based learning and 1:1 tutoring approaches were used (figure 3). In other words: with the help of a mentor, students achieve sequential competency, only moving to more advanced topics once the core fundamental lessons were learned, irrespective of how much time it takes the student to "master" the fundamentals. This is how the bootcamp was designed. We were expected to master the core languages of the web (HTML, CSS, JavaScript) at our own pace and meet weekly with a mentor (an experienced engineer). No matter where I was in my development, my mentor could help and also serve as an accountability partner. It was Bloom's 2 Sigma at work — I had time to master languages in the right order, and the support of an experienced mentor to guide me through my journey.

Bloom's 2 Sigma chart
Figure 3: Bloom's 2 Sigma. Findings suggest a combination of mastery based learning and 1:1 tutoring yield the highest levels of student achievement.

Practicing spaced repetition, committing to the learning process, and actively seeking support are three of the most powerful actions one can take to learn literally anything. If you're learning a new skill, quiz yourself with flashcards instead of writing passive notes. Write down how many hours per day you plan on practicing the skill, schedule it, and commit. Book recurring meetings with a mentor/expert you feel safe with, preparing questions in advance.

If you have feedback, want to chat, or have other approaches or techniques that have helped turbocharge your learning — leave a comment or reach out!