Nädal X (Hacker-HOWTO - Eric S. Raymond)

Kümnenda nädala postituse eesmärgiks oli lugeda läbi Eric S. Raymondi Hacker-HOWTO (1) ning kirjutada sellele arvustus. Tekst, nagu ka pealkiri ütleb, et õpetus olemaks häkker. See on termin, mille võttis kasutusele esimeste ajajaotussüsteemiga arvutite ning ARPANET-i kallal toimetanud kogukond. Raymond tõi välja ka erinevuse häkkeri ning kräkkeri vahel, kellest esimene loob ning teine lõhub. Kiire otsing näitab, et selle vastu eksitakse ka meie kohalikus meedias (2). Mis siis aga teeb kellestki häkkeri? Raymond tõi välja kolm peamist punkti: suhtumine, oskused ning staatus.


Suhtumine

Ühe suure eeldusena häkkeriks olemisele või häkkeriks saamisele nägi Raymond enda proovilepanekut - see tähendab, et intellektuaalset väljakutset peab nautima. See on ka ühtlasi kogu artikli kõige meeldejäävam ning mõtlemapanev tähelepanek. Sealjuures on mõistetav, et kõigile probleemidele ning küsimustele ei pruugi olla varrukast lahendust võtta, kuid Raymond näeb seal olulisena just uskumist omaenda õppimisvõimesse - ehk probleeme tuleks rünnata väiksemate “ampsude” kaupa neist igaühest midagi uut õppides. Lahendatavad probleemid ise aga võiks olla uued. Tekstis oli toodud, et jalgratast leiutada ei tohiks. Teiste lahendusi võib küll uurida ning proovida täiendada, kuid olemasolevate probleemide uuesti lahendamine ei toovat ei häkkerile ega ka kogukonnale kasu - eesmärk peaks olema kasutada teiste tehtut, teha midagi uut ning lasta seda ka teistel kasutada. Ehk et keegi ei peaks tegelema probleemidega, mis on juba lahendatud. Siinkohal on minu isiklik arvamus, et õppimise eesmärgil olemasoleva tarkvara klooni ehitamine võiks olla õigustatud. Kuna kogukonda viib kaudselt edasi ka see, kui sinu tulevane panus sellesse on õpitu võrra rikkam. Ning lõpetuseks veel mõte, et suhtumisest üksi ei piisa, vaid häkkeriks olemine eeldab ka palju vaeva, oskusi ning intelligentsust. Tekstis mainiti siin küll ka pühendumust, kuid mulle tundub pühendumust ennekõike just suhtumises kinni olema, seega seda ma siin punktis välja ei tooks.


Oskused

Lühidalt - tuleb õppida programmeerima. Ning seda mitmes erinevas keeles (mida rohkem, seda uhkem). Eesmärk oleks Raymondi sõnul jõuda selleni, et suudaksid mõelda programmeerimisprobleemidest keelest sõltumatult. Tema soovitus on alustada Pythoniga ning sellega on lihtne nõustuda. Ent nõus tuleb olla ka tema tähelepanekuga ohu suhtes, mida kujutavad endast keeled ning raamistikud, mis suure osa keerukusest ära abstraheerivad. Tekstis oli selle kohta tabalt öeldud, et tegu on hea töö- kuid kehva õppevahendiga. Kuna keel teeb sinu eest suure osa ära, siis võidakse pisemagi keerukuse otsa sattudes jänni jääda. Siin tuleks jälle ära märkida ka Joel Spolsky artikkel “The Law of Leaky Abstractions” (3), mis sellest pikemalt ning põhjalikumalt räägib. Programmeerimise õppimise osas on Raymondi sõnul kõige olulisem (teiste) koodi lugemine ning koodi kirjutamine, millega tuleb täielikult nõustuda. Küll aga ei ole ma nõus väitega, et raamatud või kursused üldse ei aitaks. On tõsi, et mingis kitsamas kontekstis kogutud teadmiste killukesed küll elulisi probleeme lahendada ei aita, kuid nad võivad lihtsustada ja kiirendada uue keelega tutvumist. Kui mitte muud, siis võib üks kiirkursus aidata sind kurssi viia keele või raamistiku disainipõhimõtete ning terminoloogiaga, mis omakorda edaspidi võiksid aidata iseseisvalt kiiremini ning paremini küsimustele vastuseid leida.

Oskuste alla mainiti ära ka keeleoskus, nii inglise keele kui ka oma emakeele oskus (eeldusel, et need ei kattu). Inglise keel on Raymondi sõnul interneti töökeel nin sel on rikkalik tehniline sõnavara, tõlgete kvaliteet aga sageli kehv, seega peaks olema võimekus originaalkeeles teksti lugeda ning mõista. Tekstis mainiti ka neid, kelle emakeeleks juba on inglise keel, kuna kirja- ning grammatikavead võivad ka neile saatuslikuks saada. Ise oleks siinkohal lisanud ka koodi disaini aspekti, mis väljenduks arusaadavates ning üheseltmõistetavates muutujate, funktsioonide ja mistahes teiste olemite nimedes. Siin tuleb hea sõnavara ning keeletaju sageli kasuks, kuna laisad ning mittemidagiütlevad muutujanimed muudavad ka kirjavigade puudumisest hoolimata koodi loetamatuks.


Staatus

Siin on võtmesõnaks kingikultuur. Ehk staatus ja reputatsioon ei tule Raymondi sõnul domineerimisest ning asjade omamisest, vaid vastupidi asjade äraandmisest. Häkkerite puhul oleks äraantavaks teadmised ning aeg. Siin jäi kõige enam silma asjaolu, et tekstis ei toodud välja pelgalt seda, et tuleks ehitada midagi kasulikku või ägedat ning anda see koos lähtekoodiga teistele kasutamiseks, vaid oli välja toodud ka koht, kust alustada. Algaja jaoks võib mõnes vaba tarkvara projektis olla isegi hirmuäratav, ise millegi kasuliku ehitamine hiiglasuur ettevõtmine. Mõte alustada vaba tarkvara testijana on meeldiv - see annab võimaluse heita esimesed pilgud, õppida, saada edaspidi silujaks ning kunagi ehk ka arendajaks. See on realistlik ning saavutatav. Lisamärkusena tooks välja Githubi, ning eriti “good-first-issue” märgisega piletid, mis on samuti head kohad alustamiseks, kuna on algajale hoomatavamad ning aitavad nööriotsa lahti harutada. On veel terve ports lehte nagu goodfirstissue.com (4) ning firsttimersonly.com (5), mis esimest sammu astuda aitavad.


Kogu tekst oli hea lugemine. Hea kogus taustinfot ning viiteid muudele põnevatele materjalidele. Kuna algtekst oli pikk ning seda lühikeses postituses kokku võtta keeruline, siis kindlasti jäi ka palju olulist mainimata, kuid välja said toodud just puntkid, mis enim kõlama jäid.


Allikad:
  1. https://www.kakupesa.net/hacker/
  2. https://digi.geenius.ee/rubriik/uudis/dokumedifotode-hakker-artur-boiko-voeti-vahi-alla-hakker-ahvardas-kremlimeelsete-telekanalite-keelamise-tottu-ametnikku-ja-tema-perekonda/
  3. https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/
  4. https://goodfirstissues.com/
  5. https://www.firsttimersonly.com/

Kommentaarid

Populaarsed postitused sellest blogist

Nädal I (kolm põnevat IT-lahendust)

Nädal II (üks kadunud ning üks tänaseni tuttav tehnoloogia)

Nädal XIV (Andmeturve - BGP kaaperdamine)