Сви смо уско повезани с програмирањем, било као корисник, као администратор, било као програмер, али на крају је то нешто што ће бити више повезано са нашим животима како године одмичу.
У овом чланку (почетак мале серије коју планирам да створим), Желим да поделим са вама неколико концепата о томе шта сам откривао о програмирању током година. Не покушавам да будем екстремно технички, касније ћу објаснити зашто. Али оно што ја намеравам је да вас натерам да видите свет мојим очима, и ако вам се свиђа како изгледа, уђите мало дубље у то
Прво ћу напасти најједноставнију тачку од свих пре него што уђем у детаље.
Зашто нећу радити на техничком радном месту?
Па, за оне који су прочитали мој пост о томе најбоља линук команда, знаћете мало о узроку овог фокуса. Технологија се увек мења, а ако данас нешто напишем, ако је пост добро примљен, увек ћу морати да ажурирам информације. У најчешћим језицима данас једина сигурна ствар су промене. Под тим мислим (и програмери могу да докажу да сам у праву) оквири увек расту и мењају се од својих језгара, то је зато што се појављују грешке, неке се могу сматрати једноставним бубе, док други могу постати рањивости. То је разлог зашто би ми писање поста о одређеном језику, данас, гарантовало можда неколико месеци корисности, у најбољем случају годину или две, али то није идеја
Струја је важна
Они од вас који су мало истраживали најниже програмске језике, знаће да све потиче од електричне енергије. У прошлости се програмирање вршило на хардверском нивоу, то значи да су ти стари сатови, калкулатори и многи други уређаји могли испунити своју судбину програмирањем хардвер.
Проблем
Промена хардверског програмирања је скупа и компликована (бар су ми тако рекли ). Због тога су се појавили процесори који заправо апстрахирају тај хардверски слој дајући нам неколико команди да бисмо могли да урадимо све што је могуће путем хардвера, тек сада у хардверском слоју. софтвер.
Процесори
Данашњи процесори имају ограничен број функција, тзв упутства у многим књигама. Они вам омогућавају да извршите најосновније функције које хардвер може да изврши и да мобилишете податке кроз меморију рачунара.
Регистри
Регистри су простор у којем процесор складишти информације како би могао да обавља рад на језгру, у зависности од архитектуре могу имати различиту величину и редослед, али на једноставан начин, њихова функција је чување података који поручују процесору једна од следећих врста посла: премештање података, аритметике и логике и контрола проток. Све се може сажети у ове врсте функционалности.
бинарни
Процесори раде на бинарном нивоу, то значи да само разумеју 0си 1с . Овде је занимљива чињеница сећате се ГНУ / Линук дозвола? па, да ли сте се икад запитали како процесор заправо препознаје те дозволе? Једноставан бинарни. На најнижем нивоу, процесор ће разумети дозволе као низ од 0с и 1с, и зато октал који формирамо има вредности 1 за извршење, 2 за читање и 4 за писање. Они који умеју да читају бинарне датотеке, разумеће следеће:
111100101111
Они групи стављају дозволе за читање, писање и извршавање други док за групу ставља извршење и читање група и читати само за власника датотеке. За најзанимљивије, последња три 1 активирају setguid
, setuid
и sticky bit
. Ако не знате шта је бинарност, могу то да објасним у другом посту, ако не знате сетуид, сетгид и стицки бит, онда ћу то оставити твом домаћем задатку али могу то објаснити и на другом месту ако неопходно.
Кад радозналост позове ...
Па, ако сте ме пратили овде, ваша радозналост би требала почети да пита много ствари, прва на коју желим да одговорим (и можда једина која ће ми овај пост дозволити јер већ пуно пишем) је: Ако су позиви исти, зашто су програми толико различити?
Психологија
Програмирање је уметност учења читања мисли Желим да почнем овај одељак цитатом који сам малопре прочитао, Едсгер Дијкстра је рекао:
Ако је отклањање грешака процес отклањања грешака, онда програмирање мора бити поступак њиховог увођења
И не могу да нађем бољи начин да објасним све ово Зашто је програмирање уметност уношења грешака? Више од једног ће питати у овом тренутку. Одговор је једноставан, јер наш ум је људски, а људи греше то је у нашој природи, и биће ту док год човек постоји на планети.
Рачунари не греше
Ми смо ти који грешимо, тимови ће се увек ограничити на репродукцију онога што им кажемо, ништа не претпостављају, не тумаче, не приговарају ничему, само читају и делују. Због тога сам у другој књизи на Ц-у икад прочитао овако нешто:
Ц је груб језик, с њим можете много учинити, али вас никада неће спречити да пуцате себи у ногу ако то желите да учините, или бар тако кажете.
Ово је прилично чудна истина Пошто када се ради на тако ниском нивоу, могуће је да би многе операције које се изводе могле бити деструктивне, нешто што се не дешава са језицима на мало вишем нивоу, пошто су слојеви за превенцију грешака старији. .
Све је психологија
Сваки језик, оквир, програмер поштује и следи неку врсту филозофије, а ако не, нема много перспективну будућност. Они од нас који раде на УНИКС-у и дериватима вероватно ће знати стару фразу:
Урадите једну ствар и то врло добро.
Ову филозофију прате неки пројекти попут језгра, прилично мале функције које раде само једно, али чине најбоље што могу.
Ако пређемо на друге језике, сваки ће имати функцију и циљ, неки пермисивнији, а други рестриктивнији, али сви следећи свој начин размишљања.
Научите да читате мисли
Међу програмерима постоји прилично уобичајена изрека да постоје стотине начина да се реши исти проблем. То је тачно, али постоји нешто много дубље у овом аспекту. Читање изворног кода вам омогућава да читате мисли не било које мисли, већ мисли програмера (или програмера) који су га написали. То је нека врста дубоког виртуелног дневника омогућава вам да дубоко упознате ум програмера, а у случају обимних пројеката, омогућава вам да видите како је њихово логично и критичко размишљање расло током времена. Нешто изузетно и што умногоме храни ум најмлађих, јер о најбољим путевима можете научити од људи који су морали да их открију
Да будем доследан
Многи програмери и стручњаци кажу да морамо изаћи из свог удобност зона, и иако је тачно, више је него потребно одржавати одређене процесе и формате. То је једноставно објаснити, наши умови се понављају и поштују структуре, ако свакодневно пишете код на исти начин, за кратко време ћете престати да размишљате о форми и моћи ћете да се концентришете на њу. фонд. Ово вам омогућава да видите логика програма уместо синтакса језика. И то је разлог зашто сматрам да је учење концепти увек ће бити важније од учења облици. Ово је лично мишљење, али надам се да ћете након што прочитате све ово разумети зашто то сматрам на овај начин плус ово је рекао неко ко је морао да програмира на Ц, Јава, Јавасцрипт, Питхон, Руби, ПХП и други познавање концепата олакшава писање кода.
Укратко
Па, ово је први корак у низу за који се надам да ће вам помоћи да другачије размишљате о уметности програмирања, чак и позивајући вас да се удубите у концепте који вам омогућавају да извршите код који сте написали можда стотинама пута, али они није престао да размишља о томе шта заиста ради. И за оне који нису почели да програмирају, али би желели да могу да одреде мало приоритета о томе шта је заиста важно да знају Поздрав
Веома савестан чланак у којем се расправља о програмирању (у овом случају) можда на новом језику који дубље програмира, моја подршка иде на следеће.
Здраво, Хавијере, хвала ти пуно 🙂 Мислим да је ово веома важно јер су ме одувек желели научити само репродуковању кода, чувеног Цтрл + Ц ... Цтрл + В 🙂, али никада се нисам дао повући због овога, чак иако је то најједноставнији проблем на свету Радије бих то написао него копирао од некога другог, чини ми се као да је то моја креација.
поздрави
Већ чекајући следеће поглавље, давно сам престао са програмирањем и мислим да у каснијем поглављу могу пронаћи неки разлог за своју одлуку, заиста, јер ово поглавље скидам капу.
Здраво Балуа 🙂
Па, смислићу нешто за следећу. Помало је незгодно све уредити тако да се нит може пратити из било ког поста, али покушаћу да имам овај (и неколико других који су ме питали) врло брзо. Хвала за ваш коментар. Живели
Драгуљ чланка! Надам се да ће следећи ...