Koodailet tietämättäsi koko ajan

Published On: 20.12.2022//

 

Ohjelmointia saatetaan edelleen pitää jotenkin ihmeellisenä asiana. Näin, vaikka me kaikki toimimme, kuten ohjelmoija miettiessään toimivan koodin ratkaisuja.

Mietimme ehtoja, joiden tulee täyttyä, että joku asia voi tapahtua. Mietimme kuinka kauan jonkun asian pitäisi tapahtua. Mietimme kohtaa, johon jonkun asian tekeminen päättyy.

Ohjelmointi ei ole rakettitiedettä

Aamuisin meistä monet ottavat maitopurkin tai muun juomapurkin jääkaapista ja kaataa lasiin maitoa tai muuta juomaa. Yksinkertainen tehtävä, jonka suorittamiseksi olemme oppineet vuosien aikana valtavasti asioita. Olemme ehkä nähneet ratkaisun jossain vaiheessa tai meille on opettamalla opetettu kuinka juomaa kaadetaan.

Olemme toisaalla ehkä oppineet sen, kuinka jääkaappi tai mikä tahansa kaappi avataan. Joku opetti meille kuinka lasi otetaan astiakaapista pöydälle. Ehkä sama henkilö suositteli sitä, että lasin tarkka paikka on hyvä olla tiedossa siinä vaiheessa, kun kaadat juomaa.

Lasin tarkka paikka olisi hyvä tietää myös siinä vaiheessa, kun haluamme juoda jotain. Muuten kätemme hamuavat tyhjää.

Periaatteessa hyvin yksinkertaisen tehtävän tekemiseen vaaditaan paljon asioita, joiden pitää tapahtua, että seuraava asia tapahtuu oikein. Jokainen asia voisi tapahtua itsenäisesti oikein, mutta väärässä loogisessa järjestyksessä edessä olisi sekasotkua.

Ihan samalla tavalla ohjelmoija miettii koodatessaan. Hänelle on kerrottu todennäköisesti minkälaista tietoa ohjelmaan tulee ja mitä sille tiedolle pitäisi tehdä. Hän myös ehkä tietää mikä laukaisee tapahtumaketjun. Ohjelmoija miettii miten ratkaisee tiedon käsittelyn eri vaiheet. Sen jälkeen hän miettii kuinka lopullinen tieto saadaan esille tai tallennetaan ennakkoon vaaditussa muodossa.

Maidon juomisessa laukaiseva tekijä on jano. Sen jälkeen ihminen päättää mitä hän haluaa juoda. Jos jääkaapin ovi on kiinni, niin se on avattava ennen maitopurkin ottamista. Maitoa ei voida kaataa, jos maitopurkki on kiinni. Maitoa sitten kaadetaan ja kaadetaan kunnes lasi on täynnä.

Ohjelmoinnissa tehdään ihan samanlaisia rakenteita koko ajan. Mietitään ehtoja, joiden pitää täyttyä, että voi tapahtua jotain muuta. Mietitään mitä tehdään, jos ehdot eivät täyty. Mietitään mikä on toistuvaa ja miten tarkistetaan, että toistaminen pitäisi loppua.

Kirjoittamista varten on sitten kehitetty erilaisia ohjelmointikieliä. Kaikille yhteistä yleisellä tasolla on se, että ohjelmoinnin logiikka ei muutu, vaikka käytettävä kieli vaihtuisi. Kuin olisi oppinut puhumaan ja vaihtaisit vain puhuttavan kielen suomesta englanniksi. Puheen logiikka ei muutu.

Ohjelmoinnin taito ei niinkään ole jonkin ohjelmointikielen osaaminen. Tärkein taito on yrittää miettiä ohjelmien toiminnan logiikkaa. Kuinka asioiden pitäisi tapahtua, että lopputulos on se mitä haluttiin.

Koodia on mukana kaikkialla elämässämme.

Paljon asioita tapahtuu niin, että jossain taustalla on jonkun kirjoittamaa koodia. Joskus kaikki ei toimikaan, kuten oli suunniteltu. Kuvainnollisesti silloin joku unohti sen jääkaapin oven auki ja joku toinen korjaa ongelman sulkemalla oven.

Koodin osalta virheiden määrä pyritään saamaan nollaan tekemällä testaussuunnitelma, jossa käydään läpi, että kaikki asiat toimivat halutulla tavalla. Koodissa olevaa virhettä ei seuraava käyttäjä korjaa yhtä helposti kuin jääkaapin oven sulkija.

Mutta kuten yksi tuttavani sanoi. Ohjelmointi ei ole rakettitiedettä. Eikä se sitä ole. Se on vain erilaisten mahdollisuuksien tunnistamista ja loogista ajattelua, joka on kirjoitettu toimivaksi ohjelmaksi.

Raahen Porvari- ja Kauppakoulussa ohjelmointia opetetaan tieto- ja viestintätekniikan perustutkinnossa. Tutkintonimike on ohjelmistokehittäjä. Iltaisin koodaamiseen voi perehtyä Raahe Coding Schoolin kautta. Aikaisempaa kokemusta koodaamisesta ei tarvitse olla. Oma mielenkiinto ja halu oppia riittää pohjaksi.

ICT-kouluttaja
Roy Viitanen

ICT-kouluttaja Roy Viitanen