• About the School • The Curricullum • Resources • School Procedures •
# 📚 Projects
Projects by Deadline
|
Projects by Deadline
| Tools |
42 School/
├── About 42
│ ├── Pedagogy
│ │ └── Peer-to-Peer Learning
│ ├── Curriculum Overview
│ │ └── The Piscine
│ └── Campuses Worldwide
│ └── ...
├── The Piscine
│ ├── Admission Requirements
│ ├── Piscine Timeline
│ ├── Piscine Projects
│ │ └── ...
│ └── Evaluation Process
├── Common Core Curriculum
│ ├── Branches
│ │ └── Algorithms
│ │ └── Graphics
│ │ └── ...
│ ├── Projects
│ │ └── ...
│ └── Exams
└── Specializations
├── Available Tracks
│ └── AI
│ └── Cybersecurity
│ └── ...
└── Choosing a Path
Tools
Links
General 42 Information
- Information and Facts
- Trivia
- Rewards
- Network
- Social
Curriculum & Learning
- Piscine and Common Core
- Exams
- Peer-To-Peer
Tools & Resources
- Websites & Guides
- Extensions
- Grammar
- Browser
- Apps
- Readme
- Productivity
- Others
Miscellaneous
- Wikimedia Foundation
- Campuses
- Artificial Intelligence
- Educational Resources
- Design Tools
- Entertainment
- Development Tools
- Others
-
Welcome to my 42 journey! This ain't your average school. We're diving deep into code, collaboration, and peer-driven learning.
- 42 is a global network of tuition-free coding schools. Think of it as a coding bootcamp on steroids – intense, hands-on, and focused on real-world skills. There are no teachers, no lectures... just you, your peers, and a mountain of challenges.Learn more on the official 42 website.
- Admission starts with the "Piscine" (French for swimming pool). It's a month-long coding immersion experience designed to test your grit, problem-solving, and ability to learn independently. It's tough, but those who make it through emerge as resilient coders.
/*
**42, The Answer to Life, the Universe, and Everything**
- That's right, the school is FREE, originally funded and founded in Paris by generous philanthropist billionaire Xaviel Niel.
I'm not unusual; it's the others who are strange ― Xavier Niel
- The name of the school, "42", is a tribute to The Hitchhiker's Guide to the Galaxy, a comedy science fiction series created by Douglas Adams.
42, or The Answer to the Ultimate Question of Life, The Universe, and Everything
- The supercomputer had this function ready:
*/
#include <stdio.h> // Include the standard input/output library for printf
#define true 1 // Define true as 1 for readability
#define false 0 // Define false as 0 for readability
int what_is_forty_two(void) {
// Initialize n to 2 (binary 0b10)
int n = true << 1 | false; // This could be simplified to n = true << 1 (or n = 2)
// Bitwise OR with 0 (false) is like "dividing by 1":
// it doesn't change the result because ORing any bit with 0 yields the original bit
// Loop until n has exactly 3 bits set (which happens at 42 or 0b101010)
while (__builtin_popcount(n) != 3) { // __builtin_popcount counts the number of '1' bits in n
n |= n << 2; // Bitwise magic to cleverly reach 42:
// - ++n: increments n to 43
// - (n == '*') checks if n is equal to the ASCII value of '*' (which is 42). This is false after incrementing.
// - !!n * (n - 1): Converts n (43) to 1 using double negation (!!) and multiplies by (n - 1) = 42, resulting in 42
return (++n == '*') ? n : !!n * (n - 1);
// 1. n << 2: Shift n's bits 2 places left (multiply by 4)
// 2. n | ...: Combine original n with the shifted version using bitwise OR, doubling set bits
}
}
int main(void) {
char *question = "What is the answer to Life, the Universe and Everything?\n"; // The famous question
printf("%sDeep Thought: %d\n", question, what_is_forty_two()); // Print the question and the answer (42)
return 0; // Indicate successful program execution
}
-
Once you've survived the Piscine, the real adventure begins! The curriculum is split into phases:
-
This is where you build your foundation with C and C++, tackling projects that cover:
Skills:- Algorithms & Data Structures: The building blocks of efficient code.
- Unix & Systems Programming: Understanding the inner workings of your computer.
- Imperative Programming (C): The language that gets you close to the metal.
- Object-Oriented Programming (C++): A powerful paradigm for complex systems.
- Networking & Web Development: From sockets to building web apps.
- Databases & Graphical Programming: Storing and visualizing data.
Skills to be developed.
-
A internship that solidifies your skills and builds your network.
-
Choose a path to become a master in one of these areas: -Operating Systems
- Artificial Intelligence
- Cybersecurity
- Game Development
- Graphical Programming
- Web and Mobile Development
-
Launch your career with a final internship that solidifies your skills and builds your network.
Let's code!
#include "libft.h"
char *ft_strdup(const char *s1)
{
char *str;
size_t len;
len = ft_strlen(s1) + 1;
str = (char *)malloc(sizeof(char) * len);
if (str == NULL)
return (NULL);
ft_strlcpy(str, s1, len);
return (str);
}
- Fundamental C Libraries & Tools
- System Administration & Networking
- Algorithms & Data Structures
- Graphics & Visualization
- Unix Processes & Communication
- Concurrency & Parallelism
- Game Development & AI
- Object-Oriented Programming (C++)
- Reloaded: Piscine functions.
- Libft: Your very own C library. Recreate essential functions like string manipulation, memory management, and linked lists.
- get_next_line (GNL): Learn to read files efficiently, line by line. A key skill for working with large datasets or input streams.
- ft_printf: Craft your own version of the standard printf function. Deep dive into formatting output and variadic functions.
- Born2BeRoot (B2BR): Get hands-on experience setting up a virtual machine from scratch, configuring services, and hardening it for security.
- NetPractice: A series of exercises covering network protocols, sockets, and inter-process communication (IPC). Build simple clients and servers.
- Inception: A unique project involving virtual machines and system-level programming. It tests your understanding of memory management and processes.
- Philosophers: Implement a classic synchronization problem with dining philosophers. Learn to avoid deadlocks and race conditions. Concurrency & Parallelism.
- Choose a networking project to practice concurrent programming:
- Webserv: Build a basic web server that handles multiple client requests.
- ft_IRC: Create your own Internet Relay Chat (IRC) server for real-time messaging.
- push_swap: Implement a sorting algorithm using only two stacks and a limited set of operations. A challenging puzzle to test your problem-solving skills.
- Choose one to explore basic 2D graphics:
- fdf: Visualize wireframe models in 3D using isometric projection.
- so_long: Create a simple 2D game using a graphics library.
- fract-ol: Generate beautiful fractal images (Mandelbrot, Julia sets, etc.).
- Choos one to Dive into 3D graphics!
- Cub3D: Build a "Doom"-like first-person perspective engine with raycasting.
- MiniRT: Create a ray tracer to render realistic 3D scenes with lighting effects.
- Choose a project focused on inter-process communication:
- pipex: Work with pipes to chain commands and redirect input/output.
- minitalk: Explore signal handling and bitwise operations for basic communication between processes.
- Minishell: Craft your own simplified Unix shell. Handle commands, arguments, pipes, redirections, and environment variables.
- Transcendence: Design and build a multiplayer online role-playing game (MMORPG). A massive project encompassing game logic, networking, and UI design.
- CPP 00-04 & CPP 05-09: A series of modules introducing C++ concepts like classes, inheritance, templates, and the Standard Template Library (STL).
📚 More info
Topic | Hours | Months | Percentage |
---|---|---|---|
Piscine | 100 | 1 | |
Common Core | 1,958 | 11 | 63% |
Specialization | 1,029 | 6 | 33% |
Total | 3,087 | 17 | 100% |
Topic | Hours | Months | Percentage |
---|---|---|---|
Fundamental C Libraries & Tools | 38 | 3 | 12% |
Unix Processes & Communication | 260 | 1 | 8% |
System Administration & Networking | 55 | 1 | 3% |
Algorithms & Data Structures | 630 | 0 | 2% |
Object-Oriented Programming (C++) | 210 | 1 | 7% |
Game Development & AI | 25 | 1 | 1% |
Graphics & Visualization | 340 | 2 | 11% |
Specialization | 1,029 | 6 | 33% |
|Hours Per day average | 6 |
📚 More info
At 42 School, it is expected that almost every project is written following the Norm, which is the coding standard of the school.
- No for, do...while, switch, case, goto, ternary operators, or variable-length arrays allowed;
- Each function must be a maximum of 25 lines, not counting the function's curly brackets;
- Each line must be at most 80 columns wide, with comments included;
- A function can take 4 named parameters maximum;
- No assigns and declarations in the same line (unless static);
- You can't declare more than 5 variables per function;
- ...
- 42 Norms - Information about 42 code norms.
PDF
- Norminette - Tool to respect the code norm, made by 42.
GitHub
- 42 Header - 42 header for Vim.
GitHub