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.

Peer Learning, or “What do you mean ‘No Teachers’?”

“We don’t have formal classrooms or teachers — instead, our students collaborate, share their knowledge, and help each other.”

It’s right on our website, but do we really mean it? At face value, it’s a radical proposition: A school that trains top software engineers without teachers, without lectures, and without the classrooms that all of us grew up and loved (or, reasonably loathed). After all, what is a school without a traditional structure and someone else telling you how to learn?

Image result for lecture
Some may learn well in this, but we think we can do better.
Source: https://en.wikipedia.org/wiki/File:Lecture,_NSUEM.jpg

There, in that last sentence, is why we exist. Software engineering is a new field that lives on speed, flexibility, and iteration. It is a field that is constantly updating, and the best software engineers will have to be able to keep up with the times. And these best software engineers will not have the time to return to the classroom and be taught how to learn another language or technology. The best software engineers will be able to self-train, lead and learn from their peers, and keep up with the rapidly advancing and changing field they’re employed in. Beyond an in-depth knowledge of programming and development best practices, these lifelong skills are a key part of our curriculum, and why we teach our students through project-based and peer learning.

After all, If you do get a teacher in the workplace, it won’t be a lecturer but instead a peer or a mentor, and that’s why we teach our students the way we do.

Let’s dig into each of the pieces of our curriculum and share how they build upon each other to help drive a new generation of software engineers.

Project Based Learning

Traditionally, schools teach (usually with assigned reading and lectures), then test. Pop quiz: How much of this lecture-based knowledge did you retain? Project based learning is the concept that instead of being taught through lectures and tests, students are taught through actually doing the work. Proper project based learning isn’t just “here’s a problem, good luck”. A properly built project based learning curriculum carefully builds increasingly challenging tasks upon each other, with guidance on where or how to learn the skills, but leaving the final quest for discovery and application of knowledge to the students. Through this curated exploration, students are taught how to validate sources, test knowledge as they apply it, collaborate with peers to share their best learnings, and to develop and depend upon their own ability to learn instead of waiting for instructions from others.

The goal is not just to help students learn the knowledge that they will need to launch their careers, but also to maintain their careers through the ability to learn. In this way, time spent at Holberton actually mimics the work environment. Yes, Holberton students know how to code extremely well, but they also know how to sit down, use available resources, and to independently pioneer into new technologies. Companies that hire Holberton students are getting more than just a great developer; they are also getting a developer who can flexibly adapt to new languages and technologies in short periods of time.

Holberton students at our San Francisco campus.

This same ethos is built into our application process. Holberton’s whole application process requires no prior knowledge of programming, but instead a willingness and ability to learn. Through automation, our system does not take into account race, gender, age, or even ability to pay. Instead, what we are looking for are people who can learn something new and apply these new skills accurately. Before coming to Holberton our students were everything from professional chefs to musicians, paralegals to fresh high school graduates. What they all share is a willingness to learn. The whole application process is even designed to mimic our project based learning curriculum, and through completing Level 2 of our application process, students will code and launch a website from scratch using emacs, HTML, css, and javascript. So if you’re curious how our project based learning works, we welcome you to start an application today.

Peer Learning

Peer learning, or “learning by teaching” is an established method to improve retention and understanding of topics. When students teach other students, they show an increased retention of information and understanding of the core of the material. Through our curriculum, students are encouraged to share what they’ve learned through Peer Learning Days, where students will work cooperatively through problem(s) at a whiteboard. Ideally this process is entirely self-led, but our TAs and staff may step in to provide clarification, challenge students to “teach” back to the staff, or shape the conversation for maximum benefit. 

Peer learning in action

Students will also engage in group and pair projects, where they are placed together to tackle some of our more challenging tasks. Programmers often work as part of a team, and so our curriculum is specifically designed to mimic the work environments that students will find themselves in later on in their careers. Under these conditions, Holberton students learn when to be a team member, when to be a team leader, and how to step between these roles for the maximum benefit of the project they are working on.

Define Your Future

Holberton’s goal is to get people with no prior coding experience into new career that matches their ability. Our admissions process finds those who have the talent to learn without bias. Our curriculum removes the barrier of prior experience. And the use of Income Share Agreements removes the need to obtain credit for our education. We want to find people who have the untapped potential to succeed as software engineers, and train them not only in the core technologies they will use to get their first programming job, but help them develop the core soft and personal development skills that will turn their first job into a lifetime career. But, most critically, everything we do helps students realize their own potential and leverage their own personal strength to become great software engineers, which is why we invite everyone to Define Your Future.

Want to read more? Check out our other Introducing Holberton articles below:
Introducing Holberton #1: Checker & You