Програмирање: Психологија рачунара

Сви смо уско повезани с програмирањем, било као корисник, као администратор, било као програмер, али на крају је то нешто што ће бити више повезано са нашим животима како године одмичу.

У овом чланку (почетак мале серије коју планирам да створим), Желим да поделим са вама неколико концепата о ономе што сам годинама откривао о програмирању. Не тврдим да сам превише технички, објаснићу зашто касније. Али оно што намеравам је да их натерам да виде свет мојим очима, а ако им се свиђа како изгледа, онда нека се мало удубе у њега 🙂

Прво ћу напасти најједноставнију тачку од свих пре него што уђем у детаље.

Зашто нећу радити на техничком радном месту?

Па, за оне који су прочитали мој пост о томе најбоља линук команда, знаћете мало о узроку овог фокуса. Технологија се увек мења, а ако данас нешто напишем, ако је пост добро примљен, увек ћу морати да ажурирам информације. У најчешћим језицима данас једина сигурна ствар су промене. Под тим мислим (и програмери могу да докажу да сам у праву) оквири увек расту и мењају се од својих језгара, то је зато што се појављују грешке, неке се могу сматрати једноставним бубе, док други могу постати рањивости. То је разлог зашто би ми данас писање поста о одређеном језику гарантовало можда неколико месеци корисности, у најбољем случају годину или две године, али то није идеја

Струја је важна

Они од вас који су мало истраживали најниже програмске језике, знаће да све потиче од електричне енергије. У прошлости се програмирање вршило на хардверском нивоу, то значи да су ти стари сатови, калкулатори и многи други уређаји могли испунити своју судбину програмирањем хардвер.

Проблем

Промена хардверског програмирања је скупа и сложена 🙂 (бар су ми тако рекли 🙂 ). Због тога су се појавили процесори који заправо апстрахирају тај хардверски слој дајући нам неколико команди да бисмо могли да урадимо све што је могуће путем хардвера, тек сада у хардверском слоју. софтвер.

Процесори

Данашњи процесори имају ограничен број функција, тзв упутства у многим књигама. Они вам омогућавају да извршите најосновније функције које хардвер може да изврши и да мобилишете податке кроз меморију рачунара.

Регистри

Регистри су простор у којем процесор складишти информације како би могао да обавља рад на језгру, у зависности од архитектуре могу имати различиту величину и редослед, али на једноставан начин, њихова функција је чување података који поручују процесору једна од следећих врста посла: премештање података, аритметике и логике и контрола проток. Све се може сажети у ове врсте функционалности.

бинарни

Процесори раде на бинарном нивоу, то значи да само разумеју 0си 1да 🙂. Овде је необична чињеница 😀сећате се ГНУ / Линук дозвола? па, да ли сте се икад запитали како процесор заправо препознаје те дозволе? Једноставно 🙂 бинарно. На најнижем нивоу, процесор ће разумети дозволе као сукцесију од 0 и 1, и то је разлог зашто октал који формирамо има вредности за извршење, 2 за читање и 4 за писање. Они који умеју да читају бинарне датотеке, разумеће следеће:

111100101111

Они групи стављају дозволе за читање, писање и извршавање други док за групу ставља извршење и читање група и читати само за власника датотеке. За најзанимљивије, последња три 1 активирају setguid, setuid и sticky bit. Ако не знате шта је ово бинарно, то могу да објасним у другом посту, ако не знате ово о сетуиду, сетгиду и лепљивом биту, оставићу вама 😉, али по потреби могу то објаснити и на другом месту.

Кад радозналост позове ...

Па, ако сте ме пратили овде, ваша радозналост би требала почети да пита много ствари, прва на коју желим да одговорим (и можда једина која ће ми овај пост дозволити јер већ пуно пишем) је: Ако су позиви исти, зашто су програми толико различити?

Психологија

Програмирање је уметност учења читања мисли тхис Желим да започнем овај одељак цитатом који сам давно прочитао, рекао је Едсгер Дијкстра:

Ако је отклањање грешака процес отклањања грешака, онда програмирање мора бити поступак њиховог увођења

И не могу да нађем бољи начин да објасним све ово 🙂 зашто је програмирање умеће увођења грешака? више од једног ће се питати у овом тренутку. Одговор је једноставан, јер су наши умови људи, а људи праве грешке - то је у нашој природи и биће све док човек постоји на планети.

Рачунари не греше

Ми смо ти који грешимо, тимови ће се увек ограничити на репродукцију онога што им кажемо, ништа не претпостављају, не тумаче, не приговарају ничему, само читају и делују. Због тога сам у другој књизи на Ц-у икад прочитао овако нешто:

Ц је груб језик, с њим можете много учинити, али вас никада неће спречити да пуцате себи у ногу ако то желите да учините, или бар тако кажете.

Ово је прилично знатижељна истина 🙂 Будући да када се ради на тако ниском нивоу, могуће је да многе изведене операције могу бити деструктивне, што се код језика мало вишег нивоа не догађа, јер слојеви за спречавање грешака старији су.

Све је психологија

Сваки језик, оквир, програмер поштује и следи неку врсту филозофије, а ако не, нема много перспективну будућност. Они од нас који раде на УНИКС-у и дериватима вероватно ће знати стару фразу:

Урадите једну ствар и то врло добро.

Ову филозофију прате неки пројекти попут језгра, прилично мале функције које раде само једно, али чине најбоље што могу.

Ако пређемо на друге језике, сваки ће имати функцију и циљ, неки пермисивнији, а други рестриктивнији, али сви следећи свој начин размишљања.

Научите да читате мисли

Међу програмерима постоји прилично честа изрека да постоји стотине начина за решавање истог проблема. То је тачно, али има нешто много дубље у овом аспекту. Читање изворног кода омогућава вам читање мисли - не било којег ума, већ ума програмера (или програмера) који га је написао. То је нека врста виртуелног и дубоког дневника 🙂 омогућава вам да дубински познајете ум програмера, а у случају опсежних пројеката омогућава вам да видите како је њихово логично и критичко размишљање временом расло. Нешто изванредно и што у великој мери храни ум најмлађих, јер можете знати најбоље путеве људи који су их морали открити 🙂

Да будем доследан

Многи програмери и стручњаци кажу да морамо изаћи из свог удобност зона, и иако је тачно, више је него потребно одржавати одређене процесе и формате. То је једноставно објаснити, наши умови се понављају и поштују структуре, ако свакодневно пишете код на исти начин, за кратко време ћете престати да размишљате о форми и моћи ћете да се концентришете на њу. фонд. Ово вам омогућава да видите логика програма уместо синтакса језика. И то је разлог зашто сматрам да је учење концепти увек ће бити важније од учења облици. Ово је лично мишљење, али надам се да ћете након што прочитате све ово разумети зашто то сматрам тако 🙂 такође рекао неко ко је морао да програмира на Ц, Јава, Јавасцрипт, Питхон, Руби, ПХП и другима 🙂 зна концепти олакшавају писање кода.

Укратко

Па, ово је први корак у низу за који се надам да ће вам помоћи да другачије размишљате о уметности програмирања, чак вас позивам да се удубите у концепте који вам омогућавају да извршите код који сте написали можда стотине пута, али нису застали да размисле о томе шта заправо чини. А за оне који нису започели програмирање, али би то желели, могу да дају мало приоритета ономе што је заиста важно знати 🙂 Поздрав


Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.

  1.   Јавиер Г. Делгадо дијо

    Веома савестан чланак у којем се расправља о програмирању (у овом случају) можда на новом језику који дубље програмира, моја подршка иде на следеће.

    1.    ЦхрисАДР дијо

      Здраво, Хавијере, хвала ти пуно 🙂 Мислим да је ово веома важно јер су ме одувек желели научити само репродуковању кода, чувеног Цтрл + Ц ... Цтрл + В 🙂, али никада се нисам дао повући због овога, чак иако је то најједноставнији проблем на свету Радије бих то написао него копирао од некога другог, чини ми се као да је то моја креација.
      поздрави

  2.   Балуа дијо

    Већ чекајући следеће поглавље, давно сам престао са програмирањем и мислим да у каснијем поглављу могу пронаћи неки разлог за своју одлуку, заиста, јер ово поглавље скидам капу.

  3.   ЦхрисАДР дијо

    Здраво Балуа 🙂
    Па, смислићу нешто за следећу. Помало је незгодно све уредити тако да се нит може пратити из било ког поста, али покушаћу да имам овај (и неколико других који су ме питали) врло брзо. Хвала за ваш коментар. Живели

  4.   Андерс дијо

    Драгуљ чланка! Надам се да ће следећи ...