Programmation: la psychologie des ordinateurs

Nous sommes tous intimement liés à la programmation, que ce soit en tant qu'utilisateur, en tant qu'administrateur, en tant que programmeur lui-même, mais en fin de compte, c'est quelque chose qui sera plus lié à nos vies au fil des ans.

Dans cet article (le début d'une petite série que je compte créer), Je souhaite partager avec vous quelques concepts sur ce que j'ai découvert sur la programmation au fil des ans. Je ne prétends pas être trop technique, je vous expliquerai pourquoi plus tard. Mais ce que j'ai l'intention, c'est de leur faire voir le monde avec mes yeux, et s'ils aiment son apparence, alors laissez-les plonger un peu

J'attaquerai d'abord le point le plus simple de tous avant d'entrer dans les détails.

Pourquoi est-ce que je ne vais pas publier de message technique?

Eh bien, pour ceux qui ont lu mon article sur meilleure commande linux, vous en saurez un peu plus sur la cause de cette focalisation. La technologie change constamment, et si j'écris quelque chose aujourd'hui, si le message est bien reçu, je devrai toujours mettre à jour les informations. Dans les langues les plus courantes d'aujourd'hui, la seule chose sûre est le changement. Je veux dire par là (et les programmeurs peuvent me donner raison) Les frameworks grandissent et se modifient toujours à partir de leur cœur, c'est parce que des erreurs surviennent, certains peuvent être considérés comme simples bogues, tandis que d'autres peuvent devenir vulnérabilités. C'est la raison pour laquelle écrire un article sur une langue spécifique, aujourd'hui, me garantirait peut-être quelques mois d'utilité, dans le meilleur des cas un ou deux ans, mais ce n'est pas l'idée

L'électricité est importante

Ceux d'entre vous qui ont fait un peu de recherche sur les langages de programmation de logiciels les plus bas savent que tout remonte à l'électricité. Dans le passé, la programmation se faisait au niveau matériel, ce qui signifie que ces vieilles horloges, calculatrices et de nombreux autres appareils pouvaient accomplir leur destin en programmant par matériel.

Le problème

Changer la programmation matérielle est coûteux et compliqué 🙂 (du moins c'est ce qu'ils m'ont dit 🙂 ). C'est pourquoi des processeurs sont apparus, qui ont en fait fait abstraction de cette couche matérielle pour nous donner quelques commandes pour pouvoir faire tout ce qui était possible via le matériel, seulement maintenant dans la couche matérielle. logiciel.

Processeurs

Les processeurs actuels ont un nombre limité de fonctions, appelées instructions dans de nombreux livres. Celles-ci vous permettent d'exécuter les fonctions les plus élémentaires que le matériel peut exécuter et de mobiliser des informations via la mémoire de l'ordinateur.

Enregistre

Les registres sont un espace dans lequel le processeur stocke des informations pour pouvoir effectuer des travaux sur le noyau, en fonction de l'architecture, ils peuvent avoir une taille et un ordre différents, mais d'une manière simple, leur fonction est de stocker des données qui indiquent au processeur l'un des types de travaux suivants: déplacer les données, l'arithmétique et la logique, et contrôler couler. Tout peut se résumer dans ces types de fonctionnalités.

Binario

Les processeurs fonctionnent au niveau binaire, cela signifie qu'ils ne comprennent que 0sy 1oui 🙂. Un fait curieux ici 😀vous vous souvenez des autorisations GNU / Linux? bien, vous êtes-vous déjà demandé comment le processeur reconnaît réellement ces autorisations? Simple 🙂 binaire. Au niveau le plus bas, un processeur comprendra les permissions comme une succession de 0 et de 1, et c'est la raison pour laquelle l'octal que nous formons a les valeurs pour l'exécution, 2 pour la lecture et 4 pour l'écriture. Pour ceux qui savent lire le binaire, ils comprendront que:

111100101111

Ils mettent les autorisations de lecture, d'écriture et d'exécution pour le groupe autre tout en mettant la performance et la lecture pour le groupe groupe et en lecture seule pour le propriétaire du fichier. Pour les plus curieux, les trois derniers 1 activent le setguid, setuid et l' sticky bit. Si vous ne savez pas ce qu'est ce binaire, je peux l'expliquer dans un autre post, si vous ne le savez pas à propos de setuid, setgid et le sticky bit, je vous le laisse 😉 mais je peux aussi l'expliquer ailleurs si nécessaire.

Quand la curiosité appelle ...

Eh bien, si vous m'avez suivi ici, alors votre curiosité devrait commencer à demander beaucoup de choses, la première à laquelle je veux répondre (et peut-être la seule que ce post me permettra car j'écris déjà beaucoup) est: Si les appels sont les mêmes, pourquoi les programmes sont-ils si différents?

psychologie

La programmation est l'art d'apprendre à lire dans les pensées 🙂 Je veux commencer cette section par une citation que j'ai lue il y a longtemps, a déclaré Edsger Dijkstra:

Si le débogage est le processus de débogage, la programmation doit être le processus de leur introduction

Et je ne trouve pas de meilleure façon d'expliquer tout cela 🙂 pourquoi la programmation est-elle l'art d'introduire des erreurs? plus d'un se demandera en ce moment. La réponse est simple, parce que nos esprits sont humains et que les humains font des erreurs 🙂 c'est dans notre nature, et ce le sera aussi longtemps que l'homme existera sur la planète.

Les ordinateurs ne se trompent pas

Nous sommes ceux qui font des erreurs, les équipes se limiteront toujours à reproduire ce que nous leur disons, elles n'assument rien, elles n'interprètent rien, elles ne s'opposent à rien, elles lisent et agissent. Donc, dans un autre livre C, j'ai déjà lu quelque chose comme ceci:

C'est un langage grossier, vous pouvez en faire beaucoup, mais cela ne vous empêchera jamais de vous tirer une balle dans le pied si vous voulez le faire, ou du moins c'est ce que vous lui dites.

C'est une vérité assez curieuse 🙂 Puisque lorsque vous travaillez à un niveau aussi bas, il est possible que de nombreuses opérations effectuées puissent être destructrices, ce qui ne se produit pas avec des langages de niveau légèrement supérieur, car les couches de prévention des erreurs ils sont plus âgés.

Tout est psychologie

Chaque langage, framework, programmeur, respecte et suit une sorte de philosophie, et si ce n'est pas le cas, il n'a pas un avenir très prometteur. Ceux d'entre nous qui travaillent sur UNIX et ses dérivés connaîtront probablement la vieille phrase:

Faites une chose et faites-la très bien.

Cette philosophie est celle suivie par certains projets comme le noyau, des fonctions assez petites qui ne font qu'une chose, mais le font de leur mieux.

Si l'on passe à d'autres langues, chacune aura une fonction et un objectif, certaines plus permissives et d'autres plus restrictives, mais toutes suivant leur propre façon de penser.

Apprenez à lire dans les pensées

Il y a un dicton assez répandu parmi les programmeurs, qu'il existe des centaines de façons de résoudre le même problème. C'est vrai, mais il y a quelque chose de beaucoup plus profond dans cet aspect. La lecture du code source vous permet de lire dans les pensées - pas n'importe quel esprit, mais l'esprit du programmeur (ou des programmeurs) qui l'a écrit. C'est une sorte de journal intime virtuel et profond 🙂 il permet de connaître en profondeur l'esprit du développeur, et dans le cas de grands projets, il permet de voir comment sa pensée logique et critique s'est développée au fil du temps. Quelque chose d'extraordinaire et qui nourrit grandement l'esprit des plus jeunes, car on peut connaître les meilleurs chemins des personnes qui ont dû les découvrir 🙂

Être cohérent

De nombreux programmeurs et spécialistes disent que nous devons sortir de notre zone de confort, et bien que ce soit vrai, il est également plus que nécessaire de maintenir certains processus et formats. C'est simple à expliquer, nos esprits sont répétitifs et respectent les structures, si vous écrivez du code de la même manière tous les jours, en peu de temps vous arrêterez de penser à la forme et vous pourrez vous concentrer dessus. fond. Cela vous permet de voir le logique du programme au lieu du syntaxe du langage. Et c'est la raison pour laquelle je considère qu'apprendre le concepts sera toujours plus important que d'apprendre les formes. Ceci est une opinion personnelle, mais j'espère qu'après avoir lu tout cela, vous comprendrez pourquoi je le considère comme ça 🙂 aussi dit par quelqu'un qui a dû programmer en C, Java, Javascript, Python, Ruby, PHP, et autres 🙂 connaissez le concepts facilite l'écriture de code.

En résumé

Eh bien, c'est la première étape d'une série qui, je l'espère, vous aidera à penser différemment à l'art de la programmation, vous invitant même à vous plonger dans les concepts qui vous permettent d'exécuter le code que vous avez écrit peut-être des centaines de fois, mais ils ne se sont pas arrêtés pour réfléchir à ce qu'il fait vraiment. Et pour ceux qui n'ont pas commencé la programmation, mais qui aimeraient, pouvoir prioriser un peu ce qu'il est vraiment important de savoir 🙂 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.   Javier G. Delgado dit

    Un article très consciencieux dans lequel la programmation est discutée (dans ce cas) peut-être dans un nouveau langage qui programme plus en profondeur, mon soutien va au suivant.

    1.    ChrisADR dit

      Salut Javier, merci beaucoup 🙂 Je pense que c'est très important car ils ont toujours voulu m'apprendre uniquement à reproduire du code, le fameux Ctrl + C… Ctrl + V 🙂 mais je ne me suis jamais laissé entraîner par ça, même si c'est le problème le plus simple au monde. Je préfère l'écrire que de le copier de quelqu'un d'autre, cela me donne l'impression que c'est ma création.
      salutations

  2.   Balua dit

    J'attendais déjà le chapitre suivant, j'ai arrêté la programmation il y a longtemps, et je pense pouvoir trouver dans un chapitre ultérieur une raison de ma décision, vraiment, à partir de ce chapitre, je retire mon chapeau.

  3.   ChrisADR dit

    Bonjour Balua 🙂
    Eh bien, je vais trouver quelque chose pour le prochain. C'est un peu compliqué de tout ordonner de manière à ce que le fil puisse être suivi à partir de n'importe quel poste, mais j'essaierai de l'avoir (et plusieurs autres qui m'ont demandé) très bientôt. Merci pour ton commentaire. À votre santé

  4.   Autres dit

    Un bijou d'article! J'espère que le prochain ...