Tullessani infolle, en tiennyt mitä ohjelmointi on. En ollut käynyt yhtäkään tietokonekurssia koulussa enkä muutenkaan tiennyt koneista juuri mitään. Kuvitelmani oli, että koodaaminen on jotain todella sairasta binääriluvuilla leikkimistä, josta voi tykätä vain tuoliinsa juurtuneet erakot. Nyt osittain toivon, että kuvitelmani olisi ollut totta.

Ensimmäisellä luennolla yritin pysyä mukana pedron kukkalähetyksissä ja tilaavievissä koreissa, mutta juttu oli lopulta niin korkealentoista, ettei keskittyminen oikein onnistunut. Seuraavaksi Hello Worldin koodattuani olo oli kuitenkin varsin jännittynyt; tätäkö on koodaaminen? Sehän ei ollut kovin vaikeaa. Ensimmäisen java-harjoituksen vyöryessä päälle pyörsin kuitenkin aatokseni. En ymmärtänyt tehtävänannosta juuri mitään. Miksi esineelle kirjoitetaan nimi ja paino, jos niitä ei tiedetä eikä niitä tarvitsekaan tietää? Miten voin laittaa metodin palauttamaan nimen, jota en tiedä eikä minun tarvitsekaan vielä tietää? Mikä “String nimi” on? Enhän ole määritellyt sitä missään. Viekö se tilaa “korissa”? Pääni oli täynnä ihmetystä, ja kaikkea en osannut muokata edes kysymyksien muotoon.

Hieman myöhemmin päädyin siihen tulokseen, että ohjelmoinnissa on kyse loogisesta ajattelusta. En kuitenkaan pystynyt keskittymään niinkään ongelmanratkaisuun sanan kuvannollisessa merkityksessä, koska minulle ongelmia tuotti jo pelkän koodin kirjoittaminen ilman yhtäkään loogista ongelmaa. En tuntenut silmukoita silloin, kun niitä olisi pitänyt käyttää enkä oikein ymmärtänyt, miten APIsta löytyvät miljoonat metodit voisivat lievittää tuskaani. Vähitellen, kun kokemus karttui, opin käyttämään erilaisia silmukoita ja muita rakenteita sekä ymmärtämään Apin hienouden. Se vaati kuitenkin itse kokeilua, koodaamista ja lisää koodaamista.

Ajan kuluessa ja uusien java-tehtävien tupsahtaessa eteen minulle valkeni pikkuhiljaa, mitä koodaaminen todella on. Se on mahdollisimman tehokkaiden algoritmien etsintää. Kaiken pitää esiintyä pinessä tilassa, kompaktisti ja siististi. Jokaisen sanan pitää olla lunastanut paikkansa. Toisaalta algoritmien pitää olla selkeitä toisaalta taas vain tehokkaita. Tässä vaiheessa aloin kiinnostua ohjelmoinnista hieman enemmän. Vieläkin touhua tosin hidasti se, että ennen kuin voi alkaa ratkoa ongelmaa, piti opetella jonkun uuden luokan ja sen metodien käyttö. Se oli ärsyttävää. Olisin halunnut päästä ratkomaan loogisuuksia, mutta siihen ei annettu mahdollisuutta kovan etenemisvauhdin takia.

Siitä johtuen toivoin toisinaan, että olisin päässyt rehellisesti vain pyörittelemään binäärilukuja kirjoitusvirheiden metsästämisen sijasta. Kaikkea vain ei voi aina saada. Nyt ainakin tiedän, millaista on java-kielellä ohjelmointi ja osaan käyttää monenlaisia luokkia ja rajapintoja. Siitäkin tiedosta olen varsin ylpeä.