LE CONTENU
Le cursus de 42 s’adapte à tous les profils des étudiantes et des étudiants. Il propose la meilleure formation en informatique à un rythme personnalisé.
LE PARCOURS D'ÉTUDES
DÉROULEMENT DE LA FORMATION
La formation à 42 Le Havre a une durée indicative totale de 3 à 5 ans, en fonction des objectifs et de l’avancement personnel.
Elle se sépare en trois temps forts :
Cette expérience développe le jeu de compétences minimum, tant techniques qu’humaines, pour un premier niveau professionnel. D’une durée maximale de deux ans selon la progression personnelle, elle permet d’apprendre la programmation en C, de développer des logiciels simples en utilisant des algorithmes classiques, ou encore de découvrir l’accès au système de fichiers et la gestion des processus unix. Une première approche simple de l’architecture réseau ainsi que de l’administration système est également inclue. De la programmation orientée objet est aussi au programme, ainsi qu’un projet client-serveur et la base du développement web.
La durée moyenne constatée est d’un an.
Un stage de 4 à 6 mois est à effectuer à l’issue du tronc commun. Il représente la première période de professionnalisation du cursus d’un étudiant.
Il n’y a pas de dates imposées de départ et il peut le faire à temps plein ou à temps partiel.
Cette partie aborde les domaines classiques du numérique et de la programmation, comme l’intelligence artificielle, la sécurité, ou encore le développement d’applications mobiles. Elle met l’accent sur le travail en groupe de projet et la collaboration ainsi que la neutralité vis-à-vis des marques, des technologies, des langages, afin de développer les capacités d’adaptation de nos étudiants et éviter leur obsolescence sur le marché du travail dans 5 ou 10 ans. Le choix des domaines d’étude sont libres et apportent des compétences complémentaires dans diverses expertises. Les étudiants et les étudiantes décident eux même du moment où ils arrêtent leur cursus pour devenir alumni.
Les sept spécialisations proposées sont les suivantes :
- Cybersécurité
- Architecture systèmes
- Développement systèmes et logiciels
- Développement mobile
- Jeux vidéos et graphique
- Développement web
- Intelligence artificielle et Data
Cette seconde partie peut-être réalisée en format initial ou en alternance.
La formation à 42 Le Havre a une durée indicative totale de 3 à 5 ans, en fonction des objectifs et de l’avancement personnel.
Elle se sépare en trois temps forts :
Cette expérience développe le jeu de compétences minimum, tant techniques qu’humaines, pour un premier niveau professionnel. D’une durée maximale de deux ans selon la progression personnelle, elle permet d’apprendre la programmation en C, de développer des logiciels simples en utilisant des algorithmes classiques, ou encore de découvrir l’accès au système de fichiers et la gestion des processus unix. Une première approche simple de l’architecture réseau ainsi que de l’administration système est également inclue. De la programmation orientée objet est aussi au programme, ainsi qu’un projet client-serveur et la base du développement web.
La durée moyenne constatée est d’un an.
Un stage de 4 à 6 mois est à effectuer à l’issue du tronc commun. Il représente la première période de professionnalisation du cursus d’un étudiant.
Il n’y a pas de dates imposées de départ et il peut le faire à temps plein ou à temps partiel.
Cette partie aborde les domaines classiques du numérique et de la programmation, comme l’intelligence artificielle, la sécurité, ou encore le développement d’applications mobiles. Elle met l’accent sur le travail en groupe de projet et la collaboration ainsi que la neutralité vis-à-vis des marques, des technologies, des langages, afin de développer les capacités d’adaptation de nos étudiants et éviter leur obsolescence sur le marché du travail dans 5 ou 10 ans. Le choix des domaines d’étude sont libres et apportent des compétences complémentaires dans diverses expertises. Les étudiants et les étudiantes décident eux même du moment où ils arrêtent leur cursus pour devenir alumni.
Les sept spécialisations proposées sont les suivantes :
- Cybersécurité
- Architecture systèmes
- Développement systèmes et logiciels
- Développement mobile
- Jeux vidéos et graphique
- Développement web
- Intelligence artificielle et Data
Cette seconde partie peut-être réalisée en format initial ou en alternance.
EN PRATIQUE
EXEMPLES DE PROJETS
FT_TRANSCENDENCE
C’est bien de s’amuser à un jeu vidéo, c’est mieux d’en programmer un… et c’est bien mieux d’organiser des parties en ligne ! Au cours du projet ft_transcendence, on apprend à recréer le classique Pong de 1979, à l’intégrer sur un site web puis à en faire une plateforme pour se défier. Le site doit être capable de proposer des parties entre les joueuses et les joueurs : il faut donc pouvoir gérer les inscriptions, les victoires, la progression dans le classement, un mode spectateur et un chat. Ce projet d’envergure est le dernier à valider avant de pouvoir quitter le tronc commun et accéder aux stages et aux domaines d’expertise.
MINIRT
Le raytracing (lancé de rayons) est une méthode pour calculer des images sur un ordinateur. Il s’agit de simuler le passage de la lumière : on recherche quelles sont les sources lumineuses de la scène à afficher, quels objets sont éclairés, et selon l’angle de vue, quelles sont les particules lumineuses qui sont censées nous arriver à l’écran. Elle demande beaucoup de puissance de calcul et n’a été popularisé que très récemment avec certains modèles de cartes graphiques pour des jeux vidéo à gros budget. Pour y arriver, il est nécessaire d’appliquer des formules scientifiques et de les intégrer. Attention, il ne s’agit pas de faire des mathématiques ou de la physique : l’objectif de ce projet, c’est de démontrer tout l’inverse. Pour programmer, pas besoin de savoir démontrer un théorème !
FAMINE, PESTILENCE, WAR AND DEATH
Apprendre à coder un virus, c’est apprendre l’informatique par la ruse. À travers quatre projets dédiés, qui proposent chacun une nouvelle technique, le but est de découvrir comment fonctionnent de tels programmes par la pratique. Si pour commencer il s’agit uniquement de laisser une trace de son passage, le virus final devra être capable de se cacher et même de modifier son code source. Bien évidemment, ces virus sont créés à but pédagogique – et des précautions sont demandées lors de leur création et évaluation. Les mettre à disposition ou les utiliser hors de ce cadre sont des motifs de sanctions disciplinaires allant jusqu’à l’exclusion de 42.
PUSH_SWAP ET LEM_IN
push_swap et lem_in, permettent de mieux s’approprier les algorithmes informatiques. Dans le premier, push_swap, il s’agit de remettre de l’ordre dans une liste de nombres de la manière la plus efficace possible. Mais attention : il n’existe pas une seule façon de réussir : il faut pouvoir créer un programme capable de s’adapter à toutes les situations ! Dans le second, lem_in, il faut résoudre un labyrinthe. Bien évidemment, il s’agit de trouver le chemin le plus rapide même si plusieurs options sont proposées. la difficulté est de faire parcourir le labyrinthe non pas à une seule personne mais à une colonie entière de fourmis. Objectif ? 2 secondes ou moins !
COREWAR
Le Core War est un concours de programmation inventé par D. G. Jones et A. K. Dewdney. Le but : faire s’affronter des programmes appelés « champions » pour le contrôle d’une arène virtuelle. Dans le projet corewar, il faut être capable de récréer, en plus de champions, l’arène qui servira de terrain de compétition. La difficulté n’est pas d’apprendre de nouvelles notions ou bien un nouveau langage : les meilleurs champions des étudiants et des étudiantes sont invités à participer à un tournoi amical à l’occasion d’un événement dédié !
FT_TURING
La machine de Turing est un objet mathématique inventé par Alan Turing en 1936. Elle est comparable à un ruban infini, comportant des cases, qu’une tête de lecture et d’écriture est capable de remplir en se déplaçant : changer un 1 par un 0 par exemple, sauter des cases, revenir en arrière… ft_turing propose de créer une telle machine puis d’y encoder quelques algorithmes. Ce projet permet également de se renseigner sur la culture et l’histoire de la programmation à travers le prisme du début du 20e siècle. À noter : avant de se lancer, il faut participer et valider une Piscine spécifique dédiée au langage de programmation utilisé, l’OCaml. Même après les tests de sélection, des Piscines sont proposées afin de pouvoir apprendre très rapidement des notions spécifiques ou un langage particulier.
FRACT-OL
On retrouve des figures fractales partout dans la nature – du plus petit, comme les flocons de neige, au plus grand, comme des nuages, des montagnes ou même des galaxies. Il s’agit de motifs qui se répètent à l’infini : un triangle dont les côtés sont des triangles dont les côtés sont des triangles, etc. Ce projet permet de se concentrer sur la programmation graphique d’images tout en s’immergeant dans un univers psychédélique. En plus de pouvoir afficher des figures fractales, il faudra pouvoir s’y déplacer et modifier en temps réel leurs paramètres. Les esprits les plus créatifs peuvent également soumettre leurs propres améliorations pour proposer des images réellement saisissantes !
MATCHA
Ce projet propose de créer un site de rencontres sur Internet. Plusieurs fonctionnalités sont à créer. Il faut d’abord gérer les profils individuels, avec les descriptions personnelles, les centres d’intérêts, mais aussi les photos. Ensuite, il faut pouvoir visiter le profil d’autres personnes et les contacter. Enfin, c’est de là que ce projet tient son nom : il faut pouvoir trouver des relations compatibles, des « matchs », entre les membres inscrits sur le site. Une attention toute particulière est demandée à la sécurité des données. Ce projet peut être écrit dans la technologie de son choix… et est accessible après une Piscine de découverte d’un nouveau langage de programmation : Python, Ruby ou PHP.
MULTILAYER PERCEPTRON
Les applications modernes de l’informatique se trouvent partout – y compris dans le domaine de la santé. Les réseaux de neurones artificiels en particulier sont des programmes capables d’apprendre à partir d’un jeu de données conséquent. Ce projet a pour but de faire découvrir de tels réseaux et d’y implémenter des algorithmes. Il s’agit de déceler si un cancer est malin ou bénin grâce à des diagnostics de cancer du sein réalisés au Wisconsin. Ce projet a été proposé par l’association étudiante spécialisée dans le machine learning : 42AI. Il a été validé par les équipes pédagogiques et est maintenant disponible à toutes et à tous.
CE QUE 42 VOUS APPORTE
LES COMPÉTENCES VISÉES À L'ISSUE DU CURSUS
- Programmation impérative
- C
- Programmation fonctionnelle
- Lisp
- OCaml
- Rust
- Programmation orientée objet
- C++
- C#
- Développement mobile
- Java
- Python
- Swift
- Algorithmes et intelligence artificielle
- Algorithmes génétiques
- Deep learning
- Machine learning
- Parcours de graphe
- Réseau de neurones
- Programmation graphique
- Calcul d'image
- Jeux Metal
- OpenGL
- Unity
- Unreal
- Engine
- Vulkan
- Programmation système
- Bas niveau
- Kernel
- Posix
- Systèmes embarqués
- UNIX
- Administration système et réseau
- Administration système
- Architecture réseau
- Cloud
- DevOps
- Docker
- Intégration continue
- Kubernetes
- Plan d'adressage LAN et WAN
- Services réseau
- Virtualization
- Sécurité
- Analyse de paquets
- Attaque de type Man-In-The-Middle
- Contre-mesures
- Exploits
- Pare-feux
- Rootkits
- Sauvegardes
- Trojans
- Usurpation d'adresse IP
- Virus
- Données et bases de données
- Data lake
- Exploration de données
- MySQL
- NoSQL
- Oracle
- PostgreSQL
- SQL
- Structure de données
- Visualisation de données
- Programmation parallèle
- Cuda
- Mutexes
- OpenCL
- Programmation concurrente
- Programmation GPU
- Sémaphores
- Threads
- Adaptation et créativité
- Innovation
- Pensée latérale
- Web
- Développement back
- Développement full stack
- Django
- Frameworks
- Node
- Rails
- React
- Symfony
- Intégration technologique
- Environnements complexes
- Environnements hétérogènes
- Projets d'entreprise
- Rigueur
- Style de code
- Tests de régression
- Organisation
- Organisation personnelle
- Gestion de projets
- Expérience professionnelle
- Stages Alternance (en option)
- Temps partiels (en option)
- Groupe et interpersonnel
- Gestion de groupe
- Communication