CodeGym /Blog Java /Random-FR /Choisir un langage de programmation
John Squirrels
Niveau 41
San Francisco

Choisir un langage de programmation

Publié dans le groupe Random-FR
J'ai découvert la programmation pour la première fois à l'école, dans des cours d'informatique. Celles-ci consistaient en quelques explications fastidieuses sur le fonctionnement des systèmes de nombres n-aires. Et, bien sûr, il y avait un test qui vous obligeait à écrire votre propre site Web. A l'époque, il me semblait qu'il n'y avait pas de métier plus ennuyeux. Comme j'avais tort ! Malheureusement, un programme d'informatique au lycée ne fournit pas une image complète du travail informatique et n'explique pas comment choisir un langage de programmation. Avant de demander "Quel langage de programmation dois-je apprendre ?", un débutant doit se familiariser avec les langages existants et leurs différences. Choisir un langage de programmation - 1

Seuil d'entrée : haut, bas, moyen

Les programmeurs parlent souvent du "seuil d'entrée" - un concept qui reflète la quantité d'efforts nécessaires à un "développeur junior" donné pour maîtriser suffisamment bien un langage de programmation pour écrire son premier programme sérieux et trouver un emploi. Le « seuil d'entrée » consiste à connaître :
  • particularités syntaxiques et nuances de la langue
  • bibliothèques
  • algorithmes et structures de données.
Travailler dans Excel pourrait même être appelé une sorte de programmation. Soit dit en passant, ce programme de bureau familier n'est pas aussi simple qu'il y paraît. Pour un utilisateur, le seuil d'entrée peut être la possibilité de créer une table. D'autre part, il peut s'agir de la connaissance de formules et de macros complexes. Dans les deux cas, ce seuil est faible. Viennent ensuite les quasi-langages, comme la programmation 1C . Ensuite, il y a les langages les plus simples à apprendre, par exemple PHP . De plus, nous avons des langages avec une syntaxe native (généralement dérivée de l'anglais) qui ne vous obligent pas à gérer la gestion de la mémoire, par exemple Java et JS . Ensuite, il existe des langages qui nécessitent une gestion extrêmement prudente de la mémoire, des structures de données et des algorithmes, par exemple, C etC++ . Les jeunes langages multi-paradigmes, par exemple, Scala , ont peut-être le seuil d'entrée le plus élevé, car leur maîtrise nécessite de plonger profondément dans de nombreux paradigmes de programmation. Mais avant de choisir un langage, vous devez décider de ce que vous voulez faire ensuite : développer pour le Web, l'entreprise, les ordinateurs de bureau ou les appareils mobiles .

Web ou pas Web ?

la toile

Les programmeurs Web peuvent être divisés en développeurs Frontend et Backend . Vous devez comprendre ce que signifient ces termes. Les développeurs frontend interviennent côté client, c'est-à-dire ce que l'utilisateur voit. Le "backend" consiste à manipuler et à stocker des données - la partie d'un service qui s'exécute sur un serveur. Pour un développeur Frontend qui décide quel langage de programmation apprendre, JavaScript et les frameworks JavaScript (Angular JS, React et autres) sont essentiels. Les dialectes JS, tels que CoffeeScript et TypeScript, ne sont pas aussi populaires que leur parent, mais ils peuvent également être utiles. Il y a aussi un Flash AS, et il y avait JScript et VBScript, mais seuls les dinosaures s'en souviennent =) En plus de tout cela, vous devez comprendre le HTMLet CSS . Choisir un langage de programmation - 2De nombreux débutants pensent que JavaScript et Java sont presque la même chose. Ne confondez pas ces langues. JS s'appelait autrefois "LiveScript" et n'a obtenu son nom actuel qu'en raison de la popularité du mot "Java". Pour un développeur web backend , PHP, Python, Ruby, Perl et Java conviennent. Ici, je veux me concentrer sur PHP (nous parlerons des autres langages plus tard). PHP est l'un des langages les plus faciles à apprendre, avec un seuil d'entrée bas. Selon une enquête auprès de développeurs Web bien connus, Ruby gagne lentement mais sûrement en popularité - il est apprécié pour sa concision et sa beauté.

Non Web (entreprise, ordinateur de bureau, mobile)

J'ai intentionnellement combiné les langages de programmation suivants dans cette catégorie avec un nom étrange. Vous pouvez utiliser la plupart d'entre eux pour écrire des applications d'entreprise, de bureau et même mobiles. Python est un langage de programmation orienté objet facile à comprendre et est devenu incroyablement populaire récemment en raison de la croissance de l'apprentissage automatique (ML) : les développeurs ML utilisent largement Python. MLest un domaine relativement nouveau dans l'informatique, et bien que nous l'ayons déjà vu porter ses fruits, je ne me précipiterais pas dans cette industrie lors du choix d'un langage de programmation. Tout d'abord, vous aurez besoin d'une EXCELLENTE compréhension des mathématiques. Deuxièmement, la vague de popularité peut passer de la même manière que pour la "blockchain" ou la "nanotechnologie". Cela dit, vous vous souviendrez peut-être que Python est utilisé dans le développement Web. C++: un langage classique où tout est construit sur l'opérateur "plus-plus". Ce langage est l'ancêtre de tous les langages de programmation orientés objet populaires, et un débutant doit absolument y prêter attention. De nombreuses applications populaires ont été écrites en l'utilisant. Mais l'excellente chance de "se tirer une balle dans le pied" et la syntaxe difficile à comprendre ramènent à zéro la probabilité qu'un débutant maîtrise ce mastodonte de la programmation. Kotlin, qui ressemble à Java pour les hipsters, est un mélange fou de programmation orientée objet et fonctionnelle. Il a été populaire récemment en raison du fait qu'un développeur expérimenté passant de Java à Kotlin peut sérieusement améliorer sa productivité. Un développeur expérimenté se familiarisera rapidement avec ce langage de programmation. Soit dit en passant, la même chose s'applique à Scala, mais Kotlin est populaire dans le monde Android. Java est facile à apprendre pour les débutants. Surtout avec l'aide de CodeGym =) La syntaxe Java est compréhensible et bien qu'il y ait un risque de "se tirer une balle dans le pied", ce n'est pas critique.

OOP ou POP ?

L'approche procédurale

L'approche orientée procédure consiste à écrire un programme composé d'instructions séquentielles qui peuvent être assemblées en un tout unifié pour résoudre efficacement un ensemble spécifique de problèmes. Ces langages incluent C , PureBasic et Pascal . Autrement dit, les langues qui désespèrent les lycéens et les étudiants. Il y a aussi le GO relativement jeunelangue. Cela dit, être familier avec les langages procéduraux est très utile pour un développeur potentiel. Mon immersion dans les langages procéduraux est venue avec le système Wolfram Mathematica et la recherche universitaire. Des algorithmes appropriés et des procédures simples, se déplaçant linéairement du début du programme à la fin, m'ont permis de calculer des valeurs pertinentes pour la physique théorique moderne. Ce langage de programmation "séquentiel" est juste ce qu'il faut pour vous aider à comprendre qu'il est parfois plus facile d'écrire du code qui effectue des calculs manuellement. L'apprentissage de la programmation orientée procédure (POP) fournit une bonne formation algorithmique, qu'un employeur souhaite presque toujours voir chez un candidat à un emploi. Absolument tout en informatique est construit sur la base de langages procéduraux, alors ne les sous-estimez pas. D'ailleurs, les débutants qui décident quel langage de programmation apprendre pensent souvent que seuls les langages OOP prennent en charge le multithreading. Ce n'est pas vrai. Les langages de programmation procéduraux permettent également des calculs parallèles. Choisir un langage de programmation - 3

L'approche orientée objet

Ceux qui ont commencé avec les langages procéduraux connaissent généralement bien les mathématiques, les algorithmes et les structures de données (en raison de l'accent mis par les universités techniques sur ces domaines). Pourtant, la réalité d'aujourd'hui est que les programmeurs qui réussissent sont généralement ceux qui ont maîtrisé une approche différente de la programmation : le paradigme orienté objet. L'idéologie OOP vous permet de construire des systèmes véritablement mondiaux. Une caractéristique de cette approche est sa similitude avec le monde réel :
  • Différents objets interagissent les uns avec les autres et existent indépendamment les uns des autres.
  • Les objets ont une hiérarchie et peuvent adopter ou modifier le comportement de leurs ancêtres.
  • Vous pouvez utiliser des concepts abstraits, mais seuls les objets qui existent réellement peuvent interagir.

Exemple

Les langages orientés procédures sont des outils permettant de résoudre des problèmes spécifiques. Si votre tâche change, même légèrement, vous devrez probablement consacrer du temps et des efforts à réécrire tous les algorithmes.

Imaginez un programme qui décrit un concessionnaire automobile qui vend des voitures et des camions, neufs et d'occasion. Dans un langage procédural, vous devez définir des fonctions qui traitent l'entrée ou la sortie de données pour chaque entité : une nouvelle voiture, un nouveau camion, une voiture d'occasion et un camion d'occasion. Que propose la POO ? Avec une approche orientée objet, il suffit de définir une classe de base Vehicle qui stocke les caractéristiques communes à tous les types de véhicules :

  • Faire
  • Cylindrée du moteur
  • Puissance
  • Année
  • Neuf ou d'occasion
  • Prix

Et les méthodes de réception et d'envoi d'informations. Ensuite, nous créons des objets qui héritent des caractéristiques de la classe Vehicle : Car et Truck. Ils contiennent des informations spécifiques à ces types de véhicules, ainsi que des méthodes d'entrée/sortie.

Du coup, la direction de la concession décide d'élargir la gamme en proposant également des motos. Dans le cadre de l'approche procédurale, nous aurions à recréer toute la logique des motos neuves et d'occasion, tandis qu'un langage OOP nous permet simplement de créer une nouvelle classe de motos qui hérite de toutes les caractéristiques de la superclasse de véhicules et contient des améliorations spécifiques aux motos.

Et que se passerait-il si nous ajoutions plusieurs véhicules ? Une implémentation procédurale nécessiterait plus de travail que la POO. De plus, plus la gamme est grande, moins d'opérations impliquant des objets seront nécessaires.

Ainsi, la POO est un style de programmation qui vous permet de combiner des données et des méthodes en une seule entité et de les utiliser comme un objet unifié. Les entités peuvent être organisées dans une hiérarchie et interagir les unes avec les autres sans se plonger dans les détails de mise en œuvre internes les unes des autres. Je soulignerai trois raisons pour lesquelles la POO est l'approche la plus progressive pour moi :
  1. La POO implique le développement indépendant de modules individuels, permettant à un programmeur ou à une équipe de choisir la méthode et les limites de contact et d'échange d'informations.
  2. Le code partitionné en petits modules est beaucoup plus facile à lire que les procédures monolithiques. En conséquence, un étranger peut rapidement comprendre votre code et, de même, vous pouvez rejoindre un nouveau projet si nécessaire.
  3. Une classe peut être modifiée sans affecter l'interaction d'une autre, mais une telle modification peut affecter la hiérarchie des objets enfants. Une fois que vous avez maîtrisé cette approche, développer et modifier un programme devient trivial.
Rappelez-vous qu'une approche n'est pas en conflit avec l'autre, mais la POO est toujours plus élevée dans la hiérarchie. Alors, pourquoi est-ce que je recommande Java ? Je soulignerais les raisons suivantes :
  1. Multiplateforme.

    Java fonctionne partout grâce à la machine virtuelle Java (JVM). L'un des principaux avantages de ce langage est sa nature multiplateforme : pas besoin de réfléchir à la bibliothèque à ajouter ou à l'architecture d'un processeur particulier. "Écrivez une fois, exécutez partout."

  2. Documentation.

    Il existe une énorme base de documentation : documentation officielle Oracle, portails de formation et une communauté en constante évolution. Les réponses à la plupart des questions qui se posent pendant le développement peuvent être trouvées en quelques minutes. L'essentiel est de comprendre ce qu'il faut entrer dans le moteur de recherche =)

  3. Popularité.

    Java est le langage de programmation le plus populaire au monde : en plus des développeurs Android et Web susmentionnés, presque tous les développeurs d'entreprise écrivent en Java. L'entreprise fait référence au développement interne de l'entreprise nécessaire aux besoins des grandes entreprises.

    Chaque année, les haineux prédisent "la mort de Java". Ils disent : « Oracle va arrêter de le supporter. Vous perdez totalement votre temps. » Ce n'est pas vrai ! Ils promettent de publier de nouvelles versions de Java tous les six mois.

    Pour moi, les expressions lambda en Java 8 étaient révolutionnaires et une révélation, sans parler des nouvelles versions ! Je travaille actuellement sur un projet "legacy", donc je ne me plonge pas dans les dernières innovations, mais c'est un fait que Java est vivant.

    Choisir un langage de programmation - 4
  4. Android.

    Au cours des 4 dernières années, Android a toujours détenu plus de 80 % du marché de la téléphonie mobile . Les téléviseurs, les lecteurs multimédias et même les systèmes d'infodivertissement de voiture fonctionnent sur ce système d'exploitation. Et le développement d'applications pour ce système d'exploitation se fait principalement en Java. Imaginez les perspectives qui s'ouvrent. Lorsque j'ai obtenu un poste de développeur Android, je me suis demandé combien valait le produit que je développais ? Il s'est avéré que le prix était d'environ 5 $ par an. Cela soulève la question, « alors d'où vient l'argent pour ce bureau, les salaires, le snack, la table de ping-pong, les robots et autres avantages ? La réponse réside dans le volume : notre application compte 20 millions d'utilisateurs.

  5. Les salaires.

    Et maintenant, cerise sur le gâteau : le salaire d'un développeur Java est parmi les plus élevés de l'industrie. Après tout, vous envisagez d'étudier la programmation dans un but précis : décrocher un bon emploi.

La popularité du langage de programmation

Il existe des sources d'information officielles, alors tournons-nous vers elles. Selon TIOBE , Java occupe la première place en octobre 2019. Dans le classement PYPL , Java se classe deuxième, loin devant JS et rivalisant avec le très tendance Python.

Conclusion

Lorsqu'un débutant envisage de choisir un langage de programmation, voici ce à quoi il doit faire attention :
  • Popularité (Java occupe constamment une position de leader)
  • Seuil d'entrée (pour Java, c'est moyen : les employeurs demandent un panel de compétences assez large)
  • Matériel disponible (bienvenue sur CodeGym =))
  • Domaines d'application : plus il y a de domaines où un langage de programmation est utilisé, plus il faut de spécialistes sur le marché. J'ai déjà mentionné comment Java prend en charge le développement multiplateforme, mais je ne me lasse pas de le répéter.
Bien sûr, il y a des écueils partout, mais celui qui fait un pas avance : vous seul pouvez décider quel langage de programmation choisir. Bonne chance dans l'apprentissage!
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION