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.
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
Our curriculum is separated into two halves: Foundations and Specializations. Foundations
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
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
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
“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!
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.
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
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.