Mon entrée dans le monde de la programmation

Bonjour le monde. Ici Switch.

Aujourd'hui, j'aimerais vous partagé mon parcours dans le monde de la programmation, comment je l'ai découvert, et comment j'ai évolué en son sein jusqu'à présent.

Cette histoire commence dans ma jeunesse (pour certains, déjà trop tard).

Premiers pas

Je pense que lorsque j'étais au collège, il y avait deux choses qui pouvait nous amener a découvrir la programmation. Soit vous vouliez créer un jeux vidéo, soit vous désiriez partager votre vie, projet ou autre grâce a votre propre site web.

Pour ma part, j'ai créé mes premier site web vers la fin de mes années de collèges. Rien de bien incroyable, j'utilisai alors un éditeur graphique spécialisé gratuit: Nvu (qui deviendra Kompozer).

Erreur après erreur, j'ai pu mettre en place des mises en forme, des interaction trouvées sur d'autre site ou motivé par la volonté de présenté quelque chose de façon particulière. Petit à petit, j'ai décomposé les solutions que je trouvais, comprenant au fur et a mesure les liens entre les différents éléments, leur objectifs ou leur fonctionnements. Je suis petit a petit passé d'une création de page via un éditeur aidant a la mise en forme à la création directe de code source. S'ensuivit une modification de mes outils vers des éditeurs de code plus classique (Coda, qui fut gratuit sur MacOS puis Netscape et Sublime Text).

Bien que simple, et que beaucoup disent avec humour que codé avec HTML et CSS n'est pas programmé, ce travail m'a donnée des bases solides pour mon évolutions future. J'ai principalement appris comment réutilisé des ressources existantes pour les adapté a un projet différent. Mais aussi, comment construire un projet complet, pièce par pièce, du néant à sa publication en ligne. Je dirai aujoud'hui, avec le peu de recul dont je dispose, que comprendre comment créer un outils a partir d'une simple idée est essentiel a la compréhension des outils plus avancé proposant de simplifié la mise en place de tel projets.

Découverte des algorithmes

La prochaine étapes de ma découverte a été amené par mon entré au lycée. Une nouvelle dimension de la programmation s'est ouvert a moi grâce a la découverte des calculatrice programmable. En France, il est demandé d'acquérir des calculatrice intelligente lors de votre entrée au lycée. Celles-ci permettent par example de créer des graphiques a partir de function, de les analyser ou de résoudre des équations. Mais surtout, elles offrait un langage de programmation, et la possibilité de créer des programme de calcul automatisés.

Le langage proposé, quoi que simpliste, utilisait toutes les définitions basiques de n'importe quel langage impératif.

  • boucle simple
  • déclaration de variable
  • assertions

J'ai ainsi pu implémenter les algorithmes mathématiques apportés par mes études, tel que la division euclidienne, la résolution d'équation du second degrés, et autres. Cette période m'a permis de me séparer d'un grand nombre d'erreur de débutant et en souhaitant complexifier mes programmes, j'ai aussi rencontré la limite de cet outil. Il était impossible de réutiliser des fonctions déjà existante au sein d'un nouvel algorithme. J'ai donc du voir mes programme comme des blocs individuels pouvant être chainés, et ainsi, du clarifier et limiter les entrées et sorties de chaque fonction. Je me doit aussi de préciser que le langage offert par ma calculatrice n'était pas typé (c'est à dire qu'il n'était pas possible lors de la création de la fonction de forcer l'utilisateur a passer les arguments attendu). Cela m'a conduit a vérifier les entrées utilisateur directement dans mon algorithmes. Il existe, a ma connaissance, deux visions de la sécurisation des entrées. La première se contente de déléguer à l'utilisateur de la fonction la tâche de s'assurer que les paramètres correspondent a ce qui est attendu. Cela implique d'assurer que chaque personne utilisant la fonction connaisse les pré-requis du process. Ainsi, si un appel incorrect est fait, l'utilisateur est responsable. L'autre solution consiste a vérifier l'entré soit même et a s'assurer que les pré-requis sont validés. Je préfère cette méthodes ayant appris la programmation via un langage non typé et ne permettant pas de documentation. Aussi, si la première méthode convient a des usages internes, elle ne saurait être appliqué si les données sont fourni par un utilisateur externe. Ainsi, choisir de vérifier les paramètres d'entrée par défaut permet d'assurer que la méthode peut aussi bien être utilisé en interne qu'en externe sans créer une couche de sécurité.

Apprentissage scolaire

Mon parcours scolaire me conduit par la suite en classe préparatoire mathématique et physique (MPSI puis MP) et me fournit ma première approche scolaire de la programmation.

Ces deux années m'ont permis de découvrir un de mes paradigme de programmation préférée, la programmation fonctionnelle. Cette rencontre a clarifié et élargie ma vision sur la conception de programme informatique. J'ai appris un grand nombre de méthodes pour simplifié des problèmes, les séparer en sous-problème ou les liés a des théories mathématiques. C'est ce qui m'a conduit a choisir la voie des sciences informatique pour la suite de mon parcours.

Pour finir, mon passage en école d'ingénieur et mes premières expériences professionnelles m'ont discipliné et m'ont encouragé a utiliser des outils existant plutôt que de toujours tout recréer soit même.

Aujourd'hui, j'ai parcouru de nombreuses facette des sciences informatiques et, bien que je me soit orienté sur le développement Back-End (ce que vous ne voyez pas mais qui permet aux applications de fonctionner correctement), je continue a approfondir mes connaissances dans d'autres sujet. J'adore le devops et l'intelligence artificielle, et je ne manquerais pas de vous partager mes découvertes.

J'espère que cet article vous aura été une agréable lecture, et vous souhaite une très bonne année 🙂

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

fr_FR