42 is a future-proof computer science training that educates the next generation of software engineers. The program takes a project-based approach to progress and is designed to develop technical and people skills that match the expectations of the labor market (+12 000 students globally).
The curriculum at 42 starts with the core curriculum. This experience sets the base for minimum skills, both human and technical. Following each student’s personal pace, it lasts a maximum of 18 months and lets students learn C programming, develop simple software using classic algorithms, discover access to the file system, and learn management of the UNIX process. It also includes a simple first approach to network architecture as well as system administration. The program also offers oriented programming and a client-server project.
More info: https://42.fr/en/homepage/
-
Programming:
- C
- C++ (OOP)
- Typescript
-
Data Structures & Algorithms
-
Version control
-
Unix Systems
-
System Administration (Virtualization, Containerization)
-
Networking
-
Web Dev:
- ReactJS
- NodeJS / NestJS
Some of the projects I worked on while studying at 42 (Brussels' campus):
0. Libft: This project aims to code a C library regrouping usual functions that we will be allowed to use in all our other projects.
1. Get_next_line: The aim of this project is to make us code a function that returns a line, read from a file descriptor.
2. Born2beroot: This project aims to introduce us to the wonderful world of virtualization.
3. Printf: Goal of the project is to recode the (in)famous printf.
4. So_long: This project is a very small 2D game. It is built to make us work with textures, sprites and some very basic gameplay elements.
5. Pipex: This project’s objectives is to discover pipes, a very important UNIX mechanism.
6. Push_swap: Goal is to sort a stack, with a limited set of instructions, using the lowest possible number of actions. To succeed we have to manipulate various types of algorithms and choose the one (of many) most appropriate solution for an optimized data sorting.
7. Minishell: The objective of this project is to re-create from scratch a simple shell like bash.
8. Philosophers: This project teaches the basics of threading a process and using mutexes through the famous Dining Philosopher Problem.
9. Net_Practice: Goal of the project is to solve networking problems to make a network run.
10. Cub3d: This project is inspired by the world-famous eponymous 90's game (Wolfenstein 3D), the first FPS ever.
11. CPP_Modules: Goal of the project is to discover the basics of an object-oriented programming language (C++) through a series of exercises.
12. Containers: Purpose of the project is to implement a few container types of the C++ standard template library (vector, stack & map) and program our own red–black tree (a kind of self-balancing binary search tree).
13. Webserv: A simple HTTP webserver (similar to Nginx).
14. Inception: Virtualize several Docker images (nginx, wordpress & mariadb) in a virtual machine.
15. Transcendance: This project is about creating a web app for the mighty Pong contest!. Users can login, enable 2FA, see stats of the games they played, invite other users to join a game, chat with their friends, etc.