Programozás: A számítógépek pszichológiája

Mindannyian szorosan kapcsolódunk a programozáshoz, legyen az felhasználó, rendszergazda, maga a programozó, de végső soron ez olyasmi, amely az évek során jobban kapcsolódik majd az életünkhöz.

Ebben a cikkben (egy kis sorozat kezdete, amelyet tervezek létrehozni), Szeretnék megosztani veletek néhány elképzelést arról, amit az évek során felfedeztem a programozással kapcsolatban. Nem teszek úgy, mintha túl technikus lennék, később elmagyarázom, miért. De azt szándékozom elérni, hogy a szememmel lássam a világot, és ha tetszik nekik a kinézete, akkor hadd mélyüljenek bele egy kicsit 🙂

Először a legegyszerűbb pontot fogom megtámadni, mielőtt a részletekbe kezdenék.

Miért nem fogok műszaki posztot végezni?

Nos azoknak, akik elolvasták a bejegyzésemet legjobb linux parancs, akkor egy kicsit tudni fog ennek a fókusznak az okáról. A technológia mindig változik, és ha ma írok valamit, ha a bejegyzés jól fogadott, akkor mindig frissítenem kell az információkat. A mai leggyakoribb nyelvekben az egyetlen biztos dolog a változás. Ez alatt azt értem (és a programozók igazolhatják) keretei mindig növekednek és módosulnak a magjukból, ez azért van, mert hibák merülnek fel, némelyik egyszerűnek tekinthető bogarak, míg mások válhatnak sérülékenységek. Ez az oka annak, hogy ma egy adott nyelvről szóló bejegyzés írása talán néhány hónap hasznosságot garantálna nekem, a legjobb esetben egy vagy két évet, de nem ez az ötlet

A villamos energia fontos

Akik egy kicsit kutattak az alacsonyabb szoftveres programozási nyelvek iránt, tudják, hogy mindez az áramra vezethető vissza. Korábban a programozást hardver szinten végezték, ez azt jelenti, hogy ezek a régi órák, számológépek és sok más eszköz programozással teljesíthették sorsukat. hardver.

A probléma

A hardveres programozás megváltoztatása drága és bonyolult 🙂 (legalábbis ezt mondták nekem 🙂 ). Ezért jelentek meg olyan processzorok, amelyek valójában elvonják azt a hardver réteget, hogy néhány parancsot kiadjanak, hogy mindent meg lehessen tenni a hardveren keresztül, csak most a hardver rétegben. szoftver.

Processzorok

A mai processzorok korlátozott számú funkcióval rendelkeznek, ún utasítás sok könyvben. Ezek lehetővé teszik a hardver által elvégezhető legalapvetőbb funkciók végrehajtását, valamint az információk mobilizálását a számítógép memóriáján keresztül.

nyilvántartások

A regiszterek egy olyan hely, ahol a processzor információkat tárol, hogy a kernelen végezzen munkát, az architektúrától függően eltérő méretűek és sorrendűek lehetnek, de egyszerű módon az a funkciójuk, hogy olyan adatokat tároljanak, amelyek megmondják a processzornak az egyik következő típusú munkák: adatok, aritmetika és logika mozgatása, valamint a folyam. Mindent összefoglalhatunk az ilyen típusú funkciókban.

Binario

A processzorok bináris szinten működnek, ez azt jelenti, hogy csak értenek 0vki 1igen 🙂. Érdekes tény itt 😀emlékszik a GNU / Linux engedélyekre? jól, elgondolkodott már azon, hogy a processzor hogyan ismeri fel ezeket az engedélyeket?? Egyszerű 🙂 bináris. A legalacsonyabb szinten a processzor az engedélyeket 0s és 1s egymásutániként fogja megérteni, és ez az oka annak, hogy az általunk képzett oktális értékei végrehajtásra, 2 olvasásra és 4 írásra. Azok számára, akik tudnak binárisan olvasni, meg fogják érteni, hogy:

111100101111

Teszik az olvasási, írási és végrehajtási engedélyeket a csoport számára mások miközben végrehajtást és olvasást tett a csoportnak csoport és csak a fájl tulajdonosának olvasható. A legérdekesebbek számára az utolsó három 1 aktiválja a setguid, setuid és sticky bit. Ha nem tudod, mi ez a bináris, akkor meg tudom magyarázni egy másik bejegyzésben, ha nem tudod ezt a setuidról, a setgidről és a ragacsos bitről, akkor rád hagyom 😉 de szükség esetén máshol is elmagyarázhatom.

Amikor a kíváncsiság felhív ...

Nos, ha itt követtél, akkor a kíváncsiságodnak sok mindent el kell kezdeni kérdeznie, az elsőre, amire válaszolni akarok (és talán az egyetlen, amit ez a bejegyzés megenged nekem, mert már nagyon sokat írok): Ha a hívások megegyeznek, miért különböznek ennyire a programok?

Pszichológia

A programozás a gondolatolvasás megtanulásának művészete. Ezt a szakaszt egy régen olvasott idézettel szeretném kezdeni - mondta Edsger Dijkstra:

Ha a hibakeresés a hibakeresés folyamata, akkor a programozásnak kell bevezetni őket

És nem találok jobb módszert mindezek magyarázatára: miért programozza a hibák bevezetésének művészetét? többen csodálkoznak ezen a ponton. A válasz egyszerű, mert elménk emberi, és az emberek hibákat követnek el 🙂 ez a mi természetünkben van, és mindaddig lesz, amíg az ember létezik a bolygón.

A számítógépek nem tévednek

Mi hibázunk, a csapatok mindig csak arra korlátozódnak, hogy reprodukálják, amit mondunk nekik, semmit sem feltételeznek, semmit sem értelmeznek, semmit sem kifogásolnak, csak olvasnak és cselekszenek. Ezért olvastam egy másik C-könyvben ilyesmit:

A C durva nyelv, sokat tehet vele, de ez soha nem fogja megakadályozni abban, hogy lődd be magad, ha ezt akarod, vagy legalábbis elmondod.

Ez meglehetősen kíváncsi igazság 🙂 Mivel ilyen alacsony szinten végzett munka során lehetséges, hogy sok végrehajtott művelet romboló lehet, ami nem történik meg valamivel magasabb szintű nyelvekkel, mivel a hibákat megelőző rétegek idősebbek.

Minden pszichológia

Minden nyelv, keretrendszer, programozó tiszteletben tartja és követi valamiféle filozófiát, és ha nem, akkor nincs túl ígéretes jövője. Azok, akik UNIX-on és származékain dolgozunk, valószínűleg ismerik a régi kifejezést:

Csinálj egyet, és csináld nagyon jól.

Ezt a filozófiát követi néhány projekt, például a kernel, egészen kicsi funkciók, amelyek csak egy dolgot végeznek, de a lehető legjobban csinálják.

Ha más nyelvekre megyünk, mindegyiknek funkciója és célkitűzése lesz, egyesek megengedőbbek és mások korlátozóbbak, de mind a saját gondolkodásmódjukat követik.

Tanulj meg gondolatokat olvasni

A programozók körében meglehetősen elterjedt mondás szerint több száz módon lehet megoldani ugyanazt a problémát. Ez igaz, de ebben a szempontban van valami sokkal mélyebb. A forráskód olvasása lehetővé teszi gondolatok olvasását - nem akármilyen, hanem az azt író programozó (vagy programozók) elméjét. Ez egyfajta virtuális és mély napló 🙂, amely lehetővé teszi, hogy alaposan megismerje a fejlesztő elméjét, és kiterjedt projektek esetén megnézheti, hogyan nőtt logikai és kritikai gondolkodásuk az idők során. Valami rendkívüli, és ez nagyon táplálja a legfiatalabbak elméjét, mert megismerheti azoknak a legjobb utakat, akiknek felfedezniük kellett 🙂

Hogy következetes legyen

Sok programozó és szakember azt mondja, hogy ki kell lépnünk a magunkból komfortzóna, és bár igaz, bizonyos folyamatok és formátumok fenntartása is több mint szükséges. Ezt egyszerűen meg lehet magyarázni, elménk ismétlődő és tiszteletben tartja a struktúrákat, ha minden nap ugyanúgy írsz kódot, rövid idő alatt abbahagyod a formára gondolkodást, és képes leszel arra koncentrálni. háttér. Ez lehetővé teszi a logika a program helyett nyelv szintaxisa. És ez az oka annak, hogy úgy vélem, hogy megtanultam a fogalmak mindig fontosabb lesz, mint a tanulás a formák. Ez egy személyes vélemény, de remélem, hogy mindezek elolvasása után megértheti, miért gondolom ezt így told mondta valaki, akinek programoznia kellett C, Java, Javascript, Python, Ruby, PHP és mások programokban. a fogalmak megkönnyítik a kódírást.

Összefoglalva

Nos, ez az első lépés egy sorozatban, amely remélem, segít abban, hogy másképp gondolkodjon a programozás művészetéről, sőt meghívja Önt, hogy elmélyüljön azokban a koncepciókban, amelyek lehetővé teszik a több százszor megírt kód végrehajtását, nem álltak meg, hogy átgondolják, mit is csinál valójában. És azok számára, akik még nem kezdtek programozni, de szeretnék, egy kicsit előtérbe helyezhessék azt, amit igazán fontos tudni 🙂 Üdvözlet


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   Javier G. Delgado dijo

    Nagyon lelkiismeretes cikk, amely (ebben az esetben) a programozásról beszélhet egy esetlegesen mélyebben programozó új nyelven. Támogatásom a következőkre terjed ki.

    1.    ChrisADR dijo

      Szia Javier, nagyon köszönöm 🙂 Szerintem ez nagyon fontos, mert mindig is csak a kód reprodukciójára akartak tanítani, a híres Ctrl + C ... Ctrl + V 🙂, de ezt soha nem hagytam magam vonszolni, még akkor is, ha ez a világ legegyszerűbb problémája, inkább megírom, mint hogy másról másoljam, ez azt az érzést kelti bennem, mintha az én alkotásom lenne.
      Üdvözlet

  2.   tutaj dijo

    Már várva a következő fejezetre, már régen abbahagytam a programozást, és azt hiszem, néhány későbbi fejezetben megtalálhatom a döntésem okát, valóban, mivel ez a fejezet leveszi a kalapomat.

  3.   ChrisADR dijo

    Szia Balua 🙂
    Nos, kitalálok valamit a következőre. Kicsit bonyolult mindent úgy megrendelni, hogy a szál bármelyik hozzászólásból követhető legyen, de megpróbálom ezt (és még többen, akik tőlem kértek) nagyon hamar megszerezni. Köszönöm a hozzászólásod. Egészségére

  4.   egyébként dijo

    Egy cikk gyöngyszeme! Remélem, a következő ...