Runsas vuosi sitten tweettasin osapuilleen näin: “Koodaajapulasta puhuttaessa monilta unohtuu, ettei kaikista ole koodaajiksi. Osalta ihmisistä esimerkiksi puuttuu kyky käsitellä abstrakteja asioita.” Lopulta keskustelu lähti niin lapasesta, että tuhosin koko tweetin.
Jälkikäteen ajatellen viesti olisi pitänyt muotoilla huolellisemmin — mutta perusajatus ei ole muuttunut. Nyt kun haavat ovat arpeutuneet, on hyvä hetki käsitellä aihetta laajemmin.
Edelleen ihmettelen, miksi ajatus siitä että jokainen ihminen ei ole soveltuva juuri koodaajaksi aiheutti niin kovasti huomiota. Jos olisin väittänyt, ettei kaikista ole poliiseiksi, lakimiehiksi tai ydinfyysikoiksi, kukaan ei olisi älähtänyt.
Toki on olemassa monenlaista “koodausta”. Mutta keskitytään tässä yleisimpään eli ohjelmistokehittäjänä toimimiseen. Henkilöön, joka uransa aikana tulee tutustumaan useisiin eri ohjelmointikieliin ja ympäristöihin ja toteuttaa moninaisia järjestelmiä. Eli sellaiseen koodariin, josta on eniten pulaa.
Aiemmassa kirjoituksessa kerroin, että ohjelmistokehittäjänä työskentelee jo nyt paljon ihmisiä, jotka eivät ole kummoisia koodaajia. Mutta millaisia ominaisuuksia hyvällä koodaajalla sitten on? Kokemukseni mukaan ainakin seuraavat tekijät yhdistävät päteviä ohjelmistokehittäjiä:
- Älykkyys
- Matemaattinen lahjakkuus
- Kyky käsitellä abstrakteja asioita
- Sinnikkyys
- Innokkuus oppia uutta ja kehittyä
- Halukkuus työskennellä pitkiäkin aikoja yksin tietokoneella
Erityisesti Twitterissä kyseenalaistettiin väitteeni, etteivät kaikki pysty abstraktiin ajatteluun. Nyt minulla on esittää väitteen tueksi suomalaisen professorin ajatuksia. Aamulehdessä julkaistiin 20.6.2020 juttu “Älykkyys selittää ihmisen elämänkulkua paremmin kuin sosiaaliluokka, mutta sitä on vaikea sanoa ääneen”. Artikkelissa psykologian professori Markus Jokela ansiokkaasti kertoo älykkyyden merkityksestä. (Sama artikkeli muuten julkaistiin Hesarissa toukokuussa ja Tiede-lehdessä jo helmikuussa.) Erityisesti haluan nostaa jutusta esille kaksi virkettä: “Ulkonäköäänkin voi yrittää parantaa kauneusleikkauksilla, mutta kyky abstraktiin loogiseen päättelyyn ei parane, vaikka kuinka harjoittelisi. — Älykkyys on verraten pysyvä ominaisuus, ja sillä on paljon suurempi merkitys kuin pelkällä kirjanoppineisuudella.”
Koodaajat käsittelevät erittäin abstrakteja asioita — on sanottu että ohjelmistokehittäjät ovat ainoita insinöörejä, jotka suunnittelevat tuotteita (ohjelmia) jotka eivät noudata fysiikan lakeja. Lisäksi koodaajat myös hyödyntävät monimutkaisia tietorakenteita. Jos matematiikka oli koulussa painajaista, en usko että koodaaminenkaan tulee olemaan herkkua.
Miksi tämän ääneen sanominen sitten on tärkeää? Kaikkien houkutteleminen alalle vain tuhlaa resursseja ja tuottaa pettymyksiä. Osalle totuus voi paljastua jopa vasta työelämään pääsemisen jälkeen ja tuhlattuaan useita vuosia koulunkäyntiin. Lisäksi koko alan arvostus laskee ja ohjelmistojen laatu kärsii.
Kannustan toki kaikkia tutustumaan koodaamisen ihmeelliseen maailmaan. Esimerkiksi Mimmit koodaa tekee tärkeää työtä — ja toivottavasti onnistuu houkuttelemaan alalle sellaisia henkilöitä, joiden ominaisuudet sopivat vaatimuksiin.
Olen alkanut opiskelemaan tietotekniikkaa vuonna 1991 ja ollut alalla koko työurani. Kaikki havaintoni tukevat samaa: ohjelmointi vaatii kykyä ajatella tietyllä tavalla ja sitä eivät kaikki pysty oppimaan.