Epitech est une école délivrant un diplôme enregistré eu RNCP comme étant de niveau 1 (C'est a dire permettant d’accéder à des professions nécessitant un diplôme supérieur ou égal au master).
Ce n'est pas une école d'ingénieur, et on y apprend pas les sciences de l'ingénieur que sont la mécanique, l'électrotechnique, l'électronique analogique, l'architecture et la programmation mais seulement la programmation.
L'avantage étant qu'a l'heure actuelle, l"ingénieur" au sens large du terme est en perte de vitesse. D'ici vient le fait qu'on trouve des ingénieurs
en quelque chose, cette chose étant une spécialité. De ce fait, Epitech est souvent assimilée à une école d’ingénieur en informatique et beaucoup de mes camarades sont recrutés à ce titre.
Voila pour la reconnaissance.
La particularité d'Epitech est sa pédagogie par projet, dans un environnement libre semblable à celui d'une entreprise dont les étudiants seraient les principaux acteurs. Cela signifie qu'on donne des projets ainsi qu'une deadline, et qu'on se fout de l'orga des étudiants, ils doivent se debrouiller... L'école est ouverte 7j/j, 24h/24 et il y a très très peu de cours (en moyenne, 2h par semaine si on va a tous les cours de toutes les matières a peu près, anglais mis à part) et ceux la sont
optionnelsVoilà comment se passent les années:
----------------------------------------
Première année:
- "Le C en 29 minutes", premier et quasi unique cours de C d'une durée indiqué dans le titre, fait la semaine avant l'étape suivante. Pour info, le C est l'un des langages les plus utilisés depuis sa création et est pratiquement l'ancetre de tous les langages actuels: C++, PHP, Javascript, C#, Objective C et Java dérivent directement du C pour leur syntaxes et leurs concepts de base. Si ces langages font ensemble de l'ombre au C, le C reste un langage de reference dans le monde du libre pour sa extraordinaire simplicité, son extraordinaire puissance et son typage proche de la machine qui le favorise dans les applications touchant au matériel mais ne faisant pas appel à des specificités propres du microprocesseur (Meme si certains diront qu'on peut faire de l'assembleur en C, ce qui est tout à fait vrai)
Petite note... à Epitech, et à Epita aussi d'ailleurs, il faut respecter un format particulier de mise en forme du code qu'on appelle "La Norme". De plus, en première année, la libC est interdite à l'exception d'une petite poignée très précise de fonctions (A savoir, open, read, write, close, malloc et free, donc, oui, ca veut dire pas de printf). Tu peux trouver la norme ici: https://intra.epitech.eu/file/public/norme.pdf
Une faute de norme, c'est -1. Il n'y a pas de limite negative.
Ah, un programme qui ne marche pas, c'est 0
Un programme qui est trop lent (perf naze, boucle infinie ou deadlock), c'est 0
Un programme qui crache (erreur de segmentation, broken pipe, division par zero), c'est 0
Un programme qui fuit en mémoire, c'est entre -1 et -10 en fonction de la gravité
-------------
- Piscine C, la piscine étant une période de travail de 9h du matin jusqu'à minuit du lundi au vendredi, avec deux projets pour le week end, un a rendre pour le samedi soir (23h42) et à faire en équipe, et un à rendre le dimanche soir (23h42) à faire tout seul. Chaque journée est constellé d'une dizaine d'exercices à rendre pour le lendemain au soir (Ca veut dire que potentiellement, il y a deux journées d'exercices par jour si tu es en retard...) Cette période dure trois semaines.
Au cours de la piscine, on apprend à se servir du shell les deux premiers jours, puis le gros du C le reste du temps: variables, fonctions, tableaux, pointeurs, itératif, récursif, pointeurs sur fonctions, structures, allocation mémoire, macro, liste chainées, arbres binaires. Les trois projets à faire seuls en piscine C sont le sapin (afficher un sapin d'une taille n donné en paramètre), le match nmatch (ecrire un systeme d'expression reguliere simple gerant seulement *), le evalexpr (une calculatrice gerant + - * / % prenant en paramètre une chaine de caractère)
Par ces projets plutot simple, on apprend l'observation, le parsing et la résolution d'arbre (eventuellement)
Il y a aussi un examen tous les samedi matin de la piscine. Le dernier exam dure 8 heures, et je te spoile, est le theatre de la fameuse raclette astek, tradition que j'adore ou on se tape entre assistant une raclette environ vers midi, c'est à dire une bonne heure avant que les étudiants puissent sortir, la moitié du temps imparti étant écolé. C'est
très drole.
S'en suit le premier projet de l'année, le "casse kiki": la bistromathique. La bistromathique, c'est aussi une calculatrice, qui prend toujours une chaine de caractère, mais aussi la base utilisée par l'operation ainsi que les symboles des operateurs (on peut definir une base trois ayant pour symbole "abc" par exemple, et des operateurs du genre "01234" pour "+-*/%"). J'oubliais, la calculatrice doit être infinie, cela veut dire que les nombres à traiter doivent aisement dépasser ceux que l'on peut contenir dans un entier sur 64 bits. En gros, l'idée, c'est de recoder le logiciel "bc" que tu pourras trouver sur n'importe quel linux ou bsd.
Durant la piscine, les cours sont des cours vidéo que l'on peut facilement trouver sur l'intra en carton. Ces videos sont en anglais et réalisé par des assistants. Les assistants sont des anciens élèves (ou des eleves des années supérieures). D'ailleurs, en parlant d'assistant, la piscine est encadrée par les Asteks, étudiants de troisième années ou plus, voir ancien et notre politique est de ne jamais donner la moindre réponse, mais de répondre à une question par une autre de façon à pousser les élèves à la recherche ainsi qu'a l'invention. (Meme si ils vont evidemment inventer des trucs déjà inventé).. Pourquoi? La qualité d'un developpeur n'est pas d'appliquer les programmes des autres ni d'utiliser des bibliothèques mais bel et bien d'inventer. Donc il nous faut developper ce trait là qui est l'element le plus important à Epitech après la motivation (qui sert à amener cette inventivité)
Ca, c'est les cinq premières semaines. Sans mentir, en ces cinq semaines, on apprends plus en C qu'en deux ans d'IUT/BTS (entre trois et une infinité de fois plus pour les écoles comme l'IUT Montreuil ou "on fera pas de C parceque les pointeurs c'est compliqué") et les "tek3s", à savoir ceux qui sortent d'IUT/BTS peuvent en témoigner aisement. Sachant que très clairement, la programmation est la porte d'entrée principale du monde de l'informatique, c'est un sacré avantage face à presque toutes les formations qu'on peut imaginer (La prépa integré d'Epita ne mets pas de coté non plus la programmation)
-------------
- Par la suite, il y a BEAUCOUP de projets. Quand on parle de pedagogie par projet, c'est pas comme à l'IUT de Montreuil et les deux projets de la première années. Voici la liste de tous les projets des matières principales dont je peux me rappeller:
En "Système Unix":
my_ls => recoder la commande ls
printf => recorer la fonction printf
get_next_line => lire une ligne complete sur le terminal et la renvoyer
minishell1 => programmer un shell pouvant lancer des commandes et disposant d'un environnement
my_select => ecrire un menu de selection en terminal à l'aide des termcaps
minishell2 => programmer un shell pouvant lancer des commandes, disposant d'un environnement et des operateurs | > et <.
minitalk => creer deux programmes communiquant à l'aide des signaux systemes SIGUSER1 et SIGUSER2
Ainsi que le projet final de la matière:
42sh => programmer un shell pouvant lancer des commandes, disposant d'un environnement et des operateurs ; && || | > < << >> gerant la syntaxe inversée pour avoir ZERO, et ensuite pouvoir gagner des points à l'aide de bonus.
En "Programmation elementaire":
bsq => recuperer une carte et trouver le carré le plus grand inserable entre des "poteaux" situé sur la carte.
push_swap => ecrire un trieur de donné
lem-in => lire un graphe et etablir une methode rapide pour faire deplacer des fourmis d'un point a a un point b. Il ne s'agit pas de trouver le chemin le plus cours, mais le groupe de chemin permettant d'effectuer un transfert le plus rapide possible.
Il y a bien sur des examens de programmation elementaire. On trouve aussi deux rushs. Il existe plusieurs sujets, et ceux la sont pris au hasard chaque année... Voici ce que je connais, il faudra en faire deux du coup dans l'année... Ah oui, un rush, c'est un sujet qui tombe le vendredi soir à rendre le dimanche soir à 23h42.
marvin => ecrire un programme qui lit une declaration de variable en C et affiche une description en francais
my_putfrenchnbr => ecrire une fonction qui prend un entier en parametre et l'ecrit en francais sur le terminal
my_tar => ecrire la commande tar, il faut pouvoir former des paquets et recuperer le contenu d'un paquet
sudoku => ecrire un generateur de sudoku ainsi qu'un resolveur de sudoku devant respecter des regles de perfs minimales
grimly => ecrire un resolveur de labyrinthe
Ainsi que le projet final de la matière:
corewar => ecrire une machine virtuelle lisant un assembleur imposé, un logiciel d'assemblage pour transformer du code assembleur en "executable" ainsi qu'un champion dans cet assembleur qui se battra dans l'arene, la machine virtuelle que les étudiants doivent ecrire
En infographie:
fil de fer => ecrire une projection isometrique http://perso.epitech.eu/~ol/work/fdf/index.html
wolf3d => ecrire une projection type raycasting pour former des murs facon Wolfenstein 3D http://perso.epitech.eu/~ol/work/wolf3d/index.html
rtv1 => ecrire un moteur de rendu en 3d pouvant afficher au moins des spheres, des plans et des cylindres avec gestion de la lumiere
raytracer => ecrire un moteur de rendu en 3d pouvant afficher les trois objets precedents, de la lumiere, de la reflexion, de la transparence, de l'anti aliasing pour avoir 0 et etre ensuite payé au bonus http://perso.epitech.eu/~ol/work/raytracer/gallerie-2014/index.html
Il y a d'autre matière: expression ecrite, mathématique (faire des programmes qui font des maths, pas "juste" faire des maths), anglais (très important car eliminatoire), sécurité, theatre, etc...
La première année dure un an et demi et se termine sur un stage de six mois en entreprise.
----------------------------------------
La deuxième année commence en janvier avec la piscine C++: 3 semaines - deux jours. Les Koala, étudiants de la quatrième à la cinquième année, mais surtout anciens élèves font offices d'assistants. On commence par revoir les classiques du C en s'assurant que tous les élèves savent faire une fractale, manipuler des fichiers a format imposé (en l'occurence, bitmap), savent faire une pile, une file, une liste chainée et un arbre avant de les initier a une methode d'imitation du C++ en C, a savoir le C modulaire... avant d'attaquer le C++.
Ces deux semaines de C++ sont rythmés par du Manowar, principalement. Notre premier exam a pour theme SimCity, le second StarCraft et le dernière StarCraft II, du coup on a la gentilesse de passer la bande son tous le long de ces exams.
Voici les principaux projets des principales matières:
En "Système Unix":
malloc => recoder un allocateur mémoire (a savoir, les quatre fonctions malloc, calloc, realloc et free).
my_script => faire un systeme de log de terminal de facon completement transparente
nm-obj-dump => recoder les commandes nm et obj-dump
philosophes => ecrire un programme illustrant le diner des philosophe et fonctionnant
my_ftp => coder un serveur et un client de transfert de fichier
my_irc => coder un serveur et un client de discussion en ligne
zappy => coder un serveur et un client de jeu ainsi qu'une ia pour jouer
Il y a toujours des exams, et il y a aussi deux rushs:
pop3 => ecrire un client pop3
epikong => ecrire un jeu de plateforme
En "C++":
abstract_vm => coder un interprete arithmétique fonctionnant plus ou moins comme un micro processeur
plazza => ecrire une simulation de chaine de pizzeria multi processus et multithreadé
bomberman => coder un bomberman en 3d
En "OCaml":
my_list => ecrire un bibliotheque de liste chiane
bistro_reload => re ecrire la bistromathique de tek1 (premiere année) en Ocaml
amazing => ecrire un generateur de labyrinthe et un resolveur
En "Sécurité":
Rush Thot => cracker des sites webs mis à dispo
Rush Isis => cracker les sites des autres et patcher le sien
Bien sur, il y a toujours de l'expression ecrite, des maths, de l'anglais, etc...
----------------------------------------
La troisième année commence avec deux piscines qui se suivent. Elles font une semaine chacune. La première est nouvelle, je l'ai jamais faite, c'est la piscine d'adaptation. Cinq jour, chaque jour du code venant d'un projet a moitié fait dans une techno exotique, il faut finir le projet ou resoudre un bug...
L'autre piscine est la piscine codeworker... il faut apprendre a maitriser un compilateur de compilateur.
Le premier projet est le KOOC, il faut ecrire un programme qui transforme de l'Objective C like en C et le compiler a l'aide de codeworker.
En "C++":
babel => cloner skype abstrayant tous les aspects du systeme
rtype => un jeu rtype like en reseau abstrayant tous les aspects du systeme
Rush "Hell" => recoder boost::bind
En "Java":
chaipluquoi shop => un site de vente de trucs... je sais plus quoi
En "C#":
my_windows_media_player => ecrire un lecteur de video en utilisant manuellement des codecs et des lecteurs brutes
En "Projet libre":
Ton projet libre
Il y aussi des cours de réseau, principalement autour du matériel Cisco, et des cours d'administration système.
A la moitié de l'année, il faut aussi choisir son "EIP", c'est son projet de fin d'etude.
La troisieme année s'achève sur un stage d'environ cinq mois.
----------------------------------------
La quatrième année s'effectue a l'etranger, dans une université partenaire.
Perso, je suis parti a Chung Ang University, en COrée du sud, et c'était cool.
Bien sur, l'EIP continue.
----------------------------------------
En cinquieme année, on a le choix entre plein de modules: sécurité, kernel, IA, multimedia... et bien sur, finir l'EIP et trouver un stage de six mois pour la deuxieme moitiée de l'année.
----------------------------------------
Epitech est chère. Environ 30k au total. Cela dit, une fois sorti, la moyenne de remuneration pour ceux qui ont le diplome est de 37k. Cela varie entre 32k et 45k en fonction des technos et de la niaque. Cela peut monter plus haut ou être plus bas dans certains cas particuliers (Mon salaire a moi est bas, par exemple, mon patron me paie pas, mais comme c'est moi le patron je ferme ma gueule)
J'ai pris un credit à la banque. Je le rembourse sur cinq ans.
J'étais deja passionné d'informatiques avant, et pour tout te dire, je codais deja, je savais faire du Visual Basic 6, du HTML, CSS et PHP, j'avais des rudiments très rudimentaires en C et en SDL ainsi qu'en assembleur sur Atari ST (très utile). Cela dit, je reconnais qu'il m'aurait fallu quinze ans pour apprendre ce que j'ai appris lors des trois premières années d'Epitech, et ca aurait été plus crade.
Comme tu as du le voir, on a pas de matière web à Epitech, la raison est très simple: tout le monde sait en faire. Un constat simple fait par l'adm d'Epitech et qui a mené au retrait de la piscine php est qu'en gros, les technos webs sont si simple que des experts en C et C++ n'ont aucune difficulté à faire du web. D'ailleurs, je ne crois pas avoir jamais croisé quelqu'un qui ne sache pas en faire à Epitech passé la tek1. Pareil, niveau administration système, il y en a peu, la raison est que tout le monde en fait, parcequ'on en a besoin pour developper... après, il est rare de trouver quelqu'un qui apprecie ca à Epitech.
Avec mon package scolaire, j'ai bien sur codé les projets qu'on m'a imposé (pas neccessairement reussi une bonne partie d'entre eux...), mais aussi beaucoup bossé sur le coté.
J'ai écrit un point n click, plusieurs jeux de plateforme, un shoot em up, un jeu d'esquive, un casse brique, un air hokey, un jeu puzzle, j'ai du coder au total une cinquantaine de site web dont un clone de youtube, un e-learning, un blog, un forum ainsi qu'une collection de site vitrines, j'ai codé un petit moteur 3d vectoriel et j'ai egalement inventé un langage de programmation et ecrit un interprete, je suis en train de travailler sur une seconde version.
Aujourd'hui, je retourne volontier a l'ecole, d'ailleurs, j'y travaille assez souvent comme astek et comme koala. Avec tous les t shirt qu'ils m'ont passé, on peut meme dire que je m'habille Epitech (5 tshirt astek, 4 tshits koala, 1 tshift "STAFF", 1tshirt "50% homme, 50% machine, 100% Epitech", 1tshirt bleu de JPO (que je mets pas :p))
Voila. Tu as dit que tu aimais ecrire des pavés, j'espère aussi que tu aimes les lire xD Sinon, TL;DR, tant pis xD
Ah, et aussi... j'oublais de te dire que j'ai perdu, que la réponse est 42, que manger, c'est tricher et dormir c'est mourrir, maintenant oui et bien entendu que bon, ben, c'est zéro alors.
http://miroir.desencyclopedie.org/wiki/Epitech
Si un jour on se croise sur délation, je suis désolé d'avance pour ta maman. x)
Epitech, c'est une école qui apprend à
bien programmer, à être
autonome, autant dans l'organisation personnelle que dans la recherche d'informations et qui apprend à travailler en équipe (en bien ou en mal)
Pour info, l'école 42 qui fait beaucoup parler d'elle en ce moment n'est pas une invention de Xavier Niel, qui avant tout finance, mais de Nicolas Sadirac, createur d'Epitech, et l'ensemble de la direction pédagogique de 42, il y a tout juste un an et demi était celle d'Epitech.
On compte plusieurs bocaliens (responsable du reseau à IONIS, donc Epitech inclu, dont la tete est KRP), plusieurs koalas (dont mon ancien chef et son bras droit), et beaucoup de personnes de l'administration generale.
-----
Pour info, Sadirac était diplomé de Stanford et de l'UCLA avant d'être diplomé d'Epita, c'est la raison pour laquelle Bardeche dit "Vous etiez plutot mauvais élève, mais vous savez pourquoi on vous a gardé". Si on recoupe ca avec l'histoire de la creation d'Epitech qu'il raconte, on peut comprendre qu'en gros il allait pas en cours, mais qu'avec son niveau, sa formation passée, ils voulaient pas le perdre.