The École 42 Journey
A revolutionary peer-to-peer learning experience with no teachers, no tuition fees, and a project-based curriculum that transforms beginners into skilled software engineers.
Peer Learning
Students teach and evaluate each other
Project-Based
Learn by doing, not by listening
Skill Tree
Projects unlock new challenges
My Learning Philosophy
These notes are designed to enhance your learning journey, not to shortcut it. Rather than providing direct solutions, they offer signposts that guide you toward understanding while letting you experience the joy of discovery.
The focus is on building a solid mental model of each project's core concepts. When you understand the why, the how becomes much clearer. You'll learn to break down complex problems into manageable pieces and develop a systematic approach to tackling challenges.
By following these guides, you'll avoid common pitfalls and focus your energy on the most important aspects of each project. This approach helps you learn efficiently without compromising depth of understanding—because true learning comes from thinking through problems yourself, not from copying solutions.
My Project Roadmap
This roadmap reflects my personal journey through the École 42 curriculum, showing my advancement and pace. While these are the most commonly completed projects, your path might vary. I update these notes regularly, often before or as I submit each project:
This is a living document that grows with my progress. Projects are presented in the order I completed them, with scores showing my results. Use this as inspiration rather than a strict guide, as the curriculum allows for some flexibility in project order.
Libft Notes Available
Create your own C library with essential functions that will be used throughout your journey at École 42.
ft_printf Notes Available
Recreate the printf function from the C standard library, handling various format specifiers and conversions.
get_next_line Notes Available
Write a function that reads a line from a file descriptor, learning about static variables and file operations.
Born2beroot Notes Available
Set up a virtual machine with strict security policies and system administration best practices.
push_swap Notes Soon
Sort data on a stack with a limited set of instructions, using the lowest possible number of actions.
so_long Notes Available
Create a simple 2D game using the MiniLibX graphics library, implementing game mechanics and map parsing.
minitalk Notes Available
Create a small data exchange program using UNIX signals, learning about process communication.
NetPractice Notes Soon
Learn about networking by solving practical exercises related to IP addressing, subnetting, and routing.
Philosophers Notes Available
Solve the dining philosophers problem using threads and mutexes to learn about concurrent programming.
minishell Notes Available
Create a simple shell that can parse and execute commands, handle environment variables, and implement redirections.
cub3d Notes Available
Create a 3D game using raycasting techniques, similar to the classic game Wolfenstein 3D.
C++ Modules Notes Available
A series of modules to learn C++ programming, from basic syntax to advanced object-oriented concepts.
Project Progression
After completing the initial projects, students progress to more advanced topics:
- Minitalk - UNIX signals for data exchange
- Minishell - Create a simple shell
- Philosophers - Multithreading and synchronization
- Cub3D/MiniRT - 3D graphics with raycasting
- ft_containers - C++ container implementations
- Inception - Docker and system administration
- ft_transcendence - Full-stack web development
École 42 Project Notes
In-depth notes for École 42 projects are now available for all core projects! These include conceptual explanations, mental models, and thinking frameworks to guide your learning journey.
Check out the notes for Libft, ft_printf, get_next_line, Born2beroot, so_long, minitalk, Philosophers, minishell, cub3d, and C++ Modules!
Follow me on X (Twitter) for updates when new content is published!