Mihin ICT-alalla kannattaa suuntautua, jotta töitä riittäisi myös teknologioiden muuttuessa?

Syksyn tullen ja kurssien alkaessa sähköpostiin kilahtaa aina muutama kysymys siitä, mihin ICT-alalla kannattaa suuntautua, jos on jo työelämää takana ja haluaisi vaihtaa alaa tai jos tuli opiskeltua alan tutkinto, mutta ohjelmointitaidot jäivät vähälle harjoittelulle.

Jos asiaa pohtii omien taipumusten näkökulmasta, ohjelmistosuunnittelu on erinomainen suuntautumisvaihtoehto, jos looginen päättely luonnistuu ja viesti kulkee niin kirjallisesti kuin suullisestikin, mutta erityisesti kirjallisesti. Kirjoitustaitoa painotan tässä erityisesti siksi, että jokainen vakavasti otettava tietojärjestelmä myös dokumentoidaan ja sen ideoita esitellään uusille ohjelmistosuunnittelijoille heidän tullessaan mukaan rakentamaan tuotetta tai liittyessään ohjelmointiprojektiin. Puhelahjat harvoin auttavat, jos tietojärjestelmä tai sen osa ei toimi. Hieman kärjistäen voisi sanoa, että projektimaisessakaan työskentelymallissa, jossa asiakas on mukana kehittämässä ohjelmistoa, ei asiakkaalle selittelyn pitäisi olla ohjelmistosuunnittelijan ydinosaamista. Jutun lopusta löydät ajatuksen siitä, mikä pitää juuri hyvät perustaidot oppineen ohjelmistosuunnittelijan tiukasti työelämässä verrattuna yksittäisen teknologian "osaajaan".  

Kuinka hyvä looginen päättelijä minun tulee olla, jotta pärjään ohjelmointitöissä? 

Tämä riippuu hyvin paljon niistä nimenomaisista ohjelmointitehtävistä, joita tehdään. Ohjelmointi ja matematiikka jakavat tiettyjä samoin nimettyjä, mutta enemmän tai vähemmän eri asioita merkitseviä käsitteitä, mutta ne ovat kuitenkin eri asioita. Ohjelmoinnin logiikka on perustasolla varsin maalaisjärkistä, mutta edellyttää tiettyä loogista päättelykykyä kuten matematiikkakin.  

Deklaratiiviset ohjelmointitavat, jotka pikemminkin kuvaavat itse ongelman sen sijaan, että ne kuvaisivat ongelman yksityiskohtaisen teknisen ratkaisumallin, on tuonut ohjelmistosuunnitteluun kokonaan uuden luonteen. Ohjelmointi, esimerkiksi verkkosovelluksien laatiminen, ei ole enää algoritmisesti läheskään yhtä haastavaa kuin se vielä 15 vuotta sitten oli. Tästä pitävät huolen ohjelmointikirjastot, jotka tarjoavat enemmän tai vähemmän valmiin mallin tietyntyyppisten sovellusten laatimiseksi. 

Käyttöliittymäohjelmointi funktionaalisen React -kirjaston avulla on hyvä esimerkki deklaratiivisen mallin hyödyistä. Olemme kursseillamme ottaneet kantaa deklaratiivisen mallin puolesta erityisesti käyttöliittymiä verkkosovelluksiin laadittaessa. Deklaratiivista mallia suositaan myös monissa muissa käyttöliittymien laatimiseen liittyvissä ohjelmointikirjastoissa tai -kehyksissä. Norjalaislähtöinen, mutta suomalaisomisteinen Qt-kirjasto on tästä hyvä esimerkki - käyttöliittymän voi laatia erillisellä työkalulla ilman ohjelmointiosaamista. 

Mitä muita taitoja ohjelmistosuunnittelijalta vaaditaan?

Tietty huolellisuus on valttia ohjelmointitöissä. Tähän pätee kuitenkin sama kuin loogisuuden vaatimuksessa - työkalut tekevät asioista entistä tolkullisempia. Syntaksin (eli se, miltä kirjoitettu koodi näyttää) osalta koodin kirjoittaminen on suhteellisen helppoa, sillä työkalut usein tarkistavat koodin laatua sitä mukaa kun koodia kirjoitetaan. Näin yksityiskohtiin ei ole tarpeen kiinnittää yhtä paljon huomiota kuin aiemmin. Toisaalta ei voida sanoa, etteikö tarkkuutta vaadittaisi. Kyse on kuitenkin ongelmanratkaisun kuvaamisesta sovituin merkein (syntaksi).  


Mitä ovat ne alan työelämätaidot, joiden osaamisesta paljon puhutaan?

Harjoittelupaikkoja tarjonneet yhteisöt ja yritykset ovat kiteyttäneet kymmenvuotisen toimintamme aikana hyvin omat tarpeensa. He toivovat erityisesti kolmea asiaa: hyvää motivaatiota, ohjelmointitaitoa ja kykyä oppia uutta.

Kaikki ei ole kuitenkaan näin mustavalkoista - heikompia ohjelmointitaitoja voi kompensoida vaikkapa käytettävyysosaamisella

Kursseiltamme on valmistunut 10 vuotisen toimintamme aikana useita korkeakoulutettuja käytettävyyteen perehtyneitä AMK-tutkinnon tai maisterin tutkinnon suorittaneita tai työelämässä kannuksensa hankkineita käytännön UI-taitajia, esimerkiksi graafisesti taitavia. Heistä jokainen on hyötynyt erinomaisen paljon siitä teoria- ja taustatiedosta, joka on verkkoselaimen käyttöliittymän toiminnan takana ja mikä on palvelimen ja tietoverkon rooli kokonaisuudessa. He tietävät nyt, mikä on mahdollista ja mikä on mahdotonta, käydessään keskustelua asiakkaan tai oman työporukan kanssa. Tästä hyötyy erityisesti asiakas tai oma työyhteisö - vaatimukset saadaan kerralla kuntoon, koska käyttöliittymäsuunnittelija osaa kertoa jo ensimmäisestä palaverista alkaen mikä on mahdollista ja järkevää. Suurimman hyödyn tästä opista ovat saaneet opiskelijat itse - heillä on aivan eri tavalla neuvotteluvoimaa työmarkkinoilla - siksi, että heillä on tietoa käyttöliittymän mahdollisuuksista ja rajoitteista. Joku on joskus sanonut, että tieto olisi valtaa. 

Ja heikompia käytettävyystaitoja voi kompensoida ohjelmointiosaamisen monipuolisuudella

2020 kurssillamme aloittanut sulautettujen järjestelmien kehittäjä etsi jatkokoulutusmahdollisuuksia ja aloitti kurssillamme lokakuussa 2020. Helmikuussa 2021 hän oli töissä ja hän pystyi tarjoamaan työnantajalleen paitsi sulautettujen järjestelmien kehittämisen taitoja myös taitoja, joiden avulla sulautetut järjestelmät voivat keskustella keskenään verkon yli. Oppilas hyötyi erityisesti taustajärjestelmiä ja tiedon varastointimalleja käsittelevistä kurssimme osista. Työ löytyi siksi, että hänellä oli monipuolista osaamista ajattomissa perustaidoissa. Hän, kuten osa opiskelijoista löysi työpaikan omin avuin ja omin tiedoin. Me autamme kurssilaisia paikkojen haussa, mutta onhan se vielä vähän hauskempaa, kun voi sanoa, että sai paikan siksi, että on oppinut ja kehittänyt taitojaan siihen pisteeseen, että työnantaja löytyy omin neuvoin. 


Lopuksi

Pitkän kokemuksen perusteella työantajat arvostavat hyviä perustaitoja, joiden varaan voidaan rakentaa uutta osaamista. Työnhakijat listaavat ansioluetteloissaan usein esimerkiksi seuraavaa: HTML5, CSS, JavaScript, Nodejs, MySQL ja AI, niin se on hyvä alku. Kun työhaastattelussa kysytään "Mitä pitäisi ottaa erityisesti huomioon, kun laaditte yrityksellemme uutta softaa kyseisten teknologioiden varassa?". Tuohon kysymykseen vastaaminen on hiukan vaikeampaa.

Ohjelmakoodin ja sen suunnittelun laatu on avainasemassa, sillä ohjelmakoodi koordinoi teknologioiden yhteistoimintaa oli kyse sitten selaimessa pyörivästä koodista tai laajemmasta ohjelman osasta. Tästä syystä toimivan, turvallisen ja ylläpidettävän softan laatiminen lähtee ensimmäisestä ohjelmarivistä.  

Jos aihe kiinnostaa, kannattaa lukea myös tämä: Miten ohjelmistosuunnittelijan uran alkuun pääsee, miten töissä pysytään ja miten kehitytään eläkkeelle asti ja vielä sen jälkeenkin?



Hyvää ja sienirikasta syksyä ja onnea pääsykokeisiin hakijoille ja tsemppiä ohjelmointihommiin!

Juuso, Selma-koira ja kumppanit