Guide de formation dev | les technos de code qui montent en 2018

Cet article est destiné à tous ceux qui s’auto forment au développement informatique. La route est longue et il est important de sortir les jumelles, de poser des jalons intermédiaires, pour pouvoir se satisfaire des petites victoires et être fier de votre progression. Vous vous dites peut-être que vous n’avancez pas et que vos efforts sont vains : c’est faux et cet article a pour objectif de vous faire réaliser les progrès que vous avez parcouru, ainsi que l’accessibilité des prochaines étapes, à portée de votre main !

Du HTML/CSS basique, aux langages comme Python et JavaScript, aux frameworks comme Django ou Symfony, nous avons essayé ici de présenter les principales technologies et outils web qu’il faut connaître ou a minima comprendre, pour être un bon développeur full stack (ou back / front) en startup en 2018. Il est impossible (et inutile) de tout apprendre, mais cet aperçu vous donnera matière à choisir vers quelle techno vous orienter en fonction de vos acquis et de vos aspirations.



Si vous êtes un développeur full stack, vos objectifs sont les suivants :

1. Savoir créer des web apps (simples et complexes) avec du front-end et du back-end ;
2. Créer des API REST sécurisées ;
3. Savoir déployer et maintenir vos applications ;
4. Gérer les bases de données sous-jacentes.

On continue ?

alt

Pour y parvenir, commençons par...


2018 et les outils de dev:

Les IDE (environnements de développement) :
Citons les 3 éditeurs de texte les plus en vogue :

Il s’agit avant tout de préférence personnelle et que le mieux est de les essayer.
Si vous souhaitez un comparatif complet (coût, performance, customisation, utilisation, …), rendez-vous ici.

Les navigateurs :
Chrome et Firefox sont les 2 navigateurs de choix.
Chrome reste le navigateur de préférence car :

  • il intègre dans sa dernière version JavaScript en v8.
  • il représente aujourd’hui environ 60% des parts de marché, contre 7% pour Firefox.



Les outils de déploiement et de code :
Si vous débutez, vous aurez tout juste besoin d’un client FTP.

  • Sur Windows, Putty fera l’affaire ;
  • Sur Linux et Mac, vous utiliserez essentiellement la commande ssh déjà intégrée à l’OS…
  • GIT : indispensable pour toute équipe de développeurs, donne le versioning, permet les back-ups, etc.
  • Bash / ligne de commandes : en particulier si vous utilisez un framework comme Angular ou React, vous aurez besoin d’utiliser des commandes basiques (déplacements dans les dossiers, manipulation de fichiers, etc) pour configurer vos apps. Citons en particulier NPM (Node Package Manager).

Quant au déploiement continu, citons Docker et Jenkins (bon tutoriel d’intro) comme outils en vogue en cette année 2018.

2018 et les technologies Front :

Les pages web statiques :
HTML et CSS restent la base du front-end web, et vous connaissez sûrement ces langages si vous lisez cette ligne. (Sinon, OpenClassrooms). Si vous souhaitez devenir développeur front, maîtriser ces 2 langages est aussi important que maîtriser l’addition et la soustraction si vous souhaitez devenir mathématicien.
En effet HTML et CSS sont les pierres angulaires du web, car les pages web affichées par vos navigateurs sont écrites en HTML et CSS, même si elles sont générées par du JavaScript.
Ces 2 langages sont simples à appréhender et relativement faciles à apprendre.
Notez qu'en 2018, la responsivité des pages web n’est plus une option et qu'il est donc important de maîtriser la sémantique HTML5 et notamment les media queries de CSS.


Frameworks HTML / CSS :
Voici un état des lieux des principaux frameworks HTML et CSS principalement utilisés en 2017 et qui devraient continuer à l’être cette année :

  • (Twitter) Bootstrap version 4, utilisé aussi bien pour des sites statiques que dynamiques et permet d’aligner facilement les éléments d’une page sur une «grille».
  • Materialize est un framework plus récent, plus orienté UX mais qui possède lui aussi un système de grille, et génère des interfaces plus « lisses ». Bootstrap est plus largement utilisé que Materialize, même si la dynamique actuelle est plutôt en faveur de Materialize, sorti plus récemment.
  • Bulma : facile à apprendre et sans JavaScript.
  • Enfin citons Skeleton, le plus léger et parfait pour le prototypage.



Les pages web dynamiques :
JavaScript

Il est important d’apprendre D’ABORD le langage avant de se lancer dans un framework. Nous vous invitons donc à commencer par du JavaScript « nu » (= Vanilla), pour apprendre à manipuler des DOM et des events, des boucles for et les différents opérateurs logiques, ainsi que les bases de AJAX et JSON.

  • jQuery est de moins en moins utilisé chez nos partenaires et il semble aujourd’hui inutile d’apprendre à s’en servir ;
  • Le format JSON (JavaScript Object Notation) est utilisé pour représenter de l'information accompagnée d'étiquettes permettant d'en interpréter les divers éléments. Apprendre à créer, manipuler et interpréter du JSON est primordial en 2018 car il est utilisé aujourd’hui par la plupart des API. Heureusement, JSON et AJAX sont faciles à apprendre → Tutoriel Youtube de 40 min sur JSON et AJAX.

(Nous reviendrons plus bas sur NodeJS.)

Les frameworks Front en JS :
Les pages web sont aujourd’hui la plupart du temps générées par du JavaScript, et généralement par un des trois principaux frameworks actuels : React, Angular, et Vue.

  • React est très populaire au sein des startups, il est léger, rapide, et utilise Redux et JSX .
  • Angular est plus populaire au sein des plus grandes entreprises, et inclut de nombreuses fonctionnalités.
  • Enfin Vue.js est rapide et léger, et facile à apprendre. (Citons Aurelia , moins populaire que les 3 précédents, ou Ember, dont la courbe d’apprentissage est moins rapide).

Quel framework Front choisir entre les 3 ? Voici la conclusion de Jens Neuhaus :
"If you love TypeScript: Angular (or React) If you love object-orientated-programming (OOP): Angular
If you need guidance, structure and a helping hand: Angular
If you like flexibility: React
If you love big ecosystems: React
If you like choosing among dozens of packages: React
If you like really clean code: Vue
If you want the easiest learning curve: Vue
If you want the most lightweight framework: Vue
If you want separation of concerns in one file: Vue
If you are working alone or have a small team: Vue (or React)
If your app tends to get really large: Angular (or React)
If you want to build an app with react-native: React
If you want to have a lot of developers in the pool: Angular or React
If you work with designers and need clean HTML files: Angular or Vue
If you like Vue but are afraid of the limited ecosystem: React
If you can’t decide, first learn React, then Vue, then Angular. »



Et en particulier pour les développeurs Front :

  • Pré-processeur CSS : Nous vous recommandons d’apprendre Sass, qui semble aujourd’hui avoir plus de traction que Less. Un pré-processeur CSS vous permet d’utiliser des variables, des fonctions et toutes sortes d’opérations logiques directement dans le CSS.
  • Webpack : qui vous aide à organiser vos applications JS sous forme de modules.
  • Babel : vous permet de charger des modules comme NPM directement côté client. Babel permet aussi de recompiler de nouvelles fonctionnalités de ES6 ou 7 en code ES5 et donc de l’exécuter sur les anciens navigateurs.


2018 et les technologies Back :

Langages côté serveur :

  • NodeJS (qui n’est pas un langage à proprement parler mais un framework back-end en Javascript). Populaire, rapide et scalable, c’est aujourd’hui quasiment une obligation de connaître NodeJS pour un développeur full stack (JS).
    (Quelle est la meilleure façon d'apprendre NodeJS en 2018?)
  • NPM (Node Package Manager) pour installer toute sorte de fonctionnalités facilement.
  • Python : à choisir, apprendre Python est un peu plus recommandé qu'apprendre PHP, dont la cote est plutôt descendante en startup malgré l’émergence poursuivie de Symfony.
  • PHP que l’on cite quand même, car reste malgré tout le langage le plus pratique et facile à déployer.
  • Enfin Ruby : dont la cote retombe légèrement aussi… Au profit de NodeJS. Les startups ont en effet récemment tendance à délaisser Ruby, en raison de difficultés à recruter encore plus fortes que sur d’autres langages.



Et leurs frameworks :

  • JavaScript : En plus de Node.JS, évoquons Express.JS car la stack MEAN est régulièrement utilisée par les startups.
  • Python : Django (très courant en startup, haut niveau, fait le travail à notre place), Flask (moins courant, plus bas niveau, laisse la main).
  • PHP : Laravel et Symfony sont deux bons frameworks PHP (Laravel se basant sur Symfony). Notez qu'aujourd’hui il y a malgré tout plus de startups sur Symfony que sur Laravel.
  • Ruby : Ruby on Rails (Sinatra, Nitro).



Côté base de données :

  • MongoDB : scalable, rapide, et s’intègre très bien avec NodeJS. Si vous apprenez Node, nous vous conseillons très fortement de vous former aussi à MongoDB (stack MEAN).
    (cf : Comment se former à la stack MEAN ?)
  • MySQL : Base de données relationnelle la plus courante, à avoir déjà au moins survolé.
  • PostgreSQL : a un peu plus de fonctionnalités que MySQL, mais est un peu plus difficile. (en détail : Pro’s and con’s of PostgreSQL vs MySQL)
  • Firebase : base de données cloud temps réel (ne tourne pas en local), maintenu par Google. Fantastique, surtout avec Angular, React ou Vue, mais à apprendre en addition d’une autre.



Bonus : Applications Mobile

  • React Native est de notre point de vue de plus en plus utilisé. React Native utilise le framework React pour créer des applications natives : contrairement à Ionic, ce n’est pas un framework hybride (des web app incluses dans un container natif, créé par Cordova ou PhoneGap). Il peut être intéressant d’apprendre Ionic si vous souhaitez créer facilement des petites apps mobiles mais React Native est sur une bien meilleure tendance cette année.
  • Citons aussi NativeScript, similaire à React Native mais basé sur Angular. Un peu moins courant chez nos startups partenaires.


Conclusion : les tendances pour 2018


  • Au global, nous assistons à l’émergence de plus en plus d’applications réellement full stack avec API REST, et de moins en moins de pages générées classiquement par un back et rendues par un front. En particulier, les startups construisent de plus en plus de « Single Page Applications » et les forts problèmes de SEO qui en découlaient sont de moins en moins contraignants (Google s’adaptant autant que les techniques à mettre en oeuvre).

  • Certaines technos qui se sont bien établies : en particulier Materialize, React Native, Python (plutôt que Ruby ou PHP), et VueJS qui montent. Notons l'importance de continuer à faire du Vanilla JS et ne pas se servir de framework quand ce n’est pas la peine : de plus en plus de développeurs « plaquent » des templates tout faits sur certains besoins, alors que des solutions plus simples auraient pu être construites en pur JS. Sortez du lot !


alt



Ne soyez pas effrayés par l’ampleur des choses inconnues qui peuvent se dresser devant vous : heureusement, les postes de développeurs juniors existent 😃

Citons Henri Bergson pour conclure :
"L'unique moyen de savoir jusqu'où l'on peut aller, c'est de se mettre en route et de marcher."

Author image
Programme de recrutement et d'accélération de hauts potentiels entrepreneuriaux dans les startups les plus prometteuses. Découvrez, innovez, bâtissez aux côtés des meilleurs entrepreneurs.
Paris Website
top