28.10.2014 Views

1tgD67B

1tgD67B

1tgD67B

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!