This is where I keep all my coding projects from my time at 42. I'm studying at 1337 (part of the 42 Network) and I'm learning everything from scratch - starting with C programming and working my way up to building entire web apps.
What makes 42 different is there are no teachers and no lectures. Instead, you figure things out on your own, work on real projects, and learn alongside other students. Every project has to go through peer reviews (we call them "corrections") before you can move forward. It's intense, but it's a great way to learn how to code and solve problems.
In this repo, you'll find my progress through the whole curriculum - from basic stuff like coding my own C library to more complex projects like building web servers and creating full-stack applications. Each project taught me something new about computer science and software development.
- ๐ Curriculum
- ๐ Projects
- ๐ป Core Programming Fundamentals
- ๐ง Unix & System Programming
- ๐ Algorithms & Data Structures
- ๐จ Computer Graphics
- ๐ Network Programming
- ๐งฉ Object-Oriented Programming
- โ๏ธ DevOps & Cloud
- ๐๏ธ Full-Stack Development
- ๐ Achievement Summary
- ๐บ๏ธ Project Progression Map
- ๐ ๏ธ Skills
- ๐ Stats
- ๐ Blogs and Articles
- ๐ Contact
The 42 curriculum is structured like a galaxy of projects, organized in concentric circles from basic to advanced:
Inner Circle (Common Core)
- Begins with fundamental C programming
- Projects increase in complexity as you progress
- At certain points, you can choose between different projects:
- For example, between graphics projects (FdF/fract-ol) or Unix projects (minitalk/pipex)
- Some levels offer multiple project options, where you only need to complete one to progress
- All mandatory phases must be completed to finish the common core -Required for activities like internships and student exchange
Outer Treks
-
A collection of diverse project trails available after the inner circle
-
Covers various specialization areas:
- Operating Systems
- Web Development
- Graphics
- Network & System Administration
- And more...
These tracks allow students to specialize in their preferred areas of software development and computer science.
Note: The Holy Graph visualization above maps the complete curriculum structure. The turquoise nodes indicate completed projects, while grey nodes represent projects yet to be tackled. Each connection line shows the prerequisites needed to unlock the next project, with some levels offering multiple paths to choose from.
The following table lists the projects I've completed as part of the 42 Cursus. Each project is linked to its repository, where you can find the project's description, requirements, and my implementation.
- Languages: C, C++, Bash, HTML/CSS, JavaScript
- Core Skills: Memory management, data structures, algorithms, OOP
- Tools: Git, Make, Docker, GDB, Valgrind
- Environments: VSCode, Vim, Emacs, Linux, macOS
- System Programming: Process management, IPC, threading, memory optimization
- Network: Socket programming, HTTP/TCP/IP, web server development
- Security: System hardening, SSH, firewall configuration, authentication
- Graphics: Raycasting, 3D rendering, game physics, collision detection
- Mathematical: Fractal computation, complex number operations, optimization
- Containerization: Docker, service configuration, container orchestration
- Web Development: Full-stack applications, REST APIs, WebSockets
- Databases: PostgreSQL, MariaDB, data modeling
- Development: Code review, documentation, debugging, testing
- Collaboration: Team projects, pair programming, project management
- Problem Solving: Algorithm design, optimization, architectural planning
42 Stats
GitHub Stats
These are some of the blogs and articles I've written about my experiences at 42 and other topics related to computer science and programming.
Feel free to reach out to me if you have any questions, suggestions, or just want to chat!