Programiranje: Psihologija računala

Svi smo usko povezani s programiranjem, bilo kao korisnik, kao administrator, bilo kao sam programer, ali u konačnici to je nešto što će s godinama biti sve više povezano s našim životima.

U ovom članku (početak male serije koju planiram stvoriti), Želim podijeliti s vama nekoliko koncepata o onome što sam tijekom godina otkrivao o programiranju. Ne tvrdim da sam pretjerano tehnički, kasnije ću objasniti zašto. Ali ono što ja namjeravam jest natjerati ih da svijet vide mojim očima, a ako im se sviđa kako on izgleda, onda neka malo u njega uđu.

Prvo ću napasti najjednostavniju točku prije nego što uđem u detalje.

Zašto neću raditi tehničko radno mjesto?

Pa, za one koji su pročitali moj post o najbolja linux naredba, znat ćete malo o uzroku ovog fokusa. Tehnologija se uvijek mijenja, a ako danas nešto napišem, ako je post dobro primljen, uvijek ću morati ažurirati podatke. U najčešćim jezicima danas jedina sigurna stvar su promjene. Pod tim mislim (i programeri mogu dokazati da sam u pravu) okviri uvijek rastu i mijenjaju se iz svojih jezgri, to je zato što se pojavljuju pogreške, neke se može smatrati jednostavnima bube, dok drugi mogu postati ranjivosti. To je razlog zašto bi mi danas pisanje posta o određenom jeziku zajamčilo možda nekoliko mjeseci korisnosti, u najboljem slučaju godinu ili dvije godine, ali to nije ideja

Struja je važna

Oni od vas koji su proveli malo istraživanja na nižim programskim jezicima softvera znat će da sve datira iz električne energije. U prošlosti se programiranje vršilo na hardverskoj razini, to znači da su ti stari satovi, kalkulatori i mnogi drugi uređaji mogli ispuniti svoju sudbinu programiranjem hardver.

problem

Promjena hardverskog programiranja skupa je i složena 🙂 (barem su mi tako rekli 🙂 ). Zbog toga su se pojavili procesori koji zapravo apstrahiraju taj hardverski sloj dajući nam nekoliko naredbi da bismo mogli učiniti sve što je moguće putem hardvera, tek sada u hardverskom sloju. softver.

Procesori

Današnji procesori imaju ograničen broj funkcija, tzv instrukcije u mnogim knjigama. Oni vam omogućuju izvršavanje najosnovnijih funkcija koje hardver može izvršiti i mobilizaciju informacija kroz memoriju računala.

registri

Registri su prostor u kojem procesor pohranjuje podatke kako bi mogao izvoditi rad na jezgri, ovisno o arhitekturi mogu imati različitu veličinu i redoslijed, ali na jednostavan način, njihova je funkcija pohranjivanje podataka koji poručuju procesoru jedna od sljedećih vrsta posla: premjestiti podatke, aritmetiku i logiku i kontrolu nad teći. Sve se može sažeti u ove vrste funkcionalnosti.

Binario

Procesori rade na binarnoj razini, to znači da samo razumiju 0sy 1da 🙂. Ovdje je neobična činjenica 😀sjećate se GNU / Linux dozvola? dobro, jeste li se ikad zapitali kako procesor zapravo prepoznaje ta dopuštenja? Jednostavno 🙂 binarno. Na najnižoj razini, procesor će dopuštenja shvatiti kao sukcesiju 0 i 1, i to je razlog zašto osmica koju formiramo ima vrijednosti za izvršenje, 2 za čitanje i 4 za pisanje. Oni koji znaju čitati binarne datoteke, razumjet će sljedeće:

111100101111

Oni grupi stavljaju dozvole za čitanje, pisanje i izvršavanje drugi dok izvodi izvedbu i čita za grupu grupa i samo za vlasnika datoteke. Za najzanimljivije, posljednja tri 1 aktiviraju setguid, setuid i sticky bit. Ako ne znate koja je to binarna datoteka, mogu to objasniti u drugom postu, ako to ne znate o setuidu, setgidu i ljepljivom bitu, prepustit ću vam 😉, ali po potrebi mogu to objasniti i drugdje.

Kad znatiželja nazove ...

Pa, ako ste me slijedili ovdje, vaša bi znatiželja trebala početi pitati puno stvari, prva na koju želim odgovoriti (i možda jedina koja će mi ovaj post omogućiti jer već puno pišem) je: Ako su pozivi isti, zašto su programi toliko različiti?

Psihologija

Programiranje je umjetnost učenja čitanja misli this Želim započeti ovaj odjeljak citatom koji sam davno pročitao, rekao je Edsger Dijkstra:

Ako je otklanjanje pogrešaka postupak ispravljanja pogrešaka, tada programiranje mora biti postupak njihovog uvođenja

I ne mogu pronaći bolji način da objasnim sve ovo 🙂 zašto je programiranje umijeće uvođenja pogrešaka? više će se u ovom trenutku pitati. Odgovor je jednostavan, jer su naši umovi ljudi i ljudi griješe - to je u našoj prirodi i to će biti sve dok čovjek postoji na planeti.

Računala nisu u krivu

Mi smo ti koji griješimo, timovi će se uvijek ograničiti na reprodukciju onoga što im kažemo, ništa ne pretpostavljaju, ne tumače, ne prigovaraju ničemu, samo čitaju i djeluju. Tako sam u drugoj C knjizi ikad pročitao nešto poput ovoga:

C je bezobrazan jezik, s njim možete puno učiniti, ali nikada vas neće spriječiti da si pucate u nogu ako to želite učiniti, ili barem tako kažete.

Ovo je prilično znatiželjna istina 🙂 Budući da kada rade na tako niskoj razini, moguće je da mnoge izvedene operacije mogu biti destruktivne, što se ne događa s jezicima nešto više razine, jer su slojevi za sprečavanje pogrešaka stariji.

Sve je psihologija

Svaki jezik, okvir, programer poštuje i slijedi neku vrstu filozofije, a ako ne, nema baš perspektivnu budućnost. Oni od nas koji rade na UNIX-u i izvedenicama vjerojatno ćemo znati staru frazu:

Učini jednu stvar i to jako dobro.

Ovu filozofiju slijede neki projekti poput jezgre, prilično male funkcije koje rade samo jedno, ali čine to najbolje što mogu.

Ako idemo na druge jezike, svaki će imati funkciju i cilj, neki će biti dopušteniji, a drugi restriktivniji, ali svi će slijediti svoj način razmišljanja.

Naučite čitati misli

Među programerima je prilično česta izreka da postoji stotine načina za rješavanje istog problema. To je istina, ali ima nešto puno dublje u ovom aspektu. Čitanje izvornog koda omogućuje vam čitanje misli - ne bilo kojeg uma, već uma programera (ili programera) koji ga je napisao. To je vrsta virtualnog i dubokog dnevnika 🙂 omogućuje vam dubinsko poznavanje uma programera, a u slučaju velikih projekata omogućuje vam da vidite kako je njihovo logično i kritičko razmišljanje s vremenom raslo. Nešto izvanredno i što uvelike hrani um najmlađih, jer možete znati najbolje putove ljudi koji su ih morali otkriti 🙂

Da budem dosljedan

Mnogi programeri i stručnjaci kažu da moramo izaći iz svog comfort zone, i premda je to istina, više je nego potrebno održavati određene procese i formate. To je jednostavno objasniti, naši se umovi ponavljaju i poštuju strukture, ako svakodnevno pišete kôd na isti način, za kratko vrijeme prestat ćete razmišljati o formi i moći ćete se koncentrirati na nju. pozadina. To vam omogućuje da vidite logika programa umjesto sintaksa jezika. I to je razlog zašto smatram da je učenje pojmovi uvijek će biti važnije od učenja oblici. Ovo je osobno mišljenje, ali nadam se da ćete nakon čitanja svega ovoga shvatiti zašto to tako smatram 🙂 rekao je i netko tko je morao programirati na C, Java, Javascript, Python, Ruby, PHP i drugima 🙂 znati koncepti olakšavaju pisanje koda.

U sažetku

Pa, ovo je prvi korak u nizu za koji se nadam da će vam pomoći da drugačije razmišljate o umjetnosti programiranja, čak vas pozivam da se udubite u koncepte koji vam omogućuju izvršavanje koda koji ste napisali možda stotine puta, ali nisu prestali razmišljati o tome što zapravo čini. A za one koji nisu započeli programiranje, ali bi željeli, moći će malo odrediti ono što je zaista važno znati 🙂 Pozdrav


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Javier G. Delgado dijo

    Vrlo savjestan članak koji govori (u ovom slučaju) o programiranju možda na novom jeziku koji dublje programira, moja podrška ide na sljedeće.

    1.    ChrisADR dijo

      Pozdrav Javier, hvala ti puno 🙂 Mislim da je ovo vrlo važno jer su me oduvijek željeli naučiti reproducirati kod, čuveni Ctrl + C ... Ctrl + V 🙂, ali nikada se nisam dao povući zbog ovoga, čak i ako je to najjednostavniji problem na svijetu Radije bih to napisao nego kopirao od nekoga drugog, čini mi se kao da je to moja kreacija.
      pozdravi

  2.   splav dijo

    Već čekajući sljedeće poglavlje, davno sam prestao s programiranjem i mislim da u nekom kasnijem poglavlju mogu pronaći razlog za svoju odluku, zaista, budući da u ovom poglavlju skidam kapu.

  3.   ChrisADR dijo

    Pozdrav Balua 🙂
    Pa, smislit ću nešto za sljedeću. Malo je komplicirano sve naručiti na takav način da se nit može pratiti iz bilo kojeg posta, ali pokušat ću to imati (i nekoliko drugih koji su me pitali) vrlo brzo. Hvala na komentaru. Živjeli

  4.   Anders dijo

    Dragulj članka! Nadam se da će sljedeći ...