Joni Ahola

Joni Ahola

18 maaliskuuta 2021

Mitä on olla koodari?

Koodari on henkilö joka ohjelmoi/koodaa tietokoneella ohjelmia.

Tiedät sen hiljaisen henkilön, joka viihtyy koneella? Näytön kirkas valo loistaa yötä päivää vuodenajasta riippumatta. Vaikka ulkona olisi paras mahdollinen sää mitä Suomen ilmasto voisi tarjota, todennäköisesti kuulet tältä samaiselta kaverilta kuinka hän oli viettänyt päivänsä tietokoneen äärellä.

Puhun tietysti koodareista, joihin allekirjoittanut lukeutuu itsekkin. Tässä artikkelissa käydään lyhyesti mitä kaikkea sisältyy koodarin elämään.

Hallitsee tietotekniikan

On tietysti loogista, että koodarit hallitsevat hyvin tietokoneita, harvoin sitä tässä hommassa pärjäisikään ilman niitä taitoja.

Koodari erikoistuu johonkin tai useampaan osa-alueeseen. Täydellisen kattava osaaminen kaikilla osa-alueella olisi mahdoton tehtävä. Esimerkiksi jos olet keskittynyt vain rakentelemaan nettisivuja, et välttämättä osaa korjata rikkinäistä tietokonetta.

Osa-alueita on lukematon määrä. Tässä muutama:
Verkkosivujen ohjelmointi, peli-ohjelmointi, sulautettujen järjestelmien ohjelmointi, mobiili-ohjelmointi, sovellusohjelmointi, käyttöjärjestelmäohjelmointi ja niin edelleen. Nämäkin jakaantuu pienempiin alueisiin, kuten web-ohjelmoinnissa voi keskittyä esimerkiksi enemmän frontend-puoleen tai backend-puoleen. Frontend tarkoittaa sitä näkyvää osaa mikä käyttäjälle näkyy nettiselaimessa nettisivuista. Backend tarkoittaa web-palvelintason ohjelmointia, joka huolehtii mm. siitä, että käyttäjä näkee kyseisen sivun. Jos hallitsee molempia osa-alueita, sanotaan että koodari on Fullstack-kehittäjä.

Kun ottaa huomioon, että koodareilla on monia vaihtoehtoja lähteä erikoistumaan ja kaikki osa-alueet kehittyvät jatkuvalla syötöllä, et voi osata kaikkea.

Omaksuu uusia asioita hirvittävällä vauhdilla

Ala kehittyy jatkuvasti. Internet on 24/7 auki ja ihmiset maailmalla rakentavat kokoajan uutta sisältöä ja sovelluksia muiden käyttäjien riemuksi. Asiakkaat haluavat verkkosivuille uudenlaisia kuvakaruselleja tai animaatioita. Myyntimiehet keksivät uusia tarpeita asiakkaille ja myöskin koodarien pään menoksi.

Koodari avaa hakukoneen ja syöttää muutaman oleellisen avainsanan tutkiakseen, miten selviäisi uusista haasteista. Google on koodarin paras ystävä. Nopea netti on iso plussa. Englannin kielen osaaminen on myös tärkeässä osassa. Enemmän saat googlettamalla vastauksia englanniksi kuin suomeksi. Muillakin isoilla kielillä voi kokeilla onnea, mutta ohjelmoinnissa englanti on se kieli mitä käytetään ja on epävirallisesti sovittu.

Entisaikoina etsimme vastauksia kysymyksiin kirjojen sivuilta, mutta nykypäivänä kaikki on nopeampaa ja helpompaa. Tietokin netin artikkeleissa on yleensä ajantasaisempaa. Vuoden vanha opas ohjelmointikielen saloihin voi olla jo liian vanhaa tietoa.

Koodarin työajasta kuluu suurimmaksi osaksi tietoa etsimällä ja hyödyntämällä tätä lopulliseen tuotteeseen: koodiin.

Käy hitaalla aika-ajoin

Uusien asioiden omaksumisen kääntöpuolena on se, että unohtaa vanhoja asioita. Kaikilla tämä tietysti tapahtuu yksilöllisesti. Voisin väittää kuitenkin, että aika harva muistaa täydellisesti miten koodi toimii edellisen sovelluksessa, joka valmistui viikko sitten. Jopa muutaman päivän vanha tuotos voi vaipua nopealla aikataululla unholaan, jos työnsarkaa on paljon.

Onneksi kuitenkin muisti palautuu lukemalla lähdekoodeja ja käyttämällä vähän aikaa. Jossain tapauksissa tarvitaan taas hakukoneen apua.

On pikkutarkka

Huomaan jatkuvasti, että siviilielämässä olen aika suurpiirteinen. Töissä pitää kuitenkin olla tarkka. Jokainen merkki on koodissa tärkeä. Myös välilyönnit. Joskus saattaa lipsahtaa näppäinyhdistelmä, joka tulostaa koodiin merkin, joka näyttää välilyönniltä mutta ei ohjelman mielestä ole sitä. Ohjelma palauttaa virheen, ettei ymmärrä mitä yritän ajaa takaa. Näin on muutaman kerran allekirjoittaneelle käynyt (tai ainakin luulen niin!).

Joissakin ohjelmointikielissä on oleellista, että teksti on sisennetty oikein. Jos sisennetty koodi on väärin, ohjelma tekee väärän tulkinnan. Annan esimerkin:

jos muuttuja X on yli 10
tulostan näytölle "X on iso luku"

Kun sisennystä ei ole tehty, tietokone tulkitsisi että ohjelmassa halutaan tulostaa "X on iso luku" myös silloin kun se on alle 10. Jos koodi sisennettäisiin oikein näin:

jos muuttuja x on yli 10
tulostan näytölle "X on iso luku"

Menisi koodi oikein. Tietokone ei ymmärrä, että ihmisen koodissa voisi olla virheitä. Onneksi tietokone osaa kuitenkin tulostaa koodarille virheilmoituksen kun koodissa on vikaa. Esimerkissäni ei kuitenkaan ole mitään ohjelmistoa rikkovaa vikaa, niin tietokone tulkitsisi että se toimii oikein. Eli jäisimme ilman virheviestiä. Jos et ole tarkka, jää koodiin virheitä korjattavaksi myöhemmässä vaiheessa!

On luova

Koodarit ovat yleensä insinöörejä tai diplomi-insinöörejä, joihin ei perinteisesti yhdistetä luovuutta. Kuitenkin ilman luovuutta koodin rakentamisesta ei tulisi yhtään mitään.

Yritän joskus kuvailla ihmisille työstäni, joilla ei ole mitään käsitystä mitä teen. Maallikolle sitä on usein vaikea selittää. Olen mielestäni keksinyt aika hyvän kuvauksen:

Ohjelmointi on kuin tekisi pullolaivoja silmät sidottuna.

(pullolaivat on pienoismallilaivoja lasipullossa)

Kuulostaako hullulta vertaukselta? Ei minusta. Usein näet mitä koodisi saa aikaan, mutta se ei ole koko totuus. Onko se lopputulos oikeasti se mikä siitä pitäisi tulla? Voit saada laskukaavasta x + y = 2 lopputulokseksi:

  • x = 1 ja y = 1
  • x = 0 ja y = 2
  • x = 2 ja y = 0
  • x = -2 ja y = 4
  • ...

Eli näkemäsi lopputulos ei aina oikeasti vastaa sitä haluttua lopputulosta. Tähän kun lisää sen, kyseisiä laskukaavoja tai ongelmia on yhdessä työssä lukematon määrä virheiden mahdollisuus on aika suurta.

Jokainen työ tai projekti on pino pieniä haasteita, jotka pitäisi luovasti niputtaa yhteen ja saada aikaan toimiva yhdistelmä. Meitä voisi vertailla kirjailijoiksi, jotka yrittävät saada punottua toimivaa tarinaa, jossa kaikki henkilöt ja tapahtumapaikat ovat järkeviä ja loogisia.

Huono arvioimaan työaikoja

Ehkä yritän tällä kirjoituksella saada synninpäästön omista töppäyksistä, mutta uskon vahvasti siihen, että me emme osaa kovin tarkasti arvioida kauan kestää tehdä erinäisiä haasteita. Työmääräarviot on kuitenkin tärkeitä asiakkaille, ei kukaan halua ostaa työtä, jolla ei ole hintaa.

Syyllinen on tähän se, että jokainen työ on erilainen. Ei kukaan halua täsmälleen samanlaista verkkosivua mitä toisella yrityksellä jo on. Ja jos haluaisin, niin kopio-liitä -menetelmällä siihen menisi kahvitauon mittainen aika!

Onneksi tähänkin oppii kokemuksen kautta. Kun muistelee, että kuinka monta tuntia edellisessä projektissa meni alakanttiin, niin seuraavassa projektissa laittaa vähän reilummin niin siitä tulee vähän balanssia.

Ja onneksi on projektipäällikköjä, jotka osaavat antaa oikean kertoimen koodarien työmääräarvioihin.

Taikauskoinen

Jotkut saattavatkin sanoa, että koodarit ovat velhoja. Eikö siis ole loogista että velhot ovat taikauskoisia?

Välillä sovellukset eivät toimi. Etsit vastausta, kyselet työkavereilta. Mikään ei tunnu auttavan. Sitten kokeilet jotain aivan umpimähkään (ripottelet suolaa hiuksiisi) ja se auttaakin asiaa. Tai joskus et tee mitää ja homma toimiikin ihan hyvin. Jos ongelmaan ei löydy selitystä, uskotaan että se johtui vain aurinkopilkuista tai kun et ollut pyörinyt tuolisi ympäri 10 kertaa ennenkuin istahdit siihen.

Tosiasiassahan kaikelle löytyy selitys. Pitää vain keksiä se. Sitä ennen voi luovasti kehitellä muita syitä..

Loppusanat

Tässä oli pintaraapaisu koodarien mielenmaisemaan. Aiheesta voisi kirjoitella kirjoja ja jäi varmasti moni yksityiskohta kertomatta. Päätän kuitenkin tähän ja jatkan aiheesta ehkä joskus myöhemmin.

Rauhallista Joulua ja onnellista uutta vuotta kaikille!

Koodari = ohjelmoija, kehittäjä, velho, nörtti, tietokoneinsinööri, ohjelmistoinsinööri
Koodari ≠ hakkeri, krakkeri (älä käytä näitä)

PS: meitä koodareitakin on moneen lähtöön. Osa tykkää jopa viettää aikaa ulkona :)

-Joni, 8 vuotta ammatikseen työskennellyt koodari 

Tagipilvi

,

Kommentit

Kukaan ei ole vielä kommentoinut tätä sivua.

Lähetä kommenttisi