Le métier de développeur est de plus en plus sollicité. Cependant, il existe plusieurs spécialisations et il est parfois difficile d’y voir clair.
Ayant moi-même effectué une reconversion professionnelle pour devenir développeur back-end, j’ai été gêné par le manque de ressources détaillées sur la profession, la plupart des articles étant très généralistes.
J’avais une multitude de questions en tête, qui restaient souvent sans réponse :
Autant de questions auxquelles je vais aujourd’hui tenter d’apporter une réponse.
Avant de voir les particularités du métier de développeur back-end, il est intéressant de bien comprendre en quoi il consiste. Tous les sites et applications connectées à internet fonctionnent sur un système de client (un navigateur, comme Chrome, ou une application mobile) qui communique avec un serveur. Le travail des développeurs back-end est principalement de concevoir le code qui s’exécute du côté du serveur.
Les développeurs front-end prennent, quant à eux, en charge l’interface client visible par les utilisateurs.
Les langages utilisés pour le développement back-end sont très variés, allant du PHP au Python en passant par Java, C#, Ruby ou encore… JavaScript.
On a beau passer une bonne partie de la journée seul devant son écran, le métier de développeur requiert des interactions permanentes avec l’équipe. Une bonne communication est, en effet, primordiale pour effectuer un travail de qualité. Voici la liste des personnes avec lesquelles vous pourrez être amené à travailler.
En agence web, le chef de projet sera votre interlocuteur principal. C’est lui qui se charge d’organiser et de planifier vos missions.
Chez Novaway, par exemple, les journées commencent régulièrement par un point faisant état de l’avancée du projet. Le chef de projet guide l’équipe sur les actions à mener et apporte son soutien en cas de difficulté.
Il donne également ses instructions par le biais d'un outil de gestion de projet tel que Jira ou Gitlab. Cela permet de visualiser aisément ce qui est à faire, est en cours ou résolu.
En fonction de leur envergure ou technicité, certains projets peuvent être effectués par plusieurs développeurs. Bien communiquer est alors important afin de répartir convenablement les tâches ou de transmettre de manière optimale le travail déjà réalisé.
Les développeurs back-end peuvent travailler ensemble à la qualité des projets en pratiquant la revue de code ou le pair programming. Ces méthodes permettent une relecture du code par un collaborateur afin d’éviter les erreurs, ce qui est un avantage non-négligeable du travail en communauté.
En tant que développeur back-end, il est également nécessaire d’interagir avec les développeurs front-end (bienvenue du côté obscur de la force ;’) ).
Dans le cas de projets où la partie client est simple, les développeurs front-end sont généralement en charge l'intégration du design. Ils passent ensuite le témoin aux développeurs back-end qui dynamisent l'ensemble.
Sur des projets où le côté client est plus “lourd”, les équipes front-end et back-end doivent se mettre d’accord sur une interface leur permettant de bien communiquer (par exemple, une API REST).
En fonction de la composition de votre équipe, vous serez éventuellement amené à collaborer avec d'autres profils :
Les cours de développement nous permettent d’apprendre les bases de quelques outils. Seulement, pas toujours simple de comprendre leur utilisation concrète en milieu professionnel. Voici une petite sélection de trois éléments sur lesquels j’aurais aimé avoir plus de précisions.
Pour travailler ensemble sur une même base de code, il est souvent demandé d’utiliser Git. Voici quelques actions récurrentes réalisables avec le langage Git :
Afin d’acquérir des notions fondamentales et avancées, je vous recommande cette conférence de Christophe Portneuve - Git Pro Tips
L'accès aux serveurs est souvent restreint afin de limiter l'accès aux données sensibles et d’éviter les erreurs de manipulation. De ce fait, cette partie est généralement prise en charge par des développeurs Devops ou des administrateurs système.
Il y a donc peu de chances pour que vous ayez des paramétrages à effectuer au sein des serveurs (manipulations de la base de données, gestion de Cron, intégration continue...).
Cela peut néanmoins arriver si des programmes Cron sont mis en place sur le serveur. Il sera alors fort probable que ce soit à vous de créer les commandes ou scripts exécutés par ces derniers (ex : commandes Symfony).
Vous pensiez que le JavaScript était uniquement pour les développeurs front-end ? Faux !
En tout cas, pas tout le temps. En effet, vous pouvez avoir besoin de gérer dynamiquement certains contenus, par exemple : dynamiser un formulaire suivant certaines conditions.
On reste donc bien dans le domaine du développeur back-end et de la manipulation de données serveur. L'utilisation de Javascript sera, dans ce cas, d'une grande aide pour résoudre votre problème. Avoir quelques notions de JavaScript est toujours un plus et vous permettra de gagner du temps.
Les projets incluant du développement technique peuvent être gérés par le biais de deux méthodes :
Je souhaitais aborder les conditions de travail du développeur. Cependant, ce qui est vrai pour moi ne le sera pas forcément pour votre futur job.
Malgré tout, les agences web semblent globalement essayer d'adopter un esprit "start-up". Elles sont souvent adeptes de team building et d’afterworks ce qui permet une bonne cohésion au sein de l'effectif.
Ayant côtoyé la pointeuse dans mon précédent travail, je peux reconnaître que j'apprécie grandement cette ambiance et cette façon de travailler.
Néanmoins, ce n’est pas parce que le cadre est agréable que l’équipe n’en est pas pour autant sérieuse et que le travail n’est pas difficile. Etre développeur ne convient pas à tous les profils. Il faudra :
Pour conclure, j’espère vous avoir éclairé un peu plus sur la profession de développeur. Passionnante, elle vous demandera de nombreuses ressources techniques et mentales. Vous aurez une multitude de choses à apprendre et des mises à niveau à effectuer régulièrement.
Petit conseil final : essayez de déterminer si l'esprit d'équipe est une valeur forte chez votre futur employeur. C'est un point essentiel qui vous permettra de trouver des soutiens, voire un mentor au sein de l'effectif afin de monter rapidement en compétences.