The novel coronavirus pandemic has turned our world upside down. Wanting our students to keep their momentum and continue their journey to become software engineers, yet not wanting to risk their health, we adapted the Holberton curriculum to be done remotely for all our campuses around the world: Colombia, US, Lebanon, and Tunisia.
We were in a unique position to do this quickly because the Holberton education methodology is based on two main pillars: our software and a global community.
Our software provides students the projects and guidance they need to get started, it also provides students instant feedback of their work; using a proprietary system that provides a highly detailed analysis and correction of their work. As of today, it is analyzing more than 10M lines of code per week. And all of this is delivered online.
Our community has multiple layers – students, alumni, staff, and professional advisors – which are in cohorts, schools, cities, and countries around the world. While a large part of the interactions typically happens in person, the students are also connected globally via internal chat via Slack.
But a central part of the Holberton mission is to get students trained on soft-skills like public speaking, teamwork, and interview practice. As much as we like in-person interaction, the current situation led us to put in place video meetings and increase the frequency of webinars and live-coding sessions accessible on our intranet to accommodate those needs. In the grand scheme of things, this also has the advantage of training students for the future of work, which will increasingly move online – our world is becoming distributed, and borderless.
We are in this together. While we can’t be together in person because of COVID-19, we are together virtually. Nothing can come in the way of our education and our community.
While the transition from offline to online was smooth on our side, we understand that a lot of fellow post-secondary organizations might be struggling to do it. We are happy to share our learnings and assist in any way we can, contact us here. Stay safe!
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:
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
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.
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.
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!
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 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.
“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?
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.
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.
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.