3 piliers puissants pour vaincre vos peurs et coder librement.

3 piliers puissants pour vaincre vos peurs et coder librement.

Que diriez vous, si je vous disais qu’il existe en programmation 3 piliers qui permettent de comprendre l’ensemble de l’ingénierie logicielle et pas seulement apprendre à coder ? Et si je vous disais également qu’une fois ces clefs en main, vous serez en mesure d’ouvrir les portes que vous pensez aujourd’hui fermées, de faire tomber vos peurs en abordant les concepts complexes de façon simple et avec plaisir ?

Ce sont des professionnels qui ont construit le Titanic, et des amateurs l’Arche de Noé.

Philippe Meyer

Coder : le premier pas et les sables mouvants

Imaginez le Sahara, ce désert immense où même notre regard se perd. On pourrait le comparer au défi qui se dresse devant nous lorsque l’on souhaite apprendre la programmation. Autant de grains de sable que de 0 et de 1, de raisons d’abandonner et ne pas survivre à cette traversée du désert. Il existe pourtant des oasis, des chemins sûrs et au delà, votre liberté, celle de pouvoir créer ce que vous souhaitez. Vous êtes prêt ? Suivez le guide, ensemble nous allons réussir et nous trinquerons à l’arrivée pour fêter ça !

Photo by Joe McDaniel on Unsplash

Les sables mouvants du numérique sont les vestiges d’une mer morte, qui s’est retirée en laissant par endroit une humidité dangereuse. Certains disent que parfois, on peut encore entendre les chants de sirènes évanouies, comme un murmure lancinant de promesses, de succès faciles et rapides.

Tel des mélodies, les technologies se succèdent avec leur flots d’espoirs mais laissent souvent un goût amer. Il n’est pas rare de croiser des personnes s’enlisant dans des sujets qui les dépassent au milieu de frameworks éphémères, bloqués par des problèmes de dépendances, figés par le poids de l’héritage.

Comment faire pour ne pas suivre le même chemin ?

Peu importe la technologie pour coder, si l’on a les principes.

Tout chose complexe peut se décomposer en une succession d’éléments simples, que l’on peut appréhender de façon itérative. Et c’est une bonne nouvelle !

C’est exactement le même principe pour les immensités de sable, que l’on peut transformer en blocs de béton, et ériger des constructions folles comme la tour “Burj Khalifa”. Le désert fait de 0 et de 1 prend alors une toute autre forme…

Photo by Thomas Drouault on Unsplash

Les 3 principes ou “piliers” que je vais aborder permettent d’éviter les pièges dans lesquels il est facile de tomber. C’est une route qui ne souffre pas des évolutions mouvantes et des modes technologiques. Elle vous permettra, à votre rythme, de faire le premier pas, ou bien courir vers votre objectif. Il est plus agréable de pouvoir choisir ce qui vous plaît vraiment plutôt que subir et faire sans comprendre. Que diriez-vous d’avoir une longueur d’avance plutôt que la peur de ne pas apprendre assez et assez vite ?

Ça vous intéresse ? On y va !

PREMIER PILIER : L’algorithmique

C’est la première chose à connaître, plus qu’un langage de programmation. Bonne nouvelle vous la connaissez déjà et vous l’utilisez sans le savoir 🙂

J’aime les choses simples, et vous ? Que pensez-vous de ce schéma ?

résolution de problèmes développeur informatique

Félicitation, vous venez de lire un algorithme ! Les ordinateurs mais aussi votre téléphone font la même chose. Si vous savez dessiner un algorithme comme celui là, vous savez alors demander a une machine de faire des choses pour vous, selon vos décisions. Comment ? Et bien c’est là qu’entre en jeux les langages de programmation. Ils sont en réalité le support de votre pensée, le code est simplement la mise en forme d’un algorithme.

C’est pas une bonne nouvelle ça 😉 ?

Oui, mais comment faire lorsqu’on veut aller plus loin que simplement définir des actions, des répétitions, des directions ? Comment faire pour répondre à un besoin (ou une problématique) en créant un logiciel ? Comment traduire tout ça et “coder” finalement ?

C’est là qu’arrive le deuxième pilier, ça tombe bien non 😉 ?

DEUXIÈME PILIER : La Programmation Orientée Objet

Appelée aussi “POO”, elle permet la traduction de problèmes réels en apportant une dimension supplémentaire, celui de représenter les objets du quotidien (une voiture, une montre, un Magimix,…) en objets informatiques. Là est toute la beauté de la chose !

Le premier pilier est suffisant pour automatiser des actions, faire des calculs mais lorsque la complexité de conception augmente, la POO permet de garder les choses simples.

En POO, les objets ont des attributs et des comportements, comme dans la “vraie vie”. Prenez une voiture par exemple, elle a une couleur, un nombre de portes, une plaque d’ immatriculation…ce sont ses attributs. Elle roule, elle recule, parfois elle fait des tonneaux…ce sont ses comportements.

Voilà, ce n’est pas plus compliqué :).

Mais quelle est la facilité de conception dans tout ça ? Et bien en POO, il est possible de dire qu’un objet est composé des plusieurs objets…

Si je reprends l’exemple de la voiture, elle est composée de quatre pneus. Chaque pneu étant aussi un objet, ils ont leur attributs (leur taille, si ils sont hiver ou été, etc…) et leurs comportements (ils se gonflent et se dégonflent).

Photo by Olav Tvedt on Unsplash

Il est donc très facile de “transposer” des objets de la vie réels en objets “informatique” ce qui en soit est déjà très bien, car il devient aisé de demander à l’ordinateur de résoudre nos problèmes du quotidien, en les décrivant mais ce n’est pas tout….

là où dans le monde réel il est nécessaire de fabriquer quatre pneus si on en veut quatre, en informatique on définit une seule fois un pneu, et on peut demander à l’ordinateur d’en fabriquer (en virtuel) des milliards, pour le même effort…

J’ai volontairement rendu accessible le concept de POO, mais vous l’avez senti, ce deuxième pilier permet de passer à une autre dimension en terme de niveau de programmation…

Oui mais alors, comment faire encore mieux si on peut déjà tout faire ?

TROISIÈME PILIER : Les Design Pattern

La encore vous les connaissez déjà…quelle chance 🙂 ! En français on les appelle les “patrons de conception” et ils ont le même rôle qu’en couture où l’on parle aussi de “patrons”.

Photo by Darling Arias on Unsplash

Les métiers du textile et de la programmation on ça en commun de nous offrir la possibilité de créer librement, concevoir nos vêtements, nos programmes …de haute couture…ou pas…:)

Arrive ensuite l’étape de la fabrication, peut être même à grande échelle. Si il est possible de partir du dessin d’une robe pour reporter à la main les dimensions sur le tissu à découper, la chose est beaucoup moins aisée quand il faut le faire mille fois…et c’est la qu’arrivent les patrons en couture. Ces gabarits de découpe issus du dessin initial, permettent de reporter facilement et simplement le dessin sur les tissus, en un coup de crayon, ce sont des gabarits de conception.

Souvenez vous du chapitre sur le POO, finalement en informatique il est possible de créer les objets de la vie réel, et de répondre à des besoins via la programmation. Au fil du temps on s’est aperçu, comme dans notre quotidien, que les mêmes problématiques de conception revenaient encore et encore, finalement peut importe les sujets traités.

Photo by Karly Santiago on Unsplash

C’est à partir de là que sont nés les Designs Pattern, ces fameux patrons de conception logiciels. Une façon élégante de rendre les applications plus évolutives, tout en facilitant la phase de création. Un peu comme en couture, lorsque le patron nous aide à dessiner les contours de notre future création !

La bande des 4 ou comment coder dans la 4 ième dimension 😉

La bande des 4, c’est comme cela qu’on les appelle : Erich Gamma, Richard Helm, Ralph Johnson et John Vlissides. Ils ont écrit un ouvrage de référence sur le sujet en définissant 23 patrons de conception réutilisables. l’ouvrage est sortie en 1994 et ces “Design Patterns” sont aujourd’hui les briques de bases de l’industrie logicielle.

la bande des 4, les créateurs des design patterns

Pour donner un exemple concret, j’aime souvent prendre le “Pattern” nommé “Adapter” ou adaptateur (mais c’est plus joli en anglais je trouve :). Imaginez la maison de vos rêves, sa piscine, son jardin avec vue sur les montagnes…ou bien la mer… finalement c’est comme les moments où l’on imagine que l’on vient de gagner au loto…je vous laisse choisir, faites vous plaisir 😉

ça y est, elle est construite (c’est ça qui est pratique avec l’imagination 🙂 !

Toute la plomberie fonctionne, les tuyaux de la maison ont tous un diamètres de 18mm. Malheureusement, tous les tuyaux du jardin, la piscine, le Jacuzzi et même le Karsher ont des diamètres de tuyaux de 14mm 🙁

Le jardin et la maison sont finalement deux systèmes qui ont évolué de façon indépendante, sans que les concepteurs et artisans discutent entre eux… et bien sûr vous avez déjà payé tout le monde. Là vous êtes seul le lendemain de la pendaison de crémaillère avec le tuyaux du Karsher à la main…et la larme à l’œil. Vous ne pouvez pas le brancher. Les deux systèmes ne peuvent pas communiquer.

Est-ce que les Design Pattern peuvent sauver la situation pour seulement 3,62€, en moins de 5 minutes et vous redonner le sourire ? Assurément, le pattern “Adapter” vous fait de l’œil… en plomberie ce serait un raccord de 18mm vers 14mm qui permet de faire communiquer deux systèmes différents…

Photo by Wesley Caribe on Unsplash

Imaginez qu’il existe encore 22 astuces de ce genres dans les Patterns de la bandes des 4, et vous comprenez comment là aussi on passe à une dimension supplémentaire.

Si je vous dis qu’en entreprise, 80% de la durée de vie d’une application est liée à sa maintenance (et les coûts associés)…vous imaginez tous les bienfaits d’une conception simple, robuste et agile ? Là normalement vous dites “oui” 😉

Pour aller un peu plus loin et de façon ludique, vous pouvez lire mon avis sur le livre “Design Patterns – tête la première” dans l’espace bibliothèque du blog (en cliquant > ici <).

Les peurs sont derrière vous, vous êtes libérés.

Peut être vous demandez vous quel langage de programmation choisir en premier, si il faut utiliser Python ou Javascript, que faire après avoir appris HTML5 + CSS ? Dois-je faire de l’Angular, du Vue.js, du React, du Laravel, Flutter, Swift, du .Net, du Java…ou dois-je partir en courant et criant les bras en l’air !?

Rien de tout ça, car vous avez les principes. L’algorithmique s’appliquera dans le langage que vous aurez choisi, la POO gardera les mêmes principes en fonction des technologies, et les Design Pattern sont issus de l’observation de sachants, au service de la conception. Vous avez le contrôle !

Petit secret : les Frameworks ne sont que du code, dont les objets sont organisés en suivant des patterns de conception cités plus haut. Il existe parfois des variantes selon les technologie (MVC -> MvvM, MVP, etc…) mais au final, les choses sont simples une fois que vous avez les principes.

Le métier de développeur n’est pas que de coder, et coder ne se résume pas à apprendre une technologie, un langage, un framework au risque de faire pour faire, la tête dans le guidon. Souvenez vous des sables mouvants…

Vous pouvez maintenant aborder sereinement l’avenir, la tête haute en vous posant les bonnes questions. Il vous reste à faire le premier pas, les oasis sont à porter de main, et la route vers votre objectif s’éclaircit.

Photo by Mohamed Nohassi on Unsplash

Le temps que vous allez passer à maîtriser ces 3 piliers est un pur bonheur, car vous aller grandir et vous ouvrir des portes, il n’y a pas de meilleur investissement que celui que l’on fait sur soi, et celui là c’est du long terme !

📖 Inscrivez-vous à la newsletter et 📹 la chaîne Youtube pour ne rien rater de cette belle aventure qu’est “coder pour changer de vie“..c’est avec plaisir que je vous retrouve bientôt. Mettez en commentaire ce que vous avez pensez de l’article, ça me fera plaisir, au moins autant que j’en ai eu à l’écrire 🙂

A très vite,

Nicolas.

  •  
  •  
  •  
  •  
  •   
  •  
  •  

Cet article a 2 commentaires

  1. Thomas

    Superbe initiation aux concepts essentiels dans l’apprentissage du développement.
    Beaucoup de nouveaux développeurs ne passent pas assez de temps sur l’apprentissage de ces concepts et les limites malheureusement dans leurs apprentissages par la suite.
    Expliquer des concepts assez abstraits de la manière donc vous le faites devrez aider pas mal de développeurs débutants. Belle approche 🙂

    Thomas

Laisser un commentaire