Bonjour,
Du point de de vue de la résolution de problème (c'est à dire en gros pour écrire des "algorithmes"), il n'y a pas vraiment de différences entre des langages que j'appelle "généralistes" comme C++, Python, Java (ou même javascript ou php). Il peut y avoir des différences en terme de rapidité du code produit, mais ça dépend surtout s'il s'agit d'un langage interprété ou compilé (pour un langage interprété, il y aura en plus du temps d'exécution de "l'algorithme", du temps d'exécution consacré à interpréter le code, alors que pour un langage compilé, l'interprétation n'est faite qu'une fois lors de la compilation), et aussi cela peut dépendre des outils de compilation ou d'interprétation utilisés (certains sont mieux optimisés que d'autres), mais ce n'est pas vraiment lié à la nature du langage. Enfin, toujours en ce qui concerne la rapidité, c'est sûr que des langages comme le C ou le fortran, relativement "dépouillés" (ou l'assembleur qui est encore plus dépouillé) seront plus rapide qu'un langage plus ou moins sophistiqué dont font partie les langages objects comme C++, Java, etc, parce qu'il y aura dans le code machine généré des "sur-couches" de code machine ajoutées par les outils d'interprétation ou de compilation pour gérer la complexité de ces langages (des données sous forme objet, il faut plus de code machine pour les gérer que si c'est juste des cases dans un tableau). Par contre, plus le langage est sophistiqué, moins le développeur aura à faire de lignes de code.
Le choix d'un langage, selon moi, dépend surtout du context dans lequel tu veux l'utiliser. Par exemple, si tu es dans un context web et que côté serveur tu n'as que le php, bah, tu devras faire du php. Si c'est node.js côté serveur, tu feras du javascript. Si tu as besoin de faire une application pour mobile, il te faudra choisir un des langages disponibles pour fabriquer cette application en fonction du mobile ciblé (principalement objective C pour IOS et Java pour Android). Si tu es dans un contexte aérospatiale ou militaire (très procédurier du point de vue assurance qualité) ce sera sans doute Ada. Et ainsi de suite !
Il y a aussi des grosses différences en ce qui concerne les interfaces homme-machine et les bibliothèques de code disponibles. Certains langages, plus utilisés que d'autres, auront des bibliothèques de codes faites par d'autres plus fournies. Mais là encore, ce n'est pas vraiment dû à la nature du langage lui-même mais à son context d'utilisation.
Après, il y a des langages moins répandus (que je range dans la catégorie exotique) qui eux sont complètement différents. Je pense en particulier au Lisp (j'ai eu l'occasion de faire une fois "une ligne de code" en Lisp, ça m'a pris 4 ans et la ligne en question tenait sur 50 pages
), mais il y en a beaucoup d'autres. Ce n'est à utiliser que s'il y a vraiment un projet derrière, pas juste pour apprendre un langage de plus (ou alors simplement pour voir vite fait).
Tout ceci est bien joli, mais concrètement, par quoi commencer ? Le choix doit être essentiellement fait en fonction de la "demande". Je te conseille (dans cet ordre) Java, C++ et Python. Ils te serviront tôt ou tard.
Amicalement,