Usein törmää harhakäsitykseen, että ohjelmointi on ensisijaisesti loogista päättelyä ja matemaattista puurtamista. Samat tahot luultavasti ovat sitä mieltä, että musiikin säveltäminen on matematiikkaa. Musiikin harrastaminen tutkitusti kehittää matemaattista osaamista, mutta musiikki on paljon muutakin.
Koodaaminen, kuten säveltäminen tai kirjan kirjoittaminen, on etupäässä luovaa taiteellista työtä. Sen taustalla olevat mekaaniset perustaidot ovat toki tarpeen, mutta niihin on turha liikaa takertua.
Vain perustaidot ovat mekaanisia
Looginen ajattelu, matemaattiset taidot, päättelykyky ja ongelmanratkaisutaidot mainitaan monesti ohjelmoinnista puhuttaessa. Ne ovat niitä perustaitoja, joita tarvitaan, jotta ohjelmoija voi toteuttaa luovan visionsa.

Vastaavasti säveltäjän on ymmärrettävä sävellajit, harmoniat, tahtilajit ja vaikka mitä muuta voidakseen säveltää. Mutta uuden sävellyksen laatiminen on paljon luovempaa kuin intervalliharjoitukset pianolla.
Vastaavasti kirjailijan on osattava kirjaimet, tavutus, taivutusmuodot ja pilkkusäännöt voidakseen kirjoittaa. Mutta romaanin tai runon kirjoittaminen on selkeästi paljon luovempi prosessi, johon vaaditaan muutakin kuin kielioppia ja oikeinkirjoitusta.
Nämä mekaaniset perustaidot eivät ole turhia – ne ehdottomasti tarvitaan. Mutta ne eivät ole se pointti. Ei kukaan kirjoita kirjoja siksi, että saa rutiinia a-kirjaimen piirtämisestä. Eikä kukaan koodaa ohjelmia siksi, että saisi treenausta ehtolauseiden käytössä. A-kirjaimen piirtäminen, pilkkusäännöt, ehtolauseet ja funktioiden laatiminen ovat niitä perustaitoja, jotka kehittyvät samalla kun tehdään sitä “oikeaa” tuotosta, joka on syy koko tekemiselle.
Koodari on taiteilija
Vaikka koodaaminen edellyttää luonnontieteistä tuttuja taitoja, on itse ohjelmointi luovaa, taiteellista itseilmaisua. Onpa kyseessä sitten digitarina raamatun kertomuksesta, oma oppimispeli maantieteestä tai pakohuoneen pulmien toteutus, ovat vain mielikuvitus ja omat taidot rajana.
Toisin kuin luonnontieteessä, jossa on tyypillisesti vain yksi oikea vastaus kuhunkin pulmaan, ohjelmoinnissa ei ole yhtä oikeaa tapaa toteuttaa tietty lopputulos. Pelkästään koodin tasolla ohjelmoijalla on loputtomasti vapausasteita toteuttaa sama toiminnallisuus hyvin erilaisilla tavoilla. Ja tämän päälle tulevat kaikki multimedia, tarinankerronta ja esteettiset valinnat, jotka ovat selvästi taiteellista ilmaisua, koska ne näkyvät lopputuloksessa.
Lähdekoodi ei näy loppukäyttäjälle, sillä se on pinnan alla. Silti sekin vaatii luovaa neroutta. Kysy ammattikoodarilta, jos et usko. Hekin tunnistavat sellaiset käsitteet kuin “kaunis koodi” tai “yllättävän nokkela ratkaisu” tai “itselleni uusi patterni”. Tällainen sanasto paljastaa, että ihan koodirivienkin tasolla koodari voi tehdä rutiiniperuskauraa tai sitten ylittää itsensä ja kollegansa.
Itseään haastamalla oppii
Mukavin tapa oppia niitä mekaanisia perustaitoja on haastaa itseään sopivalla tavalla. Eli valita sellainen projekti, joka on siellä omien taitojen äärirajoilla. Jotta joutuu pinnistelemään, että se onnistuu. Tässä on toki apua kavereista, opettajista ja tukimateriaaleista. Mutta juju on siinä, että kun oppija pinnistelee itse valitsemansa tavoitteen parissa, hän siinä sivussa oppii huimasti niitä perustaitoja ja ajattelutapoja, joilla kehittyy paremmaksi – on kyse sitten koodaamisesta, säveltämisestä, kirjoittamisesta tai jalkapallon pelaamisesta.
Suomen Koodikoulun kaikki opetusmateriaalit perustuvat projektioppimiselle ja tukevat ilmiölähtöistä opetusta. Materiaaleissa olevat harjoitukset antavat kullekin oppilaalle vapauksia valita omia toteutustapoja yhdessä asetetun tavoitteen saavuttamiseen.
Vastaa