Mikä ohjelmoinnin lukutaito?

Ohjelmointi ja sen ottaminen mukaan perusopetukseen on saanut viime aikoina julkisuutta erilaisten koodikoulujen myötä sekä ohjelmoinnin tullessa osaksi perusopetusta 2016. Sama ilmiö on ollut valloillaan myös kansainvälisesti: mm. Viro sekä Iso-Britannia ovat ottaneet ohjelmoinnin osaksi opetustaan.

Usein ohjelmoinnin opetuksen merkitystä perustellaan ongelmanratkaisun, loogisten kykyjen, matematiikan tai tulevaisuuden työllistymisen näkökulmasta. Oman näkemykseni mukaan ohjelmoinnissa on itse asiassa kyse paljon laajemmasta asiasta. Tämän vuoksi käytänkin käsitettä ohjelmoinnin lukutaito.

Ohjelmoinnin lukutaito ei sinänsä viittaa ohjelmoinnin oppimiseen perinteisessä merkityksessä, vaan pikemminkin ymmärrykseen ohjelmoinnista. Lukutaidon käsite havainnollistaa asiaa: Samoin kuin kaikista tavallisen luku- ja kirjoitustaidon omaavista ei tule kirjailijoita, ei ohjelmoinnin lukutaidon osaajista tule koodareita. Ohjelmoinnin lukutaito on tärkeää ajassamme, jossa yhteiskunta, kulttuuri ja sosiaaliset suhteet toimivat yhä enemmän digitaalisen tekniikan varassa. Digitaalinen tekniikka taas pohjautuu aina koodiin. Tämä digitaalisen tekniikan ohjelmoitu luonne tekee ohjelmointia ymmärtävistä ja ymmärtämättömistä eriarvoisia.

Yksi koodin erityislaatuinen piirre on se, että toisin kuin muut välineemme joiden kanssa olemme vuorovaikutuksessa maailman kanssa, koodi ei ole suoraan luonnonlakien alainen. Koodi toimii abstraktilla tasolla, jossa mikä vain on mahdollista. Pystymme peleissä esimerkiksi muuttamaan painovoimaa tai ulkonäköämme tai sosiaalisessa mediassa keräämään käyttäjistä tietoa tavalla joka ei olisi analogisessa maailmassamme mahdollista tai kenties edes hyväksyttävää.  Jo 1999 Lawrence Lessig totesikin: ”Code is Law”.  Koodi, ja tätä kautta käyttämämme ohjelmat tai digitaaliset välineet, ovat plastisia malleja, jotka heijastavat laajalti niin tiedostettuja kuin tiedostamattomiakin arvovalintoja, oli kyseessä sitten ohjelmoijan, ohjelmointifirman tai laajemman kulttuurisen taustan käsitys hyvästä koodista. Koodin tekijä rakentaa omaa arkkitehtuuria ja politiikkaansa koodin sisälle. Käyttämiemme ohjelmien koodi luo siis rajoitteita ja toiminteita maailmaamme. 

Koodilla rakennettuun ympäristöön osallistumista rajaa myös useiden käyttämiemme ohjelmien suljettu luonne: Ohjelmistotalot eivät usein julkaise ohjelman lähdekoodia, ja tätä kautta eväävät meiltä pääsyn ohjelman koodin ymmärtämiseen tai muuttamiseen. Suljettuun koodiin on myös helppo piilottaa koodeja, joita saattaisimme pitää kyseenalaisina. Tämän vuoksi avoin lähdekoodi onkin yhteiskunnalliselta kannalta perusehto demokratian toteutumiselle.  “If the structure does not permit dialogue the structure must be changed”, totesi Paulo Freire ja hänen tekstejään, sekä kriittistä pedagogiikkaa ylipäätään, voidaan miltei suoraan lukea myös kritiikkinä vallitsevaa digitaalista kulttuuriamme kohtaan.

Kun yhteiskuntamme rakentuu yhä enemmän digitaalisen tekniikan varaan, niin myös koodin omat taipumukset[1] alkavat vaikuttaa tapaamme toimia.  Esimerkkinä koodin perusluonne: Kaikki koodi perustuu binääriseen järjestelmään, eli ykköseen ja nollaan. Kaikki ohjelmointi lähtee tästä leibnizlaisesta dualistisesta asettelusta Kyllän ja Ein välillä. Vaikkakin voimme luoda kompleksisia ohjelmia, on tämän kaiken perustalla tämä kaksijakoinen näkemys. Emme voi vastata tietokoneelle ”ehkä”, ilman että se loppujen lopuksi tulkitaan kylläksi tai eiksi. Koodin logiikka on eri asia kuin omat aivomme tai orgaaninen ja kompleksinen elämämme, ja tämä ristiriita luo jännitteitä digitaalisen ja analogisen minämme välille. Koodin taipumusten laajempi tarkastelu tuokin esille useita käytännöllisiä ja filosofia haasteita, joiden käsitteleminen olisi hyvin ajankohtaista.

Ohjelmoinnin lukutaito on siis kykyä ymmärtää elämäämme vaikuttavaa digitaalista arkkitehtuuria. Samoin kuin tarvitsemme medialukutaitoa kuvavirtojen tulkitsemiseen ja ymmärtämiseen, tarvitsemme ohjelmoinnin lukutaitoa digitaalisen median ymmärtämiseen.

Tomi Dufva
Tohtoriopiskelija
Aalto-yliopisto, Aalto ARTS
Tomi.dufva@aalto.fi
@Tomidufva
Tutkimusblogi: Www.codeliteracy.net



[1] Englanniksi bias, kts. mm. Douglas Rushkoff, Program or Be Programmed: Ten Commands for a Digital Age (2011).