Lorsque qu'on est un jeune développeur on se retrouve souvent perdu dans la grande et immense jungle qu'est le monde de la programmation.
Je vais ici essayer de faire le tour des langages de programmation pour y voir plus clair et vous aider à savoir si vous êtes sur la bonne voie.


Tous les langages ont leur utilité

Ou presque du moins...
En effet, il n'existe pas un langage plus utile que l'autre ou meilleur que l'autre. Chacun a ses qualités et ses défauts. Et avant de parler de langages, faisons un petit tour des usages que vous pouvez en faire.

Le développement web

Si votre objectif est de créer des pages Web  alors le choix va être très simple, il faut se tourner vers JavaScript. Ce sera votre seule option. C'est tout simplement le seul langage de programmation utilisé par les navigateurs Web. Il faudra l'accompagner de deux autres langages de formatage qui sont le HTML5 et le CSS3. Ces trois langages forment ce que l'on appelle le développement Frontend.
Une fois le JavaScript maîtrise alors vous pourrez vous diriger vers l'apprentissage d'un Framework Frontend qui vous permettra d'être plus productif et qui vous aidera dans vos projets. Les plus connus en JavaScript sont : Angular, VueJS et ReactJS.
Plus tard, vous devrez peut-être apprendre à écrire du code côté serveur, mais concentrez-vous sur le JavaScript du navigateur (« frontend ») pour le moment.
Nous avons des formations de développeurs web sur Dhaki.fr

Le développement mobile

Tout comme pour le Web, le JavaScript peut être une excellente option pour le développement mobile.
Les frameworks JavaScript comme ReactJS pourront vous permettre d'écrire du code a la fois pour les applications Android et iOS.
Mais si vous voulez vus perfectionnez dans l'un des deux il faudra aller vers des langages comme Kotlin ou Swift qui sont dédiés a chaque OS.

Le système embarqué

Si vous aspirez écrire du code pour des systèmes embarqués (projets de robotique simples, petites voitures autonomes, domotique, lampes ou petits objets connectés, Internet des objets, imprimantes 3D, etc.) - vous souhaitez éventuellement apprendre les parties de C appliquées dans Arduino, une plate-forme de microcontrôleur bon marché et largement disponible, fréquemment utilisée dans ce type de projets.

Les jeux vidéos

Si vous souhaitez créer des jeux vidéo, il existe des plateformes de développement de jeux intégrée telle que Gamemaker Studio ou Unity. Ils vous permettront de vous concentrer sur la conception de jeux plutôt que sur les complications de la création et de la gestion des actifs et de la logique du jeu en code brut. Pour de nombreux jeux simples, vous n'aurez pas à écrire de code directement. Donc ici même pas besoin d'apprendre de langage de programmation.

L'automatisation de tâches

Si vous souhaitez vous concentrer sur l'automatisation des tâches pour votre ordinateur personnel, vous voudrez peut-être apprendre le script shell (script Bash pour Linux et Mac, PowerShell pour Windows).
Vous voudrez surement ajouter a cela des langages comme Python.

Les bases de données et leur analyse

Si vous êtes plus intéressé par le stockage, la gestion, le classement et l'analyse de grands ensembles de données, vous souhaitez probablement un langage de requête de base de données (tel que SQL) ou des macros de feuille de calcul. Ce ne sont pas des langages de programmation techniquement à part entière, mais ils sont adaptés à la tâche et vous devrez les apprendre de toute façon pour le faire.
Encore une fois il faudra aller vers des langages comme Python et ses libraires de Machine Learning comme Pandas TensorFlow ou Keras. Java peut aussi vous être utile avec ses frameworks de Big Data.

Le côté scientifique  

Si vous êtes intéressé par le génie mécanique ou les mathématiques pures (physique, statistiques, etc.), pensez à MATLAB ou Wolfram Mathematica. Vous pouvez les considérer comme des «calculatrices graphiques sur les stéroïdes » - mais cela ne fait qu'effleurer la surface. Mais là encore une fois ils ne serviront que sur le côté scientifique la ou un langage comme Python fera aussi le travail mais pourra aller plus loin.

Il existe aussi des façon d'apprendre la programmation sans pour autant programmer. Si vous voulez comprendre les concepts de base de la programmation avant de plonger plus profondément, un langage de formation comme Scratch pourrait être un bon choix (l'une des autres réponses mentionnait un certain nombre d'options similaires).

Apprendre la programmation sur Dhaki

Le meilleur langage pour apprendre

Et c'est ici surement que mon avis va diverge avec d'autres développeurs.
Parce qu’en effet j'ai bien un avis tranché là-dessus. Il y a bien malgré tout des langages plus fait pour les nouveaux que d'autres.

Tous les langages se ressemblent

Pour tout langage de programmation que vous apprenez, il vous sera utile de comprendre « pseudo code… Qui peut sembler compliqué (si vous essayez de parcourir cet article de Wikipédia) mais qui est à peu près aussi simple qu'un aperçu.

Toute programmation se résume à des opérations primitives et un cheminement commun. Disposer d'une entrée, générer une sortie et manipuler des nombres ou des chaînes de caractères. Celles-ci sont fondamentalement combinées en séquences, boucles et structures de « sélections » (conditionnelles).

Une description humaine d'une procédure suit ces mêmes directives : faites ceci, puis cela, puis faites cette autre chose si une chose est vraie, sinon essayez cette alternative, et continuez à faire quelque chose tant qu'une condition est vraie.

Et c'est à cela que sert le pseudo code, exprimer en langue humaine ce que l'on veut exécuter a l'aide d'un langage de programmation.

Apprendre la programmation sur Dhaki

Python le meilleur langage

Oui c'est donc bien Python qui pour moi gagne entre tous les langages. Mais attention encore une fois les avis peuvent diverge. Et encore une fois il est ici de vous donne le meilleur langage pour apprendre et non pas le meilleur langage tout court.

La syntaxe Python est très similaire au pseudo code. Et c'est pour moi ce  qui en fait le langage parfait pour apprendre. Python est très lisible.
Voici un exemple de code en Python. N'importe quel humain peut le lire et le comprendre même sans connaitre Python.

ageEric = 50
ageHenry = 20

if ageEric > ageHenry:
    print("L'age de Eric Praline est incorrect")

Les autres avantages de Python sont qu'il permet un vaste domaine de programmation. En effet il permet presque tous les domaines cite pus haut. Il accompagne dans la réalisation de jeux vidéos et de 3D avec Blender, permet l'automatisation de taches, il peut être utilisé pour faire du système embarque et aussi pour le backend d'applications Web et mobile.

Pour finir Python a une énorme communauté. Le langage existe depuis très longtemps. Ce qui est très pratique lorsque vous apprenez un langage. Car si vous rencontrez un problème vous trouverez surement d'autres développeur dans le même cas que vous. Et même une solution a votre problème sur des forums comme Stack Overflow.

Apprendre la programmation sur Dhaki

Javascript juste derrière

Avec Javascript vous n'avez probablement pas besoin d'installer quoi que ce soit (ou peut-être juste un éditeur de texte) pour jouer avec.
(Il existe également de nombreux sites où vous pouvez vous apprendre le Javascript via votre navigateur sans rien installer).
Voici pourquoi Javascript serait derri

Mais les principaux inconvénients de JavaScript sont les suivants:

  • Son modèle d'exécution est basé sur une exécution dans quelque chose comme un navigateur. Il n'y a pas d'accès «normal» à la sortie et à l'entrée.
  • Il a été étendu et amélioré de manière organique sur une vingtaine d'années. Cela a été un peu plus perturbateur et plus difficile à suivre que l'évolution de Python. (Le seul point de rupture majeur dans l'histoire de Python a été entre 2.7 et 3.x; cela implique des changements qui sont visibles, voire modérément douloureux. JavaScript en a eu beaucoup plus et ils représentent des écueils pour l'étudiant / novice)
  • JavaScript est généralement plus détaillé pour de nombreuses opérations courantes. De plus, la façon dont vous utilisez les modules et bibliothèques JavaScript est très différente lorsque votre code est exécuté dans un navigateur (balises <script…> </script> en HTML) par rapport à la façon dont vous les utiliseriez dans Node.js(le premier moteur JavaScript côté serveur) ou dans certains autres environnements / moteurs qui ne sont pas pilotés par HTML. (En comparaison, la sémantique d'importation de Python est raisonnablement claire et facile à utiliser pour les programmeurs de niveau novice)
  • JavaScript est à thread unique mais prend en charge l'exécution asynchrone… principalement via la gestion des rappels. Ceci est difficile à expliquer aux nouveaux programmeurs et aboutit à des discussions comme : Quand JavaScript est-il synchrone ? Le nouveau développeur sera amené a en comprendre le concept... mais la confondra avec la gestion de la boucle d'événements asynchrone).

La programmation en Python est un peu plus simple. Python prend en charge le comportement asynchrone lorsque vous souhaitez en savoir plus et l'utiliser. Mais vous n'avez pas besoin d'en savoir plus avant d'être prêt. En JavaScript, vous devez en savoir plus sur la boucle d'événements et le multitâche coopératif (comportement asynchrone) car il est sauvegardé dans les moteurs et la sémantique est exposée pour presque tous les codages non triviaux. Python prend également en charge le multithreading complet et le multitraitement lorsque vous êtes prêt à l'utiliser.

Ce ne sont pas des problèmes énormes pour un programmeur expérimenté. Mais un novice qui apprend JavaScript est exposé à des concepts étranges avant de les rencontrer en Python… par nécessité plutôt que par avancement.

La syntaxe de Python est encore un peu plus simple que les accolades et les points-virgules (principalement mais pas toujours facultatifs) qui font que JavaScript ressemble plus à Java ou C / C ++, vous passez donc ce temps et cet effort cognitif à en apprendre davantage sur les bibliothèques standard. , comment faire plus de choses, plutôt que comment gérer les complexités du langage et de son environnement d'exécution.

JavaScript est très bien car il permet d'avoir un visuel direct avec le HTML et CSS sur nos premiers projets. Ce qui peut être un excellent argument pour un novice. Mais Python permettra de faire plus de choses.
Surtout si le novice en question souhaitera aller vers de l'IA, du systeme embarqué ou de l'automation.

Apprendre la programmation sur Dhaki

SOURCES:
Wkipedia Python : https://fr.wikipedia.org/wiki/Python_(langage)
Wikipedia Js : https://fr.wikipedia.org/wiki/JavaScript
Quora Best Language Learn : https://www.quora.com/Which-is-the-most-easy-and-effective-programming-language