Choisir votre premier langage de programmation

C'est certainement l'une des questions qui me vient le plus dans ma boîte de réception quand je parle de programmation. Si nous allons commencer une série d'articles qui vous permettront d'apprendre à programmer et de rendre des connaissances gratuites sous forme de contributions à des communautés de logiciels libres / open source à travers le monde, il est nécessaire de répondre à cette base si un peu difficile question. Quel langage de programmation dois-je apprendre?

Un peu d'histoire

Afin de commencer à comprendre et à choisir un langage de programmation, il faut d'abord en connaître un peu plus sur son histoire, ses utilisations et ses fonctions, et comment ils résolvent différents besoins au fil du temps.

Langages machine (bas niveau)

Mieux connu sous le nom de Assemblée, sont des langages de programmation que nous pourrions définir comme des dialectes d'un langage plus général ... Cela semble un peu compliqué mais je vais illustrer cela ... Nous savons que le langage universel de l'informatique est électricité, cela signifie qu'en fin de compte, ce que lit un ordinateur est 0sy 1oui, appelons ça eanglais informatique. Dans cet exemple, l'espagnol est la règle de base, mais comme nous le savons bien, l'espagnol parlé par les Latinos n'est pas le même que celui parlé en Espagne, et même ainsi, l'espagnol du Pérou n'est pas le même que l'espagnol d'Argentine. Évidemment, nous avons tous presque les mêmes mots (0sy 1s), mais l'utilisation et la signification peuvent varier selon le contexte.

Cela se produit au niveau du processeur. Quand on parle de architectures informatiques, (amd64, intel, arm, ...) nous nous référons au dialecte de cela ordinateur espagnol. En effet, différentes entreprises comprennent l'ordre et la signification à leur manière, de sorte que certaines varient dans des détails tels que le flux du courant ou l'ordre dans lequel ils vont être conservés. 0sy 1s.

Ces langages de programmation sont extrêmement rapides, car ils fonctionnent au niveau de programmation le plus bas possible, mais ils dépendent fortement de l'architecture et sont certainement un peu plus compliqués à apprendre que les autres. Ceux-ci nécessitent souvent une base de concepts plus large afin de transformer les données et d'y exécuter des choses utiles. Pour les amateurs de jeux vidéo, un exemple serait les consoles SEGA, qui utilisaient Assembly pour programmer leurs jeux. Évidemment, à cette époque, la quantité de mémoire était minime par rapport à aujourd'hui, et il était nécessaire de maîtriser un langage qui pouvait être rapide et produire des programmes légers.

Langues de haut niveau

Ce grand groupe envisage les langues qui ont suivi Assemblée. La nécessité d'obtenir un code portable a conduit à l'émergence d'un groupe de langues appelé compilé. Parmi ceux-ci, le premier à en profiter est C, qui a eu une prédominance dans la programmation au niveau du système d'exploitation depuis les années 70.

Langages compilés

Voyons un exemple pratique de ce que je commente. Regardons un programme en langage C très simple qui imprime une ligne de code.

Posséder. Christopher Diaz Riveros

Après l'avoir compilé, nous avons les éléments suivants:

Conception personnelle: Christopher Díaz Riveros

Mais voyons maintenant ce que nous aurions à écrire pour répliquer le même résultat dans le code d'assemblage:

Posséder. Christopher Diaz Riveros

Ceci est la traduction de nos 3 lignes de code de simple.c, l'archive simple.s est créé à l'aide de la commande gcc -S simple.c et c'est ce que notre processeur comprendrait dans un dialecte Assemblée. Evidemment pour créer un exécutable composé de 0sy 1s le fichier doit être traité simple.s et connectez-le aux bibliothèques partagées de notre système. Ceci est fait en utilisant un assembleur (as) est notre valeur principale.  connecteur (ld).

Les langages compilés offrent un grand avantage par rapport aux langages de bas niveau, ils sont portable. La portabilité fournit du code qui peut être exécuté sur différents processeurs sans qu'il soit nécessaire de générer un code spécifique pour chaque architecture. Un autre avantage évident est la simplicité qu'il utilise lors de la lecture et de l'écriture de code. Parmi ses principaux inconvénients, nous avons une grande complexité, car par rapport aux types de langages suivants que nous verrons, la liberté qu'offre C peut être nuisible si vous ne savez pas contrôler, c'est certainement comme remettre une arme à feu , il peut arriver que dans le manque d'expérience, une personne finisse par se tirer du pied pour tenter de nettoyer l'arme.

Langues interprétées

Au sein de ce groupe, nous avons une grande variété de langages, parmi les plus importants, nous avons Python, Ruby, Javascript, PHP, etc ... L'idée de base de ces langages est de fournir un moyen rapide de créer et d'exécuter des programmes , c'est parce que de nombreux processus difficiles sont exécutés dans l'interpréteur et que la programmation de la logique est ce qui est implémenté dans le code. Regardons le même exemple ci-dessus mais cette fois écrit en Python:

Posséder. Christopher Diaz Riveros

Parmi les choses les plus remarquables, nous pouvons voir que la première ligne est chargée d'appeler l'interpréteur (le programme qui exécutera notre application) et que le code suivant est plus "simple" que sa version en C, puisque tout le gros travail est effectué sur l'interprète.

Posséder. Christopher Diaz Riveros

Les langages interprétés offrent au développeur une plus grande couche de sécurité, car ils ont des contrôles de sécurité plus rigoureux (ATTENTION qu'ils ne sont pas parfaits, car même les meilleurs peuvent faire des erreurs) et nous ne subissons plus le risque de tirer une arme sans s'en rendre compte, puisque au premier essai, l'interprète lèverait une alerte et l'exécution serait annulée. Le principal inconvénient devient évident lors de l'exécution du programme, car il est plus lent que son homologue binaire, ceci précisément en raison de la plus grande quantité de traitement pour pouvoir s'assurer que le code fonctionne. Si le programme ne nécessite pas de délais extrêmement courts, la différence peut passer inaperçue, mais si nous parlons de milliers ou de millions de données par seconde, la différence devient exponentiellement perceptible dans les langages compilés.

Dactylographie

C'est une caractéristique des langages de programmation, ceux-ci peuvent être fortement faiblement tapé. Je vais laisser ce sujet pour un autre article, car il est nécessaire et curieux de comprendre comment la mémoire est stockée dans un programme, mais pour l'instant il suffit de faire la distinction: les langues fortement typées sont celles qui nécessitent de connaître le type de données qui va être travaillé sur une variable ou constante, tandis que le faiblement les types peuvent effectuer des conversions afin implicite et tout dépendra d'une hiérarchie de conversion suivie de la langue. (Si ce n'est pas compris maintenant, pas de problème, nous le laisserons pour plus tard)

Paradigmes

Comme tout dans le monde GNU / Linux, les langages de programmation sont basés sur des paradigmes et des communautés sont générées autour d'eux. Par exemple, nous avons le Fondation Python o Rubi o PHP o Bash (auquel cas il s'agit de la communauté GNU). Ce que je veux dire, c'est que je ne peux pas exprimer le grand nombre d'avantages et d'inconvénients de chacun, mais je peux vous dire que là où il y a un langage de programmation gratuit, il y a une communauté à apprendre et à participer. Il convient de mentionner que de nombreux interprètes de langue, sinon tous, sont écrits en C, ou en un dérivé proche, et leur développement est généralement effectué par un groupe plus petit de la communauté, qui est chargé de prendre des décisions qui affecteront tous les utilisateurs de la langue. Des institutions peuvent même être constituées pour assurer le bon développement du langage, comme c'est le cas avec C.

Lequel choisir?

Nous avons déjà assez parlé des langues et je ne réponds toujours pas au plus important 😛. Mais j'espère qu'après avoir relu ce petit article, il ne m'est pas nécessaire de vous dire quelle langue choisir, car avec ces informations vous êtes tout à fait capable d'en rechercher une qui suscite la curiosité. Evidemment si vous souhaitez apprendre à programmer dans une langue Assemblée cela prendra beaucoup de temps avant de pouvoir avoir quelque chose de fonctionnel, le temps sera considérablement réduit si vous optez pour un langage compilé, où en plus d'avoir la portabilité sur les systèmes * NIX, vous pourrez apprendre des informations concernant le fonctionnement du même système, car le contact avec C ou des dérivés vous fait apprendre d'une manière ou d'une autre comment un système d'exploitation fonctionne d'une manière générale. Enfin, si vous voulez apprendre quelque chose de léger et qui vous permet de faire beaucoup sans avoir besoin de beaucoup comprendre, les langages interprétés sont un moyen amusant d'apprendre et de développer des compétences en programmation.

Apprenez avec quelque chose d'excitant

C'est le meilleur conseil que je puisse vous donner, si vous voulez apprendre quelque chose, vous devez d'abord trouver quelque chose d'excitant, sinon il sera assez difficile de surmonter la courbe d'apprentissage typique de tous les langages de programmation. Supposons que vous gériez des systèmes, dans ce cas, vous devrez peut-être apprendre une langue idéale pour script (interprété), parmi ceux-ci, nous avons Perl, Python, Bash, etc etc ... Peut-être que les vôtres sont des jeux, il existe de nombreux projets dans des langages tels que Javascript, Lua, C ++, en fonction du type de jeu que vous souhaitez jouer. Peut-être souhaitez-vous créer un outil au niveau du système, puisque nous avons C, Python, Perl, comme vous le verrez, certains sont répétés, et c'est parce que de nombreux langages peuvent être utilisés pour de nombreuses tâches, c'est pourquoi la définition de langues polyvalentes dans la plupart d'entre eux.

Démarrer un projet

Je ne veux pas dire par là que vous créez le compilateur suivant, ou même le langage de programmation suivant, un projet peut être de corriger un petit bogue dans votre programme préféré, peut-être même aider à améliorer la documentation. Pourquoi la documentation? car il n'y a pas de meilleur moyen d'apprendre le fonctionnement du logiciel qu'en lisant et en aidant à rédiger sa documentation, car après le code source, c'est la plus grande source d'informations que vous trouverez sur le programme. Dans un autre moment, nous verrons comment lire le code d'un projet et comprendre les fonctions et les valeurs qu'ils acquièrent.

Merci beaucoup d'être venu et comme toujours, vos commentaires m'aident à générer un meilleur contenu et à savoir sur quoi me concentrer, salutations.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   anonyme dit

    Comme toujours un 10 !!!!!! Merci pour vos articles. Salutations et plus à venir !!!!

    1.    ChrisADR dit

      Merci beaucoup 🙂 m'encourage à continuer à écrire. Cordialement

  2.   Ruben dit

    Je pense que c'est une erreur de poser la question "quelle langue choisir?" Je suis de ceux qui pensent que le langage est le moindre, l'important est d'apprendre les rudiments de la programmation et de "penser par calcul". Décidez d'une syntaxe, de son typage, si elle prend en charge la POO, son utilité, etc. Je pense que c'est quelque chose qui viendra naturellement en studio et après tout, chaque programmeur connaît plus de 1, 2 et 3 langages ... et grâce aux concepts de programmation (et non à la syntaxe) qu'il a, il est capable pour programmer dans une langue dont vous n'avez pas encore l'expérience.
    Cependant, pour les initiés, je pense qu'un bon langage peut être Python pour sa simplicité, mais surtout, pour aller un peu plus loin, étudier les algorithmes et savoir comment les choses fonctionnent "à l'intérieur".

    Salutations ChrisADR

    1.    ChrisADR dit

      Salut Rubén, merci pour le partage
      Il y a quelque chose que j'ai appris au fil du temps dans le monde de la programmation, c'est que "celui qui couvre beaucoup ne serre pas" et par cette phrase bien connue je veux dire que plusieurs fois, et surtout les plus enthousiastes, décident de essayez tout un peu, et faites des virages très rapides en termes d'apprentissage du codage. Je crois, et c'est mon opinion personnelle, qu'un bon développeur devrait connaître et maîtriser un langage de compilation et un langage d'interprétation, en plus d'avoir une notion de certains dialectes d'assemblage.
      La raison est la suivante, le prototypage doit toujours être quelque chose de simple et rapide, facile à générer et qui montre généralement un résultat, mais si cela ne suffit pas, il doit y avoir un "plan B" auquel recourir lorsque l'interprète est arrivé à sa limite.
      Connaître un dialecte d'Assemblage vous donne non seulement confiance, mais vous apprend également à penser «de manière informatique», mais évidemment cette partie est la plus compliquée de toutes, et c'est certainement quelque chose que tous les programmeurs ne font pas.
      Mais revenons au sujet, parce que l’idée principale que je pense est "choisissez un langage et pratiquez BEAUCOUP", parce que la seule façon de devenir bon en programmation est de lire et d’écrire du code, et c’est quelque chose que j’ai appris la communauté du noyau Quand vous gardez la même syntaxe pendant longtemps, vous arrêtez de voir le formulaire et commencez à vous soucier de l'ARRIÈRE-PLAN. L'idée de choisir un langage ou une syntaxe dès le début est que l'on est capable d'habituer sa lecture et son écriture de telle sorte que l'on puisse commencer à lire le SENS du programme au lieu de la syntaxe du programme.
      C'est la raison principale de ce post, que chacun choisit sa langue afin que dans ce qui suit nous puissions expliquer les concepts, peut-être avec cela les doutes sont clarifiés 🙂
      Salutations et merci pour le partage.

  3.   Deibis Contreras dit

    merci pour le message c'était bon.

    salutations

    1.    ChrisADR dit

      Bonjour Deibis, merci pour le partage 🙂 Salutations

  4.   JorgeFS dit

    Mon conseil: autre chose que PHP. Il y a vingt ans, PHP avait un certain sens dans son existence en raison du niveau de complexité élevé qui consistait à programmer le Web dans un autre langage en utilisant CGI. Mais aujourd'hui, il existe une grande variété de Frameworks pour rendre le développement Web beaucoup plus agréable dans des langages puissants, tels que Django pour Python, Spring pour Java ou Rails pour Ruby. Bien que PHP apparaisse actuellement sur tous les graphiques de popularité des langues, à mon avis, PHP perdra de sa pertinence avec le temps.
    Je conseille fortement de commencer par C \ C ++ pour comprendre la réalité de la programmation, bien que la courbe d'apprentissage soit raide.
    Salutations.

    1.    ChrisADR dit

      Salut Jorge, merci pour le partage, je me souviens juste de Laravel, qui est un Framework assez solide, je n'ai personnellement jamais aimé Spring ou Java pour le développement Web, je trouve cela assez encombrant, mais je suppose que cela fait partie du temps qu'ils ont passé le marché, à l'époque ils étaient pionniers et certainement aujourd'hui les alternatives modernes (Js, Python et Ruby) ont pu améliorer la manière de présenter du code lisible et modifiable sans trop de travail.
      Je suis également enclin à ce que les gens apprennent le C / C ++ à un moment donné de leur vie, j'ai commencé avec Java, mais je suppose que c'est la beauté de la programmation, vous pouvez commencer avec ce que vous voulez, tant que vous êtes cohérent, cela le sera être utile 🙂 salutations

    2.    Ruben dit

      Je ne peux plus être en désaccord avec vous. J'ai commencé il y a de nombreuses années avec C et VB, pour me concentrer plus tard sur PHP et JS (puisque je me suis concentré sur le développement Web) et plus tard, tout en étudiant, j'ai principalement appris le C / C ++ et Java.
      PHP a un certain nombre d'avantages que je ne pourrais pas énumérer dans ce message. PHP7 est rapide (plus rapide que Python ... sans utiliser hhvm, différents caches, frameworks comme Phalcon ou bytecode dans le cas de Python), il a un grand nombre de bibliothèques et de frameworks, il a une énorme quantité de fonctions directement implémentées à utiliser à tout moment, sa syntaxe si similaire à C facilite grandement la migration vers d'autres langages.
      30% des sites web dans le monde sont réalisés avec WordPress (PHP) et cela ne semble pas changer, Wikipédia l'utilise, Facebook (avec hhvm) et un grand nombre de sites, au total, 80%.

      Je vous rappelle que Ruby on Rails comme Django a 12 ans! Quel quota ont-ils atteint pendant cette période? Et bien sûr, nous parlons de 2 frameworks qui ont pratiquement un monopole et il n'y a pas de type de fragmentation. Quelles autres alternatives sérieuses ai-je? Dire que PHP va perdre de sa pertinence n'a pas de sens.

      Maintenant que Python est à la mode car il a une courbe d'apprentissage rapide, c'est un langage simple et ils vous le vendent en tant que «devenez programmeur en 20 heures avec Python et travaillez dessus», avec le soutien d'entreprises comme Google et que maintenant il y a la mode de chercher de nouveaux langages (Go, Dart….) pour se différencier dans un CV (ou comme la naissance quotidienne de 50 frameworks pour Javascript!), ne veut pas dire que les choses changent.

      Ruby est un langage très intéressant, mais il rompt tellement avec les modèles établis que j'ai du mal à croire qu'il est devenu plus populaire que PHP. Bien sûr, je pense que Ruby est le pire langage pour commencer à programmer.
      Je comprends que vous me disiez que Python peut être amusant à programmer, même Ruby avec son infinité de particularités ... mais Spring avec Java? Vraiment? Java peut être beaucoup de choses ... mais plus agréable que Python et PHP?

      C'est très bien de commencer avec Python, mais comme vous ne restez qu'avec Python, vous courez le risque que de nombreuses entreprises croient que votre niveau de programmation n'est pas "profond" (même si vous êtes très bon en Python). C'est parce que vous êtes en concurrence avec d'autres langages "polyvalents" comme C ++ ou Java. Vous pouvez programmer en Python sans connaître la différence en quoi consiste un pointeur, des opérations au niveau du bit, comment fonctionne un garbage collector et un long etcetera.
      Python est peut-être le moins similaire à la «programmation classique» qui existe et qui peut être considérée comme un «langage pour enfants» (prenez la métaphore), et qui à son tour est un avantage et un inconvénient.

      1.    JorgeFS dit

        «Python est peut-être le moins similaire à la 'programmation classique' qui existe et qui peut être considérée comme un 'langage pour enfants' (prenez la métaphore), et qui à son tour est un avantage et un inconvénient. LOL, c'est l'une des choses les plus drôles que j'ai vues à propos de Python. Avez-vous déjà vraiment appris Python?
        Depuis combien de temps existe-t-il dans le monde en dehors de PHP?
        L'ami PHP était mort-né. PHP (\ d +) a beaucoup de charge avec lui en raison d'une très mauvaise conception initiale et afin de maintenir la communauté des utilisateurs, il continue à faire glisser toutes ces erreurs de conception initiales de manière très approfondie. PHP est né sans modularité, avec beaucoup de fonctionnalités de style C (qui d'ailleurs, je ne sais pas d'où vous l'avez obtenu puisque sa syntaxe est similaire à C, elle peut facilement être portée dans d'autres langages). Un langage de haut niveau, comme PHP devrait se comporter, a des choses aussi laides que cette piste de fonctions répertoriées sur son site officiel http://php.net/manual/en/indexes.functions.phpC'est parce qu'il est né sans modularité, donc tout est sale mélangé et sans espaces de noms.
        Ceci est un morceau de code PHP:
        "Stream_notification_callback");
        stream_context_set_params ($ ctx, $ params);
        var_dump (stream_context_get_params ($ ctx));
        ?>
        à un moment donné, peut-il être déterminé d'où toutes ces fonctionnalités de «flux» ont été importées? NON, vous pourriez dire alors que ce sont des fonctions intégrées, mais alors tout l'écosystème est des fonctions intégrées?. Et donc, il y a beaucoup de déchets dans le code PHP, que si vous n'êtes pas capable de comprendre la complexité et l'inutilité d'un si mauvais design, pardonnez-moi mais il y a encore beaucoup de monde à voir.
        Wordpress est une excellente solution logicielle, mais cela ne veut pas dire qu'elle dispose d'une bonne base technologique. Vous pouvez marteler avec une pierre et enfoncer des clous avec vos dents, et vous pouvez toujours faire un excellent travail de menuiserie, mais bien sûr, avec beaucoup plus de travail qu'un autre charpentier qui utilise un bon marteau.

        Par contre: "deviens programmeur en 20 heures avec Python et travaille dessus", je n'ai jamais vu une telle bêtise. Vous pouvez créer un site Web en PHP en 20 heures et sans avoir aucune connaissance du fonctionnement de la programmation Web ou de la programmation elle-même. En fait, c'est pourquoi PHP est si populaire, car les débutants en entrant dans ce monde voient PHP comme un point de développement rapide (c'est pourquoi tant de code PHP est si nul).
        En ce qui concerne les lacunes de Python, le seul dans lequel il a réussi a été de travailler avec des pointeurs, mais dans tous les cas, Python est un langage de haut niveau (comme Java) et ne les utilise pas au niveau de la syntaxe; mais des opérations au niveau du bit, sérieuses?, vous voulez dire ceci x << y, x >> y: https://wiki.python.org/moin/BitwiseOperators. J'ai beaucoup moins compris le ramasse-miettes: https://docs.python.org/3/library/gc.html.
        Lacunes PHP:
        -PHP a une conception de programmation orientée objet (POO) très médiocre.
        -Vous ne pouvez pas encore surcharger les opérateurs.
        -Surprise, function overloading en PHP, ce n'est pas ce que vous attendez naturellement de ce concept.
        … .. et je viens de m'ennuyer hehe.
        Salutations.

        1.    Ruben dit

          J'ai mis entre parenthèses "comprendre la métaphore" (par la comparaison de Python avec C ++ / Java dans le même environnement de travail), il est clair que vous ne l'avez pas compris. Je pourrais vous dire qu'un programmeur C ++ peut apprendre Python d'une manière beaucoup plus rapide qu'un programmeur Python peut apprendre C ++, tout comme il n'est pas surprenant que le salaire moyen d'un programmeur C / C ++ soit supérieur à un Python one.
          Je pourrais vous l'expliquer avec d'autres exemples, même avec un dessin! mais il semble que vous vous concentrez uniquement sur la décontextualisation et le ridicule de ce que je mets.

          Je n'ai jamais dit que PHP est le meilleur langage au monde ou qu'il a un design exemplaire, je ne sais pas d'où ça vient. Je pense qu'avant de juger les connaissances des autres, vous devez améliorer votre compréhension en lecture. Ce qui est vrai (et je l'ai dit dans mon message), c'est que développer avec lui est très agile, en plus de tout l'écosystème de frameworks, bibliothèques et utilitaires que vous pouvez trouver.
          De plus, quel genre de comparaison faisons-nous? Python comme langage polyvalent ou pour le web? Dans ce cas, pourquoi le comparons-nous à PHP? PHP a un champ spécifique, et c'est dans ce domaine que Python (avec une part de 0.2%, qui n'a pas changé cette année entière) pâlit à côté de PHP.
          Voyons maintenant les tendances PHP; de 82,4% en janvier 2017 à 83.1% en janvier 2018: https://w3techs.com/technologies/history_overview/programming_language

          Python va-t-il détrôner PHP? En quelle année? dans quels cinq ans? décennie?
          Python peut être utilisé dans de nombreuses autres tâches, et même devenir plus largement utilisé que PHP, mais Python en tant que langage de développement Web est à des années-lumière d'être même pertinent, 0.2% stagnant contre 83.1% (avec une hausse cette année).

          Vous prenez aussi les choses pour acquis en disant que je ne vais pas en dehors de PHP, laissant entendre que je ne connais que PHP, alors que précisément je n'ai pas programmé en PHP depuis longtemps haha. Actuellement, pour des raisons professionnelles, je programme principalement en Java.
          Je n'ai pas non plus dit qu'en programmant en Python, vous n'avez pas de connaissances sur le bit, un ramasse-miettes ou un pointeur. Au contraire, vous pouvez programmer en Python sans même savoir ce que c'est. Cependant, je doute fort que ce soit le cas pour un programmeur C ++. Et évidemment, je fais la comparaison quand Python entre dans ce domaine du "langage polyvalent", pas pour la programmation Web.

          Devenir programmeur en 20 heures est simplement une blague, une exagération. Cependant, je pourrais vous mettre ici divers liens sur les plateformes d'éducation en ligne et les cours qui promettent des choses similaires. Ne me blâmez pas, blâmez-le sur un marché du travail qui pense que devenir un "programmeur expert" est une question de suivre un cours de 20 heures. Et Python étant l'un des langages à la mode et aussi, avec la courbe d'apprentissage la plus rapide ... blanc et dans une bouteille.

          J'insiste, vous basez votre message en disant à quel point PHP est mauvais (ce qui dans une certaine partie, je suis d'accord). Cela me semble correct, sauf que mon message n'est pas à ce sujet, mais pourquoi PHP va continuer à être utilisé et qu'il ne disparaîtra pas demain comme vous le pensez.

          salutations

  5.   personne dit

    C -> Go -> (Lisp | Haskell | Java | peu importe)

    1.    ChrisADR dit

      Récemment un lecteur m'a envoyé à mon email une recommandation d'un livre Go, certainement une langue à prendre en compte dans le futur et dont peut-être y aura-t-il un post ici 🙂 De nombreux graphiques à partager

  6.   mvr1981 dit

    Eh bien ... et qu'est-ce que je programme? Pourquoi apprendre un langage de programmation aujourd'hui avec des programmeurs aussi bons et expérimentés qui existent déjà? Quels problèmes puis-je résoudre que d'autres n'ont pas encore résolus de manière beaucoup plus efficace?… En bref: Quel est l'originalité d'être un programmeur aujourd'hui? Comment puis-je collaborer avec les autres sans être expulsé ou exclu par mon manque de connaissances et d'expérience?

    1.    ChrisADR dit

      Bonjour mvr1981, questions vraiment intéressantes 🙂 nous allons les dérouler de la dernière à la première.

      Comment puis-je collaborer avec les autres sans être expulsé ou exclu par mon manque de connaissances et d'expérience?

      Si vous ne voulez pas vous faire bousculer, la première étape est d'apprendre le processus, vous ne pouvez pas imaginer le nombre de personnes qui viennent à des projets voulant faire les choses exclusivement à leur manière, voulant que la communauté s'adapte à leurs souhaits. C'est certainement comme si je venais chez vous et que je faisais du désordre et que je ne respectais pas votre famille (c'est ce que ça fait souvent). Si vous voulez éviter que cela ne se produise, portez une attention particulière aux lignes directrices pour contribuer, aux moyens par lesquels le faire, et n'envoyez pas quelque chose d'incomplet, si vous avez besoin d'aide, il y a toujours des moyens de communiquer, mais un travail mal fait le fera. créer probablement de mauvaises premières impressions. Si vous ne voulez pas vous exclure, cela dépend de vous, vous pouvez le voir comme le programmeur inutile qui ne sait pas ce qu'il fait ou celui qui est en passe de devenir un excellent programmeur, et cela n'arrive qu'avec de la pratique et certainement avec des bugs en cours de route. Je me suis trompé plusieurs fois avant d'acquérir mon statut de développeur Gentoo, et cela ne m'a pas empêché d'essayer malgré le «mauvais moment» 🙂.

      À quel point est-ce original d'être programmeur aujourd'hui?

      -Il ne s'agit pas d'originalité, c'est une nécessité aujourd'hui, il suffit de penser à ce qui suit, il y a 20 ou 30 ans, taper était une nécessité, de nombreux emplois en déduisaient que vous saviez ou du moins pouviez le faire. Aujourd'hui sachant qu'Office est une nécessité, il n'y a pratiquement aucun travail qui ne vous mette devant les documents Office. Demain, très bientôt, la programmation sera une nécessité. Et cela vaut aussi d'un point de vue personnel, savoir ce qui se passe dans les programmes auxquels vous confiez des choses aussi importantes que votre argent, votre santé, votre famille, c'est quelque chose de logique pour moi, car vous ne pouvez connaître leurs limites que si vous savez comment ils fonctionnent et pour pour le savoir, il faut savoir programmer.

      Quels problèmes puis-je résoudre que d'autres n'ont pas encore résolus d'une manière beaucoup plus efficace?

      -Vous seriez surpris par la quantité de Caractéristiques qui sont nécessaires aujourd'hui, et pour dire la vérité, peu importe qu'il y ait les meilleurs programmeurs du monde dans la communauté, le travail sera toujours supérieur à la capacité de travail des développeurs, je peux le vérifier dans Gentoo, là ce sont des gens qui développent le noyau, des gens qui travaillent pour Google, Sony, etc etc ... la seule chose que nous avons tous en commun est que personne n'a autant de temps qu'il aimerait pouvoir faire tout le travail en attente.

      Pourquoi apprendre un langage de programmation aujourd'hui avec des programmeurs aussi bons et expérimentés qui existent déjà?

      -Ceci est répondu à la deuxième question 😉 Mais maintenant je peux ajouter que les générations doivent pouvoir supporter le travail qui a déjà été développé, par là je veux dire que ces développeurs "expérimentés" vont progressivement disparaître et il sera nécessaire pour le " plus jeunes »Les développeurs prennent leurs responsabilités et aident à maintenir le cycle en vie, une communauté qui ne compte pas de jeunes et de personnes inexpérimentées est susceptible de disparaître avec le temps, précisément parce qu'il n'y aura aucune possibilité de transmettre des connaissances.

      Et qu'est-ce que je programme?

      -C'est peut-être la chose la plus difficile à répondre, mais je vais essayer de vous donner un exemple de poco J'ai récemment commencé à souffrir de problèmes avec GNOME 24 et sa connexion à Wayland qui empêchent des programmes comme Shutter de prendre des captures d'écran. C'est un problème pour moi car quand j'écris mes articles, j'ai besoin de vous montrer ce que je dis 🙂 en regardant un peu autour de moi, je suis arrivé à l'application GNOME Screenshot, un peu "minimaliste" pour le moins. Parmi ses fonctions, il y en a une de prendre une région d'écran, mais que se passe-t-il si je n'ai pas bien pris la photo? Eh bien, je dois quitter et ré-entrer dans le programme, quelque chose de fastidieux certainement, un bouton qui dit "Reprendre" ou quelque chose comme ça me permet de prendre une nouvelle capture sans avoir à sortir et à entrer à nouveau m'aiderait. C'est un petit projet de programmation, je n'ai jamais rien programmé dans le framework GNOME donc évidemment j'ai beaucoup à apprendre avant d'envoyer mon "patch" avec le nouveau bouton, mais en cours de route j'apprends à programmer et j'espère ceci caractéristique il sera utile à plus d'un lorsqu'il sera accessible à tous.

      Ceci est un exemple, c'est quelque chose de simple et que sûrement n'importe quel autre programmeur "expert" aurait pu déjà le faire, mais faute de temps évident, ça n'a pas été comme ça, maintenant c'est moi qui ai la possibilité de faire sans être vraiment un super programmeur.

      Il ne tient plus qu'à vous de trouver quelque chose qui vous simplifierait la vie dans ce logiciel que vous utilisez si souvent, la beauté de cela est que si nous suivons les conseils que je vais vous donner dans les articles suivants, le langage peu importe, car vous connaîtrez les bases pour commencer à comprendre le code que vous lisez et le modifier pour faire ce que vous voulez, c'est un sentiment très spécial 🙂

      Salutations et merci encore

      1.    personne dit

        Je pense qu'une fois que j'ai ouvert le programme de capture de gnome, le plus simple est d'aller dans les raccourcis clavier et d'attribuer trois combinaisons d'impression pour capturer toutes les alt-print pour capturer la fenêtre active et super-imprimer pour faire une sélection à partir de la capture région, les raccourcis disponibles sont déjà disponibles, il s'agit simplement de les affecter

        1.    ChrisADR dit

          C'est pourquoi nous vous donnons un exemple 🙂 parce que de petites choses comme ce bouton sont de la programmation, elles peuvent aider certains car elles peuvent passer inaperçues des autres, mais elles répondent certainement à l'objectif principal, aider à apprendre à programmer, et céder la place à de nouvelles fonctionnalités, Après ce bouton, de nombreuses choses peuvent être lancées, comme une gestion de session, ou un écran de prévisualisation de toutes les photos prises, ou en bref, beaucoup de choses qui pourraient être faites. L'idée est que vous trouvez quelque chose qui vous fait sauter votre curiosité, tout logiciel qui s'exécute sur votre système peut avoir besoin d'améliorations ou de nouvelles fonctionnalités qui, par manque de temps ou de personnel, n'ont pas encore été implémentées 🙂

      2.    mvr1981 dit

        Merci a toi. sont de très bonnes réponses.

    2.    Facture dit

      Eh bien, pour quelqu'un qui ne va pas être un professionnel du domaine, il faudrait voir dans quel environnement ils travaillent, tant pour les tâches administratives que pour les directives il peut être intéressant de connaître, par exemple, Python / Basic et savoir programmer des macros dans des packages bureautiques tels que LibreOffice ou MS Office. Il y a des moments où cela peut économiser de nombreuses heures de travail pour vous ou pour d'autres travailleurs qui vous entourent et leur demander d'effectuer toute tâche répétitive, vous pouvez créer un tableau de bord pour calculer rapidement les principaux ratios de l'entreprise après vous être connecté à la base de données. de celui-ci et effectuez une requête SQL.
      Comme tout, si vous connaissez les outils à portée de main, vous pouvez réfléchir à la façon d'en tirer le meilleur parti. Tout n'est pas inventé.

  7.   Marcelo dit

    Guillermo, tout à fait d'accord avec vous, "tout n'est pas inventé" et ce qui est inventé est modifiable. Vous devez tirer le meilleur parti des outils et utiliser celui qui correspond le mieux à vos besoins.

  8.   Ricardo dit

    Pour la programmation, la première langue à apprendre est l'anglais, puis celle qui leur plaît le plus et leur semble la plus belle.

    1.    ChrisADR dit

      Je ne l'avais pas écrit, mais vrai 🙂 connaître l'anglais aide beaucoup car la plupart des langues y sont écrites, mais aussi parce que la plus grande quantité d'informations de première main aussi 🙂 Merci beaucoup pour le partage

  9.   Ruben salgado dit

    Excellent article, en plus de motiver.

    1.    ChrisADR dit

      Très gentil, merci beaucoup 🙂 Salutations

  10.   Gonzalo martinez dit

    La programmation, c'est savoir raisonner et traduire ce raisonnement en instructions.

    Deux clarifications sur l'article:

    1) Sur la base de mon expérience en tant que professeur de programmation de près de 10 ans, peu importe la langue avec laquelle vous apprenez, mais la façon dont vous apprenez et sa complexité.

    Je pense qu'un langage qui peut être appris de manière structurée, puis passer à d'autres choses plus complexes, est plus facile que de commencer avec un langage comme Java depuis le début.

    Il est plus facile d'apprendre quelque chose comme un Hello World en C ou Pascal comme base, qu'avec quelques lignes (PROGRAM dans le cas de Pascal, ou #include Dans le cas de C), vous pouvez commencer à développer l'algorithme et coder directement le programme avec sa logique, comme en Java, qui en soi a besoin d'une classe, d'une méthode et d'autres choses qui pour un débutant est une surcharge d'informations inutile, et cela peut très bien être ignoré et passer à d'autres choses, mais ce sont des concepts qui sont là, et à mon avis, ignorer les choses n'est pas une bonne façon d'apprendre, surtout si le langage vous oblige à les utiliser. C'est comme commencer la pratique de la cible pour la première fois avec un M-16 et tirer pendant des mois en mode semi-automatique en tenant la poignée à deux mains comme un pistolet.

    2) L'interprétation ou la compilation d'un langage dépend de son implémentation et non du langage lui-même. Par exemple, si Python est utilisé, pour une application Web qui utilise wsgi (soit mod_wsgi dans apache, soit uwsgi pour Nginx), le code python est compilé au démarrage du module correspondant, générant des fichiers .pyc

    Il existe également des générateurs de fichiers binaires pour java (qui génèrent des binaires natifs au lieu du bytecode), ou des compilateurs de scripts php dans des binaires purs.

    Concernant ce qu'ils disent de PHP, il s'agit simplement d'un langage conçu à une autre époque, avec d'autres choses en tête, et sans considérer des aspects qui n'existaient pas à l'époque. De toute évidence, le fait qu'il soit le plus utilisé ne le rend pas meilleur pour rien au monde, mais il y a une réalité: c'est le langage avec lequel il y a le plus de chances d'obtenir un emploi dans toute la programmation. Le savoir ne fait pas de mal, même si vous ne l'aimez pas.

    Même moi, qui travaille en tant qu'administrateur système depuis plusieurs années et qui a quitté le travail de développeur, je dois de temps en temps mettre du code PHP dans quelque chose.

    1.    ChrisADR dit

      Salut Gonzalo, merci pour le partage,

      Certes, parler de surcharges d'information inutiles, savoir que le même langage peut être interprété ou compilé est quelque chose qui n'est pas nécessaire à ce stade 🙂 Certes l'implémentation est importante, mais si on dit qu'à ce niveau, on ne génère plus que de la confusion. De la même manière, les problèmes de programmation orientée objet ne sont pas abordés, ou d'autres concepts qui doivent être dosés progressivement pour ne pas donner le vertige.

      L'espace étant limité, l'objectif principal de l'article est de montrer aux lecteurs qui veulent programmer qu'il existe deux grands mondes de langues, que les interprétés «traditionnellement» sont plus «simples», que les compilés «traditionnellement» sont un peu plus "complexe" mais cela vaut ce niveau de complexité pour avoir une compréhension plus solide et qu'il appartient à chacun de choisir le langage, puisque selon l'approche de programmation, il pourra choisir ses projets préférés et en même temps temps où ils seront capables de comprendre ce qu'ils lisent et / ou écrivent 🙂

      Merci beaucoup encore, salutations.

      1.    Gonzalo martinez dit

        C'est une erreur, il n'y a pas de langages compilés ou interprétés, il y a des interprètes et des compilateurs pour chaque langage, tous deux pour des cas différents.

        Ce n'est pas une surcharge d'informations de le mentionner maintenant, c'est une erreur de faire une telle déclaration. À mon avis, il aurait été plus productif d'ignorer les interprètes si vous ne vouliez pas surcharger d'informations.

        1.    ChrisADR dit

          Merci pour la clarification, je la prendrai en considération lorsque je reviendrai sur le sujet. À votre santé

  11.   Ares dit

    Quelle langue recommandez-vous pour le serveur en tenant compte du fait que PHP est tombé en disgrâce?
    Idem pour les bases de données, je ne sais pas s'il y aura quelque chose de meilleur et de plus moderne que mySQL.

    1.    ChrisADR dit

      PHP n'est pas tombé en disgrâce ... Chaque langage a son cycle de vie, et php est certainement déjà un langage qui entre dans l'échelle du "mature", ce qui le rend utile au niveau métier, où la stabilité est avant tout ... Comme certaines banques où il est encore développé en java, qui est plus "mature" que php et a certainement ses adeptes et ses détracteurs ... Et sans parler de COBOL ...

      Si vous recherchez l'uniformité et la modernité, le javascript devient l'un des favoris des soi-disant «développeurs full stack», même si le paradigme ruby ​​ou la «simplicité» de python sont aussi de bonnes références…. Même perl pourrait être l'option en fonction des besoins 🙂

      De nos jours, l'ORM (Object Relational Mappers) prend beaucoup de force en termes de gestion des données relationnelles. Cela va de la syntaxe SQL à la gestion des classes et des attributs ... Presque tous les langages (sinon tous) gèrent certains ORM.

      . Mongo DB est une alternative aux bases de données relationnelles qui est devenue assez importante; cependant, il faut connaître ses avantages et ses inconvénients et valider si ce serait la meilleure solution en fonction du besoin spécifique.

      J'espère que cela vous aidera, salutations 🙂

      1.    Ares dit

        Merci, je vais vérifier.

      2.    Ares dit

        Je l'oubliais.

        Que me recommandez-vous pour travailler avec JAVA sous Linux?.
        Si vous pouvez mieux différencier entre libre et fermé.

        1.    ChrisADR dit

          Eclipse et NetBeans sont open source, je ne suis pas sûr qu'il y en ait qui soit purement libre, j'ai l'habitude d'utiliser vim car parfois la quantité de code rend l'utilisation d'un IDE entier lente et sujette à des erreurs d'exécution. Salutations 🙂

        2.    Paul Zeta dit

          Pour travailler avec java sous Linux j'utilise IntelliJ je vous recommande.

          1.    ChrisADR dit

            PS, IntelliJ est un logiciel propriétaire 🙂

  12.   je dit

    Les gars se souviennent aussi que ... Je travaille dans une banque et je vous dis que les langages de programmation passent au second plan pour laisser passer les procédures SQL et stockées en premier.

    1.    Gonzalo martinez dit

      Il faut les prendre en compte les procédures stockées, mais en n'utilisant pas de langage portable entre moteurs, du moins d'après mon expérience, il s'agit toujours de les éviter à moins qu'il n'y ait pas d'autre option.