Code 101 - La base de la programmation

Pourquoi apprendre à programmer ?

La programmation est un métier d'avenir. Transversale et présente dans tous les secteurs, elle est aussi accessible à tout un chacun — pourvu qu'on ait une connexion internet et un ordinateur, voire même un smartphone de nos jours. La bibliothèque municipale est aussi une possibilité.

L’avantage de ce domaine est le faible nombre de barrières à l’entrée : on peut faire abstraction des diplômes et autres formations coûteuses, pourvu qu’on ait la motivation et les capacités pour apprendre.

Ces capacités sont, grosso modo :

  • Persévérance
  • Rigueur
  • Adaptation
  • Curiosité
  • Maîtrise de l’anglais (difficile d’y échapper !)

Ces conditions étant remplies, on peut se former au fil de l’eau sur toutes les technologies nécessaires afin de trouver un emploi relativement facilement comparé à d’autres secteurs.

Le développement web est probablement la voie la plus accessible du secteur. En effet, le résultat est immédiat à l’œil nu côté dit “front-end” (partie visible d’un site web ou d’une application). La partie “back-end”, elle, est la face cachée de l’iceberg mais correspond en fait à la partie serveurs et bases de données. Un développeur ou ingénieur “full-stack” concilie au moins les deux, plus éventuellement d’autres domaines dont nous parlerons plus tard.

Il y a plusieurs axes à maîtriser, en apparence distincts mais qui se rejoignent finalement. Nous en parlerons dans les chapitres qui suivent.

La veille technologique est l'action de se tenir à jour par rapport aux tendances de l'industrie, anciennes comme nouvelles. Comme en médecine ou en droit, l'ingénieur informatique se doit d'être à jour.

Un ingénieur est une personne capable de conduire des travaux au sens large.

Mettre en place son environnement

Système d'exploitation

Le premier outil à maîtriser est son système d'exploitation. Windows, macOS et Linux sont tous de nos jours adaptés à la tâche. Sur Windows en particulier, on peut installer Windows Subsystem for Linux v2.

IDE : Éditeur (Intégré) de Texte

Ensuite, il faut un éditeur de texte ou, plus facile, un Environnement de Développement Intégré.

Quelques exemples connus et reconnus :

  • Notepad++
  • Visual Studio
  • Visual Studio Code
  • Jetbrains Suite
  • Vim
  • Emacs
  • Eclipse
  • Et bien d'autres encore

Préférez la seconde catégorie pour débuter. J'utilise personnellement Visual Studio Code.

Mon environnement personnel

Pour la curiosité :

  • macOS
  • iTerm2
  • OhMyZsh with powershell10k
  • Visual Studio Code with Dan Abramov’s theme Overnight
  • Homebrew

L'anglais

Une maîtrise au minimum basique de l'anglais est indispensable à la programmation. Les langages de programmation sont en anglais, les documentations et forums sont majoritairement en anglais.

Le code versionning

Versionner son code est essentiel. Il s'agit de garder l'historique des lignes et artefacts de code dans un repository. Un repository, ou répertoire, est un dossier rassemblant tous ces éléments.

Le système de versioning le plus courant est Git. Le concept est simple mais l’utilisation en est compliquée. Techniquement parlant, il s’agit d’un Graphe Direct Acyclique.

Assistance par ChatGPT, GitHub Copilot ou équivalent

Je déconseille fortement toute forme d'aide de ces outils pour tout développeur (expérimenté ou non), d'autant plus que ces LLM (Large Language Model) ont une forte tendance à "halluciner" (c'est bien le terme technique) des variables, fonctions ou pire qui n'existent pas.


Le debugging

Debugger est le plus dur dans l'informatique, surtout quand on débute.

L'expression bug vient littéralement d'insectes (bug en anglais) qui s'étaient insérés dans une mainframe (unité centrale) en 1947.

Pour debugger, il faut trouver la source du problème. Tout dépendra du contexte.

Souvent, on step dans le code, c'est-à-dire qu'on suit les flux de contrôle (control flow en anglais). Pour faire cela, on se sert soit de l'IDE, soit, plus simplement, des sorties console en JavaScript/TypeScript typiquement.

Une fois l'étape plus ou moins identifiée dans le code, on peut s'attaquer au problème à la racine ou bien, dans le cas contraire, hot patch juste le symptôme — surtout en cas d'urgence.


Choisir un langage de programmation

Les choix sont nombreux.

Il vaut mieux commencer par le plus simple : Python ou JavaScript/TypeScript.

L’avantage majeur du JavaScript est l’universalité : vous pourrez réaliser backend (Node.js) comme frontend.

L’autre avantage est sa popularité : c’est le langage le plus répandu dans le milieu du web (hors PHP), et donc énormément de ressources d’apprentissage et d’opportunités de carrière.