Formation développeur Web 

Module 2 "développeur back-end"

formation web inscription

La formation "Développeur back-end" est le module 2 intégré dans la formation développeur Web complète certifiante (bac+2).

Elle peut néanmoins être passée indépendamment du module 1 "développeur front end." Voir la section sur "développeur Web (Bac+2) Modalités d'accès"

Compétences traitées : Conceptualisation d'application Web, modélisation des données SQL (Bases de données), développer une application Web complète et des fonctionnalités en langage serveur, développer en utilisant le modèle objet/objet étendu- Javascript, Ajax, gestion des données RGPD de l'application, architecture MVC, mise en prod, tests et recettage de l'application.

Durée: Module de formation développeur back-end de 395 heures.formation cpf developpeur web

Prérequis: Ouvert aux débutants motivés, curieux et avec les bases en HTML/CSS et en Anglais.

Accessibilité: En présentiel ou à distance.

Module de formation accessible via la VAE.

Lieu : 1 bd des états-unis - Saint-Etienne à l'arrêt de tram de la Cité du Design (45 min en train de Lyon)

Code NSF: 326t - Code ROME: M1805.

CPF mobilisable: Oui via une recherche de "Webecom" dans l'application mon compte formation

La formation développeur back-end débute par les toutes bases et est accessible aux débutants très motivés et curieux, car nous allons vous amener assez loin dans les compétences. Il faut impérativement connaître les bases du HTML et CSS pour suivre ce module.

Elle est dédiée à l'apprentissage de la programmation / développement d'applications Web et de fonctionnalités spécifiques. Elle est précisément conçue pour les personnes souhaitant devenir développeur Web sans passer par les compétences liées à la création de site Web du module 1 de la formation développeur web front. Il est néanmoins important d'avoir les bases en HTML/CSS pour construire les bases structurelles des applications à développer. 

 


Au terme de la formation, vous serez capable de développer des applications Web ou métier complexe en utilisant le langage PHP, la méthode Ajax et le Javascript, tout en utilisant le langage orienté objet avec ses héritages.

Ce qui vous permettra après la formation d'aborder d'autres langages objet que le PHP mais surtout de pouvoir travailler et évoluer dans de bonnes conditions avec des technologies comme le Framework Laravel ou les bibliothèques javascript (React, View.JS etc..)

Il serait complètement contre-productif de voir ces technologies avant de maîtriser un langage objet et les héritages et l'architecture. C'est typiquement ce qui différencie un bidouilleur de code et un développeur Web professionnel qui pourra évoluer sur différents langages et technologies.

Vous souhaitez suivre le module développeur Back-end? Pré-inscription pour connaître les démarches de candidature, de financement et dates des formations:

formation web inscription 


Formation développeur Web back-end, aperçu du champ d'action d'un développeur back-end :

Nous parlons de conceptualisation, de modélisation de données et de développement Web, mais que signifient donc concrètement les applications pratiques de ces termes un peu flou pour un néophyte?

Aujourd'hui nous entendons beaucoup dans les médias des termes comme "Numérisation des entreprises". ou "Processus d'automatisation des entreprises"  et nous utilisons régulièrement des applications Web comme Paypal, Facebook etc...Le développeur Web intervient directement dans le développement de ces projets.

Il est amené à concevoir, des applications et des fonctionnalités spécifiques, "Application métier" permettant aux entreprises d'automatiser, de simplifier et d'améliorer leur outils de production et améliorer ainsi leur compétitivité, chiffre d'affaire et dans l'ensemble, optimiser toute l'activité et la productivité de l'entreprise.

Cas simplifié et explicatif de développement d'une application Web:

Imaginons qu'une entreprise que nous allons nommer "Gruber-Eat" vous contacte pour vous demander de créer une application Web révolutionnaire et très simple qui devra "juste" permettre à des utilisateurs de commander des plats en ligne dans les restaurants locaux et de les livrer en quelques minutes. (c'est parfois ainsi que les entreprises vous expliquent initialement leur projet)

Bien évidemment, rien n'est simple, c'est la vision du donneur d'ordre, qui parfois, ne verra pas toute la complexité du projet, il va donc falloir comprendre toutes les fonctionnalités de l'application, des comportements de ces dernières et poser des questions au donneur d'ordre. Il faut essayer de s'immerger dans le métier/objectif de l'application pour encadrer tous les processus qui seront ammenés à interragir les uns avec les autres.

Comment fonctionne t'elle? Nous allons simplifier au maximum l'analyse des fonctionnalités pour plutôt comprendre la démarche dans son ensemble.

L'application devra comporter par exemple les fonctionnalités suivantes:

Une partie réservée à l'utilisateur qui permet::

  • De créer un compte récupérant vos données personnelles incluant, entre autre, votre nom, numéro de téléphone, adresse, numéro de carte bleue...
  • De pouvoir voir, ajouter, supprimer ou modifier des articles au panier.
  • Valider votre commande, lancer le processus de paiement, créer automatiquement une facture avec un bon de commande et affecter un état à la livraison (en préparation, en livraison ou livré).
  • Affecter la commande validée au livreur le plus proche qui reçoit toutes les données relatives au restaurant pour récupérer la commande et également vos coordonnées pour vous livrer.
  • Récupérer les données géographiques du livreur via son téléphone et son numéro et les afficher sur la carte pour que vous puissiez voir sa position et le contacter en cas de soucis.

Une autre partie sera plutôt réservée à la gestion de l'application qui devra permettre:

  • Ajouter, supprimer, modifier un restaurant qui sera affiché aux utilisateurs en fonction de leur situation géographique.
  • Que les restaurant puissent être évalués, puissent proposer des promotions.
  • Ajouter, supprimer, modifier des produits proposés par chaque restaurant qui comporterons eux mêmes plusieurs caractéristiques personnalisables (ex:coca sans glaçon, avec glaçon ect...)
  • Une fonctionnalité permettant de permuter automatiquement les restaurants en mode ouvert ou fermé en fonction de l'heure locale.
  • Un système de "tickets" qui permet de lister toutes les demandes d'assistance des utilisateurs qui rencontrent des problèmes de livraison en cours et d'ainsi pouvoir y répondre rapidement. 
  • Avoir la main sur les commandes en cours ou déjà effectuées pour traiter les tickets, les annulations ou différentes opérations.

Nous allons nous arrêter là, mais il y a encore énormément de fonctionnalités. Le client était parti pour nous demander une simple application pour commander et livrer des plats.

Comme vous pouvez l'imaginer, cela va demander beaucoup de travail en définitif. C'est avec le client que nous allons poser toutes les questions sur le mode de fonctionnement que devra comporter l'application et lister avec lui toutes les fonctionnalités et différents comportements de cette dernière. Exemple:

Vous au client: Une fois la commande effectuée et payée par l'utilisateur et transmise au livreur, comment souhaitez vous informer le restaurant de préparer la commande?

Le client: Hum.., je n'avais pas forcément pris de décision fixée sur cet aspect...

Vous: Nous pourrions envisager (si le budget le permet) de mettre en place une fonctionnalité qui transmet automatiquement l'odre d'imprimer dans le restaurant concerné via une ou plusieurs imprimantes des tickets récapitulatifs de la commande avec les plats commandés , les options de la commande et l'heure de cette dernière. Un ticket serait alors donné au livreur et l'autre servira à préparer la commande et sera stockée ensuite pour la comptabilité? 

Le client: Parfait, c'est une bonne idée, il faudrait également envoyer un SMS à l'utilisateur pour le prévenir que sa commande est en cours de livraison , c'est possible? 

Vous: Oui je peux regarder ça et je reviens vers vous avec une proposition.

Il faut donc comprendre et spécifier en détail toutes les fonctionnalités de l'application et les écrire dans un document appelé: Un cahier des fonctionnalités.

Ce cahier des fonctionnalités permettra ensuite de réaliser,schématiquement à la main ou avec un logiciel de schématisation, la manière dont vous allez construire les fonctionnalités; Vous allez également schématiser l'architecture des bases de données que vous allez devoir ensuite construire. Vous pourrez ensuite utiliser un langage de programmation comme le PHP par exemple pour le développement.

Les bases de données serviront à aller récupérer, modifier, écrire ou transmettre des informations dans une sorte de registre (base de données) qui servira à faire fonctionner une tâche particulière que vous allez développer. Un exemple simplifié pour avoir une idée:

Si nous souhaitons qu'un utilisateur puisse créer puis se connecter à son compte "Gruber-Eat" à l'aide d'un identifiant et d'un mot de passe:

Nous allons donc créer un formulaire en HTML de création de compte avec les champs que nous souhaitons utiliser (identifiants mot de passe, nom, prénom, mail, adresse)

Lorsque'un utilisateur va sur ce formulaire d'inscription pour créer son compte, nous allons récupérer ce qu'il a écrit dans chaque champ du formulaire et automatiquement créer dans la base de données un champ parent "nouvel utilisateur" avec à l'intérieur les champs: "identifiants" "mot de passe", "nom", "prénom", "mail", "adresse" avec comme valeur les informations saisies par l'utilisateur.

Lorsqu l'utilisateur aura créé son compte, il va vouloir se connecter dans le formulaire de connexion. il va donc rentrer son identifiant et son mot de passe, notre programme devra alors vérifier dans la base de données s'il existe un champ utilisateur avec l'identifiant et le mot de passe correspondant. Si c'est le cas, alors le programme valide la session de connexion et affiche le compte utilisateur et toutes les informations qui y sont liées qui seront importées depuis la base de données de cet utilisateur.

Autrement, si les informations ne correspondent pas, nous afficherons un message précisant que les identifiants ne sont pas valides.

C'est un exemple très simplifié des fonctionnalités les plus basiques et, au fil de la formation, vous serez amenés à aborder des problématiques plus complexes, à développer en utilisant le langage objet et ses héritages et donc, proposer des schémas de conceptualisation et des modélisations de données adaptés.

Bien évidemment, il va falloir penser que désormais, avec la législation liée au RGPD, il va aussi falloir identifier toutes les données récoltées par l'application sur les informations des utilisateurs.

Il faudra donc développer des fonctionnalités permettant à ces dernier de pouvoir, d'une part, connaître toutes les informations récupérées par l'application, mais également lui permettre de les modifier ou les supprimer (ex: informations stockées en base de données, cookies/IP de connexion...)

Il est primordial également de développer l'application en mettant en place les principes de sécurité nécessaires pour empêcher qu'un tiers ne puisse s'introduire dans les bases de données via une faille pour récupérer des informations sensible, mais également en faisant en sorte de protéger l'intégrité des url et en cryptant les informations sensibles enregistrées dans les bases de données.

Pour conclure, le développeur back-end devra maîtriser toute la partie Schématique et conceptuelle d'une application, et également, pouvoir ensuite utiliser un ou plusieurs langage de développement pour la concevoir. Le développemment Web, c'est résoudre des problématiques grâce au code. On passe parfois beaucoup de temps sur notre code qui ne fonctionne pas. Après de longues séances de tests et de débuggage et que tout fini par fonctionner, c'est du pur bonheur! 

C'est l'objectif de la formation développeur Web back-end. Vous allez apprendre à conceptualiser et à développer des applications et des fonctionnalités spécifiques. Apprendre à tester et debugger votre code. Vous allez bloquer sur des problématiques, vous arracher les cheveux, retester, redébugger et finalement y arriver. Les formateurs sont là pour vous accompagner et vous donner les bonnes méthodes de travail mais en aucun cas pour vous donner des solutions. Ils vous donneront des clefs pour vous débloquer par vous même. C'est ainsi qu'on progresse en développement. Les débuts sont frustrants mais au fur et à mesure des progressions on se rend compte qu'il n'y a pas de limites à ce que l'on peut construire avec du code !

Développeur Web, c'est un métier passionnant qui nous permet d'imaginer et de construire des systèmes fonctionnels pour les entreprises mais aussi des applications pour nous même et nous faciliter les tâches du quotidien.


 

Formation développeur Web (Bac+2) Modalités d'accès:

Pour valider le titre de la formation développeur Web (Bac+2) Il est nécessaire de passer le module 1 (développeur back-end) et le module 2 (développeur front-end) ainsi que la période de stage en entreprise.

Néanmoins vous pouvez choisir de passer un seul module puis passer le deuxième ultérieurement pour valider le titre.

Options disponibles:

1: Vous souhaitez passer la formation complète:

Vous devez alors obtenir une note supérieure ou égale à la moyenne dans les 2 modules pour valider la certification (contrôle continu + stage + examen) et la pondération des notes sera la suivante:

  • Contrôle continu: 30%
  • Stage évalué en entreprise: 20%
  • Examen évalué par les jurys: 50%

2: Vous souhaitez valider le module développeur Back-end uniquement:

Vous devrez suivre les cours relatifs à ce module pour le valider. Il sera évalué sur le contrôle continu à hauteur de 40% et sur l'évaluation des jurys à hauteur de 60%. Vous pourrez passer le deuxième module ultérieurement dans les mêmes conditions si vous souhaitez obtenir la certification. Auquel cas, vous devrez également effectuer une période de stage en entreprise.

3: Vous pouvez justifier votre expérience sur le module 1 développeur front-end: (Expérience justifiable sur dossier dans le cadre d'un parcours mixte suite à VAE partielle):

Dans le cas ou votre dossier de justification d'expérience est validé par les jurys, vous pouvez obtenir la certification en validant ce module de développeur back-end. Vous serez évalué au contrôle continu et devrez effectuer le stage ainsi que l'examen évalué par les jurys. Vous ne serez évalué que sur les compétences du module de développement back-end et la pondération des notes sera la suivante:

  • Contrôle continu: 30%
  • Stage évalué en entreprise: 20%
  • Examen évalué par les jurys: 50%

4: Vous souhaitez effectuer une VAE

Vous devrez justifier votre expérience des deux modules et votre expérience sur dossier de recevabilité et présentation des éléments devant les jurys.