Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
DOS-käyttöjärjestelmiä. Emulaattorit<br />
korvaavat aidot laitteet hyvin, mikäli mukaan<br />
ei haluta liittää esimerkiksi rakenteluprojekteja.<br />
Alhaalta ylös -polku sopii tee-se-itsehenkisille<br />
ihmisille, jotka haluavat ymmärtää<br />
järjestelmien toimintaa perusteellisesti<br />
ruohonjuuritasolta alkaen. Se<br />
tuppaa antamaan ohjelmointiin vahvasti<br />
konekeskeisen tuntuman, jossa koodin<br />
taloudellisuus menee inhimillisempien<br />
seikkojen ohi. Polkua kulkenut saattaa<br />
ahdistua hallitsemattoman monimutkaisista<br />
järjestelmistä ja haluta sellaisiin<br />
paneutumisen sijaan tehdä kaiken tarvitsemansa<br />
itse. Isojen kokonaisuuksien<br />
hallintaa saattaa joutua opettelemaan<br />
erikseen.<br />
Kannattaa myös muistaa, että tämä<br />
polku on sellaisenaan monille melkoisen<br />
raskas. Mikäli konekieli ei kiinnosta heti<br />
lelukielen jälkeen, siihen ehtii kyllä syventyä<br />
myöhemminkin.<br />
Toiset etenevät ylhäältä alas<br />
Siinä missä jotkut haluavat rakentaa kokonaisuuksia<br />
alkeispalikoista, toisille on<br />
luontevampaa ottaa valmis kokonaisuus<br />
ja hajottaa se osiin. Ohjelmointitaitoa<br />
kehitetään paneutumalla valmiiden ohjelmien<br />
lähdekoodeihin ja muokkaamalla<br />
niitä. Taitojen ja ymmärryksen karttuessa<br />
pystytään tekemään itse aina vain monimutkaisempia<br />
palikoita ja ennen pitkää<br />
kokonaisia sovelluksia. Tämä polku lienee<br />
helpointa aloittaa esimerkiksi muokkaamalla<br />
HTML-sivuja tai skriptikielellä<br />
toteutettuja pikkuohjelmia.<br />
Ylhäältä alas -lähestymistapa sopii<br />
etenkin käytännönläheisille ihmisille, jotka<br />
ovat uteliaita ohjelmien toiminnan ja<br />
rakenteen suhteen mutta joita kiinnostavat<br />
enemmän suuret kokonaisuudet kuin<br />
pienet nippelit. Polun kulkija saa hyvän<br />
käsityksen mahdollisista ohjelmien arkkitehtuureista,<br />
mutta edistyneempi algoritmiikka<br />
saattaa jäädä hänelle pimentoon.<br />
Vaikka ”alhaalta ylös” ja ”ylhäältä<br />
alas” kuvataankin tässä erillisinä polkuina,<br />
ne kannattaa ajatella pikemminkin<br />
toistensa täydentäjinä kuin vaihtoehtoina.<br />
Kovapäisimmällekin tee-se-itse-henkilölle<br />
on hyödyksi oppia lukemaan ja<br />
sietämään myös muiden koodia, ja innokkaimmankin<br />
modaajan kannattaa välillä<br />
tehdä jotain myös täysin puhtaalta pöydältä.<br />
Äkkiä suoraan ammattilaiseksi?<br />
Jos aloittelija on erityisen tarkka päämääristään,<br />
hän saattaa päätyä pitämään<br />
alkeiskieliä ajanhukkana ja sivuuttaa ne.<br />
Hän on ehkä kuullut, että esimerkiksi<br />
C++ on tosiosaajien käyttämä kieli ja<br />
haluaa opetella suoraan sen. Jotkut ovat<br />
onnistuneet tässäkin, mutta lähestymistavassa<br />
on omat ongelmansa. Kielet ja<br />
ympäristöt, jotka ovat tehokkaita ja käytännöllisiä<br />
ammattilaisille, ovat usein<br />
jopa katastrofaalisia ohjelmoinnin opettelijoille.<br />
Niille ihmisille, jotka haluavat päästä<br />
suorinta tietä päämäärään, on usein<br />
tärkeää vain saada ongelma ratkaistua<br />
eikä välttämättä edes ymmärtää ratkaisua.<br />
Nykymaailmassa tämä asenne johtaa<br />
herkästi hakukoneilla löytyneiden<br />
koodinpätkien käyttöön omien aivojen<br />
sijaan. Hakkerien Jargon-sanakirja käyttää<br />
tämäntyyppisestä ohjelmointitavasta<br />
halveksuvaa nimitystä ”cargo cult programming”.<br />
Valmiiden ratkaisujen kopiointi on<br />
usein nopeaa, mutta entäpä kun vastaan<br />
tulee ongelma, johon ei ole valmista ratkaisua?<br />
Jos ohjelmoija ei ole harjoittanut<br />
omaa ongelmanratkaisukykyään vaan<br />
on valinnut aina helpoimman reitin, hän<br />
saattaa juuttua sormi suussa ihmettelemään<br />
yksinkertaisiakin pulmia.<br />
Hakkerin kielivalinnat<br />
Oppimispolun valinta on usein tasapainottelua<br />
käytännöllisyyden, opettavaisuuden<br />
ja ajankäytön välillä. Eric S. Raymondin<br />
opas ”How to Become a Hacker”<br />
14 2014.2