L'école des nouveaux métiers
du code et du numérique
3WA École de code et du numérique

La 3W Academy reçoit Lior Chamla, développeur web et formateur

La 3W Academy, école spécialisée dans le développement web, reçoit Lior Chamla, développeur web et formateur. Découvrez son parcours, ses expériences et son avis sur les différents langages et frameworks comme Symfony, PHP et Angular.

Interview avec Lior Chamla, développeur web et formateur depuis 2016

Quel est votre parcours ? 

J'ai un bac +5 en informatique ingénierie des logiciels. J'ai d’abord été embauché dans une société qui faisait du CRM et au bout d'un moment, j’ai démissionné avec deux amis qui sont devenus mes associés pour une boîte que l'on a créée fin 2012. Au bout de trois ans, on n'était pas forcément satisfait de la situation et on a décidé d'arrêter et de partir chacun dans sa propre voie. C'est à ce moment-là que je me suis vraiment orienté vers la formation en développement web, ce qui était en réalité mon objectif de carrière depuis le bac + 2. Dès ma dernière année d'études en bac +5, je commençais déjà à prendre un jour ou deux par-ci par-là pour former des jeunes dans mon ancienne école. Je n'ai jamais arrêté de former depuis 2016. Aujourd’hui, j'ai une majorité de mon chiffre d'affaires qui est issu de la formation et j’en suis très heureux, car c’est vraiment ce que je voulais faire.

J’ai également conçu une chaîne Youtube, mais le but n'était pas forcément d'avoir une grosse communauté. J'avais pour idée de monter des formations en développement web payantes en ligne. Mais comment faire du chiffre d'affaires si les gens ne me connaissent pas et ne savent pas que je suis sympathique et pédagogue ? Je devais démontrer mon savoir-faire et c’est pour ça que j’ai décidé de faire une chaîne Youtube. Mon objectif tout premier, quand j’ai ouvert ma chaîne Youtube, c’était de rajouter des chapitres qui n'étaient pas au programme de l'école, ou des chapitres que l'on n'avait pas eu le temps de voir, pour que mes étudiants aient des ressources à la maison pour continuer d'apprendre. Donc j'ai conçu ma chaîne Youtube comme une extension du programme de la formation en trois mois de la 3W Academy. Car une fois arrivé à la fin de vos trois mois, il vous restera encore plein de choses à apprendre.

Un vendredi sur deux, j’essaie en plus de faire un live, qui est certes en direct, mais j'essaie d'y réfléchir quelques jours avant et de préparer des slides pour que ce ne soit pas trop spontané. Mon but, c'est de donner aux auditeurs des bases pour développer en Symfony, mais je ne vais pas forcément faire un site entier dans le cadre de ces lives. Je vais éventuellement faire quelques pages pour leur montrer comment ça marche, mais je les laisse faire le reste.

Quels sont les langages de programmation ou technologies que vous avez appris récemment ?

Ce n'est pas tant les langages et les technologies qui m'intéressent, mais plutôt les bonnes pratiques. J’ai accumulé un retard, hélas, du fait d'être freelance et de ne plus travailler avec des gens qui sont meilleurs ou moins bons que moi. Cela fait un an et demi que j'essaie de me former sur la clean architecture, l’architecture hexagonale et les tests, notamment le test driven development. 

Certains développeurs web prétendent que PHP est un langage obsolète : qu’en pensez-vous ?

Le jour où PHP est sorti, certains disaient déjà que c’était un langage mort. PHP, c’est un langage informatique qui, bizarrement, devient meilleur au fur et à mesure que les gens le dénigrent.

On vient d'arriver dans la version 8, avec des changements très significatifs. Sans parler forcément de performance du langage, les outils que l'on nous a offerts dans la version 8 sont terribles. C'était déjà excellent dans la version 7.4, mais le langage se bonifie avec le temps, il devient meilleur à chaque nouvelle version. Le problème de PHP, c'est que même si vous ne l'aimez pas, vous êtes obligé malgré tout de composer avec, puisque dans la majorité du web aujourd'hui, c'est du PHP. C'est un très bon langage, personnellement je ne m'en plains pas, il pourrait être mieux, bien sûr, mais ça reste un très très bon langage.

Parlez-nous de Symfony : pourquoi l’apprendre ? À quoi ça sert ? Quels sont les avantages et les inconvénients de ce framework ?

La notion de librairies ou de bibliothèques

Imaginons que vous êtes en train de créer un site pour un salon de coiffure et que vous avez besoin de faire de la prise de rendez vous. Il y a des dates qui se chevauchent et vous allez devoir énormément travailler là-dessus. Mais après des heures et des heures de travail, vous allez réussir à faire votre projet. Ce que vous allez vouloir faire tout de suite après, c'est récupérer le code que vous avez écrit. Pourquoi ? Parce que la prise de rendez-vous, ça marche aussi pour de la réservation de tables de restaurant, pour de la réservation de chambres dans un hôtel ou pour une autre entreprise qui a besoin de prise de rendez-vous. Vous allez donc prendre tout le code que vous avez écrit et le mettre de côté pour vos prochains projets. Ce code que vous avez repéré, que vous avez conservé et que vous allez pouvoir réutiliser de projet en projet, on appelle ça une bibliothèque, une librairie : autrement dit, c’est un ensemble de fonctions que vous allez pouvoir réutiliser.

Aujourd’hui, je vous parle de prise de rendez-vous, mais demain il s’agira peut-être d'un panier pour de la vente en ligne. Vous allez ainsi commencer à vous constituer un ensemble de librairies, un ensemble de bibliothèques. Ce que vous pouvez faire aussi, c'est créer un projet type où il y aura déjà toutes ces librairies. Et à chaque fois qu’un client viendra vous voir pour créer un site, la base de celui-ci sera déjà dans ce dossier-là. Vous aurez créé ce qu'on appelle un framework. Alors un framework, c'est quoi ? C'est un ensemble de librairies qui ont déjà été codées pour répondre à des objectifs bien précis (gérer la prise de rendez-vous, gérer un panier, gérer un paiement, etc.). 

Dès qu'on utilise des librairies, il y a malgré tout des exigences et des contraintes. Vous allez donc troquer la puissance et la rapidité que vous offrent toutes ces librairies contre un peu de liberté. Les fichiers et les images, par exemple, ne se mettent pas où l’on veut. On appelle ça un cadre de travail. Mais de plus en plus, les frameworks s’attèlent à faire en sorte que ces contraintes soient les moindres possibles. Si vous utilisez du Laravel ou du Symfony, vous allez avoir plus de libertés. Vous vous retrouvez donc à avoir la puissance sans forcément les fameuses contraintes. 

Mais il en restera toujours une : la courbe d'apprentissage. Moi, j’ai touché à Symfony pour la première fois il y a 4 ans. Je l'utilise quasiment tous les jours et tous les jours, j'apprends des choses.

Les avantages du framework Symfony

L'avantage du framework Symfony, c'est que vous êtes au cœur des bonnes pratiques. Symfony vous permettra de renforcer vos compétences en programmation orientée objet.

Dans le framework Symfony, ce que vous allez retrouver aussi, c'est les pratiques solides. Vous allez retrouver aussi des design patterns qui sont très intéressants. Donc étudier Symfony, c'est étudier la programmation objet, c'est étudier les bonnes pratiques de programmation orientée objet et c'est étudier des design patterns intéressants. Vous vous retrouvez au cœur d'une espèce de paradis des bonnes pratiques. Autre chose, Symfony c’est open source, donc c'est entièrement gratuit et plus encore, si vous avez des propositions d'amélioration, vous pouvez les faire.

Enfin un dernier avantage pour les jeunes développeurs web, c'est que c'est un framework très populaire et très connu en France, mais aussi dans le monde entier. Dans le monde, Laravel est plus internationalisé, mais en France, c’est Symfony qui est largement en tête.

C'est sécurisant parce que quand vous vous attaquez à Symfony, vous n'êtes jamais seul. Vous avez des documentations partout, vous avez des vidéastes, vous avez des Youtubeurs, vous avez vraiment de quoi être accompagnés. Cela fait une dizaine d'années maintenant que Symfony est là, qu’il s'améliore sans cesse et on peut dire qu’il est leader dans les bonnes pratiques.

Faut-il faire un choix entre Symfony et Laravel ?

Pas du tout, on peut très bien utiliser les librairies de l'un et de l'autre. D’ailleurs, Laravel utilise en son sein cinq, six voire dix librairies issues du projet Symfony. Les librairies Symfony peuvent s’utiliser sur n'importe quel projet PHP ! Ça ne pose aucun problème parce que tout est open source. Les uns utilisent les avancées techniques des autres pour que l'on soit tous tirés vers le haut.

Vaut-il mieux faire des sites full Symfony ? Ou bien peut-on envisager un back Symfony associé à un front React ?

Tout va dépendre du besoin de votre client. Pour ma part, la plupart des projets que j'ai en main ne nécessitent pas l’utilisation de React. Le but de React c’est d’avoir une page qui est très dynamique, qui bouge beaucoup. Si vous travaillez sur un site où il n'y a pas grand-chose à faire dessus, mis à part aller sur une autre page ou remplir un formulaire, React n’est pas forcément nécessaire. 

Quelle est la différence entre un framework et une librairie ?

Un framework appelle votre code. Tandis que dans le cas d’une librairie, c'est votre code qui l'appelle. Une librairie, c'est un ensemble de fonctions qui répondent à un objectif. Dans votre code qui est préexistant, vous allez installer telle librairie qui va vous permettre de répondre à un besoin particulier. Dans le framework, la logique est complètement différente. Le framework préexiste à votre code. Ce qui veut dire que quand vous faites du Angular, vous installez une structure de dossiers entière avant même de créer votre première ligne de code. Le framework est déjà là. Le framework, lui, est déjà câblé pour rappeler des choses et c’est lui qui va vous demander de les fournir. La librairie, quant à elle, possède une fonction que vous allez appeler à un moment ou un autre. 

React ou Angular : quelle différence ? Avez-vous une préférence ?

On peut avoir un site quasiment déjà fini et décider d’utiliser du React pour une seule fonctionnalité. Avec Angular, ce n’est pas possible. Il faut se mettre d’accord dès le départ pour dire qu’on utilise Angular, sinon on ne l’utilise pas du tout. Pour ma part, j’aime beaucoup Angular, mais il est plus contraignant. C’est mon préféré parce que c’est de la programmation orientée objet, c’est des bonnes pratiques, etc. Mais c’est difficile pour des étudiants en développement web juniors. React reste le plus simple à utiliser. Mais c’est aussi une question de point de vue et d’affinité avec certaines fonctionnalités.

L’apprentissage de Symfony facilite-t-il l’apprentissage des autres frameworks ?

Oui, complètement. Apprendre Symfony, c'est dur. Pour un développeur web junior, c'est des dizaines de concepts nouveaux. Mais ce que vous apprenez finalement, ce n'est pas uniquement Symfony, mais aussi des bonnes pratiques. C’est la même chose pour Laravel et les autres langages. 

Peut-on postuler à une offre pour Symfony 4 ou 3 si on a été formé à Symfony 5 ?

Alors il y aura des différences, mais elles ne seront pas majeures. Depuis la version 3, Symfonie a changé sa façon de faire. Chaque version majeure, (Symfony 3, 4, 5, 6, etc.) amène un certain nombre de fonctionnalités. Si vous passez de Symfony 2 à Symfony 3, vous allez devoir casser beaucoup de choses, car il y a beaucoup de choses qui ont changé depuis. Mais si vous passez de Symfony 3.1 à 3.2, 3.3 ou 3.4, par exemple, vous ne casserez rien, vous n’aurez que de la nouveauté. 

Au fur et à mesure des avancées, Symfony nous prévient que certaines choses ne marcheront plus. Mais ce dont vous pouvez être sûr, c’est que tout ce qui marche dans la 3.4, marchera également dans la 4. Vous pouvez donc faire avancer votre projet de version en version tranquillement. Donc pour répondre à la question, apprendre Symfony 5 et retomber sur du 4.4 se fait sans problème. Ce serait plus dangereux avec du Symfony 2 par contre.

Est-il nécessaire de se spécialiser dans un langage de programmation ?

Oui. Cela vous permettra de bien comprendre un langage. Et quand on connaît bien un langage, on retrouve forcément les mêmes concepts dans un autre. Ce qui ne vous empêche pas de vous réorienter d’un langage à un autre au bout de quelques années. Je pense qu’on y gagne toujours à se spécialiser, sans pour autant perdre pied dans les autres langages. Privilégiez un langage, mais continuez de pratiquer les autres. Même en tant que développeur full stack, on a toujours une préférence pour quelque chose. C’est comme ça que l’on réussit à se vendre.

Quel est votre langage préféré ?

Aujourd'hui, je dirais que c’est PHP. Mais ça peut changer. Qui sait, demain ce sera peut-être script.

HTML, CSS, JS, PHP, Symfony 5 : est-ce suffisant pour du freelance ?

Alors le freelance, ce n’est pas une question de langage. C’est une question d’expérience, d’état d’esprit, de réseau. C’est bien parce qu’on est libre, on fait ce qu'on veut, on travaille le mardi mais pas le jeudi, mais c'est compliqué aussi, parce qu’on n'a pas de salaire prévu. 

Il faut avoir du contact. Moi je n’arrivais pas à être freelance dans le développement web pur, car je n’arrivais pas à négocier mes devis. Il y a plein de choses qui rentrent en compte dans le fait d'être freelance : il faut trouver ses clients, avoir du réseau, savoir faire passer des missions à d'autres développeurs, prendre des marges… Ce sont des choses qui sont très loin du code. Bien sûr il y a plein de plateformes pour vous aider. Mais pour moi, être freelance, ce n’est pas une question de langage. 

Pour autant, si on veut livrer des choses correctes à ses clients en tant que freelance, il faut quand même avoir un petit côté technique. C’est pour cela que je ne recommande jamais aux développeurs web juniors d'être freelance, je recommande toujours d’avoir au moins trois années de salariat pour être bien encadrés et avoir un peu d’expérience

Je trouve ma formation

M'Orienter

Je trouve ma formation Je trouve ma formation