Using project-based learning and peer learning, our mission is to train the best software engineers of their generation. At Holberton, there are no formal teachers and no formal courses. Instead, everything is project centered. We give our students increasingly difficult programming challenges to solve, and give them minimal initial directions on how to solve them. As a consequence, students naturally look for the theory and tools they need, understand them, use them, work together, and help each other. We are focusing on teaching how to learn instead of teaching a specific tool or programming language.