Programació: La psicologia de les computadores

Tots ens veiem íntimament relacionats amb la programació, sigui com a usuari, com a administrador, com a programador pròpiament, però en definitiva és una cosa que va a estar més connectat amb les nostres vides amb el passar dels anys.

En aquest article (el començament d'una petita sèrie que penso crear), Vull compartir amb vostès uns quants conceptes sobre el que he anat descobrint de programació al llarg d'aquests anys. No pretenc ser summament tècnic, ja explicaré per què més endavant. Però el que si pretenc és fer que vegin el món amb els meus ulls, i si els agrada com es veu, doncs que s'endinsin una mica en ell 🙂

Primer atacaré el punt més simple de tots abans d'entrar en detalls.

Per què no faré un post tècnic?

Doncs per als que han llegit el meu post sobre el millor comanda de Linux, Sabran una mica la causa d'aquest enfocament. La tecnologia sempre està canviant, i si jo el dia d'avui escric alguna cosa, en el cas que el post sigui ben rebut, ja que hauré d'estar sempre actualitzant la informació. En els llenguatges més comuns d'avui, l'únic segur és el canvi. Amb això em refereixo (i els programadors em podran donar la raó) Els frameworks sempre estan creixent i modificandose des dels seus nuclis, això és així perquè els errors sorgeixen, alguns poden ser considerats simples errors, Mentre que altres poden arribar a ser vulnerabilitats. Aquesta és la raó per la qual escriure un post sobre un llenguatge específic, ara per ara, em garantiria potser uns quants mesos d'utilitat, en el millor dels casos un o dos anys, però aquesta no és la idea 🙂

L'electricitat és important

Aquells que hagin investigat una mica sobre els llenguatges més baixos de programació de programari sabran que tot es remunta a l'electricitat. Antigament la programació es realitzava a nivell de maquinari, això vol dir que aquells antics rellotges, calculadores, i molts altres dispositius, podien complir el seu destí mitjançant programació per maquinari.

el problema

Canviar programació de maquinari és costós, i complicat 🙂 (al menys això m'han explicat 🙂 ). És per això que van sorgir els processadors, que en realitat abstreuen aquesta capa de maquinari per lliurar-nos uns quants comandaments per poder realitzar tot allò que era possible mitjançant maquinari, només que ara a la capa de programari.

els processadors

Els processadors d'avui en dia, tenen un nombre limitat de funcions, anomenades instruccions en molts llibres. Aquestes permeten realitzar les funcions més bàsiques que pot executar el maquinari, i mobilitzar la informació a través de la memòria de l'equip.

Registres

Els registres són un espai en què el processador emmagatzema informació per poder realitzar treballs en el nucli, depenent de l'arquitectura poden tenir un diferent grandària i ordre, però en forma simple, la seva funció és emmagatzemar dades que li indiquen a el processador un dels següents tipus de treball: moure data, aritmètica i lògica, i control de flux. Tot pot resumir-se en aquests tipus de funcionalitats.

Binario

Els processadors treballen a nivell binari, això vol dir que només entenen de 0es i 1s 🙂. Una dada curiosa aquí 😀 ¿recorden els permisos de GNU / Linux? doncs, ¿alguna vegada s'han preguntat com realment reconeix el processador aquests permisos? Simple 🙂 binari. En el nivell més baix, un processador entendrà els permisos com una successió de 0s i 1s, i aquest és el motiu pel qual el octal que formem té els valors per a execució, 2 per a lectura i 4 per a escriptura. Per als que saben llegir binari, entendran que:

111100101111

Posen els permisos de lectura, escriptura i execució per al grup altres mentre que posa execució i lectura per al grup grup i només lectura per a l'amo de l'arxiu. Per als més curiosos, els últims tres 1s activen el setguid, setuid i el sticky bit. Si no saben què és això de l'binari, ho puc explicar en un altre post, si no coneixen això de l'setuid, setgid i el sticky bit, ja que se'ls deixo de tasca 😉 però també ho puc explicar en un altre lloc si cal.

Quan la curiositat diu ...

Doncs si m'han seguit fins aquí, llavors ja la seva curiositat hauria de començar a preguntar bastants coses, la primera que vull respondre (i potser l'única que em permeti aquest post perquè ja estic escrivint bastant) és: ¿Si les trucades són les mateixes, per què els programes són tan diferents?

la psicologia

La programació és l'art d'aprendre a llegir ments 🙂 Vull començar aquest apartat amb una cita que vaig llegir fa un bon temps, Edsger Dijkstra va dir:

Si la depuració és el procés d'eliminar errors, llavors la programació ha de ser el procés d'introduir-los

I és que no trobo una millor manera d'explicar tot això 🙂 per què programar és l'art d'introduir errors? es preguntarà més d'un en aquest moment. La resposta és simple, perquè les nostres ments són humanes, i els humans cometem errors 🙂 està en la nostra naturalesa, i estarà per tot el temps en el qual l'home hi hagi al planeta.

Els ordinadors no s'equivoquen

Els que ens equivoquem som nosaltres, els equips sempre es limitaran a reproduir el que els indiquem, no assumeixen res, no interpreten res, no objecten res, només llegeixen i actuen. Per això en un altre llibre de C alguna vegada vaig llegir alguna cosa com això:

C és un llenguatge rude, pots fer molt amb ell, però mai et impedirà disparar-al peu si això vols fer, o això li indiques.

Això és una veritat bastant curiosa 🙂 Ja que a l'treballar a un nivell tan baix, és possible que moltes operacions que es realitzen puguin ser destructives, cosa que no succeeix amb llenguatges de nivell una mica més alt, ja que les capes de prevenció d'errors són més grans.

Tot és psicologia

Cada llenguatge, framework, programador, respecta i segueix algun tipus de filosofia, i si no ho fa, ja que no té un futur molt prometedor. Els que treballem en UNIX i derivats, probablement coneixerem l'antiga frase:

Fes una cosa, i fes-molt bé.

Aquesta filosofia és la que segueixen alguns projectes com el nucli, funcions bastant reduïdes que només fan una cosa, però la fan el millor que es pot.

Si ens anem a altres llenguatges, cadascun tindrà una funció i objectiu, alguns més permissius i altres més restrictius, però tots seguint la seva pròpia forma de pensar.

Aprendre a llegir ments

Hi ha una dita bastant comú entre programadors, diu que hi ha centenars de formes de resoldre el mateix problema. Això és cert, però hi ha alguna cosa molt més profund d'aquest aspecte. Llegir codi font et permet llegir ments 🙂 no qualsevol ment, sinó la de programador (o programadors) que el va escriure. És una espècie de diari virtual i profund 🙂 et permet conèixer en profunditat la ment de l'desenvolupador, i en cas de projectes extensos, et permet veure com ha crescut el seu pensament lògic i crític al llarg de el temps. Una cosa extraordinari i que nodreix bastant la ment dels més joves, perquè pots conèixer els millors camins de persones que van haver de descobrir-los 🙂

ser consistent

Molts programadors i especialistes diuen que hem de sortir de la nostra zona de confort, I encara que és veritat, també és més que necessari mantenir certs processos i formats. Això és simple d'explicar, les nostres ments són repetitives i respecten estructures, si cada dia escrius codi de la mateixa manera, en poc temps deixaràs de pensar en la forma i et podràs concentrar en el fons. Això et permet veure la lògica de el programa en lloc de la Syntaxis de el llenguatge. I aquest és el motiu pel qual considero que aprendre els conceptes sempre serà més important que aprendre les formes. Aquesta és una opinió personal, però espero que després de llegir tot això puguin entendre per què el considero així 🙂 a més que se'ls diu algú que ha hagut de programar en C, Java, Javascript, Python, Ruby, PHP, i altres 🙂 conèixer els conceptes facilita escriure el codi.

En resum

Bé, aquest és el primer pas d'una sèrie que espero els ajudi a pensar d'una altra manera en l'art de la programació, fins i tot al fet que els convidi a endinsar-se en els conceptes que permeten executar el codi que han escrit potser centenars de vegades, però que no s'han aturat a pensar en el que realment fa. I per als que no han començat a programar, però els agradaria, poder prioritzar una mica sobre el realment important de conèixer 🙂 Salutacions


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   Javier G. Delgado va dir

    Un article molt conscient en el qual es parla (en aquest cas) de programació potser en un nou llenguatge que programa a més profunditat, va el meu suport als següents.

    1.    ChrisADR va dir

      Hola Xavier, doncs moltes gràcies 🙂 em sembla això molt important perquè sempre m'han volgut ensenyar només a reproduir codi, el famós Ctrl + C ... Ctrl + V 🙂 però mai m'he deixat arrossegar per això, així sigui el problema més simple de l'món , prefereixo escriure-jo a copiar d'algú més, em fa sentir que és la meva creació.
      Salutacions

  2.   Balua va dir

    Des de ja esperant el següent capítol, deixi de programar fa ja molt de temps, i crec poder trobar en algun capítol posterior alguna causa al meu decisió, de veritat, des d'aquest capítol em trec el barret.

  3.   ChrisADR va dir

    Hola Balua 🙂
    Doncs ja se m'ha passarà alguna cosa per al següent. És una mica complicat ordenar tots de tal manera que es pugui seguir el fil des de qualsevol post, però intentaré tenir aquest (i diversos altres que m'han demanat) molt aviat. Gràcies pel teu comentari. Salutacions

  4.   d'una altra manera va dir

    Una joia d'article !, espere el següent ...