Table des matières
Ouvrir table des matières
Par où commencer en programmation ?
Vous avez certainement lu mon guide et parcouru la plupart de mes articles. Vous avez reçu pas mal d’informations, mais il y a une chose que je n’ai pas abordée et qui vous pose problème : par où commencer ? Que vaut-il mieux apprendre et commencer en premier en programmation pour mettre toutes les chances de son côté ? Comment savoir si programmer va me plaire ?
Suivez le guide !
L’algorithmique, le point commun de tous les langages de programmation
Je vais vous expliquer brièvement ce qu’est un algorithme pour bien comprendre son importance. Mais il faut que vous sachiez que l’algorithmique est la chose que vous NE DEVEZ SURTOUT PAS négliger en débutant la programmation !
C’est un élément indispensable pour le bon déroulement de votre apprentissage et de la réalisation de vos applications. C’est le point de départ pour bien démarrer et éviter certains problèmes dans votre programmation.
Passons à l’explication : un algorithme est composé d’une série d’instructions pour arriver à un résultat. Et ces instructions peuvent elles-mêmes être des algorithmes. L’exemple le plus courant et le plus simple à comprendre est la recette d’une cuisine : la recette est un algorithme puisqu’elle contient une série d’instructions pour arriver à une finalité, un résultat.
Et bien souvent, ces instructions appellent d’autres algorithmes (qui contiennent aussi d’autres instructions) par exemple pour une recette de cuisine où l’on vous indique de mettre votre préparation au four à 180° (l’algorithme qui serait déclenché derrière sera par exemple d’allumer le four et le régler sur 180° et d’y placer votre préparation quand celui-ci à préchauffé).
Comme vous le devinez, ses instructions suivent un ordre logique d’instruction pour aboutir à quelque chose. Un algorithme peut être sous 2 formes :
- sous forme de procédure : l’algorithme effectue un traitement pour résoudre une problématique sans renvoyer un résultat
- sous forme de fonctionnalité : l’algorithme effectue un traitement pour résoudre une problématique et renvoie un résultat
Ce que vous devez retenir c’est qu’un algorithme permet de traduire une problématique humaine dans un langage informatique de façon logique. Grâce à cela, vous vous assurez de mieux structurer votre code afin de le rendre plus performant et beaucoup plus lisible.
En plus d’améliorerez les performances dans vos programmes, vous vous assurez une cohérence dans les instructions et lorsqu’il y a un problème il vous sera plus facile d’en trouver la cause et d’apporter une correction.
Il existe des tas d’algorithmes informatiques très célèbres, mais laissez-moi vous citer 2-3 exemples célèbres que vous utilisez certainement tous les jours :
- PageRank, l’algorithme de recherche Google : il mesure de façon quantitative la popularité d’une page web, permettant d’améliorer le positionnement d’une page web par rapport à une autre dans une recherche. C’est cet algorithme qui vous permet d’obtenir le résultat de votre recherche dans le moteur de recherche de Google.
- Le célèbre fil d’actualité de Facebook : vous devez savoir que Facebook reçoit plusieurs milliers de contenu chaque seconde et qu’il est impossible de vous présenter l’entièreté sur votre fil d’actualité au risque de ne pas tout voir ou de passer son temps qu’à faire. C’est humainement impossible surtout que certains contenus ne vous intéresseront pas. L’algorithme qui gère le fil d’actualité se charge de présélectionner le contenu potentiellement intéressant pour vous en analysant vos centres d’intérêt, vos préférences et vos interactions avec le contenu déjà consulté. Votre fil d’actualité apprend petit à petit à vous connaître pour affiner ce qu’il doit vous afficher.
- Suggestions d’achats par les e-commerces : des algorithmes performants analysent votre comportement sur les sites que vous visitez dans les sites e-commerces (temps d’activité sur une page, clic, navigation) pour mieux vous proposer des produits pouvant susciter votre intérêt. Ce sont de redoutables outils marketing qui apprennent et analysent votre comportement pour mieux vous engager à passer à l’action en alimentant toujours plus votre panier d’achats.
Et ensuite ?
Une fois les bases de l’algorithmique acquise et que vous avez mis en pratique vos connaissances, vous êtes désormais capable d’en créer dans n’importe quel langage de programmation. Enfin en théorie. Car même si votre algorithme peut être le même d’un langage à l’autre, il y aura quand même des subtilités.
Elles peuvent être liées à votre environnement de travail, vos connaissances sur le langage de programmation ou tout simplement le langage de programmation en lui-même.
Vous devez comprendre et gardez en tête qu’un langage de programmation n’est rien d’autre qu’un outil vous permettant de résoudre des problématiques dans un contexte donné, mais comme tout outil, il possède certaines caractéristiques et spécificités qui lui sont propres et qu’il vous faudra appréhender.
On retrouve très souvent ses informations dans la documentation et dans la définition du langage.
Choisir son premier langage est difficile, car on veut absolument choisir le bon. Vous vous demandez quel est le meilleur langage de programmation pour commencer à coder ? Désolé de vous décevoir, mais il n’y en a pas, car il faut comparer ce qui est comparable.
Les finalités ne seront pas les mêmes si vous souhaitez programmer dans un langage compilé plutôt qu’un langage interprété par exemple. Mais je m’éloigne du sujet.
J’ai un projet et je sais ce que j’ai envie de faire
L’attitude à avoir pour choisir son langage c’est de savoir ce que vous voulez faire dans l’immédiat. Si vous avez un projet ou des objectifs précis en programmation, le choix du langage sera très vite influencé par celui-ci, car vous aurez une idée précise.
Vous voulez faire un logiciel exécutable sur Windows ? Une application mobile ? Une application web ? Un site Web ? Si votre projet ou ambition est précis, le choix du langage sera plus facile vous filtrerez le choix de votre langage par rapport à votre finalité.
La programmation me fascine, mais est-ce que cela va me plaire ?
Si votre approche est « je suis fasciné par la programmation et j’ai envie d’en faire » alors il n’y a pas de but précis et il est difficile de choisir le langage qu’il vous faut.
Je suis partisan de la loi de Pareto 🔗 (20/80) qui consiste à fournir peu d’effort pour un maximum de résultat. C’est d’ailleurs le but de la programmation, automatiser des choses pour faire gagner du temps. Appliquer cette loi pour choisir son 1er langage quand on n’a pas de but précis en programmation présentera deux avantages :
- vous vous initiez dans ce domaine rapidement pour voir si cela vous plaît vraiment
- il n’est pas apprendre l’algorithmique dans un premier temps
Un langage de programmation 20/80 pour débuter et découvrir la programmation de façon ludique et en douceur c’est le langage Arduino pour moi. Le langage Arduino est très inspiré du C/C++ qui sont des langages réputés pour être performant dans l’apprentissage de la programmation. C’est un langage assez facile à appréhender.
La programmation sur Arduino est spécifique sur un point puisque pour tester votre programme vous devrez le téléverser sur une carte Arduino (il faut aussi acquérir quelques composants sinon à part faire clignoter une LED sur la carte vous ne ferez rien d’autre).
Votre code va donc produire une action perceptible qui sera dans le monde réel. C’est très ludique et très instructif. Si vous souhaitez avoir plus d’informations sur Arduino, vous pouvez lire cet article sur mon autre blog 🔗. Il faut savoir cependant que les microcontrôleurs ne possèdent pas beaucoup de mémoire pour stocker votre programme (quelques Ko).
Cela vous force à faire du bon code optimisé dans un environnement limité en ressource. Ces limitations incitent à vous creuser un peu les méninges dès le début en programmation et d’obtenir des bonnes pratiques pour produire de petits programmes optimisés.
Et qui dit petit programme dit aussi qu’il n’est pas nécessaire d’apprendre et de mettre en place tout un tas d’outils plus ou moins obligatoires lorsque l’on fait de la programmation comme par exemple l’utilisation d’un serveur, de suivi de projet ou même de tests unitaires. Vous achetez une carte Arduino et installez l’IDE Arduino et c’est tout !
OK, et après ?
Si vous aimé la programmation et que vous y prenez du plaisir alors continuez à pratiquer ! L’apprentissage et la maîtrise d’un langage ne sont pas des sprints, mais des marathons où il faut savoir jauger sa motivation et sa persévérance. Je ne parle pas de semaines ni même de mois mais d’années !
Cela ne se fera pas en un claquement de doigts. Ce ne sera qu’en pratiquant et qu’en faisant des erreurs que vous progresserez dans ce que vous faites. Il faudra être très patient.
Une fois que vous vous êtes fait la main sur ce genre de langage alors passez à un langage qui vous correspond réellement et qui soit en accord avec votre but et vos objectifs en programmation.
Conclusion
Si vous êtes sûr de vouloir vous investir dans la programmation, apprenez dès maintenant l’algorithmique. Ce n’est pas du temps perdu bien au contraire. Cela optimisera votre code, vous permettra de définir la logique de votre programme plus rapidement et vous facilitera le débogage sur le long terme.
Si en revanche vous n’êtes pas sûr de vous et que vous voulez tester dans un premier temps par curiosité, alors testez le langage Arduino. C’est un langage efficace pour savoir rapidement et simplement si la programmation vous plaît.
Il a l’avantage d’être facile à appréhender et ne nécessite pas de connaître l’algorithmique dans un premier temps.
Vous savez ce qui vous reste à faire, alors à vous de programmer !