Programado: La Psikologio de Komputiloj

Ni ĉiuj estas proksime rilataj al programado, ĉu kiel uzanto, kiel administranto, kiel programisto mem, sed finfine ĝi estas io pli ligita al niaj vivoj laŭ la paso de la jaroj.

En ĉi tiu artikolo (la komenco de malgranda serio, kiun mi planas krei), Mi volas dividi kun vi kelkajn konceptojn pri tio, kion mi malkovris pri programado tra la jaroj. Mi ne pretendas esti tro teknika, mi klarigos kial poste. Sed tio, kion mi celas, estas igi ilin vidi la mondon per miaj okuloj, kaj se ili ŝatas, kiel ĝi aspektas, tiam ili iomete eniru en ĝin.

Mi unue atakos la plej simplan punkton antaŭ ol eniri detalojn.

Kial mi ne faros teknikan afiŝon?

Nu, por tiuj, kiuj legis mian afiŝon pri plej bona komando linux, vi iom scios pri la kaŭzo de ĉi tiu fokuso. Teknologio ĉiam ŝanĝiĝas, kaj se mi skribas ion hodiaŭ, se la afiŝo estas bone ricevita, tiam mi ĉiam devos ĝisdatigi la informojn. En la hodiaŭaj plej oftaj lingvoj, la sola certa afero estas ŝanĝo. Per ĉi tio mi celas (kaj la programistoj povas pruvi min prava) kadroj ĉiam kreskas kaj modifas de siaj kernoj, ĉar eraroj ekestas, iuj povas esti konsiderataj simplaj cimoj, dum aliaj povas fariĝi vundeblecoj. Jen la kialo, kial skribi afiŝon pri specifa lingvo hodiaŭ garantius al mi eble kelkajn monatojn da utileco, en la plej bona kazo unu aŭ du jaroj, sed tio ne estas la ideo 🙂

Elektro gravas

Tiuj el vi, kiuj iom esploris pri la plej malaltaj programaj lingvoj, scios, ke ĉio devenas de elektro. Antaŭe programado estis farita je aparatara nivelo, tio signifas, ke tiuj malnovaj horloĝoj, kalkuliloj kaj multaj aliaj aparatoj povus plenumi sian destinon programante per aparataro.

la problemo

Ŝanĝi aparatan programadon multekostas kaj komplikas 🙂 (almenaŭ tion ili diris al mi 🙂 ). Jen kial aperis procesoroj, kiuj efektive abstraktas tiun aparatan tavolon por doni al ni kelkajn komandojn por povi fari ĉion eblan per aparataro, nur nun en la aparatara tavolo. Programaro.

Procesoroj

Hodiaŭaj procesoroj havas limigitan nombron da funkcioj, nomataj instrukciojn en multaj libroj. Ĉi tiuj permesas vin plenumi la plej bazajn funkciojn, kiujn aparataro povas plenumi, kaj mobilizi informojn per la memoro de la komputilo.

Registroj

Registroj estas spaco, en kiu la procesoro stokas informojn por povi plenumi laboron sur la kerno, depende de la arkitekturo ili povas havi alian grandecon kaj ordon, sed laŭ simpla maniero, ilia funkcio estas stoki datumojn, kiuj diras al la procesoro unu el la jenaj specoj de laboro: movi datumojn, aritmetikon kaj logikon, kaj kontrolon de fluo. Ĉio resumiĝas per ĉi tiaj funkcioj.

Binario

Procesoroj laboras je duuma nivelo, tio signifas, ke ili nur komprenas 0sy 1jes 🙂. Kurioza fakto ĉi tie 😀ĉu vi memoras GNU / Linukso-permesojn? nu,ĉu vi iam scivolis, kiel la procesoro efektive agnoskas tiujn permesojn? Simpla inary duuma. Je la plej malalta nivelo, procesoro komprenos la permesojn kiel sinsekvon de 0s kaj 1s, kaj tial la oktalo, kiun ni formas, havas la valorojn. por ekzekuto, 2 por legado kaj 4 por skribado. Por tiuj, kiuj povas legi binarajn, ili komprenos tion:

111100101111

Ili metas la permesojn por legi, skribi kaj plenumi por la grupo aliaj dum metado de ekzekuto kaj legado por la grupo grupo kaj legu nur por la dosierposedanto. Por la plej scivolemaj, la lastaj tri 1-oj aktivigas la setguid, setuid kaj la sticky bit. Se vi ne scias, kio estas ĉi tiu duuma, mi povas klarigi ĝin en alia afiŝo, se vi ne scias ĉi tion pri setuid, setgid kaj la glueca iom, mi lasos ĝin al vi 😉 sed mi ankaŭ povas klarigi ĝin aliloke se necese.

Kiam scivolemo vokas ...

Nu, se vi sekvis min ĉi tie, tiam via scivolemo komencu demandi multajn aferojn, la unuan, kiun mi volas respondi (kaj eble la sola, kiun ĉi tiu afiŝo permesos al mi, ĉar mi jam multe verkas) estas: Se la alvokoj samas, kial la programoj estas tiel malsamaj?

Psikologio

Programado estas la arto lerni legi mensojn 🙂 Mi volas komenci ĉi tiun sekcion per citaĵo, kiun mi legis antaŭ longa tempo, Edsger Dijkstra diris:

Se senararigado estas la procezo de senararigado, tiam programado devas esti la procezo de enkonduko de ili

Kaj mi ne povas trovi pli bonan manieron klarigi ĉion ĉi, kial programi la arton enkonduki erarojn? pli ol unu scivolos ĉe ĉi tiu punkto. La respondo estas simpla, ĉar niaj mensoj estas homaj, kaj homoj faras erarojn 🙂 ĝi estas en nia naturo, kaj ĝi estos tiel longe, kiel la homo ekzistas sur la planedo.

Komputiloj ne eraras

Ni estas tiuj, kiuj faras erarojn, la teamoj ĉiam limigos sin reprodukti tion, kion ni diras al ili, ili supozas nenion, ili interpretas nenion, ili kontraŭas nenion, ili nur legas kaj agas. Tial en alia C-libro mi iam legis ion tian:

C estas malglata lingvo, vi povas fari multon per ĝi, sed ĝi neniam malhelpos vin pafi vin en la piedo, se vi volas fari tion, aŭ tiel vi diras al ĝi.

Ĉi tio estas sufiĉe kurioza vero 🙂 Ĉar kiam oni laboras ĉe tiel malalta nivelo, eblas ke multaj farataj operacioj povas esti detruaj, io kio ne okazas kun lingvoj iomete pli altaj, ĉar la tavoloj de prevento de eraroj. ili estas pli maljunaj.

Ĉio estas psikologio

Ĉiu lingvo, kadro, programisto respektas kaj sekvas ian filozofion, kaj se ĝi ne havas, ĝi ne havas tre esperigan estontecon. Tiuj el ni, kiuj laboras pri UNIX kaj derivaĵoj, probable scios la malnovan frazon:

Faru unu aferon, kaj faru ĝin tre bone.

Ĉi tiun filozofion sekvas iuj projektoj kiel la kerno, sufiĉe malgrandaj funkcioj, kiuj nur faras unu aferon, sed faras la plej bonan eblon.

Se ni iros al aliaj lingvoj, ĉiu havos funkcion kaj celon, iuj pli cedemaj kaj aliaj pli restriktaj, sed ĉiuj sekvas sian propran pensmanieron.

Lernu legi mensojn

Estas sufiĉe ofta diro inter programistoj, ke ekzistas centoj da manieroj solvi la saman problemon. Ĉi tio estas vera, sed estas io multe pli profunda pri ĉi tiu aspekto. Legi fontkodon permesas legi mensojn - ne nur ajnan menson, sed la menson de la programisto (aŭ programistoj), kiu verkis ĝin. Ĝi estas ia virtuala kaj profunda taglibro 🙂 ĝi permesas al vi profunde koni la menson de la ellaboranto, kaj en la kazo de grandaj projektoj, ĝi permesas vin vidi kiel ilia logika kaj kritika pensado kreskis laŭlonge de la tempo. Io eksterordinara kaj tio multe nutras la mensojn de la plej junaj, ĉar vi povas koni la plej bonajn vojojn de homoj, kiuj devis malkovri ilin 🙂

Esti konsekvenca

Multaj programistoj kaj specialistoj diras, ke ni devas eliri el nia Komforta zono, kaj kvankam ĝi estas vera, estas ankaŭ pli ol necese konservi iujn procezojn kaj formatojn. Ĉi tio estas simple klarigebla, niaj mensoj estas ripetemaj kaj respektas strukturojn, se vi skribas kodon same ĉiutage, post mallonga tempo vi ĉesos pensi pri la formo kaj vi povos koncentriĝi pri ĝi. fono. Ĉi tio permesas vin vidi la logiko de la programo anstataŭ la lingva sintakso. Kaj jen la kialo, kial mi konsideras, ke lerni la konceptoj ĉiam estos pli grava ol lernado la formoj. Ĉi tio estas persona opinio, sed mi esperas, ke leginte ĉion ĉi, vi povas kompreni kial mi konsideras ĝin tiel 🙂 krom esti dirita de iu, kiu devis programi en C, Java, Javascript, Python, Ruby, PHP, kaj aliaj 🙂 scias la konceptoj faciligas verki kodon.

En resumo

Nu, ĉi tio estas la unua paŝo en serio, kiun mi esperas helpos vin pensi alimaniere pri la arto de programado, eĉ invitos vin enprofundiĝi en la konceptoj, kiuj permesas vin ekzekuti la kodon, kiun vi verkis eble centfoje, sed ili ne haltis pensi pri tio, kion ĝi vere faras. Kaj por tiuj, kiuj ne komencis programi, sed ŝatus, povi iomete prioritatigi tion, kio vere gravas scii 🙂 Salutojn


La enhavo de la artikolo aliĝas al niaj principoj de redakcia etiko. Por raporti eraron alklaku Ĉi tie.

5 komentoj, lasu la viajn

Lasu vian komenton

Via retpoŝta adreso ne estos eldonita. Postulita kampojn estas markita per *

*

*

  1. Respondeculo pri la datumoj: Miguel Ángel Gatón
  2. Celo de la datumoj: Kontrola SPAM, administrado de komentoj.
  3. Legitimado: Via konsento
  4. Komunikado de la datumoj: La datumoj ne estos komunikitaj al triaj krom per laŭleĝa devo.
  5. Stokado de datumoj: Datumbazo gastigita de Occentus Networks (EU)
  6. Rajtoj: Iam ajn vi povas limigi, retrovi kaj forigi viajn informojn.

  1.   Javier G. Delgado diris

    Tre konscienca artikolo, en kiu programado estas diskutita (ĉi-kaze) eble en nova lingvo, kiu pli profunde programas, mia subteno iras al la sekva.

    1.    ChrisADR diris

      Saluton Javier, koran dankon 🙂 Mi pensas, ke tio tre gravas, ĉar ili ĉiam volis instrui min nur reprodukti kodon, la faman Stir + C ... Stir + V 🙂 sed mi neniam lasis min treni per tio, eĉ se ĝi estas la plej simpla problemo en la mondo. Mi preferas skribi ĝin ol kopii ĝin de iu alia, ĝi sentigas min, ke ĝi estas mia kreo.
      salutoj

  2.   floso diris

    Jam atendante la sekvan ĉapitron, mi ĉesis programi antaŭ longa tempo, kaj mi pensas, ke mi povas trovi en iu posta ĉapitro ian kaŭzon por mia decido, vere, ekde ĉi tiu ĉapitro mi demetas mian ĉapelon.

  3.   ChrisADR diris

    Saluton Balua 🙂
    Nu, mi elpensos ion por la sekva. Estas iom komplike mendi ĉion tiel, ke la fadeno estu sekvata de iu ajn afiŝo, sed mi provos havi ĉi tion (kaj plurajn aliajn, kiuj petis min) tre baldaŭ. Dankon pro via komento. Saluton

  4.   Anders diris

    Gemo de artikolo!, Mi esperas la sekvan ...