avril 2021
Quand on s’intéresse de près au développement informatique. Pas facile de s’y retrouver dans toutes ces technologies; leurs rôles, leurs atouts, leurs champs d’application…
En introduction, voyons les grandes familles dans lesquelles nous les regroupons.
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…
CSS ( Cascading Style Sheets )
Signifie en français « feuillets de style en cascade ».
Celui-ci décrit la présentation des documents HTML.
Un langage de programmation est une notation conventionnelle destinée à formuler des algorithmes et produire des programmes informatiques qui les appliquent. 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
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é, contrairement à certaines bibliothèques; Un framework peut à ce titre être constitué de plusieurs bibliothèques, chacune spécialisée dans un domaine.
Un framework peut néanmoins être spécialisé, sur un langage particulier, une plateforme spécifique, un domaine particulier : communication de données, data mapping…
Le cadre de travail qu’il impose de par sa construction même, 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, voire identiques 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.
( Typo3, Joomla, Drupal, WordPress, Contao, Neos CMS, Dreamwaver, Craft, Grav, Kirby )
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 plates-formes 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.
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 de lancer des applications à partir des données.
L’API 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.
( Apache, Laragon, Laravel )
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, l’émission de flux streaming, le stockage de données via des bases de données, le transfert de fichiers par FTP, etc.
( Photoshop, Illustrator, Figma, suite Adobe )
Ces logiciels très complets permettent la retouche photo, la création de logo et de design pour habiller des sites web.
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.
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 |
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 |
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.
Technologies | Taux d’apparition ( % ) |
---|---|
jQuery | 18 |
ReactJS | 15 |
Bootstrap | 10 |
React Native | 2 |
Technologies | Taux d’apparition ( % ) |
---|---|
AngularJS | 30 |
VueJS | 10 |
Technologies | Taux d’apparition ( % ) |
---|---|
J2EE | 13 |
Symfony | 11 |
Hibernate | 10 |
Laravel | 10 |
– dont Blade (moteur de template) | 5 |
– dont Mustache (moteur de template) | 5 |
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.
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 de gens du métiers expérimentés qui ont donné des pistes de réflexions 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 que nous avons réalisé et de convaincre de sa passion pour le code.
Durant certains recrutements, il est question de savoir si le candidat sait résoudre un problème seul, 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.
Pour contraster cet article, nous avons toujours peur de perdre du temps à apprendre quelque chose qui ne nous servira pas, mais les connaissances sont souvent transposables d’une technologie à une autre. S’intéresser à un langage un peu obscur ne sera finalement pas vain.
Évidemment il faut aussi se sentir à l’aise dans l’écriture informatique, les développeurs ont souvent une affinité avec un langage particulier.