La programmation est un aspect de l'informatique qui peut en effrayer plus d'un, mais pourtant il est très important d'apprendre quelques langages pour vraiment améliorer ses compétences. Nous allons donc voir dans cet article quels sont les meilleurs langages à apprendre.
A savoir avant de commencer
Tout d'abord, qu'est ce que c'est un langage de programmation ?
C'est tout simplement un langage permettant à l'utilisateur (développeur) d' écrire du code source qui sera traité par l'ordinateur.
Au début, on peut se sentir perdu avec tous les langages qui existent, on imagine que pour programmer il faut des années et des années d'entraînement, la réalité est bien différente heureusement !
Certes pour devenir un expert, il faut passer beaucoup de temps devant son clavier, mais il est possible de s'amuser (oui oui c'est possible en programmation !) avec quelques bases dans un langage 😉
Cette remarque peut aussi s'appliquer dans 95 % des activités dans le monde. Par exemple en guitare, on peut être impressionné par les solos enflammés de notre rockstar préférée, cependant on peut aussi prendre beaucoup de plaisir avec quelques accord basiques qui s'apprennent en quelques mois.
L'avantage en programmation c'est qu'il est possible de trouver énormément d'informations sur Internet. L'apprentissage se fait donc naturellement, en fonction de nos besoins, de nos recherches.
Autre point important, peu importe les langages que vous apprendrez, la façon de communiquer avec un ordinateur reste la même, de plus les langages se ressemblent, ainsi en apprenant le C, vous allez aussi pouvoir apprendre plus vite d'autres langages comme le PHP et bien d'autres ! Je ferais un article sur l'apprentissage de la programmation si cela vous intéresse 😉
Comment choisir un langage de programmation à apprendre ?
![Les meilleurs langages de programmation pour le hacker Les meilleurs langages de programmation pour le hacker](http://media.paperblog.fr/i/844/8449739/meilleurs-langages-programmation-hacker-L-eU3M85.jpeg)
C'est une question qui revient très fréquemment, je vais essayer d'y répondre le plus clairement possible. Le choix d'un langage, c'est avant tout votre choix ! En effet chaque langage a ses spécificités, ses avantages et ses inconvénients. Certains langages ont été conçu pour une utilisation particulière, par exemple le HTML et le CSS servent uniquement à la création et mise en page de site web.
Je vais donc par la suite vous aider à faire votre choix.
Il va donc falloir choisir un langage qui correspond avec ce que vous vous voulez faire, je vais donner quelques exemples :
- pour le développement web : HTML, CSS, JavaScript, PHP et MySQL pour les bases de données
- pour la création de programme : C, Java, C++, C#, Python, VB.NET
- pour les matheux : Matlab
Il en existe beaucoup d'autres, je n'ai cité que les plus populaires, certain ne sont utilisé que dans un domaine précis comme le VHDL en électronique par exemple.
Bref vous l'avez compris, vous devez définir votre but en programmation pour choisir quel langage apprendre. N'écoutez pas ceux qui disent " Le C c'est vraiment de la mer**, je fais la même chose en python en 2 lignes ", il n'a peut être pas tort dans un cas mais chaque langage est unique, chacun a ses avantages et ses inconvénients 😉
Par quel langage débuter pour le débutant et l'aspirant hacker ?
Je vais maintenant me mettre à votre place dans le cas où vous êtes totalement débutant et que vous cherchez à apprendre la programmation en partant de zéro.
Chaque cas est différent, peut être que ce que je vais recommander ne vous conviendra pas. De nombreuses personnes ne seront sûrement pas de mon avis, mais je pense que ma petite expérience et le recul pourra vous aider si vous êtes perdu entre tous ces langages 😛
Pour que compreniez mieux mon point de vue, je vais vous raconter mon expérience personnelle. J'ai eu la chance d'apprendre pendant mes études le Python, un peu de SQL, et récemment le C. J'ai appris par moi même en ligne le HTML, le CSS, et le JavaScript. Je suis loin d'être un expert dans tous ces langages mais mes connaissances de bases me permettent de créer des programmes et des sites web. Je souhaite apprendre prochainement le PHP et le Java.
Bon assez parlé de moi, on va faire une petite étude de plusieurs langages et je vous donnerais mes conseils ensuite.
Le HTML et le CSS :
![Les meilleurs langages de programmation pour le hacker Les meilleurs langages de programmation pour le hacker](http://media.paperblog.fr/i/844/8449739/meilleurs-langages-programmation-hacker-L-_26AC_.png)
Le HTML c'est LE langage du web, son but est de structurer toutes les pages web. Je l'ai associé dans cette rubrique avec le CSS car ces deux langages sont comme deux meilleurs amis. Je ne vois pas trop l'intérêt d'apprendre uniquement le HTML sans le CSS ou vice versa. Le HTML permet donc de créer le contenu de la page et le CSS permet de mettre en forme la page, c'est à dire de changer les couleurs, la police, la taille des images, les fonds d'écran etc... Vous l'avez donc compris ce sont deux langages indispensables pour les développeurs web.
Ils sont vraiment très simple à apprendre ! Je vous conseille d'aller faire un tour sur https://www.codecademy.com/learn/learn-html-css si vous êtes intéressé par ces langages. C'est tout en anglais mais ce que j'aime sur ce site c'est qu'il propose d' appliquer directement ce que l'on apprend. C'est ce site que j'ai utilisé pour apprendre à créer des sites web statiques (statiques car ces deux langages ne permettent pas d'afficher des informations différemment selon l'interaction avec l'utilisateur).
Concernant le hacking, le HTML et le CSS ne sont pas forcément les plus intéressant, mais connaître les bases des ces langages ne demande pas beaucoup d'investissement et il est toujours utile de savoir comment est construite une page web.
Le JavaScript :
![Les meilleurs langages de programmation pour le hacker Les meilleurs langages de programmation pour le hacker](http://media.paperblog.fr/i/844/8449739/meilleurs-langages-programmation-hacker-L-8n8kJX.jpeg)
Voici un autre langage utile pour tout développeur web, le JavaScript permet de créer des scripts (comme son nom l'indique) permettant de dynamiser une page web, de créer une animation et plein d'autres...
Ce langage est un peu plus compliqué que les deux précédents mais reste quand même accessible. Je pense qu'il faut avoir des bases en HTML et CSS avant de se lancer dans le JavaScript. Pour apprendre ce langage je vous conseille d'aller sur Openclassroom. C'est un très bon site où l'on peut vraiment apprendre beaucoup de choses ! Vous pouvez retrouver le cours sur le Javascript ici https://openclassrooms.com/courses/dynamisez-vos-sites-web-avec-javascript
En sécurité informatique, il existe certaines failles comme les failles XSS qui nécessitent des connaissances en JavaScript. En effet, si un site web est vulnérable à une attaque de ce style, un développeur malveillant pourrait injecter n'importe quel script (petit programme) qui s'exécuterait sur l'ordinateur de la victime à l'intérieur de la page web ! On reparlera très bientôt de ces failles qui peuvent vraiment se révéler très efficaces.
Le PHP et le SQL:
Le PHP un langage que je connais moins, donc je vais moins m'étendre la-dessus. Il est utilisé pour les sites web comme Facebook ou n'importe quel site WordPress. Le PHP permet de créer des sites dynamiques ( différent des sites statiques vu précédemment). Cependant il faut quand même avoir des bases en HTML et en CSS avant de l'apprendre. On l'associe souvent avec le MySQL qui est un langage qui permet de gérer des bases de données.
Pour le hacker, le PHP n'est pas un objectif prioritaire, cependant comprendre et savoir écrire des requêtes MySQL peut permettre d'attaquer des sites sensibles aux injections SQL et mettre la pagaille dans les bases de données du site. On reparlera très prochainement de cette faille web ne vous inquiétez pas 😉
Le C :
Le langage C est sûrement le plus connu de tous, il a été inventé dans les années 1970 et a inspiré de nombreux langages par la suite comme le Java, le C#, le C++ ou encore le PHP. Il est encore aujourd'hui très utilisé, malgré son âge. C'est un langage plutôt bas niveau, c'est à dire plus proche du système, ce qui lui donne l'inconvénient d'être assez compliqué. Cependant il permet de réaliser des programmes très puissants !
Pour l'apprendre je ne peux que vous conseiller d'aller voir le cours sur Openclassroom https://openclassrooms.com/courses/apprenez-a-programmer-en-c . Programmer en C peut être parfois lourd ou frustrant mais il donne une très bonne compréhension du fonctionnement d'un ordinateur. C'est en partie pour ça que je le recommande vivement pour les hackers en herbe. De plus quand on sait programmer en C tout autre langage nous paraît tout de suite plus simple !
Un petit mot sur le C++ et Visual Basic
Le C++ est une amélioration du C car c'est un langage orienté objet, je ne vais pas rentrer dans les détails ici mais cela permet de simplifier les programmes. On l'utilise par exemple pour créer des jeux vidéos. Le C et le C++ sont vraiment deux langages très proches, et en apprenant le C vous apprendrez automatique le C++ en même temps.
Concernant le Visual Basic, il permet de réaliser des programmes Windows de façon très simple. Il est donc souvent utilisé par ceux qui souhaitent débuter en programmation. Je ne m'y suis jamais intéressé car cela fait très longtemps que je suis sur Linux, mais cela peut être une bonne initiation à la programmation.
Le Java:
![Les meilleurs langages de programmation pour le hacker Les meilleurs langages de programmation pour le hacker](http://media.paperblog.fr/i/844/8449739/meilleurs-langages-programmation-hacker-L-kMMLlQ.png)
Voilà un autre langage très populaire, le Java. Il est très utilisé pour les applications Android. Un des avantages du Java c'est qu'il est portable c'est à dire qu'il fonctionne sur n'importe quel système d'exploitation Mac,Windows ou Linux. Comme le C++ ou le JavaScript, le Java est un langage orienté objet. Il permet de réaliser des applications en ligne ou des jeux comme Minecraft.
Il n'est pas très utilisé en hacking mais il est reste très populaire, pour l'apprendre vous pouvez jeter un coup d'oeil à Openclassroom https://openclassrooms.com/courses/apprenez-a-programmer-en-java ou alors sur Codecademy https://www.codecademy.com/fr/learn/learn-java.
Le Python
![Les meilleurs langages de programmation pour le hacker Les meilleurs langages de programmation pour le hacker](http://media.paperblog.fr/i/844/8449739/meilleurs-langages-programmation-hacker-L-aB3BIx.jpeg)
Un de mes langages préférés, que j'ai gardé volontairement pour la fin 😛 C'est un langage puissant, clair et intuitif avec des possibilités quasiment infinies. On peut réaliser des petits scripts mais aussi de plus gros programmes beaucoup plus complexes. Il peut servir à créer une interface graphique, à faire circuler des informations sur un réseau, coder un site web et beaucoup beaucoup d'autres choses.
Il est portable donc fonctionne comme le Java sur toutes les plateformes. De plus, la communauté est très active, de nombreuses librairies peuvent être téléchargées pour améliorer encore le langage.
C'est le premier langage que j'ai appris, et je ne regrette pas, il m'a donné le goût de la programmation et m'a appris à développer des algorithmes de plus en plus complexes.
Pour l'apprendre encore une fois je ne peux que recommander Openclassroom https://openclassrooms.com/courses/apprenez-a-programmer-en-python, mais je vous encourage aussi de traîner sur les forums et de partager avec une grande communauté ici https://www.python.org/ .
Il est aussi extrêmement utilisé dans le monde du hacking, car comme dit précédemment il permet de créer des scripts très puissants, aussi bien au niveau du système d'exploitation qu'au niveau d'un réseau.
Un petit mot aussi sur le Ruby qui est un langage que je ne maîtrise pas, mais il est simple et très puissant. Il permet aussi bien de faire des sites web que d'écrire des petits scripts. Il devient de plus en plus populaire et les développeurs Ruby sont très recherchés. Il est aussi beaucoup utilisé par de nombreux hackers. Je compte bien m'y intéresser bientôt !
En conclusion
Le choix d'un langage dépend donc de l' application que l'on souhaite en faire. Selon moi, pour un apprenti hacker, commencer par le python me semble être un bon choix. Par la suite, apprendre le C peut vraiment aider à comprendre le fonctionnement d'un ordinateur et à être à l'aise dans beaucoup d'autres langages.
Pour ceux intéressés par le développement web ou alors les failles web, apprendre les langages du web est une excellente idée.
J'espère que grâce à cet article vous savez dans quel langage vous orienter. Il ne vous reste plus qu'à apprendre par vous même et surtout pratiquer !
Je ferais un article très prochainement sur comment apprendre la programmation. Si vous avez des questions n'hésitez pas, et si vous voulez un article sur un langage spécifique plus détaillés dites le moi en commentaire !