Apprendre à programmer en langage C/C++

Vous n'avez pas les bases comme dirait Orelsan. Alors on reprend depuis le début. Tout le monde n'a pas la possibilité de faire une école d'ingénieur ou des écoles plus specialisé tels que Epitech ou 42. Je crois que le passionné en informatique soit capable de ce former seul grâce aux ressources sur le web et une bonne librairie.

En vérité la majorité des hackers et informaticiens sont autodidacte et continu à apprendre tout les jours. L'une des compétences les plus prisés de ce siècle se fait par formation sur le web. Encore faut-il trouver du contenu pertinent. Car on peut tomber sur de la mauvaise qualité ou encore des problèmes de mise à jours de la norme.

Le rendez-vous de tout les passionnés d'informatique passe par l'ancien site du Zéro renommé openclassrooms qui a longtemps servi de référence sur ces cours d'informatique. Si je ne savais pas par ou commencer j'y jeterai un oeil comme ressource crédible francophone. Il ne faut pas occulter le site developpez.net ou l'on trouve bien de l'aide pour la formation. Son forum était l'ancien stackoverflow français.

On se demande quand on commence la programmation par quel langage que je devrais commencer. Il faut savoir qu'un développeur maitrise plusieurs langage mais il faut bien commencer par en choisir un.

Ma stratégie conciste à apprendre le maitre langage, celui dont tous dérive pour connaitre les bases. En même temps je recherche à créer des logiciels libres et l'outil indispensable pour le faire est gcc sous un environnement GNU/Linux. Donc mon choix se porte en tout premier lieu sur le language C. Celui-ci est à la base de système d'exploitation de type UNIX. On le retrouve egalement sur Arduino le microcontrolleur. En réalité dans les systèmes embarqués bien souvent on retrouve du Linux avec du C/C++. Si vous choisissez d'apprendre la programmation sur Arduino en premier lieu on ne vous en voudra pas. On peut rapidement acquérir des bases solides sur des concepts tels que les variables, fonctions, conditions et boucles. Des concepts plus avancées de programmation seront plutôt développé en C tels que les pointeurs ou structures. Enfin on peut aborder la programmation orienté-objet sous C++.

La gestion de la mémoire en langage C apporte quelques difficultés face à des concurrents tel que Python qui utilise le ramasse-miette pour la gérée. On doit ce préocuper de celle-ci en langage C/C++ permettant d'avoir de meilleurs performances. Malgré tout le langage C est relativement facile à apprendre tel que le prouve son utilisation sous Arduino.

Parmis les ressources que je propose je préviligie ce qui sont moins gourmande en mémoire ainsi que leur possibilité d'adapter au besoin de chaque utilisateur. J'utilise une machine GNU/Linux qui est plus pratique pour le métier de développeur.

Pour créer un programme en C il vous faut un éditeur de texte pour programmeur tel que Vim qui est en natif sur toutes machine GNU/Linux et un compilateur comme gcc.

On ouvre un terminal et dans l'inviter de commande, le prompt on tape:

gcc -v

Le terminal nous renvoi la version de gcc ici la version 10.2.0 s'il est installé sur l'ordinateur.

On change de répertoire vers celui de travail et on crée un dossier src:

mkdir src
cd src

On va créer un fichier en C avec Vim:

vim hello.c

Dans Vim on a le fichier hello.c et on va écrire un simple programme qui affiche "hello world" en C, il faut basculer en mode insertion en appuyant sur la touche ipuis écrire ce programme:

#include<stdio.h>

int main() {

    printf("hello world\n");
    return 0;
}

Pour sauvegarder et quitter Vim on tape :wq!

Enfin on va compiler le programme. Rappel: c'est l'étape ou le programme va être traduit en langage machine à base de 0 et de 1 compréhensible pour le micro-processeur:

gcc hello.c -o hello

L'opération de compilation va créer un fichier binaire executable nommé "hello" visible en faisant un ls dans le répertoire de travail. Il reste plus qu'à lancer le programme généré par cette commande:

./hello

Qui affiche bien dans le terminal:

hello world

C'est tout ce que vous avez besoin pour commencer à coder en C. Retenez Vim + GCC et puis après quelques experiences Git et gdb pour approfondir le sujet.

Je vous recommande les meilleurs lectures sur le sujet pour apprendre librement la programmation: