Holberton >

Building A Curriculum: Foundations

Holberton’s curriculum is a learning experience like no other. Not only do we teach our students how to code and the professional soft skills that help students maintain their career as software engineers, but we teach our students new ways of learning and of personal growth. Our students “learn how to learn”, and do so in a way that will help them professionally stand out for the rest of their careers.

Actual Cohort 7 students during their Foundations year. We’re currently at Cohort 10 and will welcome Cohort 11 in January 2020.

To teach this new way of learning and drive the continual growth that defines our students’ results, we’ve built our curriculum around two key educational methods:

  • Peer Learning
  • Project-Based Learning

In a previous blog post we shared how peer learning helps students learn and retain knowledge better, so for this piece, we’d like to share how our project-based learning curriculum works. With project-based learning, our students learn through practical, hands-on lessons within a continually evolving curriculum. Most importantly, though, our project-based learning teaches a core life skill, and one that will help all of our students maintain their careers as software engineers: We teach our students a new way of learning. A hallmark of a Holberton student is more than just amazing technical skill with the technologies of today. Our students, through the practice of our project-based learning and peer learning, not only can grasp and self teach new technologies and methods, but our students can also help their peers learn and professionally develop as well.

Our curriculum is separated into two halves: Foundations and Specializations. Foundations is the curriculum and the method that helps us get people with no prior coding experience into software engineering roles, and it is the very foundation of each student’s education at Holberton.

Foundations is separated into three trimesters, roughly separated into

  • Low-level and C
  • Higher-level languages
  • DevOps, SRE, and more

The development of each of those trimesters is specific to Holberton, each spearheaded by Julien Barbier (co-founder, CEO), Guillaume Salva (CTO), and Sylvain Kalache (co-founder) respectively. The development of these projects and the curriculum was based not only their individual technological capability and experience, but also by utilizing a broad network of professional advisors.

Julien Barbier, co-founder and CEO of Holberton talking with students at our San Francisco campus.

Professional advisors and building our curriculum

Our advisors participate in our curriculum development by helping us understand the industry’s current and future technological landscape, what technologies and skills were professionally viable, and most importantly, by highlighting the same skills and knowledge that helped them on their path to becoming Sr (or higher) level engineers.

By bringing the best of what our co-founders and CTO had to offer, and the input of our professional advisors, we were able to create a Full-Stack engineering curriculum that goes beyond what most bootcamps offer. We have a curriculum that not only trains in core employable technologies and skillsets, but sets our students up with the tools, methods, and the practice to continue their own professional and technological growth throughout their careers.

Guillaume Salva, CTO of Holberton, sharing his experience with developing the Holberton curriculum

Education without lectures

When introducing people to our curriculum, this tends to be the most shocking concept: How can someone learn a skill if there’s no one telling them directly, and explicitly, what they should know? Or, more directly, how can you teach without a teacher? Well, with project-based learning, we ditch the lecture-then-mimic pedagogy. Our curriculum, and the projects that compose its lessons, are how we teach. Through encouraging discovery, self-reliance, cooperation, and applying the coding lessons through practical projects, this curriculum consistently develops software engineers of amazing quality and capability.

“How?” is a very valid question at this point, so let’s take a look at a student’s day:

  • The day’s projects are ready for students when they wake up in the morning, as they became available at midnight their local time.
  • Before accessing the projects, students are presented with effectively a pop quiz they must complete before starting the day’s projects. These quizzes are on topics the students may or may not know, and if they do not know the answers, then they must go and find the answers. Think of this as athletes stretching before the game, and since they’re the “warm up” of the day, incorrect answers here do not count against the project’s grade.
  • Now that the projects are unlocked, students can get to work in reviewing the reference material, reviewing their coding challenges and conditions, and start their day hacking away at the code!
Peer learning goes hand in hand with our project based curriculum.

Within the curriculum itself, students are carefully introduced to software engineering topics of increasing complexity. These concepts layer upon each other building a broader and deeper understanding of the languages and development techniques. And throughout this, students use a variety of resources, including recommended material from Holberton, content they find on their own, and collaboration with their peers to develop their knowledge. Then, using our projects and Checker to test their knowledge, students can grade their day’s (or in some cases, multi-day) projects before final submission. Ambitious students, those seeking more challenges, and students who particularly enjoy a particular topic they are working on will also find that every project has challenging advanced tasks that also provide extra credit.

Throughout this Foundations curriculum, students are taught topics that build upon each other. The goal is to build a deep understanding of not only the languages taught but also the theory and practice that makes a good software engineer great. Topics are continually revisited throughout the curriculum (much to the chagrin of the students who would never like to see C again) to strategically reinforce theory, introduce more complex concepts at a time where students are more likely to understand and retain the knowledge, or to reinforce their use and value in technical interviews.

Rewarding critical thought

As the program has evolved and improved over the years, we’ve worked to both incorporate student feedback, tune projects, and anything else that will help our students become better engineers.

Student feedback

Throughout the curriculum, we ask students for feedback and allow students to anonymously report on their mood, feelings, and more. What’s the purpose of this kind of feedback? While we want our curriculum to challenge students, we also want to make sure the curriculum isn’t unnecessarily difficult. We also want to make sure the curriculum is designed to help the students feel interested through their entire journey at Holberton. So, we constantly take the students feedback, review against anonymous mood data, and see what improvements we can make. 

Checking for optimization

Our Checker evaluates millions of lines of code each month, and to help each generation of our students become better coders, we have to continually improve this tool. In the early versions of Checker, the system dutifully evaluated student projects for accuracy, execute code and check results, review readmes to ensure that students were properly documenting their projects, and similar. Since then, we’ve updated Checker to perform even more robust tests, including even looking at and scoring for code efficiency.

Matching Industry Updates

The tech industry constantly changes, and so does our curriculum. As new technologies and programming language versions become more established, we update our curriculum to match what students are likely to see once they start their professional careers. This is a constant process that ensures as the industry matures and grows, our curriculum does as well.

How this leads to a career

At Holberton School, the education you receive in the Foundations becomes the basis for your work in our specializations. After completing your first year, students can select from one of four specializations that we offer:

Foundations gives you all the necessary tools to continue your education at Holberton with our specializations, and the professional and interpersonal skills to hit the ground running in your new career. After your Foundations at Holberton, you’ll be experienced in languages like C and Python, have the personal toolkits and techniques to learn any other language you want, experience in critical skills like Test Driven Development, DevOps, and project management, and a solid, fundamental understanding of what it takes to drive your career in software engineering.

Laura, a student who had never coded before coming to Holberton school, celebrating her first role as a software engineer after being hired while still in her Foundations year.