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 vosaltres 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, perquè s'hi endinsin una mica
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 com 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 (almenys 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. Al nivell més baix, un processador entendrà els permisos com una successió de 0s i 1s, i aquest és el motiu pel qual l'octal que formem té els valors 1 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 sticky bit. Si no saben què és això del binari, ho puc explicar en un altre post, si no coneixen això del setuid, setgid i l'sticky bit, doncs els 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 molt de 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 manera millor d'explicar tot això per què programar és l'art d'introduir errors? se'n preguntarà més d'un en aquest moment. La resposta és simple, perquè les nostres ments són humanes, i els humans cometem errors és a la nostra naturalesa, i estarà per tot el temps en què l'home existeixi 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 força curiosa Com que en treballar a un nivell tan baix, és possible que moltes operacions que es realitzen puguin ser destructives, cosa que no passa 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 força comuna entre programadors, diu que hi ha centenars de formes de resoldre el mateix problema. Això és cert, però hi ha una cosa molt més profunda d'aquest aspecte. Llegir codi font us permet llegir ments no qualsevol ment, sinó la del programador (o programadors) que el va escriure. És una mena de diari virtual i profund et permet conèixer en profunditat la ment del desenvolupador, i en cas de projectes extensos, et permet veure com ha crescut el seu pensament lògic i crític al llarg del temps. Una cosa extraordinària i que nodreix força la ment dels més joves, perquè pots conèixer els millors camins de persones que els van haver de descobrir
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è ho considero així a més que se'ls diu algú que ha hagut de programar a C, Java, Javascript, Python, Ruby, PHP, i altres 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 que els convidi a endinsar-se en els conceptes que permeten executar el codi que potser han escrit centenars de vegades, però que no s'han aturat a pensar en allò que realment fa. I per als que no han començat a programar, però els agradaria, poder prioritzar una mica sobre el que és realment important de conèixer Salutacions