Alussa aina mahdotonta, tuntui syyskuun puolivälin tuntumilla. En saanut mistään oljenkorresta kiinni ennen syöksykierrettä alas. Näin jälkiviisaana, kaiken kantapään kautta oppineena on helppo pohtia, mitkä ohjelmoinnin apukeinot ja opetusmenetelmät olisivat kantaneet hedelmää nopeammin, ainakin omalta kohdaltani.

 

Ensimmäinen kosketus Javaan on hyvä aloittaa, kuten tehtiinkin, Hello World -tyyppisellä miniohjelmalla, jossa vasta-alkajat saavat heti jotain konkreettista aikaiseksi ja lyhyen esimerkin siitä, miltä koodinpätkä näyttää, varsinkin silmällä pitäen Javan kielioppia. Tuleva ohjelmointilupaus saa esimaun Javan yksinkertaisimmista rakenteista.

 

Muistan kurssin seuraavana askeleena hyvin lennokkaat ja filosofiset luennot, sekä olo-tapaamiset, joissa perehdyttiin olio- ja luokkamaailmaan. Näistä ei kuitenkaan vielä tässä vaiheessa kostu paljoakaan. Vaikka luennoilla asiat vaikuttivat sinänsä järkeenkäyviltä ja kirjan opetukset selkeiltä, todellisuus oli karu. Kun piti käydä käsiksi itse harjoituksiin, osoittautui, ettei paljoakaan ollut mukaan tarttunut.

 

Aivan ensimmäiseksi luokan rakennetta olisi voinut terävöittää korostamalla entisestään luokan rakenteen kahtiajakoa metodeihin ja attribuutteihin. Konstruktorin ja pääohjelmametodin voi esitellä myöhemmin.

 

Seuraavaksi voisi valottaa tiedon varastoimista ja tietotyyppejä. Tietotyypit voisi kannattanee esitellä ikään kuin muoteiksi varastoitavalle tiedolle ja selittää, että useimmat näistäkin ovat olioita. Näillä tietopalikoilla metodit sitten leikkivät. Myös metodin puumerkki tulee pilkkoa osiin (näkyvyysmääre, palautusarvo, nimi ja parametrit) ja selventää näiden merkitystä. Legendaarinen, mutta aluksi hyvin kryptinen public static void main(String[] args) käy esimerkistä. Metodin erikoistapaukset, konstruktori ja pääohjelmametodi, täytyykin opettaa jossain näillä main.

 

Jotta metodeja osaa käyttää, on seuraavaksi tuotava mukaan sitä filosofiaa ja määrittää ohjelma olioiden vuorovaikutukseksi. Tämä on kriittinen vaihe ja rinnakkainen edellisen kappaleen aiheiden kanssa. Se, että ymmärtää, että luokka on vain olioiden resepti, josta näkee mistä ne on tehty, miten ne tehdään ja mitä niillä voi tehdä, on tärkeää. Vasta luokan ohjeiden perusteella tehty olio voi kutsua luokkaan koodattuja metodeja. Pisteoperaattori ja sen rakenne meni omalta osaltani ohi, ja tuskailin sen kanssa vielä kolmannessa Java-harjoituksessa. Kuten sanottu, vasta tässä kohtaa valottuu konstruktorin ja pääohjelmametodin tarkoitukset ja eksistentiaaliset viittaussuhde konseptit.

 

Käytännön opetuksissa korostettiin voimakkaasti oikeaoppista koodin jäsennystä ja muotoa, mitkä iskostuivatkin takaraivoon. Kielioppiongelmia ja kääntövirheitä, joiden suossa itse tarvoin viikkoja, ei pitäisi liiemmin ilmetä, jos alkeet opittiin tehokkaasti.

 

Näiden perusasioiden jälkeen laajennetaan toistorakenteisiin kuten, if-lauseisiin ja for-luuppeihin ja esitellään lisää esimerkiksi tiedonvarastoijaolioita (listat, mapit, joukot, jne.) sekä tyypillisimmät poikkeukset. Asiakokonaisuus kerrallaan tiedot ja taidot karttuvat ja tästä eteenpäin homma sujunee mallikkaasti myös itseopiskeluna. Itsenäistä työskentelyä ajatellen voisi Eclipsen deduggauksen sisällyttää ohjelman luentoon, ja Eclipseen voisi siirtyä aikaisemmin. Näitä isompia paloja ei kuitenkaan kannata haukata, ennen kuin perusteet ovat hallinnassa.

 

Helppo tehtävä tämä kaikki ei ole, varsinkin kun kurssi lähtee käyntiin varsin vauhdikkaasti ja vieläkin hankalamman tehtävästä tekee kaltaiseni tahvot, joilla ei ole minkäänlaista aiempaa kokemusta ohjelmoinnista. Jokin ydin pitää määritellä, jonka pohjalta ohjelmointityö aloitetaan, ja jonka ympärille lisätieto voi kertyä. Tällaisen lähtöpisteen pelkkä määrittely on pulmallista, kun sen pitäisi olla madollisimman suppea, mutta yksinkertainen ja samalla siihen ei saisi jäädä epäselvyyksiä. Suuri vastuu on myös ohjelmoijalle itsellään, ja kärsivällisyyttä kysytään aina kun tutustutaan uuteen.

 

Käytännön kannalta voisi ajatella myös harjoituksiin tasoryhmiä, niin kuin muistan eräässä olosessiossa esitettäneen. Näin voidaan puuttua usein toistuviin ja vallitseviin ongelmiin ja niiden syihin henkilökohtaisella tasolla, sekä luoda miellyttävämpi työskentely-ympäristö.