Changer de secteur d'activité et devenir développeur web (part. 1)

— -

Dans cet article, je décris ma propre expérience de réorientation vers le domaine du développement web dans le but de diffuser des informations utiles à toute personne souhaitant réaliser ce même type de changement professionnel.

Préambule

Au moment d’effectuer cette réorientation, le monde du développement logiciel ne m’était pas inconnu : je mettais fin à une expérience d’environ 15 ans en tant que consultant pour de grandes entreprises de l’aéronautique, sur du développement logiciel en systèmes embarqués.

Cette expérience représente un atout non négligeable lorsqu’il s’agit de devenir développeur web : apprendre un nouveau langage de programmation, une nouvelle méthode de développement ou encore l’utilisation de nouveaux outils, sont des choses qu’un développeur logiciel est amené à réaliser tout au long de sa carrière, quel que soit le domaine dans lequel il évolue.

Avoir de l’expérience dans un autre domaine facilite donc l’apprentissage par rapport à quelqu’un de novice. Cela dit, il ne faut pas négliger tous les changements que cela implique. Au delà de la partie purement technique, devenir développeur web requiert également d’appréhender ce que j’appellerais l’environnement et la culture web (comprendre globalement comment cela fonctionne, les interactions entre les différentes parties, le vocabulaire utilisé, etc.).

Autre point important apporté par l’expérience : le fait de se connaître et de savoir quelle méthode est la plus efficace pour apprendre, caractéristique propre à chaque personne.

Pourquoi cette réorientation ?

Comme je l’ai précisé en préambule, j’ai évolué pendant de nombreuses années dans la même spécialité (systèmes embarqués) et dans le même domaine (l’aéronautique). Si j’ai beaucoup apprécié cette période, si j’y ai appris beaucoup de choses et travaillé avec beaucoup de personnes formidables, une certaine routine s’est peu à peu installée, ayant des répercussions négatives sur l’intérêt et le plaisir que j’avais à réaliser mon métier.

Deux problèmes majeurs en étaient la cause :

  • Le fait de rester cantonné au même secteur d’activité
  • Le manque de perspectives d’évolution, notamment du point de vue technique

Utiliser toujours les mêmes méthodes de travail, les mêmes langages de programmation, les mêmes outils peut s’avérer frustrant au bout de quelques années. Le refus affirmé d’une majorité de personnes à changer leurs habitudes, à suivre les évolutions techniques, en est la principale raison (heureusement, ce n’est pas le cas sur tous les projets).

Pour retrouver de l’intérêt dans mon métier de développeur logiciel, il était évident qu’il fallait un vrai changement. Se sont alors posées plusieurs questions :

  • Quel domaine du développement logiciel peut permettre de travailler pour différents secteurs d’activité ?
  • Quel domaine du développement logiciel requiert d’être en constante veille technologique et permet d’acquérir régulièrement de nouvelles compétences techniques ?
  • Quel domaine du développement logiciel est gage d’emploi aujourd’hui et dans les années à venir ?

Pour moi la réponse était évidente : le développement web ou plus largement le numérique.

Cette réflexion n’a pas été une réflexion à la va-vite, ni même une réflexion de quelques jours. La décision de se lancer dans cette voie a été difficile à prendre car je savais qu’elle aurait des conséquences autant sur ma vie professionnelle que personnelle : la période de formation et les premiers mois/premières années nécessiteraient de consacrer beaucoup de temps sur mon temps libre pour acquérir et approfondir de nombreuses connaissances. Il a fallu aussi accepter de pratiquement repartir de zéro, ce qui n’est pas forcément évident à gérer quand on approche la quarantaine et qu’on possède une dizaine d’années d’expérience dans un domaine où l’on avait une certaine reconnaissance.

Etapes de cette réorientation

1ère étape : auto-formation

Une fois la décision prise, la première étape a consisté à réaliser de l’auto-formation afin d’acquérir un minimum de bases techniques pouvant me permettre d’espérer évoluer dans ce nouveau domaine. Cette étape a également été importante pour confirmer mon intérêt et valider ma décision.

Quelles technos ?

Une question clé : sur quel langage de programmation se former ?

Pour répondre à cette question, j’ai tout simplement effectué différentes recherches sur le net et discuté avec d’anciens collègues évoluant aujourd’hui dans le domaine du web. En prenant en compte également un élément important, à savoir les tendances pour les années à venir (notamment pour éviter d’apprendre un langage dont l’utilisation est amenée à disparaître), voilà ce qu’il en est ressorti :

  • Pour le front-end : JavaScript
  • Pour le back-end : Python

Le JavaScript est indispensable, quant au Python il a l’avantage d’être également très utilisé dans d’autres domaines qui auront de plus en plus d’importance dans les années à venir, comme la data science ou le machine Learning / intelligence artificielle. Si le langage en lui-même est important, connaître au moins 1 framework associé est également essentiel. Pour Python, Django apparaît inévitable ; pour JavaScript, on peut citer React, Vue.js ou Angular.

A ces deux langages, il faut bien sûr ajouter les technos indispensables pour du développement web : HTML, CSS et SQL.

Quels moyens ?

On peut se former de différentes façons : lire des livres spécialisés, suivre des cours en ligne, s’engager dans des formations professionnelles, etc. Le moyen le plus adapté à ma situation m’a semblé être la formation en ligne, sous forme de vidéos.

Il existe de nombreux sites de formations en ligne, gratuits ou payants. La difficulté est de trouver une formation qui soit complète, adaptée à sa façon d’apprendre et qui mélange théorie et pratique. Il est important de prendre le temps de bien choisir pour éviter de perdre du temps avec une formation qui s’avèrerait obsolète (cela m’est déjà arrivé par le passé malheureusement) ou trop compliquée pour son niveau de départ par exemple.

Pour ma part, j’ai opté pour les deux formations suivantes, disponibles sur udemy (pour moins de 15€ chacune), et enseignées par Andrei Neagoie :

Un des avantages supplémentaires offert par ces formations est qu’elles m’ont permis d’intégrer une communauté de développeurs, pour beaucoup en pleine formation comme moi, via un groupe Discord. J’ai ainsi pu échanger, demander ou fournir de l’aide, avoir des retours d’expérience de personnes ayant déjà suivi ces formations, etc.

A cela s’ajoute la réception mensuelle d’une newsletter contenant une liste d’articles, de podcasts et de vidéos permettant de rester à jour avec ce qu’il se passe dans le domaine du web et de l’écosystème Python.

Parallèlement à ces formations, une chose m’est rapidement apparue comme indispensable : développer ses propres projets. Cela demande de prendre encore un peu plus de temps sur son temps libre mais cela permet de se confronter à des problèmes qu’on ne rencontre par forcément dans les formations et surtout pour lesquels il va falloir chercher par soi-même les solutions. C’est aussi un moyen de mettre en pratique ce que l’on vient d’apprendre, de vérifier si on a compris tous les concepts ou s’il est nécessaire de revoir certains points, et d’aller chercher les infos nécessaires pour réaliser des choses qu’on n’a pas encore abordées.

Une autre chose intéressante à faire également selon moi, c’est de réaliser des épreuves sur des sites comme Codingame. Cela permet de résoudre un problème en utilisant le langage de programmation en cours d’acquisition et aussi de pouvoir comparer sa solution à celles d’autres développeurs. Grace à ça, on peut apprendre des petits trucs et astuces permettant d’améliorer la qualité de son code ou de le rendre plus performant.

Difficultés

Selon moi l’erreur la plus évidente et que j’ai moi-même pu commettre à un certain moment, c’est de vouloir apprendre un maximum de choses en un temps le plus restreint possible. Au final, il vaut sûrement mieux acquérir 1 connaissance et bien la maîtriser plutôt qu’essayer d’en acquérir plusieurs mais avec un niveau de maîtrise trop faible. C’est souvent frustrant mais il faut accepter que cette montée en compétences requiert beaucoup de temps.

La seconde difficulté c’est arriver à se dégager du temps pour réaliser cette auto-formation. En ce qui me concerne, j’ai connu deux situations. Une première pendant laquelle j’ai pu disposer de mes journées entières pour me consacrer à la formation (en plus de quelques heures en week-end et soirées) puisque qu’à cause de la crise sanitaire de début 2020 je me suis retrouvé confiné et sans projet. Une deuxième, après le confinement, pendant laquelle mes journées étaient consacrées à mon travail professionnel sur un nouveau projet et donc pendant laquelle je ne disposais plus que de mon temps-libre pour avancer sur la formation. Sans surprise, se replonger sérieusement dans la formation après sa journée de travail est *très* difficile ! Par conséquent, on avance beaucoup moins vite que ce qu’on souhaiterait et c’est là aussi source d’une grande frustration et d’un potentiel sentiment de découragement.

La solution qui me paraissait la mieux adaptée à cette situation : faire en sorte que ma journée de travail soit consacrée à ce domaine pour lequel j’étais en train de me former.

2ème étape : recherche d’une opportunité professionnelle

Cela peut paraître évident mais trouver une opportunité directement chez un nouvel employeur en ayant aucune expérience professionnelle dans le domaine visé est quasi mission impossible.

Pour moi la solution a été de :

  • Faire part à mon employeur (une ESN) de mon désir de changer de domaine d’activité, une fois la première formation (sur Python) complétée
  • Montrer ma motivation en partageant régulièrement mon avancée sur l’auto-formation et en venant régulièrement aux nouvelles concernant les pistes possibles
  • Bénéficier d’un peu (beaucoup) de chance

De la chance car quelques semaines après avoir initié cette recherche d’opportunité, Bertrand et François de Wedge Digital m’ont permis de réaliser mes premiers pas dans ce nouveau domaine, malgré mon manque de compétences spécifiques. Les 3 premières semaines ont été consacrées à de la formation/montée en compétences sur les technos et méthodes utilisées au sein de Wedge Digital avant d’entrer dans le vif du sujet.

Note : lorsque j’ai commencé chez Wedge Digital, j’avais terminé la formation Python mais réalisé que la moitié de la formation Web Developer (globalement HTML, CSS, JavaScript mais sans beaucoup de pratique).

Curieux de connaitre la suite, notamment sur ma montée en compétences ? Restez-connectés pour découvrir la 2ème partie de cet article.

--

--

--

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Jerome Lapeyre-Mirande

Jerome Lapeyre-Mirande

More from Medium

An introduction on using Postman to automate integration tests

Contribute to open source project using GitHub

From Hatred to Understanding: My Web Programming Journey

In Between! — Quotidian — 021