Programavimas: kompiuterių psichologija

Mes visi esame glaudžiai susiję su programavimu, nesvarbu, ar tai vartotojas, kaip administratorius, kaip pats programuotojas, bet galų gale tai yra kažkas, kas bėgant metams bus labiau susijusi su mūsų gyvenimu.

Šiame straipsnyje (mažos serijos, kurią planuoju sukurti, pradžia), Noriu pasidalinti su jumis keliomis koncepcijomis apie tai, ką per daugelį metų atradau apie programavimą. Aš neteigiu, kad esu pernelyg techniškas, vėliau paaiškinsiu, kodėl. Bet aš ketinu priversti juos pamatyti pasaulį mano akimis, o jei jiems patinka, kaip jis atrodo, leisk jiems šiek tiek pasigilinti

Pirmiausia pulsiu į paprasčiausią tašką, prieš pradėdamas smulkmenas.

Kodėl aš nedarysiu techninio pranešimo?

Na, tiems, kurie perskaitė mano įrašą apie geriausia „Linux“ komanda, jūs šiek tiek žinosite apie šio dėmesio priežastį. Technologijos visada keičiasi, ir jei šiandien ką nors parašysiu, jei pranešimas bus gerai įvertintas, visada turėsiu atnaujinti informaciją. Dabartinėmis kalbomis vienintelis tikras dalykas yra pokyčiai. Turiu omenyje (ir programuotojai gali įrodyti, kad esu teisus) sistemos visada auga ir keičiasi iš savo branduolių, taip yra todėl, kad atsiranda klaidų, kai kurias galima laikyti paprastomis klaidas, tuo tarpu kiti gali tapti pažeidžiamumas. Tai yra priežastis, kodėl įrašo apie konkrečią kalbą rašymas man šiandien garantuotų gal keletą mėnesių naudingumą, geriausiais atvejais vienerius ar dvejus metus, tačiau tai nėra idėja

Svarbu elektra

Tie, kurie šiek tiek tyrinėjo žemiausias programinės įrangos programavimo kalbas, žinos, kad visa tai atsirado nuo elektros. Anksčiau programavimas buvo atliekamas aparatinės įrangos lygiu, tai reiškia, kad tie seni laikrodžiai, skaičiuotuvai ir daugelis kitų įrenginių galėjo įgyvendinti savo likimą programuodami techninė įranga.

Problema

Aparatinės įrangos programavimo keitimas yra brangus ir sudėtingas 🙂 (bent jau taip man pasakė 🙂 ). Štai kodėl atsirado procesoriai, kurie iš tikrųjų abstrakcionuoja tą aparatūros sluoksnį, kad suteiktų mums keletą komandų, kad galėtume padaryti viską, kas įmanoma naudojant aparatinę įrangą, tik dabar aparatūros sluoksnyje. programinė įranga.

Procesoriai

Šiandieniniai procesoriai turi ribotą skaičių funkcijų, vadinamų instrukcijos daugelyje knygų. Tai leidžia atlikti pagrindines funkcijas, kurias gali atlikti aparatinė įranga, ir mobilizuoti informaciją per kompiuterio atmintį.

Registrų

Registrai yra erdvė, kurioje procesorius saugo informaciją, kad galėtų atlikti branduolio darbus, atsižvelgiant į jų architektūrą, jų dydis ir tvarka gali būti skirtingi, tačiau paprastu būdu jų funkcija yra kaupti duomenis, nurodančius procesoriui. vienas iš šių darbų tipų: perkelti duomenis, aritmetiką ir logiką bei valdyti tekėti. Viską galima apibendrinti tokio tipo funkcijomis.

Binario

Procesoriai dirba dvejetainiu lygiu, tai reiškia, kad jie tik supranta 0sy 1taip 🙂. Čia įdomus faktas 😀prisimenate GNU / Linux teises? gerai,ar kada susimąstėte, kaip procesorius iš tikrųjų atpažįsta tuos leidimus? Paprastas 🙂 dvejetainis. Žemiausiu lygiu procesorius teises supras kaip 0s ir 1s sekas, ir tai yra priežastis, kodėl mūsų suformuotas aštuonkojis turi reikšmes vykdyti, 2 skaitymui ir 4 rašymui. Tiems, kurie gali skaityti dvejetainius failus, jie supras, kad:

111100101111

Jie suteikia grupei skaitymo, rašymo ir vykdymo teises kiti o grupei skirti pasirodymo ir skaitymo grupė ir skaityti tik failo savininkui. Patiems smalsiausiems trys paskutiniai 1 aktyvuoja setguid, setuid ir sticky bit. Jei nežinote, kas yra ši dvejetainė programa, galiu tai paaiškinti kitame įraše, jei nežinote apie setuidą, setgidą ir lipnųjį antgalį, paliksiu jums 😉 bet prireikus galiu paaiškinti ir kitur.

Kai skambina smalsumas ...

Na, jei jūs sekėte mane čia, tada jūsų smalsumas turėtų pradėti klausinėti daugelio dalykų, pirmiausia noriu atsakyti (ir galbūt vienintelį, kurį man leis šis įrašas, nes aš jau daug rašau): Jei skambučiai yra vienodi, kodėl programos taip skiriasi?

Psichologija

Programavimas yra mokymasis skaityti mintis. This Noriu pradėti šį skyrių su citata, kurią skaičiau jau seniai, sakė Edsgeris Dijkstra:

Jei derinimas yra derinimo procesas, tada programavimas turi būti jų įvedimo procesas

Ir aš negaliu rasti geresnio būdo visa tai paaiškinti 🙂 kodėl programavimas yra klaidų įvedimo menas? šiuo metu stebėsis ne vienas. Atsakymas yra paprastas, nes mūsų protas yra žmogus ir žmonės daro klaidų 🙂 tai yra mūsų prigimtyje, ir tai bus tol, kol žmogus egzistuoja planetoje.

Kompiuteriai nėra neteisūs

Mes klystame, komandos visada apsiribos tuo, kad atkartoja tai, ką mes jiems sakome, jos nieko neprisiima, nieko neaiškina, nieko neprieštarauja, tiesiog skaito ir veikia. Štai kodėl kitoje C knygoje aš kada nors perskaičiau panašiai:

C yra nemandagi kalba, su ja galima daug nuveikti, tačiau ji niekada netrukdys šaudyti sau į koją, jei nori tai padaryti, arba taip pasakysi.

Tai gana įdomi tiesa 🙂 Kadangi dirbant tokiu žemu lygiu, gali būti, kad daugelis atliekamų operacijų gali būti žalingos, o tai neįmanoma su šiek tiek aukštesnio lygio kalbomis, nes klaidų prevencijos sluoksniai yra senesni.

Viskas yra psichologija

Kiekviena kalba, pagrindas, programuotojas gerbia ir vadovaujasi kažkokia filosofija, o jei ne, tai neturi labai perspektyvios ateities. Tie, kurie dirbame su UNIX ir dariniais, tikriausiai žinos seną frazę:

Daryk vieną dalyką ir daryk tai labai gerai.

Šios filosofijos laikosi kai kurie projektai, pvz., Branduolys, gana mažos funkcijos, kurios atlieka tik vieną dalyką, tačiau daro tai kuo geriau.

Jei eisime į kitas kalbas, kiekvienas iš jų turės savo funkciją ir tikslą, vieni labiau leisdami ir kiti labiau ribos, bet visi laikysis savo mąstymo.

Išmokite skaityti mintis

Tarp programuotojų yra gana paplitęs posakis, kad yra šimtai būdų, kaip išspręsti tą pačią problemą. Tai tiesa, tačiau šiame aspekte yra kažkas daug giliau. Skaitydami šaltinio kodą galite skaityti mintis - ne bet kokį, bet ir jį parašiusio programuotojo (ar programuotojų) mintis. Tai yra tam tikras virtualus ir gilus dienoraštis, leidžiantis išsamiai pažinti kūrėjo mintis, o įgyvendinant plačius projektus - pamatyti, kaip jų loginis ir kritinis mąstymas laikui bėgant išaugo. Kažkas nepaprasto ir labai maitinančio jauniausiųjų protus, nes galite žinoti geriausius žmonių, kurie turėjo juos atrasti, kelius 🙂

Kad būtų nuoseklus

Daugelis programuotojų ir specialistų sako, kad turime išeiti iš savo komforto zonosir, nors tai tiesa, taip pat daugiau nei būtina išlaikyti tam tikrus procesus ir formatus. Tai paprasta paaiškinti, mūsų mintys kartojasi ir gerbia struktūras. Jei kiekvieną dieną rašysite kodą tuo pačiu būdu, per trumpą laiką nustosite galvoti apie formą ir galėsite jai susikaupti. fonas. Tai leidžia pamatyti logika programos vietoj kalbos sintaksė. Tai yra priežastis, kodėl aš laikau tą mokymąsi koncepcijos visada bus svarbiau nei mokytis formos. Tai asmeninė nuomonė, bet tikiuosi, kad perskaitę visa tai suprasite, kodėl manau, kad taip manau, taip pat pasakė kažkas, turėjęs programuoti C, „Java“, „Javascript“, „Python“, „Ruby“, PHP ir kt. pagal sąvokas lengva rašyti kodą.

Apibendrinant

Na, tai yra pirmasis žingsnis serijoje, kuris, tikiuosi, padės kitaip galvoti apie programavimo meną, netgi pakvies gilintis į sąvokas, leidžiančias įvykdyti gal šimtus kartų parašytą kodą, bet jie nesustojo galvoti apie tai, ką jis iš tikrųjų veikia. Tiems, kurie dar nepradėjo programuoti, bet norėtų, galėtų šiek tiek suskirstyti prioritetus į tai, ką tikrai svarbu žinoti to Sveikinimai


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   Javieras G. Delgado sakė

    Labai sąžiningas straipsnis, kuriame programavimas aptariamas (šiuo atveju) galbūt nauja kalba, kuri programuojama giliau, palaikau toliau.

    1.    ChrisADR sakė

      Sveiki, Javierai, labai ačiū 🙂 Manau, kad tai yra labai svarbu, nes jie visada norėjo išmokyti mane tik atkurti kodą, garsiąją „Ctrl“ + C ... „Ctrl“ + V 🙂, bet niekada neleidau to vilkti, Net jei tai yra paprasčiausia problema pasaulyje, verčiau ją parašyti, nei nukopijuoti iš kažkieno, man atrodo, kad tai mano kūryba.
      saludos

  2.   plaustas sakė

    Jau laukdamas kito skyriaus, seniai nustojau programuoti ir manau, kad kai kuriuose vėlesniuose skyriuose galiu rasti tam tikrų priežasčių, kodėl mano sprendimas iš tikrųjų gali kilti, nes šiame skyriuje aš nusiimu kepurę.

  3.   ChrisADR sakė

    Sveiki, Balua 🙂
    Na, aš sugalvosiu ką nors kitam. Šiek tiek keblu viską sutvarkyti taip, kad giją būtų galima sekti iš bet kurio įrašo, bet aš labai greitai bandysiu turėti šį (ir kelis kitus manęs paprašiusius). Dėkojame už jūsų komentarą. Cheers

  4.   kitaip sakė

    Straipsnio perlas! Tikiuosi, kad kitas ...