Programiranje: Psihologija računara

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 biti više povezano s našim životima kako godine odmiču.

U ovom članku (početak male serije koju planiram stvoriti), Želim s vama podijeliti nekoliko koncepata o onome što sam godinama otkrivao o programiranju. Ne pretvaram se da sam previše tehnički, objasniću zašto kasnije. Ali ono što namjeravam jest natjerati ih da svijet vide mojim očima, a ako im se sviđa način na koji 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 obavljati tehnički posao?

Pa za one koji su pročitali moj post o tome najbolja linux naredba, znat ćete malo o uzroku ovog fokusa. Tehnologija se uvijek mijenja, i ako danas napišem nešto, ako je post dobro primljen, uvijek ću morati ažurirati informacije. 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 od svojih jezgri, to je zato što se pojavljuju pogreške, neke se može smatrati jednostavnim Bugs, dok drugi mogu postati ranjivosti. To je razlog zašto bi mi danas pisanje posta o određenom jeziku zagarantovalo 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 malo istražili najniže programske jezike, znat će da sve datira od električne energije. U prošlosti se programiranje vršilo na hardverskom nivou, to znači da su ti stari satovi, kalkulatori i mnogi drugi uređaji mogli ispuniti svoju sudbinu programiranjem hardver.

problem

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

Procesori

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

Registri

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

Binario

Procesori rade na binarnom nivou, što znači da samo razumiju 0sy 1da 🙂. Zanimljiva činjenica ovdje 😀sjećate se GNU / Linux dozvola? dobro,jeste li se ikad zapitali kako procesor zapravo prepoznaje te dozvole? Jednostavno 🙂 binarno. Na najnižem nivou, procesor će dopuštenja shvatiti kao sukcesiju od 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 stavljaju dozvole za čitanje, pisanje i izvršavanje za grupu drugi dok izvodi izvršenje i čitanje za grupu grupa i čitati samo za vlasnika datoteke. Za najzanimljivije, posljednja tri 1 aktiviraju setguid, setuid y el sticky bit. Ako ne znate koja je to binarna datoteka, mogu to objasniti u drugom postu, ako ne znate ovo o setuidu, setgidu i ljepljivom bitu, prepustit ću vam 😉, ali po potrebi mogu to objasniti i drugdje.

Kad radoznalost nazove ...

Pa, ako ste me slijedili ovdje, vaša znatiželja bi 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 otklanjanja pogrešaka, tada programiranje mora biti postupak njihovog uvođenja

I ne mogu naći bolji način da objasnim sve ovo 🙂 zašto je programiranje umijeće uvođenja grešaka? više od jednog će se pitati u ovom trenutku. 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čunari ne griješe

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

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 se radi na tako niskom nivou, moguće je da mnoge izvedene operacije mogu biti destruktivne, što se kod jezika malo višeg nivoa ne događa, jer slojevi za sprečavanje grešaka oni su 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 radimo na UNIX-u i izvedenicama vjerojatno ćemo znati staru frazu:

Učini jednu stvar i to jako dobro.

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

Ako pređemo na druge jezike, svaki će imati svoju funkciju i cilj, neki permisivniji, a drugi restriktivniji, ali svi slijedeći 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 mnogo dublje u ovom aspektu. Čitanje izvornog koda omogućava vam čitanje misli - ne bilo kojeg uma, već uma programera (ili programera) koji ga je napisao. To je neka vrsta virtualnog i dubokog dnevnika - omogućava 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 u velikoj mjeri hrani najmlađe, jer možete znati najbolje putove ljudi koji su ih morali otkriti 🙂

Da budemo dosljedni

Mnogi programeri i stručnjaci kažu da moramo izaći iz svog zona udobnosti, i iako 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 kod na isti način, za kratko vrijeme ćete prestati razmišljati o formi i moći ćete se koncentrirati na nju. fond. To vam omogućava da vidite logika programa umjesto sintaksa jezika. I to je razlog zašto smatram da je učenje koncepti će uvijek biti važnije od učenja oblici. Ovo je lično mišljenje, ali nadam se da ćete nakon čitanja svega ovoga shvatiti zašto to tako smatram 🙂 rekao je i neko ko je morao programirati na C, Java, Javascript, Python, Ruby, PHP i drugima 🙂 znati koncepti olakšavaju pisanje koda.

Ukratko

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 pozabavite konceptima koji vam omogućavaju izvršavanje koda koji ste napisali možda stotinama 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


5 komentara, ostavi svoj

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  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 obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Javier G. Delgado rekao je

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

    1.    ChrisADR rekao je

      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.
      Saludos

  2.   splav rekao je

    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, jer ovo poglavlje skidam kapu.

  3.   ChrisADR rekao je

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

  4.   Anders rekao je

    Dragulj članka!, Nadam se sljedećem ...