Back-end, front-end, full stack

Le métier de développeur est très demandé. Et des développeurs, il en existe pour tout. Autant, pour les néophytes, on travaille tous dans « l’informatique », autant pour les spécialistes, la distinction est d’une extrême subtilité. Il existe des centaines de postes différents, des palanquées de domaines et de spécialités. On les distingue en trois principales catégories : front-end, back-end, et full-stack.

Le domaine qui me concerne, vous l’aurez deviné, c’est le web. Mais dans le web, il existe là aussi des spécialités. Bien entendu, les postes se déclinent en fonction des langages de programmation. Je ne parle pas du HTML et CSS, qui sont la base de la présentation des données, que chaque développeur web doit connaitre un minimum. Je parle plus ici des langages au niveau serveur, comme le PHP, le C#, le Java, le Python… ou encore MySQL, Transact SQL, Oracle SQL pour les bases de données. Et on peut aussi distinguer les différents frameworks, ces surcouches aux langages qui facilitent en général bien la vie en structurant le code, mais qui nécessitent d’apprendre une couche supplémentaire de langage.

Front-end, back-end

La plupart du temps, on distinguera les postes en trois grandes catégories. Mais au juste, que signifient-elles ?

Front-end

Il s’agit là des développeurs qui s’occupent des sites publics, sites vitrines, de vente en ligne, de présentation… ce type de poste est un mélange entre le web designer, qui s’occupe du graphisme, l’intégrateur, chargé de transformer ce graphisme en code, le webmaster, plutôt orienté vers l’écriture et la maintenance… et un peu le développeur, quand même.

Le développeur front-end est donc une évolution de plusieurs métiers existants. au niveau du code, il sera plutôt orienté vers le HTML, CSS, Javascript. En effet, il sera en charge autant du graphisme que de l’ergonomie. Un site public se doit d’être parfaitement utilisable, pratique, fonctionnel. Sécurisé, aussi : les formulaires doivent être à l’épreuve de tous les aléas induits par les utilisateurs.

Bien entendu, un développeur front-end sait utiliser Photoshop. Peut-être pas au niveau d’un graphiste pur et dur, mais il connaîtra les routines les plus courante. Il faut aussi être à l’aise avec les différentes librairies qui peuvent agrémenter un site, jQuery étant l’une des plus célèbre.

Mais il existe aussi des frameworks particulièrement adaptés aux sites publics. Angular semble particulièrement destiné à cet usage. Il est d’ailleurs basé sur du Javascript, le langage des navigateurs web.

Back-end

Pour les entreprises, le front-end n’est que la partie émergé de l’iceberg. Elles utilisent tout un tas d’outils qu’il est bien pratique de délocaliser sur des serveurs. C’est le principe du cloud computing. On parle là d’applications web, d’Intranet, de CRM. Eh bien c’est le domaine du back-end, la partie immergée de l’iceberg.

Dans cette partie, le graphisme et l’ergonomie sont moins importants. Attention, ne me faites pas dire ce que je n’ai pas dit : il ne faut pas laisser ça de côté. Mais un développeur back-end accentuera ses compétences plus sur les langages serveurs, sur l’optimisation des bases de données, sur la pertinence de son script, et sur la facilité de maintenance.

Là aussi, la connaissance de frameworksSymfony, Laravel – sont un plus non négligeable. C’est peut-être même indispensable, dans le sens où ces frameworks obligent à avoir un code structuré, ce qui est un gage de qualité et de facilité de maintenance. En effet, il faut que l’outil puisse être mis à jour des années plus tard, avec une équipe qui sera sans doute très différente de celle qui a créé l’outil.

Du coup, le développeur back-end soit savoir travailler en équipe. Il doit aussi être capable de rédiger des cahier des charges et de la documentation, car tout son travail doit être inscrit dans la pérennité. Avoir des notion d’Agile et de Scrum, c’est bien pratique.

Full stack

Full stack

On va tout de suite abattre les évidences. Vous l’aurez compris, le développeur full stack est aussi à l’aise avec le front-end que le back-end. Il connait les deux mondes, sait tout de l’ergonomie et de ses outils, mais sait aussi structurer et optimiser une base de données et travailler avec un framework.

On va continuer à abattre les évidences : être parfaitement full stack, ça n’est pas vraiment possible. C’est un serpent de mer des recruteurs. En effet, il faudrait maîtriser Photoshop sur le bout des doigts, tout connaitre des subtilités des CSS et anticiper leurs évolutions – Flex, c’est super -, mais aussi être un maître dans les frameworks les plus en vogue… Tout cela demande énormément d’expérience. Il existe tellement de langages de programmation, déjà, qu’il est difficile de tous les connaitre suffisamment pour prétendre être réellement full stack.

Si vous êtes recruteur, il va donc falloir définir clairement vos besoins. Et aussi, sans doute, préparer votre portefeuille. Vous demandez quelqu’un qui sait tout faire ou presque dans le web ? C’est une bonne idée, mais ça se monnaye. Sans compter que, full stack ou pas, si le projet doit avancer vite, il faudra sans doute constituer une équipe. Une équipe qui comprendra sans doute un développeur back-end, et un front-end. Du coup, réfléchissez bien à la pertinence de vos demandes. Cela dit, il y aura sans doute besoin au moins d’un chef de projet ou d’un scrum master avec beaucoup d’expérience, afin de mutualiser les compétences et d’organiser le travail en commun.

Je n’ai pas, pour ma part, la prétention de me définir comme développeur full stack. Mais honnêtement… J’ai commencé dans le web en tant qu’intégrateur, je m’occupais des sites publics. Puis j’ai appris le développement, et me suis orienté petit à petit vers le back-end, après un long passage pendant lequel je me suis occupé de tous les sites d’une entreprise, publics, CRM, Intranet… Je ne prétends pas tout connaître, mais on s’approche de la définition du full stack, non ?