RVG arvutiring
 

1. Õpi programmeerima

See on muidugi põhiline häkkerioskus. Kui sa ei tunne veel ühtki programmeerimiskeelt, siis soovitaksin alustada Pythoniga. See on selge disainiga, hästi dokumenteeritud ja algajate vastu suhteliselt leebe. Kuigi ta sobib esimeseks keeleks, pole see mänguasi; ta on väga võimas ja paindlik ning sobib hästi ka suurte projektide jaoks. Ma olen kirjutanud ühe detailsema hinnangu Pythonile, häid õpetusi leiab ka Pythoni veebilehelt.

Ka Java on hea keel programmeerimise õppimiseks. See on keerulisem kui Python, kuid annab kiirema programmikoodi. Minu arvates on ta suurepärane teisena õpitav keel. Kahjuks on Sun'i enda põhiversioon ikka veel kommertstarkvara. See pole praegu enam niivõrd Java keele enese probleem, kuna kõrgekvaliteetsed avatud lähtekoodiga Java interpretaatorid on võrgus vabalt saada; tõeline probleem on keelega kaasa tulevates klassiteekides. Avatud koodiga teegid on oma arengus Suni omadest maas. Seega, kui sa valid Java, võta üks avatud koodiga variantidest, mitte ära jää sõltuma Suni kinnisest koodist.

Kuid võta teadmiseks, et sa ei saavuta häkkeri - ega isegi programmeerija - taset, kui sa oskad vaid üht-kaht keelt. Sa pead õppima mõtlema programmeerimisprobleemidest üldiselt, sõltumata ühestki konkreetsest keelest. Et olla tõeline häkker, pead jõudma tasemele, kus sa suudad õppida uue keele ära päevadega, lihtsalt seostades omavahel manuaalis kirjasoleva ning juba olemasolevad teadmised. See tähendab, et peaksid õppima mitmeid väga erinevaid keeli.

Kui sa jõuad tõsise programmeerimiseni, pead ära õppima C, Unixi aluskeele. C++ on C-le väga sarnane, nii et ühte osates ei ole teise õppimine raske. Siiski pole kumbki neist sobiv esimeseks programmeerimiskeeleks. Tegelikult - mida enam sa suudad vältida C-s programmeerimist, seda viljakam sa oled.

C on väga tõhus ning väga kokkuhoidlik arvuti ressurssidega ümberkäimisel. Paraku saavutatakse see tõhusus nõudmisega sooritada suur osa operatsioone madaltaseme ressursihalduses (nagu mälu) käsitsi. See madaltaseme kood on keeruline ja aldis vigadele ning selle silumine võtab tohutult aega. Tänaste masinate võimsuse juures on see enamasti kehv kaup - mõttekam on kasutada keelt, mis kasutab küll arvuti aega vähem tõhusalt, kuid sinu aeg palju tõhusamalt. Niisiis, Python.

Teised häkkerite jaoks erilise tähtsusega keeled on Perl ja LISP. Perli tasub õppida praktilistel kaalutlustel; seda kasutatakse laialdaselt dünaamilises veebis ja süsteemihalduses, nii et isegi kui sa kunagi Perli ei kirjuta, peaksid suutma seda lugeda. Paljud kasutavad Perli nii, nagu mina soovitaks Pythonit - vältimaks C-s programmeerimist ülesannete juures, mis ei nõua C masinalähedust. Sa pead olema suuteline nende koodi lugema.

LISPi tasub õppida teistel kaalutlustel - nimelt selle suure valgustava kogemuse nimel, mille sa läbi elad, kui see sulle viimaks kohale jõuab. See kogemus muudab su paremaks programmeerijaks elu lõpuni, isegi kui sa tegelikult kuigi palju LISPi ei kasutagi. (Mõningat algkogemust võid LISPiga saada üsna kergesti, kirjutades ja muutes Emacsi tekstiredaktori redigeerimisrezhiime või Script-Fu plugin'e GIMPi jaoks.)

Kõige parem oleks tegelikult õppida ära kõik viis: Python, C/C++, Java, Perl ja LISP. Lisaks sellele, et nad on tähtsaimad häkkerikeeled, esindavad nad väga erinevaid lähenemisi programmeerimisele ning igaüks neist harib sind erineval väärtuslikul moel.

Ma ei saa siin anda täielikke juhiseid programmeerimise õppimiseks - see on keeruline oskus. Kuid võin öelda, et raamatud ja kursused ei aita (paljud, võib-olla enamik parimatest häkkeritest on iseõppijad). Sa võid raamatust õppida keele omadusi - teadmiste killukesi, kuid seda teadmist "elusaks" oskuseks muutvat mõtteviisi saab omandada üksnes praktika ja õpipoisiajaga. Aitab a) koodi lugemine ja b) koodi kirjutamine.

Peter Norvig, üks Google'i tipphäkkeritest ja maailmas enimkasutatud tehisintellektiõpiku üks kaasautoreist on kirjutanud suurepärase essee pealkirjaga "Õpi kümne aastaga programmeerima". Tema "programmeerimise eduretsept" väärib hoolikat tähelepanu.

Programmeerimise õppimine sarnaneb hea tavakeele õppimisele. Parim meetod selleks on lugeda meistrite kirjutatut, kirjutada midagi ise, lugeda veel kõvasti juurde, kirjutada veel, lugeda veel, kirjutada veel... ja korrata seda seni, kuni su kirjutatu hakkab ilmutama samu omadusi kui eeskujud.

Hea koodi leidmine oli varem üsna raske, kuna vaid väheste suuremate programmide lähtekood oli häkkerite jaoks uurimiseks ja torkimiseks avatud. See on nüüdseks kardinaalselt muutunud; avatud lähtekoodiga tarkvara, programmeerimisvahendid ja operatsioonisüsteemid (kõik häkkerite enda looming) on nüüd laialt saadaval. Siit jõuamegi kenasti järgmise punkti juurde...



cmsimple.org | 2bdesign.de
Külastusi: