Par quel langage de programmation VOUS devez commencer
Le but de cet article est d’apporter le plus d’éclaircissements possible pour ceux qui débutent entièrement en programmation et qui se demandent à juste titre par quel langage de programmation ils doivent commencer.
Cet article répondra aux questions habituelles que les débutants se posent, et vous aidera à choisir concrètement le langage de programmation avec lequel commencer.
Envie de commencer sans plus attendre ? Téléchargez le guide complet pour apprendre les langage C, C# et Python ? Cliquez ici. Utilisez le code promo « FIRSTAPROG » pour l’obtenir à -20% (quelques codes restants). Je vous propose également de visionner le cours vidéo Ce que vous devez savoir AVANT d’apprendre la programmation.
Table des matières
Qu’est-ce que « savoir programmer » ?
En programmation, on tombe sur des opinions très différentes concernant le terme « savoir programmer ». Une personne qui vient de finir un cours en ligne sur la programmation et fait des « petits programmes » depuis une semaine sait-elle programmer ?
Et si on lui demande une tâche qu’elle ne sait pas faire avec le même langage de programmation, sait-elle toujours programmer ? et que se passe-t-il si elle a acquis une méthode d’apprentissage lui permettant de réaliser la tâche autrement ?
De là viennent beaucoup de critiques sur les livres qui parlent d’apprendre la programmation « en 2 semaines ».
En fait, il n’y a pas de réponses objectives à cette question. Il y aura toujours quelqu’un qui en sait plus, et quelqu’un qui en sait moins que vous. Le premier dira que vous êtes un « noob » le second que vous êtes un « pro ».
La programmation est un domaine qui prend des années et des années pour être bien maîtrisé. Et encore, si on arrête, on perd à nouveau facilement le fil dès lors que de nouvelles spécificités sont ajoutées au langage de programmation en question.
Loin de moi l’idée de vous déprimer, apprendre à programmer est un excellent choix mais qui ne représente peut-être pas exactement ce à quoi vous pensiez au début.
Je répète, apprendre à programmer n’est pas (juste) apprendre la syntaxe d’un langage et les divers mots-clés, mais savoir créer un programme donné qui correspond au but recherché, dans un délai respectable, avec des outils et des méthodes précises.
Programmer, c’est résoudre un problème.
Vous pouvez en fait imaginer un langage de programmation comme une vraie langue parlée. Apprendre les verbes de base et comment construire une phrase est un très bon début mais cela ne suffit pas directement pour parler avec un locuteur natif de la langue en question.
Pour se faire, il faut également parler. Parler encore et encore jusqu’à acquérir les bons réflexes et s’exprimer le plus clairement et facilement possible.
Certaines langues parlées sont d’ailleurs plus difficiles à apprendre que d’autres, tout comme certains langages de programmation sont plus difficiles à apprendre que d’autres.
Quelles sont les qualités requises pour être programmeur
Je suis absolument contre les personnes qui estiment qu’il faut avoir un certain diplôme ou un certain don pour pouvoir programmer (même chose avec le fait de devenir hacker).
Si l’on vous dit que vous ne serez pas programmeur pour l’une de ces raisons (ou si vous le pensez vous-même), tournez immédiatement le dos à ces affirmations.
Et même si des critères et qualités sont bel et bien requis pour savoir programmer, ils s’apprennent et se forgent.
Voici certaines qualités qui aident beaucoup dans le domaine de la programmation :
Être passionné(e)
Il s’agit même d’un critère qui aide dans tous les domaines de la vie, si vous êtes passionné(e) par quelque chose, vous aurez la force d’apprendre, de passer outre les difficultés et de réussir en allant jusqu’au bout. En programmation, vous devez notamment aimer apprendre, résoudre des problèmes et ne pas abandonner.
Ne pas abandonner
De façon très concrète, je vais détailler la dernière phrase du point précédent.
« Apprendre » signifie que vous devrez souvent apprendre de nouvelles choses pour réaliser telle ou telle tâche.
Résoudre des problèmes signifie que vous serez probablement un jour devant votre écran, bloqué(e) à ne pas savoir comment organiser votre programme ou écrire une fonction donnée.
Par faute de temps, de motivation, ou de complexité du problème, on abandonne facilement. Alors que la solution est souvent plus proche qu’on ne le croit. Petite note pour ceux qui se disent facilement qu’ils sont nuls : ce n’est pas vrai. Et il y a probablement quelqu’un de plus « nul » que vous, qui a pourtant réussi. Ayez confiance en vous, laissez tomber vos excuses et foncez ! Si vous avez accès à cet article, vous avez également accès à toutes les ressources en ligne sur la programmation.
Vous êtes bloqué ? vous êtes perdu ? Bravo et bienvenue dans le monde des programmeurs, vous n’êtes pas nul mais tout à fait normal.
« Vous êtes bloqué ? vous êtes perdu ? Bravo et bienvenue dans le monde des programmeurs »Cliquez pour tweeterPartager sur FacebookPartager sur LinkedInMettez en pause votre programme et partez à la recherche d’informations sur Internet. Apprenez de nouvelles technologies, de nouvelles méthodes d’implémentation, et continuez. Soyez souples dans votre apprentissage.
À ce propos, vous n’avez pas besoin de diplôme pour commencer à programmer. Attendre d’avoir un diplôme ou d’être admis à telle ou telle école est du temps perdu. Du temps passé à attendre que vous auriez pu utiliser pour apprendre à programmer en tant qu’autodidacte. Vous n’avez pas d’argent ? Il y a beaucoup d’informations gratuites sur Internet.
Certaines personnes sont vraiment très fortes en programmation (je n’en fais pas partie), et pourtant ils ont commencé avec rien, pas d’argent, pas de diplôme, même pas d’ordinateurs.
À l’inverse, on pense parfois que telle ou telle tâche demande des années de travail, alors qu’une solution très simple existe déjà. Ne réinventez pas la roue si ce n’est pas nécessaire.
Pratiquez
C’est un conseil que je donne souvent. Et cela car j’ai commencé la programmation en lisant des livres à la FNAC pendant mon temps libre. Je notais sur mon smartphone la syntaxe, les mots clés et comment installer les divers compilateurs/environnements de développement. J’avais des pages et des pages de « Notes ».
Puis je m’arrêtais là. J’avais lu des dizaines de livres, j’étais « prêt » à écrire des centaines de lignes de programmes…et quand j’étais rentré chez moi, j’avais tout oublié, je n’avais même pas installé quoi que ce soit et avais fini par jouer à Far Cry.
Je vous recommande donc de pratiquer directement en compagnie du livre que vous lisez. Le diplôme ne certifie pas votre qualité de programmeur, mais votre pratique et votre expérience le certifie.
Lire des livres n’est pas suffisant, il faut surtout lire du code. En lisant le code des autres autour du même sujet que celui qui nous intéresse, on découvre d’autres façons de programmer. Parfois on découvre des moyens plus efficaces ou plus directs de faire. Et de façon générale, on apprend à programmer tout simplement.
Open Source ou pas ?
Nous entrons ici dans un grand débat. Le but de l’article est de vous laisser le choix. La communauté Open Source est vaste et souvent favorisée lorsque l’on programme et souhaite contribuer à améliorer le monde tous ensemble. Nous sommes également plus dans l’esprit « hacker ».
Les projets Open Source que vous trouverez un grand nombre sur github.com vous permettront de réutiliser les projets d’autres personnes afin de les améliorer ou de vous baser dessus pour vos propres projets. Non seulement vous ne réinventez pas la roue, mais en plus vous l’améliorez. Vous avez également l’occasion de pratiquer et de communiquer avec des personnes qui connaissent déjà le domaine que vous souhaitez apprendre.
Dans l’autre sens, programmer des logiciels « fermés » (dont le code n’est pas distribué contrairement à un programme Open Source) permet de s’attribuer la création du programme et bien souvent d’en faire du profit.
Dans la suite de l’article, je vais vous montrer plusieurs langages de programmation totalement différents. Vous pourrez donc chercher celui qui correspond le mieux à votre besoin. Pour continuer l’analogie avec les langues, c’est comme si vous faisiez une immersion en Chine puis une autre au Japon pour savoir quelle langue vous plait le plus, dans le cas où vous hésitez entre les deux.
Quel est le meilleur langage pour commencer ?
J’ai déjà traité cette question dans cet article et vais donc faire plus vite ici.
Vous souhaitez apprendre une langue étrangère, par laquelle voulez-vous commencer ?
C’est exactement la même chose.
Suite à cette question vous devriez vous dire que cela dépend de ce que vous pouvez (ou voulez) faire en apprenant une langue donnée.
C’est exactement la même chose.
Pourquoi apprendre l’anglais et non pas l’allemand ?
L’anglais est la langue officielle ? L’allemand est trop compliqué ? Vous comptez finalement partir en Espagne et donc parler espagnol ?
Commencez donc par votre but. Pourquoi voulez-vous apprendre à programmer ? Que souhaitez-vous faire au final ?
Les réponses à ces questions vous permettront de choisir le langage de programmation par lequel vous devez commencer.
Plus d’informations pour savoir par quel langage commencer
https://www.leblogduhacker.fr/5-etapes-pour-debuter-en-programmation/
Nous allons à présent voir plusieurs langages de programmation populaires et ce que l’on peut faire avec, cela vous donnera une idée plus précise vers quoi vous orienter. Notamment lorsque plusieurs langages peuvent être utilisés pour votre but.
Je vous donnerai quelques liens pour savoir comment débuter avec le langage en question. Mais je ne pourrais bien entendu pas fournir de tutoriels complets par langage. Par contre, vous pouvez me spécifier en commentaire le langage qui a retenu votre attention en tenant compte de votre but, et selon mes compétences, je pourrais peut-être faire un article plus détaillé sur le langage de programmation en question.
N’oubliez pas que savoir programmer signifie également connaître l’algorithmique, savoir commenter/indenter son code, maitriser les paradigmes de programmation pour écrire du code fluide et opérationnel…etc.
Je vais passer en revue les 5 langages de programmation les plus populaires selon Open Source Guide :
Programmation en Java :
Java est un langage de programmation très populaire. Il est même le plus populaire d’après les statistiques précédentes.
Java est le langage officiellement supporté pour écrire des applications Android.
Voici un exemple de code Java :
Le code ci-dessus est tiré d’une application Android permettant de faire du monitoring réseau :
https://github.com/caarmen/network-monitor
Bien entendu, Java n’est pas uniquement réservé pour les applications Android, il permet également de créer des programmes pour Windows, Mac et Linux. On dit qu’il est « portable ».
Commencer avec Java :
Vous pouvez commencer via le site « officiel » : http://www.oracle.com/technetwork/topics/newtojava/overview/index.html
Note : beaucoup de tutoriels sont en anglais. Je ne l’ai pas indiqué dans les qualités requises mais comprendre l’anglais est un plus pour comprendre certains tutoriels (et même certains codes).
Une autre ressource très intéressante pour commencer est LearnJavaOnline : http://www.learnjavaonline.org/
LearnJavaOnline permet d’écrire directement du code Java en ligne et d’obtenir le résultat d’exécution.
Java est un langage de programmation orienté objet, il est donc fortement recommandé d’apprendre les concepts de la programmation orientée objet.
Programmation en C :
Voici un exemple de code C :
Le code précédent est tiré du programme ProcessHacker disponible ici :
http://sourceforge.net/projects/processhacker/
Voici l’interface du programme en question :
Le langage C est très populaire et très souvent mis en avant lorsqu’on cherche à développer des logiciels puissants. Il est lui aussi parfaitement portable est sert souvent de base aux systèmes d’exploitation. C’est un langage de programmation bas niveau et impératif (contrairement à Java et à d’autres). Concrètement, cela signifie que C se rapproche du langage machine (binaire).
C est cependant un langage plus difficile à maîtriser que d’autres que nous allons voir. Mais dans l’autre sens, il est plus puissant.
Commencer avec le langage C :
Envie de commencer sans plus attendre ? Téléchargez le guide complet pour apprendre les langage C, C# et Python ? Cliquez ici. Utilisez le code promo « FIRSTAPROG » pour l’obtenir à -20% (8 codes restants).
Programmation en C++ :
Voici un exemple de code en C++ :
Le langage C++ est également très populaire. Il est probablement utilisé dans la plupart des logiciels et jeux vidéos que vous connaissez.
Il reprend le langage C à quelques différences près dont le fait qu’il soit orienté objet.
Commencer avec C++ :
Vous pouvez vous documenter via le site officiel :
http://www.cplusplus.com/doc/tutorial/
Des cours intéressants sont également disponibles sur le site developpez.net :
http://cpp.developpez.com/cours/
Voici un autre tutoriel intéressant en anglais :
http://www.tutorialspoint.com/cplusplus/
Concernant un exemple réel, voici ProSysLib, un utilitaire en C++ qui donne des détails sur le processus courants :
http://www.codeproject.com/Articles/28547/ProSysLib-Dissecting-the-Process
Programmation en C# :
Le langage C# est le concurrent principal du langage Java. Il ressemble à Java sur certains points, notamment par le fait que c’est un langage de programmation orienté objet lui-aussi.
Mais il n’est pas portable dans le sens où il est réservé aux systèmes Microsoft.
Voici un exemple de code tiré du programme YAPM (Yet Another Process Monitor) disponible ici :
http://sourceforge.net/projects/yaprocmon/
Vous pouvez lire les différences entre C# et Java à l’adresse suivante :
https://msdn.microsoft.com/fr-fr/library/ms836794.aspx
Par la même occasion, C# ressemble à C++ (et à C) de par sa syntaxe, vous trouverez leurs différences ici :
http://dotnet.developpez.com/articles/migration/cpp_vers_csharp/#3
Encore une comparaison, mais cette fois avec VB.NET. Le langage C# appartient à la même famille que le langage VB.NET notamment car ils sont tous les deux « compilés » en un même langage intermédiaire appelé MSIL (Microsoft Intermediate Language).
La grande différence se situe par contre au niveau de la syntaxe, je profite du programme YAPM pour vous montrer un code VB.NET (car certaines parties du programme sont en VB.NET, ce qui est tout à fait possible au sein de Visual Studio) :
Le langage VB.NET est souvent utilisé (à tort ou à raison) par les débutants car il est très facile à comprendre et à utiliser.
Visual Studio permet notamment d’écrire très vite des programmes pour Windows.
Voici le programme YAPM une fois lancé :
Commencer avec C# :
Envie de commencer sans plus attendre ? Téléchargez le guide complet pour apprendre les langage C, C# et Python ? Cliquez ici. Utilisez le code promo « FIRSTAPROG » pour l’obtenir à -20% (8 codes restants).
Programmation en Python :
Voici un exemple de code Python :
Ce code est tiré d’un outil de monitoring des processus et du système :
https://github.com/giampaolo/psutil
Voici un exemple avec Glances qui utilise psutil :
Python est un langage devenu rapidement populaire. Il est orienté objet et portable. Il peut donc s’utiliser pour plusieurs types de programmes différents, et l’interface que vous voyez sur l’image ci-dessus est celle d’une interface « console », mais Python peut très bien être utilisé afin de créer des interfaces utilisateurs classiques.
Commencer avec Python :
Envie de commencer sans plus attendre ? Téléchargez le guide complet pour apprendre les langage C, C# et Python ? Cliquez ici. Utilisez le code promo « FIRSTAPROG » pour l’obtenir à -20% (8 codes restants).
Ressources générales
Dans l’espoir que les exemples cités plus haut vous aideront à savoir par quel langage de programmation commencer, voici enfin, certains sites qui vous permettront d’apprendre l’algorithmique, les paradigmes de programmation et les langages de programmation eux-mêmes (tous confondus) :
- Udemy (la plateforme la plus populaire pour les cours vidéo de toutes sortes)
- Les 5 étapes à suivre impérativement pour apprendre la programmation
- Les meilleurs sites pour apprendre la programmation
- 10 astuces pour devenir meilleur en programmation
Par où continuer
Vous devriez à présent, via cet article et les liens donnés, savoir ce que vous souhaitez programmer et avec quel langage le faire. Il vous reste donc à apprendre les bases et à prendre un exemple en essayant de le compiler et de le modifier.
Si vous avez d’autres questions plus techniques, j’y répondrai avec plaisir. Et si vous avez d’autres ressources à proposer pour apprendre, n’hésitez pas à les partager 🙂
Bon apprentissage et excellente continuation.