42 Piscine - Clément ABRAHAM
Welcome to my 42 Piscine repository! Here you’ll find my work from the August Piscine at 42, where I finished among the top 3 out of 150 students. Through 288 hours of continuous work, I tackled challenging C programming exercises, shell scripts, and collaborative projects. This repository showcases my progress, skills, and the projects I completed.
🌊 About the Piscine
The 42 Piscine is an intensive, four-week coding bootcamp at École 42. Each week presents new challenges, including exams, collaborative “rush” projects, and dozens of coding exercises in C and shell. The goal? To push participants to their limits and foster self-sufficiency, resilience, and teamwork.
Special Thanks 💫
A huge thank you to my friend [Eliam, Léo, Paul, Gaspart, Ewen, Nilse, Antoine and many other] for the endless support, late-night debugging sessions, and encouragement throughout the 42 Piscine journey. Couldn’t have done it without you! 🙌
🏆 Key Skills Developed
Throughout the Piscine, I strengthened these core skills:
• C Programming: From basics to advanced topics like dynamic memory management and data structures.
• Algorithms: Implementing efficient sorting, searching, and file-handling algorithms.
• Shell Scripting: Mastering command line, scripting, and file operations.
• Problem Solving: Tackling complex problems methodically.
• Peer Collaboration: Learning from and working with other students in rush projects and reviews.
📂 Project Structure
Below is a detailed look at each project and exam, organized by week.
Week 1 - Shell Basics & C Foundations
• Shell00 ✅✅✅✅✅✅✅✅✅✅ - 100%
Basic command line exercises to navigate, manipulate files, and understand the shell environment.
• Shell01 ✅✅✅✅✅✅✅✅ - 100%
Advanced shell scripting, including file manipulations, piping, and basic automation tasks.
• C00 ✅✅✅✅✅✅✅✅✅ - 100%
Introduction to C programming, covering loops, conditional statements, and basic syntax.
• C01 ✅✅✅✅✅✅✅✅✅ - 100%
Deeper dive into pointers, arrays, and functions, building essential skills for memory management.
• C02 ✅✅✅✅✅✅✅✅✅✅✅✅ - 85%
Introduction to recursion and memory allocation, working with arrays and strings.
• C03 ✅✅✅✅✅✅ - 100%
String manipulation exercises, including custom implementations of common functions like strcpy and strlen.
• Exam01 ✅ - 30%
The first weekly exam, testing skills from the first week’s projects with a set of time-limited challenges.
• Rush00 ✅ - 116%
A collaborative weekend project to develop a complete program with other Pisciners, emphasizing teamwork and time management.
Week 2 - Intermediate C & Advanced Shell
• C04 ✅✅✅✅✅ - 70%
Exploring deeper memory management with malloc and developing custom implementations of standard functions.
• C05 ✅✅✅✅✅✅✅✅ - 80%
Focused on file input/output, understanding file descriptors, and handling files in C.
• C06 ✅✅✅✅ - 100%
Implementing algorithms like sorting and searching on arrays and strings, working on efficiency and optimization.
• C07 ✅✅✅✅✅✅ - 100%
Diving into pointers, double pointers, and complex data structures to understand dynamic memory.
• C08 ✅✅✅✅✅✅ - 100%
Further memory management and debugging exercises to master error handling and efficient memory use.
• Exam02 ✅ - 50%
The second exam, testing more advanced skills and pushing understanding of pointers, recursion, and file handling.
• Rush01 - ❌ 0% (code works but, can't explain... group of )
A weekend rush project focused on a new collaborative task, challenging us to build something more complex under time constraints.
Week 3 - Advanced C Concepts
• C09 ✅✅✅ - 100%
Focused on advanced algorithms, with a particular emphasis on efficiency and optimization.
• C10 👻
Handling complex strings and memory allocation, with exercises on managing pointers and dynamic arrays.
• C11 ✅❌✅❌✅ - 10% (Does not compil the last day 🤡)
Advanced functions and recursion, including deeper exploration of memory management.
• C12 👻
Building larger programs, using modularity, and focusing on error handling and debugging.
• C13 👻
High-level exercises combining multiple concepts learned so far, integrating file handling and complex logic.
• Exam03 ✅ - 40%
The third exam, covering all advanced concepts and pushing time management and problem-solving skills to the max.
• Rush02 ✅ - 107%
Another collaborative project designed to test teamwork and coding under pressure with advanced C programming concepts.
Week 4 - Final Projects & Exam
• BSQ (Big Square)
The BSQ project, focusing on algorithms and efficient data handling, to find the largest square in a grid of obstacles.
• Final Exam ✅ - 60%
A cumulative exam covering all Piscine material, testing everything from memory allocation to algorithms.
⚙️ Key Projects
Here are some notable projects that represent milestones in my Piscine journey:
• Libft: Created my own version of the C standard library, with functions like ft_strlen, ft_strcpy, and more.
• ft_printf: Built a simplified version of the printf function, handling basic formatting and conversions.
• get_next_line: Developed a function that reads lines from a file descriptor, deepening my understanding of memory management and buffer handling.
• Rush Projects: Each weekend, collaborated with fellow students to complete complex coding challenges within strict time limits.
🔧 Usage
Clone this repository and test the projects by navigating to each folder and compiling the code:
1. Clone the Repository:
git clone https://github.com/cabraham2/42-Piscine.git cd 42-Piscine
2. Compile a Project:
• Navigate to a project folder.
• Compile the C files (example for ft_printf):
gcc -Wall -Wextra -Werror
• Run the executable:
./a.out
🚀 Reflections
The Piscine was an intense yet rewarding experience. It pushed my limits, taught me to think critically, and equipped me with a solid programming foundation. This journey not only enhanced my technical skills but also made me a more resilient and resourceful learner.
📫 Contact
Feel free to reach out with questions or collaboration inquiries!
GitHub: cabraham2
LinkedIn: Clément ABRAHAM
Clément ABRAHAM Master of Finance & École 42 Student
42 Piscine - August Edition
This README provides an overview of my Piscine journey, highlighting my achievements, skills, and completed projects. Thank you for exploring my work!
👑 Achivement