Le domaine de l’informatique est très vaste, c’est évident. Mais quand quelqu’un vous dit qu’il est développeur en informatique, généralement, cela suffit pour cerner ce qu’il fait de ses journées.
Cependant, ce métier comporte des spécialités très variées et qui nécessitent des compétences différentes, un peu comme la médecine ou les métiers du bâtiment. Nous allons décrire ici assez succinctement ces métiers et essayer de les catégoriser car on aime bien classer les choses et les gens dans des boîtes, et se focaliser petit à petit sur ce qui nous intéresse ici, à savoir le développement de sites web.
Note: quand je parle de codeur, je parle au neutre, n’y voyez pas là une quelconque intention d’exclure les codeuses (qui sont rares et donc chères à nos coeurs).
Que fait le développeur en informatique ?
Et bien, son activité principale est d’écrire des programmes informatiques qu’on appelle aussi code informatique (on dit qu’il code, donc on appelle aussi ces personnes des codeurs). Ces codes permettent de donner des instructions aux machines pour faire des successions d’opérations suivant les données fournies en entrée.
Le souci majeur - mais plus pour très longtemps - est que les machines ne comprennent pas notre langage naturel et elles ne nous entendent pas non plus naturellement - là encore, on progresse à très grande vitesse. Ainsi, le codeur doit utiliser un langage spécifique et une interface (le clavier) pour donner les instructions à la machine. Un peu comme les cartes trouées qui enclenchent les notes d’un orgue de barbarie. Certains se rappelleront qu’il n’y a pas si longtemps de cela on utilisait des cartes perforées ou des disquettes 3"1/2 ou des CD comme support pour faire jouer ces codes.
Ainsi au fil des améliorations des technologies, les technologies et les langages ont évolué, certains ont été créés, d’autres ont été abandonnés.
Il difficile de trouver la bonne échelle quand on cherche à classer. Mais pour moi, on peut faire trois grands ensembles :
Quand je parle de bas niveau, je ne parle évidement pas de leur niveau de compétence, je ne me le permettrais pas (aie!). Ce sont des codeurs qui parlent directement au noyau même du système et qui commandent directement les processeurs (vous savez les i3, i5, i…) et les périphériques qui y sont connectés. Ils utilisent alors un langage suffisamment proche de la machine pour optimiser les instructions.
Ces codeurs se trouvent généralement dans les industries. En effet, les programmes qu’ils conçoivent sont des codes exécutables que l’on lance à partir de la machine physique avec laquelle l’utilisateur interagit. Ces exécutables sont des logiciels qui sont stockés sur la machine elle-même.
C’est dans cette catégorie que je me trouve et que nous allons détailler dans la section suivante.
Le web (aussi appelé internet) est un réseau de machines interconnectées. Au début, il n’était principalement utilisé que pas les universités et les militaires.
Mais assez vite, cette technologie a été démocratisée (essentiellement pour faire du business mais aussi un peu pour partager) et la progression de son utilisation est devenue exponentielle. Ce qui est spécifique dans le développement web est que programme écrit par le codeur n’est plus totalement exécuté par la machine de l’utilisateur, mais une grande partie est lancée sur des machine à distances, des serveurs, hébergé dans des grands bâtiments, des data centers. La seule tâche de la machine de l’utilisateur est de fournir une interface pour visualiser, pour demander des données ou pour faire exécuter des tâches au serveur.
Et là, se dessinent les deux spécialités de développement web :
Le back-end c’est ce que ne voit pas les utilisateurs. C’est lui qui enregistre les données sauvegardées, qui fait les calculs avec, lance les processus et envoie les réponses brutes demandées par le front-end (les requêtes)
C’est la partie visible avec laquelle l’utilisateur interagit : les formulaires, les boutons, les textes etc. Dans ce cas, on utilise le HTML pour créer ou générer les pages et le CSS pour les mettre en forme.
La création de sites web est encore une sous-catégorie du développement web. En effet on parle encore de back-end et de front-end, mais dans ce cas, on ne se situe pas au même niveau d’intervention. Dans notre cas, nous nous concentrons sur le contenu en lui-même. Ce qui nous intéresse ce n’est plus tout le codage des fonctionnalités du server (back), ni même la codage du client (front) mais plus le message délivré.
C’est la raison pour laquelle nous utilisons des environnement intégré (framework) comme les gestionnaires de contenu appelé CMS (content manager system). Le plus connu est évidemment Wordpress. Ces CMS permettent facilement de créer des sites web grâce à des gabarits existants (template) … écrits par des développeurs web. J’irai même plus loin : plus besoin de coder, il suffit alors de personnaliser le template, de placer les éléments et écrire le contenu. Cela semble assez facile, toutefois cela nécessite un minimum d’adaptation, de créativité et une bonne connaissance des codes du design moderne … pour le coup ce n’est plus du code à proprement parlé.
Mais tout cela nécessite des heures à naviguer, décrypter les intentions, chercher ce qui va marcher ou pas, trouver les templates, des palettes de couleur etc. pour obtenir un visuel professionnel et avoir le plus d’impact possible.
D’autre part, plusieurs autres spécialités sont associées à la création de sites web :
Tout cela contribue à l’efficacité d’un site web.
Il est difficile d’être spécialiste dans plusieurs spécialités. Cependant, chaque codeur a des notions de chaque spécialité. Ainsi, s’il y a une forte complexité sur une spécialité qu’il ne possède pas, il peut faire appel à un spécialiste mais sinon il pourra réaliser des tâches génériques sur ces spécialités.