Les valeurs de l’école

Pourquoi le métier de concepteur / développeur de logiciel ?

Nous sommes convaincus qu’avec l’accélération de l’automatisation des processus d’entreprise et l’émergence de l’intelligence artificielle, le monde futur sera divisé en deux catégories de personnes :

Celles qui subiront l’arrivée de ces nouveaux « robots * » en la payant au prix de leur emploi;
Et les personnes qui seront capables de programmer ces « robots » et pour qui leur émergence représentera une réelle opportunité…

Ce phénomène est de plus en plus visible ces dernières années avec l’augmentation constante de la demande en développeurs sur le marché du travail.

* Nous appelons ici robots, tout système capable d’effectuer une tâche de manière automatisée. Les logiciels font partie de ces systèmes.

Remettre le contact humain au centre de l’apprentissage

Nous avons choisi de ne pas proposer une énième formation en ligne…
Nous sommes conscients que le développement récent de la vidéoconférence dans le monde du travail a des avantages organisationnels et écologiques majeurs.
Cependant, nous pensons que ce format n’est pas le plus adapté pour la transmission de connaissances.
En effet, si vous avez déjà participé à une formation en « téléprésentiel » ou simplement une réunion en visioconférence avec plus de 5 personnes, alors vous serez familier avec ce genre de situation : vingt personnes sont connectées à la réunion, tout le monde a son micro coupé 95% du temps à part l’intervenant principal… Quelqu’un pose une question ? Personne ne répond ou tout le monde répond en même temps… L’intervenant lance un sujet de TP et part regarder une série sur Netflix pendant que les étudiants se démènent à trouver la solution…

Bien sûr il s’agit ici d’une caricature mais vous aurez compris le message principal : un écran d’ordinateur ne remplacera jamais la présence d’un enseignant en chair et en os.

Pour être efficace, un professeur a besoin d’adapter son discours aux réactions émotionnelles de son audience. Modifier le rythme de sa formation et éventuellement changer d’angle lorsqu’il sent qu’une de ses explications n’a pas été comprise. Pour assimiler certaines compétences ou savoirs, les étudiants auront quant à eux besoin d’un environnement adapté qu’ils ne pourront pas forcément trouver à leur domicile.

Développer les « Savoirs être »

On aime souvent nous montrer l’image du développeur mal rasé qui code tout seul dans son salon en mangeant des chips. Ou celle du freelance « Digital Nomad » qui développe au bord d’une piscine en sirotant un Mojito. Il est vrai que ces types de profils existent et sévissent sur les réseaux sociaux mais dans la « triste » réalité du monde professionnel, les projets informatiques sont de plus en plus complexes et les interactions entre les différents intervenants de plus en plus nombreuses… Au delà d’écrire des lignes de code, le développeur doit aussi être capable de communiquer avec son client pour comprendre son besoin. De structurer ses idées et les présenter à son chef de projet ou chef de produit. Nous pensons donc que ses compétences humaines sont tout aussi importantes que ses compétences techniques. Il doit :

  • Savoir travailler et créer des liens avec son équipe ;
  • Développer la rigueur et la capacité de concentration nécessaire au métier de développeur ;
  • Ne pas avoir peur de demander de l’aide quand il est en difficulté ;
  • Apprendre à travailler dans un cadre structuré : respecter les horaires, les délais et les exigences qualité.

Les fondamentaux avant tout

Aujourd’hui, lorsqu’une personne souhaite se former, elle peut trouver toutes les ressources possibles et imaginables sur Internet : tutoriels, vidéos, ebook, webinaires, coding games… Il est désormais parfaitement possible d’apprendre un nouveau langage de programmation tout seul, en quelques semaines et souvent gratuitement.

Oui mais ! Pour cela encore faut-il disposer des bases nécessaires pour comprendre les concepts fondamentaux utilisés dans ces formations.

C’est comme si votre moniteur d’auto-école vous expliquait comment faire un créneau mais que personne ne vous a dit ce qu’était un volant… Il est alors fort possible que vous bataillez pendant plusieurs heures avant de réussir à vous garer convenablement. Certes, vous allez sûrement finir par y arriver mais ce sera plus long et plus laborieux.

Beaucoup d’écoles « modernes » se concentrent sur l’apprentissage de tel ou tel langage ou de tel ou tel Framework sans même aborder au préalable les fondamentaux : l’algorithmique, les concepts de programmation orientée objet, etc… Il est d’ailleurs commun de voir les développeurs eux-même se livrer une guerre sans merci sur les réseaux sociaux pour savoir quel est le langage le plus performant ou quels sont ceux qui sont devenus démodés voire obsolètes.

Pour nous toutes ces questions sont pertinentes mais très secondaires. Certes, il est plutôt utile de savoir sur quel langage ou Framework se positionner pour améliorer ses chances de trouver un emploi. Cependant, les technologies évoluent tellement vite depuis ces dernières années qu’un développeur doit avant tout être conscient qu’il devra changer de langages de nombreuses fois durant sa carrière. Pour tirer son épingle du jeu dans un milieu de plus en plus concurrentiel, il devra selon nous :

  • Maîtriser les fondamentaux
  • Développer sa capacité à apprendre
  • Ne jamais cesser de se former (veille)

L’insertion professionnelle comme cheval de bataille

Le monde de l’insertion professionnelle est souvent paradoxal… Les compétences et la motivation d’un étudiant sont rarement suffisantes pour lui ouvrir les portes de son premier emploi… Les employeurs exigent presque systématiquement des candidats qu’ils justifient d’une première expérience professionnelle concluante…
Pour le jeune diplômé, c’est un peu l’histoire du serpent qui se mord le queue ; Comment justifier d’une première expérience professionnelle si personne ne lui a jamais donné sa chance en premier lieu ?
Bien que les mentalités évoluent doucement sur ce sujet, nous pensons qu’à court terme, la solution la plus efficace à cette problématique est l’apprentissage.
C’est pour cela que nous avons organisé notre cursus précisément de manière à favoriser le plus rapidement possible l’immersion de nos étudiants en entreprise.
Notre objectif est donc de développer un maximum les partenariats avec les entreprises et les industries locales du numériques.
Enfin, pour nous donner les moyens d’accompagner le plus efficacement possible nos étudiants dans la recherche de stage, contrat d’alternance ou premier emploi, nous avons choisi de limiter à 20 le nombre d’étudiants par promotion.

Modalités pédagogiques

Les cours

Les cours sont dispensés de préférence le matin, les étudiants ont la possibilité de les suivre en « présentiel » depuis une salle de classe informatisée à l’école ou depuis leur domicile.
En effet, tous nos cours sont filmés et diffusés en direct via un logiciel de vidéo conférence (Zoom). Ils sont ensuite mis à disposition sur une plateforme de formation en ligne et accessibles par nos étudiants en rediffusion 24h/24.
De cette manière, chaque étudiant à la possibilité d’avancer à son rythme et de visualiser plusieurs fois le même cours s’il éprouve des difficultés de compréhension.

Les travaux pratiques

Les séances de travaux pratiques sont généralement organisées l’après-midi pour permettre aux étudiants de se familiariser avec les concepts appréhendés le matin durant les cours.
Ils sont réalisés de manière individuelle ou en petit groupe de travail et souvent sous forme de « Live Codding Session ».
Ce terme propre au monde de la programmation désigne une séance interactive ou l’enseignant partage le contenu de son écran aux étudiants via un logiciel de streaming. De cette manière, les étudiants peuvent voir en direct les manipulations de l’enseignant et essayer de les reproduire sur leur ordinateur.
Ces séances peuvent être réalisées à distance ou en présentiel. Nous préconisons cependant à nos étudiants de venir si possible à l’école pour faciliter les interactions avec l’enseignant.

Les ateliers

Régulièrement, des intervenants extérieurs viennent à l’école pour donner des cours ponctuels sur des thématiques spécifiques (blockchain, UX design avancé, framework particulier).
Ces nouveaux cours vidéo viennent enrichir la plateforme de formation en ligne au fur et à mesure de leur production.

Les projets individuels encadrés

Notre privilégions une approche « projet » concrète et stimulante qui favorise le développement de la créativité de nos étudiants. Nous sommes convaincus que l’autonomie dans l’apprentissage permet d’acquérir une adaptabilité utile tout au long de la vie professionnelle.
Nous avons donc choisi de valider chaque module de notre programme par la réalisation et la soutenance d’un projet individuel encadré. Ainsi, nos stagiaires pourront développer leur capacité à appréhender globalement les situations complexes et en dégager des solutions pertinentes.

Le projet collectif de fin d’étude

Les étudiants, par groupe de 3 ou 4, devront identifier une problématique concernant le sujet de leur choix. A partir de celle-ci, ils devront concevoir une solution logicielle et rédiger un dossier de conception détaillé :

  • Cahier des charges
  • Spécifications fonctionnelles
  • Spécifications techniques
  • Planning d’exécution

Ils devront ensuite implémenter cette solution logicielle en mettant à profit l’ensemble des compétences qu’ils auront acquises lors de leur cursus de formation.
Chaque groupe sera encadré par un professeur attitré qui les accompagnera dans la conception et la réalisation de leur projet.
Certains projets pourront être proposés par des start-up ou entreprises partenaires (MVP).
Ce projet de fin d’étude sera présenté à un jury d’experts, composés d’enseignants, d’intervenants extérieurs et éventuellement de collaborateurs des entreprises partenaires.

Les permanences / Sessions de tutorat

Une permanence est organisée du Lundi au vendredi de 18h à 20h en salle de projet. Durant celle-ci, au moins un de nos professeurs sera présent pour accompagner les étudiants qui ont des difficultés à assimiler certains concepts présentés dans la journée. L’enseignant peut également aider les étudiants à avancer sur leurs projets individuels ou collectifs.

Modalités d’évaluation

Évaluation continue

  • Évaluation sous forme de QCM à la fin de chaque module et présentation des différents projets individuels encadrés.
  • Soutenance du projet collectif tutoré de fin d’année et présentation d’un rapport de projet.

Des feuilles d’émargement numérisées sont renseignées par les enseignants au début de chaque cours et travaux pratiques. Ceux-ci doivent noter les élèves présents « physiquement » et ceux connectés à distance. Des cours et travaux pratiques de rattrapage sont éventuellement organisés au cas par cas si certains élèves n’ont pas pu y participer pour des raisons de force majeure.

Évaluation pour la certification RNCP

Mise en œuvre des compétences lors de la réalisation du projet. Le projet couvre obligatoirement les compétences suivantes :

Pour l’activité type 1 « Développer la partie front-end d’une application web ou web mobile en intégrant les recommandations de sécurité »

-Maquetter une application
-Réaliser une interface utilisateur web statique et adaptable
-Développer une interface utilisateur web dynamique

Ou :
-Maquetter une application
-Réaliser une interface utilisateur avec une solution de gestion de contenu ou e-commerce

Pour l’activité type 2 « Développer la partie back-end d’une application web ou web mobile en intégrant les recommandations de sécurité »

-Développer les composants d’accès aux données
-Développer la partie back-end d’une application web ou web mobile

Ou :

-Développer les composants d’accès aux données
-Elaborer et mettre en œuvre des composants dans une application de gestion de contenu ou e-commerce

Dans le cas où un seul projet ne permet pas au candidat de faire valoir l’ensemble des compétences devant être couvertes obligatoirement, il peut présenter plusieurs projets. Dans ce cas, il motive ses choix, veille à limiter le nombre de projets présentés et fournit des éléments de contexte correspondant à chacun des projets.

Le projet donne lieu à deux productions :

-Un dossier de projet à remettre à l’organisateur en amont de la session d’examen
-Une présentation orale du projet, basée sur un support de présentation, à effectuer devant le jury

Contenu du dossier de projet :

1. Liste des compétences du référentiel qui sont couvertes par le projet
2. Résumé du projet en français d’une longueur d’environ 20 lignes soit 200 à 250 mots
3. Cahier des charges, expression des besoins, ou spécifications fonctionnelles du projet
4. Spécifications techniques du projet, élaborées par le candidat, y compris pour la sécurité et le web mobile
5. Réalisations du candidat comportant les extraits de code les plus significatifs et en les argumentant, y compris pour la sécurité et le web mobile
6. Présentation du jeu d’essai élaboré par le candidat de la fonctionnalité la plus représentative (données en entrée, données attendues, données obtenues)
7. Description de la veille, effectuée par le candidat durant le projet, sur les vulnérabilités de sécurité
8. Description d’une situation de travail ayant nécessité une recherche, effectuée par le candidat durant le projet, à partir de site anglophone
9. Extrait du site anglophone, utilisé dans le cadre de la recherche décrite précédemment, accompagné de la traduction en français effectuée par le candidat sans traducteur automatique.

La description de la veille sur les vulnérabilités de sécurité est liée à l’une des deux compétences « Développer une interface utilisateur web dynamique » ou « Réaliser une interface utilisateur avec une solution de gestion de contenu ou e-commerce » dans le cadre du projet en entreprise. La description de la situation de travail, ayant nécessité une recherche basée sur un ou des sites anglophones, concerne un problème technique ou une nouvelle fonctionnalité à mettre en œuvre, dans le cadre du projet en entreprise. Elle est liée à l’une des compétences du titre professionnel. Dans le cas de la recherche de solution, basée sur un ou des sites anglophones, à un problème technique ou une nouvelle fonctionnalité à mettre en œuvre, le candidat décrit le besoin d’information, et indique comment il a effectué la recherche : les mots clés de recherche utilisés et la liste des sites retournés. Il précise les critères de sélection du (ou des) site(s). Il indique la solution trouvée et si elle a pu être mise en œuvre. Dans le cas de la veille sur les vulnérabilités, le candidat indique comment il a effectué la veille : les sites et les mots clés utilisés. Il indique les vulnérabilités trouvées et éventuellement les failles potentielles corrigées.

La longueur du dossier de projet hors annexes est de 30 à 35 pages.

Contenu de la présentation orale :

Le candidat présente son projet à l’aide d’un support de présentation réalisé en amont de la session d’examen, et selon ce plan :

– Présentation de l’entreprise et/ou du service et contexte du projet (cahier des charges, environnement humain et technique)
– Conception et codage des composants front-end et des composants back-end
– Présentation des éléments les plus significatifs de l’interface de l’application
– Présentation du jeu d’essai de la fonctionnalité la plus représentative (données en entrée, données attendues, données obtenues) et analyse des écarts éventuels
– Présentation d’un exemple de recherche effectuée à partir de site anglophone
– Synthèse et conclusion (satisfactions et difficultés rencontrées)