Anyone with the drive, desire, and resources to do so can become a professional software engineer. Finding success in this field has more to do with access, sustained practice, and disposition than anything else.
For too long, this has been misunderstood – and with good reason. The stereotype of singularly focused people hacking away on computers in dark basements for hours still holds a lot of sway. Additionally, systemic educational roadblocks have kept many from considering software engineering as attainable or viable, leading to the belief that coding is for a select group of people with a select set of skills.
This isn’t true, and in an effort to create a wider pathway into software engineering, we launched our Beginner Full-Time Coding Bootcamp for people with zero coding experience who might not fit the stereotype. By design, this program meets students where they are and gets them where they want to go using a mastery learning approach.
As educators, we’re constantly trying to make learning experiences better for more people. We’ve seen too many folks not try at all, or try and fail, because the pace, intensity, and design of other programs aren’t a good match for where they’re starting out (zero coding experience). We see this as a challenge, and with our new program, we’re taking it head-on.
This program is different from others on the market, and different from our Intermediate Coding Bootcamp. While there’s a valuable place for programs like those, which often compare their pace to “drinking from a firehose,” our beginner program is not like that. Instead, its design, speed, and starting point are meant to help the beginner reach their goal of becoming a software engineer, increase their odds of success, and de-risk the coding bootcamp experience, which has thus far been intimidating and unapproachable for too many.
Mastery learning and how we put it into practice
Mastery learning maintains that students need to master the material before moving on to new ideas, concepts, and technologies. This includes developing foundational skills, putting them into practice, and reframing the idea of “failure” (seeing it less as a lack of ability and more as an opportunity to continue focused study and try again).
In practice, our curriculum follows the mastery learning model in three distinct ways:
- 9-Nines Class Schedule
Our class schedule consists of nine nine-hour days every two weeks. The tenth day is a day off for students to review their work and practice the material. It also provides a quiet day of reflection, a powerful metacognitive tool for learning.
- Module-Based Learning
The program curriculum is divided into topical, multi-day sections grouped into (3) six-week modules and (1) one-week module. To monitor progress, we use quizzes and peer reviews throughout the course, as well as projects and assessments at the end of each module.
- Ability to Retake Modules
At the end of each learning module, we support our students through projects and assessments used to measure their progress. When a student shows that they have not yet mastered the material, they can retake the module in its entirety one time with the next cohort in order to have enough time to really dig in and master the material before moving forward. In this system, a retake is not punitive; rather, it’s a planned element without attached stigma. In fact, those who retake a module often play a valuable role in mentoring others, because they’ve already been through the experience and are more familiar with the material.
Our goal, and our hope, is that this program helps dispel the myth that software engineering is only for a select few. It’s for everyone, including you. Through mastery learning, you can become a professional software engineer doing impactful, exciting work at companies and organizations around the world.