Table of contents
- Subjects
- All-In-One Testers
- Libft
- Born2beroot
- Ft_printf
- Get_next_line
- Minitalk
- Pipex
- Minilibx
- So_long
- Fract-ol
- Fdf
- Push_swap
- Philosophers
- Minishell
- Netpractice
- Cub3d
- Minirt
- CPP Modules (00-09)
- Webserv
- Ft_irc
- Inception
- Ft_transcendence
The subjects at 42 undergo regular updates, so the information provided in this section might not be up to date. Additionally, as some projects are optional, resources might not be available if I haven’t completed them.
Subjects
Repositories with all 42 subjects and additional files in one place, some are outdated but still useful.
Resource | Source | User |
---|---|---|
42 Subjects | GitHub | rphlr |
42 Holygraph (outdated) | GitHub | akaylee |
42 Subjects and Corrections (outdated) | GitHub | Binary-Hackers |
42 Subjects (outdated) | GitHub | agavrel |
All-In-One Testers
Test your code with already-made all-in-one testers.
Resource | Source | User |
---|---|---|
francinette | GitHub | xicodomingues |
42-Cursus-Tester | GitHub | Abaker-Hype |
42-Tests | GitHub | Kwevan |
Libft
Resource | Source |
---|---|
Libft - C Standard Library Rewrite | Website |
Easy Makefile | Website |
Master Memory Management | Medium |
Make-A-Make: Clear the fog around Makefiles | GitHub |
Project | Source | User |
---|---|---|
42’s libft with comments | GitHub | pbie42 |
Tester | Source | User |
---|---|---|
francinette | GitHub | xicodomingues |
libftTester | GitHub | Tripouille |
libft_file_checker | GitHub | Nuno-Jesus |
libft-unit-test | GitHub | alelievr |
Libftest | GitHub | jtoty |
libft-war-machine | GitHub | 0x050f |
Born2beroot
Video Resource | Source | User |
---|---|---|
Linux Directories Explained in 100 Seconds | Youtube | Fireship |
Guide | Source | User |
---|---|---|
Born2beroot | GitHub | lbordonal |
Born2beroot Guide | GitHub | pasqualerossi |
Born2beroot Tutorial | GitHub | gemartin99 |
Born2beroot Walkthrough | GitHub | HEADLIGHTER |
Tester | Source | User |
---|---|---|
Born2BeRootTester | GitHub | Pixailz |
Born2beroot-Tester | GitHub | gemartin99 |
Ft_printf
Project | Source | User |
---|---|---|
printf / sprintf Implementation for Embedded Systems | GitHub | mpaland |
Tester | Source | User |
---|---|---|
Debugging with main.c | GitHub | Kuninoto |
francinette | GitHub | xicodomingues |
printfTester | GitHub | Tripouille |
ft_printf_tester | GitHub | paulo-santana |
Get_next_line
Resource | Source |
---|---|
get_next_line: My first complex program | Website |
Master File I/O Operations | Medium |
get_next_line - 42 Docs | GitHub |
Video Resource | Source | User |
---|---|---|
Read A Specific Line From A File | C Programming Example | Youtube | Portfolio Courses |
get_next_line explained: develop a function that reads a file line by line | Youtube | Oceano |
understanding get_next_line | Youtube | nikito |
Tester | Source | User |
---|---|---|
francinette | GitHub | xicodomingues |
gnlTester | GitHub | Tripouille |
gnl-station-tester | GitHub | kodpe |
Minitalk
Resource | Source |
---|---|
Bitwise Operators in C/C++ | Website |
How to use signal handlers in C language? | Website |
include/linux/signal.h - Linux source code (v6.6.2) | Website |
Beej’s Guide to C Programming - 29 Signal Handling | Website |
Beej’s Guide to C Programming - Bit-Fields | Website |
Beej’s Guide to C Programming - What is Unicode? | Website |
42-Bitwise_Operators | GitHub |
Video Resource | Source | User |
---|---|---|
Sending and Handling Signals in C (kill, signal, sigaction) | Youtube | Jacob Sorber |
Short Introduction to Signals in C | Youtube | CodeVault |
Handling Signals | Youtube | CodeVault |
Tester | Source | User |
---|---|---|
francinette | GitHub | xicodomingues |
minitalk-Tester | GitHub | ThibaudM13 |
Lipsum generator: Lorem Ipsum | Website | |
Get Emoji | Website | |
EmojiDB | Website |
Pipex
Resource | Source |
---|---|
Consequences of Process Termination | Website |
Creating Pipes in C | Website |
SIGTSTP signal not stopping child? | Stack Overflow |
pipex tutorial — 42 project | Medium |
wait(2) — Linux manual page | man7 |
execve(2) — Linux manual page | man7 |
Stanford Lecture 07: Signals | PDF |
Video Resource | Source | User |
---|---|---|
Unix Processes in C | Youtube | CodeVault |
Pipes Explained (Spanish) | Youtube | WhileTrueThenDream |
Project | Source | User |
---|---|---|
pipex.c | GitHub | malikfassi |
Tester | Source | User |
---|---|---|
pipexMedic | GitHub | gmarcha |
pipex-tester | GitHub | vfurmane |
PIPEX_TESTER | GitHub | ael-bekk |
francinette | GitHub | xicodomingues |
Minilibx
The links in this section are the most useful for so_long
, fract-ol
, fdf
, cub3d
and minirt
.
Resource | Source | User |
---|---|---|
What is it? | MiniLibX | GitHub | gontjarow |
MiniLibX - 42 Docs | GitHub | harm-smits |
minilibx-linux | GitHub | 42Paris |
images_example | GitHub | keuhdall |
ft_libgfx | GitHub | qst0 |
MiniLibX(3) | ft_libgfx | GitHub | qst0 |
MLX42 | GitHub | codam-coding-college |
miniLibX sample | GitHub | S-LucasSerrano |
raylib | GitHub | raysan5 |
miniaudio | GitHub | mackron |
MiniLibX Tutorial | Blog | pulgamecanica |
MLX Animations | Blog | pulgamecanica |
So_long
Resource | Source |
---|---|
How to Make Pixel Art in GIMP | Website |
itch.io | Website |
OpenGameArt.org | Website |
8-Bit Dungeon Tileset/Sprites | Website |
42: A Comprehensive Guide to So Long | Website |
Project | Source | User |
---|---|---|
so_long | GitHub | madebypixel02 |
Tester | Source | User |
---|---|---|
so_long_invalidator | GitHub | Nuno-Jesus |
so_long_tester | GitHub | augustobecker |
Fract-ol
Resource | Source |
---|---|
Fractal | Wikipedia |
List of fractals by Hausdorff dimension | Wikipedia |
Plotting algorithms for the Mandelbrot set | Wikipedia |
Tricorn (mathematics) | Wikipedia |
The Mandelbrot Set | Website |
Julia and Mandelbrot Sets | Website |
Recursion Trees | Website |
Sierpinski Fractals | Website |
Managing events with the minilibx | Website |
Pixel drawing with the minilibx | Website |
Getting started with the minilibx | Website |
How to plot the Mandelbrot set | Website |
Efficiently generating the Mandelbrot and Julia sets | Website |
Fractal Pack 1 Educators’ Guide | Website |
How to Plot the Mandelbrot Set By Hand | Website |
Mandelbrot Interactive Online | Website |
Julia Set Mathematics | Website |
Mandelbrot & Julia Sets - Interactive visualization of fractals | Website |
Tutorial 3 : Matrices | Website |
Video Resource | Source |
---|---|
Brute Force Processing | Youtube |
The dark side of the Mandelbrot set | Youtube |
Beyond the Mandelbrot set, an intro to holomorphic dynamics | Youtube |
Marble Marcher - A Fractal Physics Game | Youtube |
Realtime 3D Fractal Renders | Youtube |
Sounds of the Mandelbrot Set | Youtube |
The Mandelbrot Set | Youtube |
What’s so special about the Mandelbrot Set? | Youtube |
The Mandelbrot Set | Youtube |
This equation will change how you see the world (the logistic map) | Youtube |
Project | Source | User |
---|---|---|
fract-ol | GitHub | mcombeau |
fract-ol | GitHub | inesalves44 |
fract-ol | GitHub | Xyckens |
ft_fractol | GitHub | librity |
Fdf
Resource | Source |
---|---|
Bresenham’s Line Algorithm | Website |
A* Search Algorithm | Website |
Learning Modern 3D Graphics Programming | Website |
A Probably Terrible Way to Render Gradients | Website |
8.2 - Orthographic Projections — LearnWebGL | Website |
Hexadecimal / Decimal Colors | Website |
PNG to XPM Converter Online | Website |
3D Rendering with Rotation and Projection | Youtube |
Project | Source | User |
---|---|---|
FdF | GitHub | VBrazhnik |
42Barcelona-FdF | GitHub | ailopez-o |
Tester | Source | User |
---|---|---|
42MapGenerator | GitHub | jgigault |
RANDOM.ORG Integer Sets | Website |
Push_swap
Resource | Source |
---|---|
Sorting Algorithms | Website |
QuickSort – Data Structure and Algorithm Tutorials | Website |
QuickSort on Singly Linked List | Website |
Move last element to front of a given Linked List | Website |
Algorithm Wiki | Website |
Sorting Algorithms Animations | Website |
Leet Code - Sort List | Website |
Recursion in Sorting | Website |
HeapSort | Website |
Memory Pools | Website |
Linked lists | Website |
Pushswap Epitech Project | Website |
Recursion and sorting algorithms | Website |
Computer Science | Website |
push_swap Resources | Website |
Push_Swap Tutorial | Medium |
The least amount of moves with two stacks | Medium |
A journey to find most efficient sorting algorithm | Medium |
Pivoting To Understand Quicksort [Part 1] | Medium |
Pivoting To Understand Quicksort [Part 2] | Medium |
Sorting Out The Basics Behind Sorting Algorithms | Medium |
Making Sense of Merge Sort [Part 1] | Medium |
Video Resource | Source | User |
---|---|---|
Stacks | Chapter-6 | Data Structures | Youtube | Neso Academy |
Push_Swap Project from 42 for Twilio Application | Youtube | JOHN PARK |
Algorithms | Youtube | Inside code |
Algorithms: Quicksort | Youtube | HackerRank |
Heap sort in 4 minutes | Youtube | Michael Sambol |
Project | Source | User |
---|---|---|
Push_Swap | GitHub | anyaschukin |
Tester | Source | User |
---|---|---|
push_swap_visualizer | GitHub | o-reo |
push_swap_visualiser | GitHub | Niimphu |
Push-Swap-Tester | GitHub | gemartin99 |
push_swap_tester | GitHub | laisarena |
push_swap_leak_tester | GitHub | IDC87 |
Push Swap Visualizer and Number Generator | Website | vercel |
Number Generator | Website |
Philosophers
Resource | Source |
---|---|
Dining Philosophers Problem | Wikipedia |
Deadlock | Wikipedia |
Race condition | Wikipedia |
The Dining Philosopher’s Problem | Medium |
Video Resource | Source | User |
---|---|---|
Unix Threads in C | Youtube | CodeVault |
The Dining Philosophers Problem | Youtube | Neso Academy |
Philosophers, 42 School Project | Youtube | Jamshidbek Ergashev |
Tester | Source | User |
---|---|---|
philosophers-visualizer | Website | nafuka11 |
socrates | GitHub | nesvoboda |
philosophers_test | GitHub | cacharle |
Philosphers-42Project-Tester | GitHub | newlinuxbot |
Minishell
Resource | Source |
---|---|
GNU Bash manual | Website |
Explain Shell | Website |
Tutorial - Write a Shell in C | Website |
Shell Command Language | Website |
How to Use “Here Documents” in Bash on Linux | Website |
Writing a Unix Shell - Part I | Website |
Writing a Unix Shell - Part II | Website |
Writing a Unix Shell - Part III | Website |
Tiny Shell - Case Study | Website |
42Cursus-Minishell | Medium |
Writing Your Own Shell | PDF |
Video Resource | Source | User |
---|---|---|
Unix Processes in C | Youtube | CodeVault |
Shell Program Explained | Youtube | hhp3 |
Project | Source | User |
---|---|---|
42_minishell | GitHub | DimitriDaSilva |
mysh | GitHub | Swoorup |
Tester | Source | User |
---|---|---|
42_minishell_tester | GitHub | zstenger93 |
minishell_tester | GitHub | thallard |
mpanic | GitHub | ChewyToast |
Netpractice
Resource | Source |
---|---|
Medium | Medium |
ipcalc | Website |
IP Subnet Calculator | Website |
Video Resource | Source | User |
---|---|---|
Free CCNA | Subnetting | Youtube | NetworKing |
What is Subnetting? | Youtube | Practical Networking |
Default Gateway Explained | Youtube | PowerCert Animated Videos |
Subnet Mask - Explained | Youtube | PowerCert Animated Videos |
Project | Source | User |
---|---|---|
NetPractice | GitHub | ifanzilka |
netpractice | GitHub | hexanyn |
NetPractice | GitHub | lpaube |
Cub3d
Game | Source |
---|---|
Wolfenstein 3D | Game |
Resource | Source |
---|---|
Lode’s Computer Graphics Tutorial | Website |
Computer Graphics from Scratch | Website |
Ray-Casting Tutorial | Website |
x.org Documentation | Website |
libX11 Documentation | Website |
Video Resource | Source | User |
---|---|---|
Online Computer Graphics II | Youtube | raviramamoorthi |
Binary Space Partitioning | Youtube | Mathematics... |
Super Fast Ray Casting in Tiled Worlds using DDA | Youtube | javidx9 |
Make Your Own Raycaster - Part 1 | Youtube | 3DSage |
Make Your Own Raycaster - Part 2 | Youtube | 3DSage |
Make Your Own Raycaster - Part 3 | Youtube | 3DSage |
Introduction to the MinilibX | Youtube | Oceano |
Tester | Source | User |
---|---|---|
cub3D_map_tester | GitHub | humblEgo |
42_cub_tester | GitHub | realisticDonut |
Minirt
Resource | Source |
---|---|
Bits to Bitmaps: A simple walkthrough of BMP Image Format | Medium |
Ray Tracing And Global Illumination | Website |
Ray Tracing in One Weekend — The Book Series | Website |
Raytracing shapes | Website |
miniRT Figma | Website |
Unit 15: Rendering | Website |
Writing a Raytracer in Rust - Part 1 - First Rays | Website |
Ray Tracing In A Nutshell | Website |
The BMP file format | Website |
Accelerated Ray Tracing in One Weekend in CUDA | Website |
Graphics Programming Projects | Website |
Ray Tracing Intro - Cornell Computer Science | PDF |
Ray Tracing with the BSP Tree | PDF |
Video Resource | Source | User |
---|---|---|
Essence of linear algebra | Youtube | 3Blue1Brown |
Ray Tracing Essentials, Part 1: Basics of Ray Tracing | Youtube | NVIDIA Developer |
Project | Source | User |
---|---|---|
miniRT | GitHub | martingarcialopez |
miniRT-for-Linux | GitHub | eljommys |
raytracer | GitHub | matboivin |
42_miniRT | GitHub | Nuno-Jesus |
Tester | Source | User |
---|---|---|
minirt_mesh_converter | GitHub | matboivin |
CPP Modules (00-09)
The 42 intra videos have bad fame, but in C++ they are good, so I recommend watching them first before watching any guides.
Resource | Source |
---|---|
cppinsights | Website |
godbolt | Website |
learncpp | Website |
cppreference | Website |
cplusplus | Website |
cprogramming | Website |
cplusplus C++ Language (C++98) | Website |
C++ Programming Language - Guide | Website |
Pointers to members (C++ only) | Website |
Introduction to Fixed Point Number Representation | Website |
Using the GNU Compiler Collection (GCC) | Website |
Subscripting [] Operator Overloading in C++ | Website |
An Introduction to “Iterator Traits” | Website |
cppinsights | Website |
godbolt | Website |
learncpp | Website |
cppreference | Website |
C++ Core Guidelines | GitHub |
C++ Primer (5th Edition) | PDF |
Video Resource | Source | User |
---|---|---|
(Life) Advice From The Creator of C++ | Youtube | Honeypot |
31 nooby C++ habits you need to ditch | Youtube | mCoding |
The C++ Conference | Youtube | CppCon |
Welcome to C++ (101 videos) | Youtube | The Cherno |
C++ Weekly With Jason Turner | Youtube | lefticus1 |
TLDR - CPP00 [42] | Youtube | Lucas Kuhn |
Fixed Point Arithmetic 1: Intro to Fixed Point | Youtube | Creel |
Fixed Point Arithmetic 2: Multiplication and Division | Youtube | Creel |
Overloading C++ Stream Insertion, Extraction Operators | Youtube | LearningLad |
Advanced C++: All Castings Considered - Part I | Youtube | Bo Qian |
C++ Tutorial for Beginners 45 - C++ Map | Youtube | ProgrammingKnowledge |
Webserv
Video Resource | Source | |
---|---|---|
C++ Web Server from Scratch | Part 1: Creating a Socket Object | Youtube | Eric O Meehan |
Web Server Concepts and Examples | Youtube | WebConcepts |
Hyper Text Transfer Protocol Crash Course - HTTP 1.0, 1.1, HTTP/2, HTTP/3 | Youtube | Hussein Nasser |
When to use HTTP GET vs POST? | Youtube | Hussein Nasser |
How one thread listens to many sockets with select in C. | Youtube | Jacob Sorber |
What Is A Web Server? | Youtube | WinningWP - Winning WordPress |
Web Server and Application Server | Explained | Youtube | Knowledge Center |
Ft_irc
Resource | Source |
---|---|
Internet Relay Chat | PDF |
What is a Socket? | Website |
Unix Socket - Network Addresses | Website |
Unix Socket - Core Functions | Website |
Beej’s Guide to Network Programming | Website |
Modern IRC Client Protocol | Website |
rawlog | Website |
RFC1459 - Internet Relay Chat Protocol | Website |
RFC2810 - Internet Relay Chat: Architecture | Website |
RFC2811 - Internet Relay Chat: Channel Management | Website |
RFC2812 - Internet Relay Chat: Client Protocol | Website |
RFC2813 - Internet Relay Chat: Server Protocol | Website |
Inception
Video Resource | Source |
---|---|
100+ Docker Concepts you Need to Know | Youtube |
You Need to Learn Docker RIGHT NOW!! // Docker Containers 101 | Youtube |
Docker Compose will BLOW your MIND!! (a tutorial) | Youtube |
Learn Docker in 1 Hour | Full Docker Course for Beginners | Youtube |
Learn Docker in 12 Minutes | Youtube |
Docker Compose in 12 Minutes | Youtube |
Docker Crash Course #1 - What is Docker? | Youtube |
Guide | Source | User |
---|---|---|
codesshaman | GitHub | codesshaman |
vbachele | GitHub | vbachele |
llescure | GitHub | llescure |
rbiodies | GitHub | rbiodies |
Forstman1 | GitHub | Forstman1 |
Theo2lt | GitHub | Theo2lt |
SavchenkoDV | GitHub | SavchenkoDV |
iimyzf | GitHub | iimyzf |
42-inception | GitHub | waltergcc |
Ft_transcendence
Resource | Source |
---|---|
Introduction to Vue.js | Website |
Props Versus Data in Vue | Website |
How to get left, top position of element in Vue.js? | Website |
Integrating Vue.js and Socket.io | Website |
Building a multiplayer game using WebSockets | Website |
Socket.IO - Get started | Website |
Build lobby based online multiplayer browser games with React and NodeJS | Website |
js-pong | GitHub |
Video Resource | Source | User |
---|---|---|
Beginner JavaScript Game Dev Project | Youtube | Web Dev Simplified |
Easiest way to build real-time web apps? WEBSOCKETS with NestJS | Youtube | Marius Espejo |
NestJS Authentication: JWTs, Sessions, logins, and more! | Youtube | Marius Espejo |
Vue JS Crash Course | Youtube | Traversy Media |
Build a Realtime Chat App with VueJS | Youtube | Scalable Scripts |