Mikko MetsoI'm a coder, this is my blog

Miksi oppia koodaamaan

November 02, 2019

    tags: 
  • fi /
  • oppiminen /
  • ohjelmisto-ala /
  • koodiosaaja /

Näihin koodausta ja koodareiden palkkausta koskevaan “uutisointiin ei ole voinut olla törmäämättä jos seuraa Suomen keltaista lehdistöä. Itseasiassa minulla on yhden alalla työskentelevän ystävän kanssa menossa jatkuva virtuaalinen bingo jossa bongaillaan sopivia otsikoita keskenään jaettavaksi sellaisten kohdalle sattuessa. “Huippukoodari”, “Kolmen viikon koulutuksella 7 tonnin palkka” yms. ovat yleisiä vitsejä mitä sopii jakaa aina kun niitä silmien eteen sattuu sopivasti nousemaan. Alla suppea otanta Ilta-Sanomien koodialan työllisyyttä ja palkkaa koskevia höpöotsikoita. Ne kaikki julistavat samaa. Töitä riittää ja palkkaus on hyvä. Mutta onko klikkijournalistit näiden täytepalojensa kanssa oikeassa? Mikä tätä ilmiötä oikein selittää?

Palkka jopa 7 000 e/kk ja varma työ – kaikki alkoi 2,5 tunnin testistä 18.1. 9:08 Koodarin ammatti kuulostaa kutkuttavan houkuttelevalta, ja omia mahdollisuuksia on nyt todella helppo kokeilla. Ohjelmistoalaan liittyy kuitenkin turhaa mystiikkaa.

-TALOUSSANOMAT

Espoo kouluttaa 40 työtöntä koodareiksi 2.4. 10:46 Koulutettavilla on taustaa tietotekniikka-alalta, mutta heidän osaamisensa on vanhentunutta, koulutuksen järjestäjä Soprano kertoo.

-TALOUSSANOMAT

Palkka jopa 5000–7000 e/kk ja kysyntää riittää – Tee testi: olisiko sinusta koodariksi? 9.6.2018 12:00 Ohjelmistoalalla olisi heti töitä 7 000–9 000 uudelle työntekijälle.

Koodareita on ollut olemassa jo pitkään, mutta viime aikojen teknologinen kehitys on luonut valtavan kysynnän moninaisille ja eri tasoisille koodiosaajille. Digitalisaatio on muokannut viimeisen 10-15 vuoden aikana eri toimialoja radikaalisti ja samalla avannut niille aivan uusia tapoja luoda ja toteuttaa liiketoimintaa. Tästä johtuen myös tarve uudenlaiselle osaavalle työvoimalle on kasvanut huomattavasti. Hyvä esimerkki tästä on jäänyt mieleen kun aloitin koodaajan töitä. Aloitin harjoittelijana 40 hengen tiimissä, jossa tiiminvetäjä kertoi tiimiä esitellessään, että kymmenen vuotta aiemmin kun hän oli aloittanut tiimin koko oli ollut neljä henkilöä. Asiakkaana tiimillä oli lentoyhtiö. Kun seuraavan kerran kävelet Suomen mittakaavalla isossa kaupungissa kadulla, tai katsot tv:stä mainoksia voit olla varma, että valtaosa vastaantulevista yhtiöistä työllistää moninkertaisesti koodiosaajia kuin kymmenen vuotta sitten.

Tämä ei tietenkään liene uutinen kenellekään. Kehitys kehittyy ja sitä rataa. Mutta havaintona se on omiaan alleviivaamaan sitä kehitystä jonka pohjalta ollaan tänä päivänä tilanteessa, jossa lehdet kirjoittavat noin 9000 koodiosaajan vajeesta suomalaisilla työmarkkinoilla. Teknologinen kehitys on johtanut siihen, että yhä useammat yritykset tarvitsevat koodareita ja toisaalta esimerkiksi teknologian infrastrukturien kehitys mahdollistaa tänä päivänä yhä pienemmällä rahallisella panostuksella mitä erinäisempien kokeilujen pilotoinnin. Karkeana esimerkkinä voi sanoa vaikkapa, että webbisovelluksen toteutukseen ei enää tarvita omaa konesalia ylläpidettäväksi vaan se voidaan helposti “liisata” ulkopuolisen palveluntarjoajan kautta. Tällaisen perustusten pystyttäminen, ylläpito ja kustannustehokkuus ovat ottanet valtavia harppauksia viimeisen kymmenen vuoden aikana.

Samaan aikaan ihmiset kantavat mitä erinäisempiä internettiin jatkuavsti kytkettyjä päätelaitteita mukanaan. Aivan uusia markkinoita on syntynyt ja syntyy edelleen kuinj tyhjästä. Ei siis ihme, että monet yritykset ovat lähteneet mukaan kehittämään joko talon sisällä, tai ostopalveluna uusia palveluita. Ja näiden tekemiseen tarvittaisiin koodareita enemmän kuin mitä suomalainen korkeakoulusysteemi pystyy tuottamaan. Esimerkiksi Oulussa päästiin muutama vuosi tilanteeseen, jossa teknologiateollisuudessa työskenteli ensimmäistä kertaa enemmän ihmisiä enemmän kuin aikanaan kännykkä-Nokian huippuvuosina.[1]

Kuka on koodiosaaja?

Puhtaiden koodinkirjoittajien rinnalle on viimeisten vuosikymmenien aikana syntynyt myös vino pino täysin uusia ammatteja. Tai vanhat ammatit on jouduttu keksimään uudestaan. Projektipäälliköitä ja tuoteomistajia on varmasti ollut ainakin niin kauan kuin maailmassa on ollut savupiipputeollisuutta. Mutta tänä päivänä näihin titteleihin kietoutuvat vaatimukset ovat monelta osin jotain aivan toista kuin mitä ne olivat kymmenen tai kaksikymmentä vuotta sitten. Samat organisoinnit ja priorisoinnit ja ihmisten johtamiset ovat tietenkin yhä keskiössä, mutta samalla toimenkuviin on liitetty yhä enemmän uusia työkaluja ja tekniikkaa mikä pitää vain hanskata. Että tämä kirjoitus pysyisi edes jossain fiksuissa rajoissa en harhaudu tälle harhapolulle tämän enempää. Tyydyn vain alleviivaamaan, että uudenlaista työtä teknologiateollisuuteen on syntynyt myös pelkän koodinkirjoittamisen lisäksi valtavasti.

Tämän myötä voikin hyvänä aasinsiltana kysyä, että mikä on se semmoinen “koodiosaaja” jota niin usein työhakuilmoituksissa ja Linkedin-postauksissa tänä päivänä etsitään? Ensimmäisen summittaisen jaon voi mielestäni tehdä koodia kirjottavien ja muiden välille. Juomamäärittelyistä tuttua “Kaikki sampanja on kuohuviiniä, mutta kaikki kuohuviini ei ole sampanjaa” lausahdusta voisi hyvinkin todeta, että kaikki koodarit ovat koodiosaajia, mutta kaikkien koodiosaajien ei todellakaan tarvitse olla koodareita.

Monta varmasti askarruttaa kokeilla. Mitä ihminen tarvitsee työskennelläkseen koodialalla? Jos haluaa kirjoittaa koodia työkseen on varmasti hyvä osata koodata. Mutta tämäkään asia ei ole ehkä niin yksiselitteinen kuin mitä se tuommoisena kevyenä lausahduksena voi kuulostaa. Koodikielet ja niihin pohjaavat frameworkit ja koodia keskittävät kirjastot Kirjasto on tässä koodikokoelma jota voi hyödyntää osana itse kirjoittamaansa koodia. Karkeasti voi ajatella, vaikkapa niin, että joku muu on kirjoittanut auton ratin tai renkaan ja kun minä nyt kirjoitan tätä omaa katumaasturi2000.js tiedostoa voin ottaa käyttöön kirjaston josta nämä ratti ja pyörä löytyvät ja importoida ne käyttöön omaan projektiin. Frameworkit (suom. viitekehys) taas ovat kuin hyviä toimintatapoja tehdä jotain asiaa. Voisin kuvitella, että yrheilujoukkueella on pelikirja johon on määritelty syvällisesti miksi jotain tehdään ja toisaalta parhaimmassa tapauksessa kirjattu ylös myös jotain seikkaperäisiä taktiikoita siitä miten joku tietty yksittäinen kikka kuuluu toteuttaa. Tämä on ontuva esimerkkini frameworkeistä. Joku muu voisi tähän tuhahtaa, että eihän ne nyt tuollaisia ole. Ja antaa aivan toisenlaisen näkemyksen siitä mitä nämä viitekehykset oikein pitävät sisällään. Ja se on minun mielestä aivan oikein. Kuten jo aiemmin tuli todettua koodaamisessa asiat ovat jatkuvassa liikkeessä ja vain harvat asiat pysyvät vuodesta toiseen aina ja kaikkialla muuttumattomina.

Mutta ehkä koodariksi tullakseen löytyy kuitenkin jotain perustavanlaatuisia asioita mitkä auttavat. Ainakin pitää pystyä tekemään työtä tietokoneella. Asia voi kuulostaa itsestäänselvyydeltä, mutta sitä se ei täysin ole. Maailmassa on monenlaisia töitä ja vaikka nykyään lähes jokaisessa työssä käytetään jossain vaiheessa jotenkin tietokonetta koodarit istuvat koneen ääressä jokaikinen työpäivä useita tunteja päivässä. Kitaristilla on kitara, sairaanhoitajalla potilaansa, koodarina täytyy olla sinut tietokoneiden kanssa.

Sitten toinen tärkeä juttu on mielestäni astrakti ajattelu. Pitää pystyä kehittämään päässään malleja siitä mikä joku on ja toisaalta teorioita siitä miten joku toimii tai miksi toinen ei toimi. Vaikkei aina siltä tuntuisi koodia kirjoitetaan tähän meidän yhteiseen fyysiseen maailmaan ja sen tarpeisiin. Senpä tähden onkin tärkeää osata (tai oppia) kuvaamaan niitä asioita mistä koodia kirjoittaa. Jos käytän esimerkkiä jossa on A ja Y ja kerron, että A menee Y:n sisään ei se itsessään kerro oikein kenellekään mitään. Mutta jos vaihdan A:n Autoksi ja Y:n Sirpaksi alkaa tämä kaikki tehdä jo tässä lapsellisessa esimerkissä enemmän järkeä. Yksinkertaisten esimerkkien kohdalla tilanteet voivat vaikuttaa lapsellisilta ja helpolta, mutta kun kompleksisuus kasvaa kyky muodostaa malleja pään sisällä auttaa huomattavasti. Tätä ajatusta voi lähteä pohtimaan menemällä Googleen ja katsomalla sitä yksinkertaista sivua hieman syvemmälle. Miten sinä itse lähtisit toteuttamaan hakukonetta?

Alun perin olin ajatellut, että kirjoitan tässä postauksessa siitä miten oppia koodaamaan. Aiheesta tuli kuitenkin niin paljon sanottavaa ja tekstistä tuli niin julmetun pitkä, että päätin palastella tekstin useampaan osaan. Kirjoitan seuraavassa aihetta käsittelevässä blogikirjoituksessa siitä miten itse lähdin opettelemaan koodaamista ja miten minusta tuli ammattikoodari.


Mikko Metso

Moi! Minä olen Mikko, Helsingissä asuva koodari.

Ennen uraa ohjelmistokehittäjänä tein töitä markkinoinnin parissa graafisena suunnittelijana. Tuolloin pääsin työskentelemään myös paljon ohjelmistokehittäjien kanssa ja lopulta halusin myös itse tulla koodariksi. Vuoden 2017 alusta jättäydyin opintovapaille ja päätin oppia koodaamaan. Valmistuin vuonna 2018 Haaga-Heliasta ja aloin ansaita elantoni ohjelmistokehittäjänä.

Tänä päivänä työskentelen Frond Endin parissa avainsanoina teknologiat kuten React, Redux, Gatsby and GraphQL.

Tarkempia tietoja työurastani Curriculum vitae :n muodossa voit lukea Linkedin profiilistani.
Koodipuolen jutut löytyvät puolestaan GitHubista.