Quand on s’intéresse de près au développement web, il n’est pas facile de s’y retrouver dans toutes les technologies : leurs rôles, leurs atouts, leurs champs d’application…
En introduction, voyons les grandes familles dans lesquelles nous les regroupons.
Langages de balisage
HTML (HyperText Markup Language)
Le langage de balisage le plus couramment utilisé sur le World Wide Web est le HTML. En HTML, on utilise des balises prédéfinies afin de préciser à l’intérieur d’un fichier texte des éléments tels que les titres, les paragraphes, les acronymes, les citations, etc.
CSS (Cascading Style Sheets)
Signifie en français « feuillets de style en cascade ».
Celui-ci décrit la présentation des documents HTML.
Langages de programmation
Un langage de programmation est une notation conventionnelle, destinée à formuler des algorithmes appliqués dans des programmes informatiques. D’une manière similaire à une langue naturelle, un langage de programmation est composé d’un alphabet, d’un vocabulaire, de règles de grammaire, de significations, mais aussi d’un environnement de traduction censé rendre sa syntaxe compréhensible par la machine. Ils sont utilisés aussi bien dans le développement front-end que dans le développement back-end.
Framework (cadre de travail) & Library (bibliothèque), comment distinguer les deux ?
Framework
Un framework désigne un ensemble cohérent de composants logiciels structurels, qui sert à créer les fondations ainsi que les grandes lignes de tout ou d’une partie d’un logiciel. Un framework se distingue d’une simple bibliothèque logicielle principalement par :
Son caractère générique faiblement spécialisé : Un framework peut être constitué de plusieurs bibliothèques, chacune spécialisée dans un domaine.
Un framework peut néanmoins être spécialisé, sur un langage, une plateforme ou un domaine particulier : communication de données, data mapping…
Le cadre de travail qu’il impose, guidant l’architecture logicielle voire conduisant le développeur à respecter certains patrons de conception ; les bibliothèques le constituant sont alors organisées selon le même principe.
Les frameworks sont donc conçus et utilisés pour modeler l’architecture des logiciels applicatifs, des applications web, des middlewares et des composants logiciels. Les frameworks sont acquis par les informaticiens, puis incorporés dans des logiciels applicatifs mis sur le marché. Ils sont par conséquent rarement achetés et installés séparément par un utilisateur final.
Bibliothèque logicielle
C’est une collection de routines, qui peuvent être déjà compilées et prêtes à être utilisées par des programmes. Les bibliothèques sont enregistrées dans des fichiers semblables aux fichiers de programmes, sous la forme d’une collection de fichiers de code objet rassemblés, accompagnée d’un index permettant de retrouver facilement chaque routine.
En deux mots,
«Le développeur utilise une librairie en appelant le code de cette dernière, tandis que le rôle du framework est d’exécuter le code du développeur.»
« Voyez la bibliothèque comme une boîte à outils et le framework comme un laboratoire.»
CMS signifie en français « système de gestion de contenu ». Il s’agit d’un programme informatique, utilisant une base de données et permettant de gérer de A à Z l’apparence et le contenu d’un site web. Il permet à des individus ou à des groupes hiérarchisés, de mettre à jour le contenu d’un site web, à partir d’un panneau d’administration. Aujourd’hui, les CMS sont des plateformes de déploiement de sites web très populaires, permettant de créer des sites web complexes à moindre coût. Certains CMS incluent également la gestion de version.
Bases de données
Une base de données est un ensemble structuré et organisé permettant le stockage de grandes quantités d’informations afin d’en faciliter l’exploitation (ajout, mise à jour, recherche de données). Ces informations sont en rapport avec une activité donnée, et peuvent être utilisées par des programmes ou des utilisateurs communs, d’où la nécessité de leur mise en commun.
Elles sont utilisées dans un grand nombre d’entreprises pour stocker, organiser et analyser les données.
Elles se chargent elles-mêmes de créer, de mettre à jour ou de supprimer des données. Elles effectuent également des recherches parmi les données qu’elles contiennent sur demande de l’utilisateur, et lancent des applications à partir des données.
Le langage standard pour les bases de données relationnelles est le Structured Query Language (SQL). Les bases de données relationnelles sont facilement extensibles, et de nouvelles catégories de données peuvent être ajoutées après la création de la database originale, sans avoir besoin de modifier toutes les applications existantes.
Serveurs
(Apache, Nginx)
Un serveur web est soit un logiciel de service de ressources web (serveur HTTP), soit un serveur informatique (ordinateur) qui répond à des requêtes du WWW, sur un réseau public (Internet) ou privé (intranet), en utilisant principalement le protocole HTTP. Un serveur informatique peut être utilisé à la fois pour servir des ressources du Web et pour faire fonctionner en parallèle d’autres services liés comme l’envoi d’e-mails, le stockage de données via des bases de données, le transfert de fichiers par FTP, etc.
Logiciels de création graphique
(Photoshop, Illustrator, Figma, suite Adobe)
Ces logiciels très complets permettent la retouche photo, la création de logo et de web design pour habiller des sites web.
Classements des technologies
Au-delà des 3 piliers que sont HTML, CSS et JavaScript, quel langage doit-on apprendre en premier ? C’est la question que l’on se pose au début. Je me suis intéressé aux technologies que les recruteurs mentionnent dans les offres d’emploi pour connaître les langages les plus populaires. J’ai passé en revue 61 annonces de développeurs dans la région Bourgogne-Franche-Comté. Ce faisant, j’ai pu en déduire les langages & technologies sur lesquels un développeur junior ou designer web devrait miser pour être pris au sérieux par ses pairs.
Les postes à pourvoir sont les suivants
Métiers
Nombres d’offres
Développeur full-stack
13
Développeur web
12
Développeur front-en ReactJS
7
Développeur back-end
5
Développeur informatique
4
Développeur C / C++
4
Développeur web junior
3
Lead développeur
3
Développeur C#
2
Ingénieur conception développement
2
Développeur .NET / SQL
2
Développeur big data en alternance
1
Concepteur technique
1
Concepteur développeur d’application
1
Analyste fonctionnel
1
Voici les langages classés par fréquence d’apparition dans les offres d’emplois
Langages front-end
Technologies
Taux d’apparition (%)
CSS
64
– dont SASS (dérivé de CSS)
15
– dont LESS (dérivé de CSS)
8
Javascript
56
– dont JSON
13
HTML
43
Typescript
13
Langages back-end
Technologies
Taux d’apparition (%)
Javascript
56
PHP
34
SQL
30
MySQL
26
Java
25
.NET
16
C#
15
PostgreSQL
13
Python
8
C++
7
AJAX
7
Node.js
7
C
3
Java est un langage exécuté sur plus de 3 milliards de téléphones à travers le monde.
Bibliothèques front-end
Technologies
Taux d’apparition (%)
jQuery
18
ReactJS
15
Bootstrap
10
React Native
2
Framework front-end
Technologies
Taux d’apparition (%)
AngularJS
30
VueJS
10
Framework back-end
Technologies
Taux d’apparition (%)
J2EE
13
Symfony
11
Hibernate
10
Laravel
10
– dont Blade (moteur de template)
5
– dont Mustache (moteur de template)
5
Autres compétences
Technologies
Taux d’apparition (%)
GIT
21
API REST
16
CMS
10
– dont WordPress
8
Jira (logiciel de travail collaboratif)
8
Docker
7
POO (programmation orientée objet)
5
VS Code (éditeur de texte)
5
Grâce à Docker, il est notamment possible de lancer plusieurs environnements d’OS sur la même machine, en les isolant les uns des autres.
Le serveur Apache est mentionné dans 7% des annonces.
Linux (système d’exploitation) et Oracle (système de gestion de base de données) sont chacun mentionnés dans 11% des annonces.
La question qui fâche
J’ai pu rencontrer une développeuse junior qui a osé poser la question suivante :
Pourquoi les développeurs juniors ne sont pas ou peu recrutés ?
Elle a reçu des dizaines de réponses proposant des pistes de réflexion très intéressantes. Les conseils qui lui ont été donnés sont les suivants :
Pratiquer le plus possible afin de pouvoir montrer des projets réalisés et convaincre de son intérêt pour le code.
Durant certains recrutements, il est question de savoir si le candidat sait résoudre un problèmeseul, et si oui en combien de temps. Il apparaît clair qu’un développeur ne doit pas attendre qu’on le prenne par la main.
Développer son réseau est très important pour trouver des pistes et savoir se faire remarquer par les bonnes personnes.
La maîtrise de Git semble être un vrai point fort chez un junior.
Conclusion
Pour contraster cet article, nous avons toujours peur de perdre du temps à apprendre quelque chose qui ne nous servira pas. Néanmoins les connaissances sont souvent transposables d’une technologie à une autre. S’intéresser à un langage un peu obscur aura toujours de l’intérêt.
Évidemment il faut aussi se sentir à l’aise dans l’écriture informatique, les développeurs ont souvent une affinité avec un langage particulier.
Se former aux métiers du numérique est un projet intensif qui demande une implication et une motivation totale. Néanmoins, il est important de faire de temps en temps un break et de se changer les idées. Quoi de mieux qu'une série TV ou un bon film pour se détendre ? Vous trouverez dans cet article...
Cit. Bing Qu’est-ce qu’un sitemap ? En français, on pourrait simplement traduire sitemap, par plan de site. En fait, un Sitemap est la liste des pages de notre site web que l’on souhaite voir indexer par les moteurs de recherche. Il peut également contenir les informations détaillées des pages, leurs relations et leur contenus (image,...
La méthode kanban c’est quoi ? La méthode Kanban est une vieille méthode qui date des années 1950, elle a été introduite pour la première fois au Japon chez Toyota. Cette méthode est basée sur le juste temps et sur des processus évolutif. Elle avait pour but d’améliorer la production des ouvriers. On peut voir...