/42-Common-core

Primary LanguageCMIT LicenseMIT

🚀 Mon Parcours à l'École 42

Bienvenue sur mon dépôt GitHub où je partage les projets que j'ai réalisés pendant mon temps à l'école 42. Ce parcours a été une aventure incroyable, m'offrant une profonde compréhension de la programmation, du développement logiciel et de la résolution de problèmes complexes.

Table des Matières

📚 Apprentissages Clés

Au cours de mon parcours à l'école 42, j'ai non seulement acquis une solide base technique dans divers domaines de l'informatique, mais j'ai également développé une approche méthodique pour résoudre des problèmes complexes et travailler efficacement en équipe. Voici les compétences et les connaissances que j'ai pu développer :

  • Programmation Système et Réseau : Profonde compréhension des principes de la programmation système en C, y compris la gestion des processus et la communication inter-processus, ainsi que des compétences avancées en programmation réseau, permettant de créer et de gérer des connexions sécurisées et efficaces.

  • Développement Web Full Stack : Développement d'applications web complètes, de la gestion de la base de données et du serveur backend jusqu'à la création d'interfaces utilisateur dynamiques, en utilisant des technologies de pointe et des frameworks modernes.

  • Conception et Gestion de Projets : Expérience approfondie dans la planification, le développement, et la livraison de projets logiciels complexes, avec une forte emphase sur les méthodologies agiles et le travail d'équipe, assurant une collaboration efficace et une haute qualité de code.

  • Principes de la Cybersécurité : Application rigoureuse des meilleures pratiques de sécurité pour protéger les données et les systèmes contre les vulnérabilités, avec une attention particulière à la sécurisation des applications web et des réseaux.

  • Conteneurisation et Orchestration : Maîtrise des technologies de conteneurisation comme Docker, et compétences en orchestration avec docker-compose, facilitant le déploiement et la gestion d'applications scalables et résilientes.

  • Algorithmique et Structures de Données : Solide compréhension des algorithmes classiques et des structures de données, permettant d'optimiser la performance et l'efficacité des solutions logicielles développées.

  • Graphisme et Visualisation de Données : Capacité à créer des visualisations graphiques interactives et à implémenter des interfaces utilisateur intuitives, améliorant l'expérience utilisateur et facilitant la compréhension des données complexes.

Ces compétences, acquises à travers une série de projets pratiques et défis techniques, m'ont préparé à aborder sereinement les problèmes informatiques les plus ardus et à contribuer efficacement à des projets technologiques innovants.

🌟 Projets Phares

Voici une sélection de mes projets préférés réalisés à l'école 42, illustrant la diversité de mes compétences et intérêts :

1. minishell 🐚

  • Description : Réalisation d'un shell Unix minimaliste. Ce projet m'a permis de comprendre en profondeur le fonctionnement des interpréteurs de commandes et la gestion des processus sous Unix.
  • Compétences : Programmation en C, gestion de processus, interprétation de commandes.

2. Philosophers 🍽

  • Description : Implémentation du problème classique du dîner des philosophes en utilisant le multithreading et la synchronisation pour éviter les deadlocks et les race conditions.
  • Compétences : Multithreading, synchronisation, problèmes de concurrence.

3. ft_transcendence 🎮

  • Description : Développement d'une plateforme web complexe offrant des jeux en temps réel et un système de chat. Ce projet a été une introduction complète au développement web full stack.
  • Compétences : Full Stack Web Development, WebSockets, gestion de bases de données.

4. ft_irc 💬

  • Description : Création d'un serveur IRC from scratch, ce qui m'a permis de plonger dans les détails de la programmation réseau et de la gestion de multiples clients en simultané.
  • Compétences : Programmation réseau, gestion de clients, protocoles de communication.

5. Inception 🏗

  • Description : Mise en place d'une architecture microservices à l'aide de conteneurs Docker, simulant une application web complexe et ses dépendances.
  • Compétences : Docker, docker-compose, architecture microservices.

6. Netpractice 🌐

  • Description : Série d'exercices pratiques centrés sur la compréhension et la mise en œuvre des principes fondamentaux des réseaux informatiques. Ce projet a renforcé ma capacité à configurer et à résoudre des problèmes de réseau, m'offrant une base solide en matière de technologies de communication.
  • Compétences : Configuration réseau, diagnostic de problèmes, fondamentaux des protocoles de réseau.

7. push_swap 🔁

  • Description : Projet axé sur les algorithmes de tri, où j'ai dû développer un programme capable de trier des données avec un ensemble limité d'opérations, optimisant l'efficacité et la performance.
  • Compétences : Algorithmique, optimisation, résolution de problèmes.

📈 Mes Projets à l'École 42 et Leurs Notes

Projet Note
ft_transcendence Note
exam Rank 06 Note
ft_irc Note
Inception Note
CPP Module 09 Note
CPP Module 08 Note
CPP Module 07 Note
CPP Module 06 Note
CPP Module 05 Note
exam Rank 05 Note
CPP Module 04 Note
CPP Module 03 Note
CPP Module 02 Note
CPP Module 01 Note
CPP Module 00 Note
cub3D Note
Netpractice Note
exam Rank 04 Note
minishell Note
Philosophers Note
exam Rank 03 Note
push_swap Note
fract-ol Note
minitalk Note
exam Rank 02 Note
getnextline Note
ft_printf Note
born2beroot Note
libft Note

N'hésite pas à explorer les répertoires de chaque projet pour plus de détails sur mon travail et les compétences développées. Merci de votre intérêt pour mon parcours à l'école 42!