Skip to content

42's peer-to-peer learning uses C/C++ projects to teach systems-level programming (UNIX), networking, data structures, algorithms, and graphics/game developm

Notifications You must be signed in to change notification settings

diegonmarcos/L-ecole-42

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

L'eco 4242L'ecole 4242L'ecole 4242L'ecole 4242L'eco4242


About the SchoolThe CurricullumResourcesSchool Procedures

# 📚 Projects
Projects by Deadline
Projects by Deadline
  • Circle 0
  • Circle 1
  • Circle 2
    • push_swap
    • pipex_or_minitalk
    • fdf_or_so_long_or_fract-ol
    • Exam Rank 02
  • Circle 3
    • Minishell
    • Philosophers
    • Exam Rank 03
  • Circle 4
    • CPP00-04
    • Cub3D_or_MiniRT
    • NetPractice
    • Exam Rank 04
  • Circle 5
    • CPP05-09
    • Webserv_or_IRC
    • Inception
    • Exam Rank 05
  • Circle 6
    • Transcendence
    • Exam Rank 06
Tools


Milestones

Milestones



Table of Content

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
---

About the School

  • : The Code Odyssey 🚀

    Welcome to my 42 journey! This ain't your average school. We're diving deep into code, collaboration, and peer-driven learning.
    • About 42: Where the Wild Things Code 🌐

      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.
    • The Piscine: Sink or Swim 🏊‍♀️

      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.
    • Origins

/*
**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
}


  • The Curriculum: Your Code Adventure 🗺️ -

    Once you've survived the Piscine, the real adventure begins! The curriculum is split into phases:

  • Common Core: 18 Months 🏗️

    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.

    GIF

Skills to be developed.

  • Professional Experience: 4-6 Months 💼

    A internship that solidifies your skills and builds your network.

  • Specialization: 18 Months 🎯

    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
  • Final Internship: 6 Months 🚀

    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);
}

Back to Top


































The Curricullum

Projects by Topic

Topics:

  • Fundamental C Libraries & Tools
  • System Administration & Networking
  • Algorithms & Data Structures
  • Graphics & Visualization
  • Unix Processes & Communication
  • Concurrency & Parallelism
  • Game Development & AI
  • Object-Oriented Programming (C++)



Fundamental C Libraries & Tools

  • 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.

System Administration & Networking

  • 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.

Algorithms & Data Structures

  • 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.

Graphics & Visualization

  • 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.

Unix Processes & Communication

  • 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.

Game Development & AI

  • Transcendence: Design and build a multiplayer online role-playing game (MMORPG). A massive project encompassing game logic, networking, and UI design.

Object-Oriented Programming (C++)

  • 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

Back to Top

Back to Top
































Curriculum Hours

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

Back to Top

Back to Top


































Resources


Back to Top
































School Procedures


NORMINETTE

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

Back to Top






































About me

42

42 profile

































dnepomuc's 42 stats

About

42's peer-to-peer learning uses C/C++ projects to teach systems-level programming (UNIX), networking, data structures, algorithms, and graphics/game developm

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published