Programare: Psihologia computerelor

Toți suntem strâns legați de programare, fie ca utilizator, ca administrator, ca programator în sine, dar în cele din urmă este ceva care va fi mai legat de viața noastră de-a lungul anilor.

În acest articol (începutul unei mici serii pe care intenționez să o creez), Vreau să vă împărtășesc câteva concepte despre ceea ce am descoperit despre programare de-a lungul anilor. Nu mă prefac a fi exagerat de tehnic, voi explica de ce mai târziu. Dar ceea ce intenționez este să-i fac să vadă lumea cu ochii mei și, dacă le place cum arată, atunci lasă-i să se adâncească un pic în ea it

Voi ataca cel mai simplu punct dintre toate înainte de a intra în detalii.

De ce nu voi face o postare tehnică?

Ei bine, pentru cei care mi-au citit postarea cea mai bună comandă Linux, veți ști puțin despre cauza acestei concentrări. Tehnologia se schimbă mereu și dacă scriu ceva astăzi, dacă postarea este bine primită, atunci va trebui întotdeauna să actualizez informațiile. În cele mai comune limbi de astăzi, singurul lucru sigur este schimbarea. Prin asta vreau să spun (iar programatorii îmi pot da dreptate) cadrele sunt mereu în creștere și se modifică din nucleele lor, aceasta deoarece apar erori, unele pot fi considerate simple gandaci, în timp ce alții pot deveni vulnerabilități. Acesta este motivul pentru care scrierea unei postări despre o anumită limbă, astăzi, mi-ar garanta poate câteva luni de utilitate, în cel mai bun caz unul sau doi ani, dar nu asta este ideea

Electricitatea este importantă

Cei dintre voi care au făcut un pic de cercetare cu privire la cele mai scăzute limbaje de programare software vor ști că totul datează de la electricitate. În trecut, programarea se făcea la nivel hardware, ceea ce înseamnă că acele ceasuri vechi, calculatoare și multe alte dispozitive își puteau îndeplini destinul programând prin hardware.

Problema

Schimbarea programării hardware este costisitoare și complicată 🙂 (cel puțin asta mi-au spus 🙂 ). Acesta este motivul pentru care au apărut procesoare, care de fapt abstractizează acel strat hardware pentru a ne oferi câteva comenzi pentru a putea face tot ceea ce era posibil prin hardware, doar acum în stratul hardware. Software.

Procesoare

Procesoarele de astăzi au un număr limitat de funcții, numite instrucțiuni în multe cărți. Acestea vă permit să efectuați cele mai de bază funcții pe care le poate îndeplini hardware-ul și să mobilizați informații prin memoria computerului.

Registre

Registrele sunt un spațiu în care procesorul stochează informații pentru a putea efectua lucrări pe kernel, în funcție de arhitectură pot avea o dimensiune și o ordine diferite, dar într-un mod simplu, funcția lor este de a stoca date care indică procesorului una dintre următoarele tipuri de muncă: mutați datele, aritmetica și logica și controlul curgere. Totul poate fi rezumat în aceste tipuri de funcționalități.

Binario

Procesoarele funcționează la nivel binar, ceea ce înseamnă că înțeleg doar 0sy 1da 🙂. Un fapt curios aici 😀vă amintiți permisiunile GNU / Linux? bine, v-ați întrebat vreodată cum procesorul recunoaște de fapt aceste permisiuni? Simplu inary binar. La cel mai mic nivel, un procesor va înțelege permisiunile ca o succesiune de 0s și 1s, și acesta este motivul pentru care octalul pe care îl formăm are valorile pentru executare, 2 pentru lectură și 4 pentru scris. Pentru cei care pot citi binar, vor înțelege că:

111100101111

Au pus permisiunile de citire, scriere și executare pentru grup otros în timp ce pune performanță și lectură pentru grup grup și citiți numai pentru proprietarul fișierului. Pentru cei mai curioși, ultimele trei 1 activează setguid, setuid și sticky bit. Dacă nu știți ce este acest binar, îl pot explica într-o altă postare, dacă nu știți acest lucru despre setuid, setgid și bitul lipicios, vă voi lăsa to dar vă pot explica și în altă parte, dacă este necesar.

Când curiozitatea sună ...

Ei bine, dacă m-ați urmărit aici, atunci curiozitatea dvs. ar trebui să înceapă să întrebe o mulțime de lucruri, primul la care vreau să răspund (și poate singurul la care această postare îmi va permite pentru că deja scriu foarte multe) este: Dacă apelurile sunt aceleași, de ce sunt atât de diferite programele?

Psihologie

Programarea este arta de a învăța să citești mințile 🙂 Vreau să încep această secțiune cu un citat pe care l-am citit cu mult timp în urmă, Edsger Dijkstra a spus:

Dacă depanarea este procesul de depanare, atunci programarea trebuie să fie procesul de introducere a acestora

Și nu găsesc o modalitate mai bună de a explica toate acestea. De ce este programarea arta introducerii erorilor? mai mulți se vor întreba în acest moment. Răspunsul este simplu, deoarece mintea noastră este umană, iar oamenii fac greșeli 🙂 este în natura noastră și va fi atât timp cât omul există pe planetă.

Computerele nu greșesc

Noi suntem cei care greșim, echipele se vor limita întotdeauna la reproducerea a ceea ce le spunem, nu își asumă nimic, nu interpretează nimic, nu se opun nimic, doar citesc și acționează. Deci, într-o altă carte C am citit vreodată așa ceva:

C este un limbaj grosolan, puteți face multe cu el, dar nu vă va împiedica niciodată să vă împușcați în picior, dacă doriți să o faceți, sau așa spuneți.

Acesta este un adevăr destul de curios 🙂 Deoarece atunci când se lucrează la un nivel atât de scăzut, este posibil ca multe operații care sunt efectuate să poată fi distructive, lucru care nu se întâmplă cu limbaje de nivel puțin mai înalt, deoarece straturile de prevenire a erorilor sunt mai în vârstă.

Totul este psihologie

Fiecare limbaj, cadru, programator, respectă și urmează un fel de filozofie și, dacă nu, nu are un viitor foarte promițător. Cei dintre noi care lucrează la UNIX și derivate vor cunoaște probabil vechea frază:

Fă un lucru și fă-o foarte bine.

Această filozofie este cea urmată de unele proiecte precum nucleul, funcții destul de mici care fac doar un singur lucru, dar o fac cât pot de bine.

Dacă mergem la alte limbi, fiecare va avea o funcție și un obiectiv, unele mai permisive și altele mai restrictive, dar toate urmând propriul lor mod de gândire.

Învață să citești mințile

Există o zicală destul de comună printre programatori, potrivit căreia există sute de moduri de a rezolva aceeași problemă. Acest lucru este adevărat, dar există ceva mult mai profund în acest aspect. Citirea codului sursă vă permite să citiți mințile - nu orice minte, ci și mintea programatorului (sau programatorilor) care l-a scris. Este un fel de jurnal virtual și profund 🙂 vă permite să cunoașteți în profunzime mintea dezvoltatorului, iar în cazul proiectelor mari, vă permite să vedeți cum gândirea lor logică și critică a crescut de-a lungul timpului. Ceva extraordinar și care hrănește foarte mult mintea celor mai tineri, pentru că poți cunoaște cele mai bune căi ale oamenilor care au trebuit să le descopere 🙂

A fi consistent

Mulți programatori și specialiști spun că trebuie să ieșim din al nostru zona de confort, și, deși este adevărat, este, de asemenea, mai mult decât necesar să se mențină anumite procese și formate. Acest lucru este simplu de explicat, mintea noastră este repetitivă și respectă structuri, dacă scrii cod în același mod în fiecare zi, într-un timp scurt nu vei mai gândi la formă și te vei putea concentra asupra ei. fundal. Acest lucru vă permite să vedeți logică a programului în loc de sintaxa limbajului. Și acesta este motivul pentru care consider că învățarea concepte va fi întotdeauna mai important decât învățarea formele. Aceasta este o opinie personală, dar sper că după ce ați citit toate acestea, puteți înțelege de ce o consider așa 🙂 spusă și de cineva care a trebuit să programeze în C, Java, Javascript, Python, Ruby, PHP și altele 🙂 cunoașteți conceptele facilitează scrierea codului.

În rezumat

Ei bine, acesta este primul pas dintr-o serie care sper să vă ajute să gândiți diferit despre arta programării, chiar să vă invite să vă adânciți în conceptele care vă permit să executați codul pe care l-ați scris poate de sute de ori, dar nu s-au oprit să se gândească la ceea ce face cu adevărat. Și pentru cei care nu au început să programeze, dar ar dori, să poată prioritiza puțin despre ceea ce este cu adevărat important de știut 🙂 Salutări


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   Javier G. Delgado el a spus

    Un articol foarte conștiincios în care programarea este discutată (în acest caz) poate într-un nou limbaj care programează mai în profunzime, sprijinul meu merge la următoarele.

    1.    ChrisADR el a spus

      Bună ziua Javier, mulțumesc foarte mult 🙂 Cred că acest lucru este foarte important pentru că au vrut întotdeauna să mă învețe doar să reproduc codul, faimosul Ctrl + C ... Ctrl + V 🙂, dar nu m-am lăsat niciodată târât de asta, chiar dacă este cea mai simplă problemă din lume Aș prefera să o scriu decât să o copiez de la altcineva, mă face să simt că este creația mea.
      În ceea ce priveşte

  2.   plută el a spus

    Așteptând deja următorul capitol, am încetat să programez cu mult timp în urmă și cred că pot găsi într-un capitol ulterior o cauză a deciziei mele, într-adevăr, deoarece acest capitol îmi scot pălăria.

  3.   ChrisADR el a spus

    Bună ziua Balua 🙂
    Ei bine, voi veni cu ceva pentru următorul. Este cam dificil să aranjezi totul în așa fel încât firul să poată fi urmărit din orice postare, dar voi încerca să-l am pe acesta (și pe alții care m-au întrebat) foarte curând. Multumesc pentru comentariul tau. Noroc

  4.   Anders el a spus

    O bijuterie a unui articol! Sper că următorul ...