Programmeerimine: arvutite psühholoogia

Me kõik oleme programmeerimisega tihedalt seotud, olgu see siis kasutaja, administraator, ise programmeerija, kuid lõppkokkuvõttes on see midagi, mis aastate möödudes meie eluga rohkem seotud on.

Selles artiklis (väikese sarja algus, mille plaanin luua), Tahan teiega jagada mõnda kontseptsiooni selle kohta, mida olen aastate jooksul programmeerimise kohta avastanud. Ma ei väida, et oleksin liiga tehniline, selgitan seda hiljem. Kuid ma kavatsen neil panna maailma minu silmadega nägema ja kui neile meeldib, kuidas see välja näeb, las nad lasevad sellesse natuke süveneda 🙂

Enne üksikasjadesse laskumist ründan kõigepealt kõige lihtsamat punkti.

Miks ma ei hakka tehnilist postitust tegema?

Noh, neile, kes on minu postitust lugenud parim Linuxi käsk, saate natuke teada selle fookuse põhjustest. Tehnoloogia muutub alati ja kui ma täna midagi kirjutan, siis kui postitus on hästi vastu võetud, siis pean alati teavet värskendama. Tänapäeva levinumates keeltes on ainus kindel asi muutus. Selle all mõtlen (ja programmeerijad suudavad minu õigust tõestada) raamistikud kasvavad ja muutuvad alati oma tuumadest, seda seetõttu, et tekivad vead, mõnda võib pidada lihtsaks vead, samas kui teised võivad muutuda haavatavused. See on põhjus, miks konkreetse keele kohta postituse kirjutamine tagaks mulle täna võib-olla mõne kuu kasulikkuse, parimal juhul ühe või kahe aasta, kuid see pole mõte

Elekter on oluline

Need teist, kes on natuke uurinud kõige madalamaid tarkvara programmeerimiskeeli, teavad, et see kõik pärineb elektrist. Varem tehti programmeerimist riistvaratasemel, see tähendab, et need vanad kellad, kalkulaatorid ja paljud muud seadmed said oma saatuse täita programmeerides riistvara.

probleem

Riistvara programmeerimise muutmine on kallis ja keeruline 🙂 (vähemalt nii nad mulle ütlesid 🙂 ). Sellepärast tekkisid protsessorid, mis tegelikult abstraktivad selle riistvarakihi, et anda meile paar käsku, et saaksime teha kõike, mis riistvara kaudu võimalik oli, alles nüüd riistvarakihis. tarkvara.

Töötlejad

Tänapäeva protsessoritel on piiratud arv funktsioone, nn juhiseid paljudes raamatutes. Need võimaldavad teil teha kõige elementaarsemaid funktsioone, mida riistvara suudab, ja mobiliseerida teavet arvuti mälu kaudu.

Registrid

Registrid on ruum, kuhu protsessor salvestab teavet, et oleks võimalik kernelil tööd teha, sõltuvalt arhitektuurist, millel võib olla erinev suurus ja järjekord, kuid nende ülesanne on lihtsal viisil salvestada andmeid, mis ütlevad protsessorile üks järgmistest tööliikidest: teisaldada andmeid, aritmeetikat ja loogikat ning juhtida voolama. Kõike võib kokku võtta seda tüüpi funktsioonides.

Binario

Protsessorid töötavad binaarsel tasemel, see tähendab, et nad saavad ainult aru 0sy 1jah 🙂. Kurioosne fakt siin 😀mäletate GNU / Linuxi õigusi? noh,Kas olete kunagi mõelnud, kuidas protsessor neid õigusi tegelikult tunneb?? Lihtne 🙂 binaarne. Kõige madalamal tasemel mõistab protsessor õigusi 0s ja 1s järjestusena ning see on põhjus, miks meie moodustataval kaheksandikul on väärtused täitmiseks, 2 lugemiseks ja 4 kirjutamiseks. Neile, kes oskavad kahendkoode lugeda, saavad nad aru, et:

111100101111

Nad panid grupile lugemis-, kirjutamis- ja täitmisõigused Ülejäänud samal ajal esitades rühmale etteastet ja lugedes rühm ja loe ainult faili omanikule. Kõige uudishimulikumate jaoks aktiveerivad kolm viimast 1-d setguid, setuid ja sticky bit. Kui te ei tea, mis see binaarne asi on, siis võin seda selgitada mõnes teises postituses, kui te ei tea seda setuidi, setgid'i ja kleepuva biti kohta, siis jätan selle teile 😉 aga saan seda vajadusel ka mujal selgitada.

Kui uudishimu kutsub ...

Noh, kui olete mind siin jälginud, peaks teie uudishimu hakkama paluma paljusid asju, esimene, millele ma tahan vastata (ja võib-olla ainus, mida see postitus mulle lubab, sest ma kirjutan juba palju) on: Kui kõned on samad, siis miks on programmid nii erinevad?

Psühholoogia

Programmeerimine on mõtete lugemise õppimise kunst 🙂 Soovin alustada seda osa tsitaadiga, mida lugesin juba ammu, ütles Edsger Dijkstra:

Kui silumine on silumisprotsess, siis peab nende juurutamise protsess olema programmeerimine

Ja ma ei leia paremat viisi selle kõige seletamiseks 🙂 miks on vigade sissetoomise kunsti programmeerimine? sel hetkel imestab rohkem kui üks. Vastus on lihtne, sest meie meeled on inimesed ja inimesed teevad vigu 🙂 see on meie olemuses ja seda nii kaua, kuni inimene planeedil eksisteerib.

Arvutid ei eksi

Meie oleme need, kes teevad vigu, meeskonnad piirduvad alati ainult selle paljundamisega, mida me neile ütleme, nad ei eelda midagi, ei tõlgenda midagi, ei vaidle millelegi vastu, vaid lihtsalt loevad ja tegutsevad. Nii et olen mõnes teises C-raamatus kunagi midagi sellist lugenud:

C on ebaviisakas keel, sellega saab palju teha, kuid see ei takista sind kunagi end jalga laskmast, kui tahad seda teha, või nii ütled.

See on üsna uudishimulik tõde 🙂 Kuna nii madalal tasemel töötades on võimalik, et paljud tehtavad toimingud võivad olla hävitavad, mida ei juhtu veidi kõrgema taseme keeltega, kuna veaennetuskihid on need vanemad.

Kõik on psühholoogia

Iga keel, raamistik, programmeerija austab ja järgib mingisugust filosoofiat, ja kui see nii pole, pole tal ka väga paljutõotavat tulevikku. Need meist, kes töötavad UNIX-i ja derivaatide kallal, teavad ilmselt vana fraasi:

Tehke ühte asja ja tehke seda väga hästi.

Seda filosoofiat järgivad mõned projektid, nagu kernel, üsna väikesed funktsioonid, mis teevad ainult ühte asja, kuid teevad seda kõige paremini.

Kui me läheme teistesse keeltesse, on neil kõigil oma funktsioon ja eesmärk, mõned lubavamad ja teised piiravamad, kuid kõik järgivad oma mõtteviisi.

Õpi mõtteid lugema

Programmeerijate seas on üsna levinud ütlus, et sama probleemi lahendamiseks on sadu viise. See on tõsi, kuid selles aspektis on midagi palju sügavamat. Lähtekoodi lugemine võimaldab teil lugeda mõtteid - mitte ainult suvalist, vaid ka selle kirjutanud programmeerija (või programmeerijate) mõtet. See on omamoodi virtuaalne ja sügav päevik 🙂 see võimaldab teil põhjalikult tunda arendaja meelt ja suurte projektide puhul võimaldab teil näha, kuidas nende loogiline ja kriitiline mõtlemine on aja jooksul kasvanud. Midagi erakordset ja toidab kõige nooremate meelt suuresti, sest saate teada nende inimeste parimaid teid, kes need pidid avastama 🙂

Et olla järjepidev

Paljud programmeerijad ja spetsialistid ütlevad, et peame endast välja tulema mugavuse tsooni, ja kuigi see on tõsi, on ka teatud protsesside ja vormingute säilitamine enam kui vajalik. Seda on lihtne seletada, meie meeled on korduvad ja austavad struktuure. Kui kirjutate koodi iga päev ühtemoodi, lõpetate lühikese aja jooksul vormi mõtlemise ja saate sellele keskenduda. päritolu. See võimaldab teil näha loogika programmi asemel keele süntaks. Ja see on põhjus, miks ma pean seda õppima mõisted on alati olulisem kui õppimine vormid. See on isiklik arvamus, kuid ma loodan, et pärast selle kõige lugemist saate aru, miks ma seda niimoodi pean told ütles ka keegi, kes on pidanud programmeerima C, Java, Javascript, Python, Ruby, PHP ja teised 🙂 tean mõisted muudavad koodi kirjutamise lihtsaks.

Kokkuvõttes

Noh, see on esimene samm sarjas, mis loodetavasti aitab teil programmeerimiskunstist erinevalt mõelda, isegi kutsub teid süvenema kontseptsioonidesse, mis võimaldavad teil rakendada ehk sadu kordi kirjutatud koodi, kuid need pole lakanud mõtlemast, mida see tegelikult teeb. Ja neile, kes pole programmeerimisega alustanud, kuid sooviksid, saaksid natuke tähtsuse järjekorda seada selle, mida on tegelikult oluline teada 🙂 Tervitused


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.

  1.   Javier G. Delgado DIJO

    Väga kohusetundlik artikkel, mis räägib (antud juhul) programmeerimisest võib-olla uues keeles, mis programmeerib põhjalikumalt, on minu toetus järgmine.

    1.    ChrisADR DIJO

      Tere Javier, tänan teid väga 🙂 ma arvan, et see on väga oluline, sest nad on alati tahtnud õpetada mind ainult koodi reprodutseerima, kuulsad Ctrl + C ... Ctrl + V 🙂, kuid ma pole seda kunagi lasknud end lohistada, isegi kui see on kõige lihtsam probleem maailmas, ma pigem kirjutan selle kui kopeerin kelleltki teiselt, see tekitab minus tunde, et see on minu looming.
      seoses

  2.   parv DIJO

    Juba järgmist peatükki oodates lõpetasin programmeerimise juba ammu ja arvan, et leian hilisemast peatükist mõned põhjused oma otsusele, sest sellest peatükist võtan mütsi maha.

  3.   ChrisADR DIJO

    Tere, Balua 🙂
    Noh, ma mõtlen järgmise jaoks midagi välja. Veidi keeruline on tellida kõike nii, et lõime saaks jälgida igast postitusest, kuid proovin selle (ja mitmed teised, kes mind on palunud) varsti kätte saada. Täname kommentaari eest. Terviseks

  4.   Anders DIJO

    Artikli pärl! Loodan, et järgmine ...