Back to Home

École 42 Guide

EN | FR

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

Guided Discovery
Conceptual Understanding
Strategic Thinking
Accelerated Learning

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.

100/100

Libft Notes Available

Create your own C library with essential functions that will be used throughout your journey at École 42.

C Memory Management Data Structures
101/100

ft_printf Notes Available

Recreate the printf function from the C standard library, handling various format specifiers and conversions.

Variadic Functions String Formatting Type Conversion
125/100

get_next_line Notes Available

Write a function that reads a line from a file descriptor, learning about static variables and file operations.

File I/O Static Variables Buffer Management
100/100

Born2beroot Notes Available

Set up a virtual machine with strict security policies and system administration best practices.

System Administration Virtualization Network Security
96/100

push_swap Notes Available

Sort data on a stack with a limited set of instructions, using the lowest possible number of actions.

Algorithms Data Structures Optimization
100/100

so_long Notes Available

Create a simple 2D game using the MiniLibX graphics library, implementing game mechanics and map parsing.

Graphics Game Development Event Handling
125/100

minitalk Notes Available

Create a small data exchange program using UNIX signals, learning about process communication.

UNIX Signals Bit Manipulation Process Communication
100/100

NetPractice Notes Available

Learn about networking by solving practical exercises related to IP addressing, subnetting, and routing.

Networking IP Addressing Subnetting
100/100

Philosophers Notes Available

Solve the dining philosophers problem using threads and mutexes to learn about concurrent programming.

Multithreading Synchronization Concurrent Programming
100/100

minishell Notes Available

Create a simple shell that can parse and execute commands, handle environment variables, and implement redirections.

Parsing Process Management Shell Scripting
100/100

cub3d Notes Available

Create a 3D game using raycasting techniques, similar to the classic game Wolfenstein 3D.

Raycasting 3D Graphics Game Development
100/100

C++ Modules Notes Available

A series of modules to learn C++ programming, from basic syntax to advanced object-oriented concepts.

C++ Object-Oriented Programming Templates
The journey continues with advanced projects...

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, push_swap, so_long, minitalk, NetPractice, Philosophers, minishell, cub3d, and C++ Modules!

Follow me on X (Twitter) for updates when new content is published!