Koodaaminen on tärkeä ja arvostettu taito työelämässä. Mutta mitä muita taitoja ja ominaisuuksia koodarilta kaivataan. Koodaaminen itsessään vaatii tarkkuutta, kärsivällisyyttä ja loogista päättelykykyä. Vaikka koodaamista voisi ajatella yksinäisenä puurtamisena, ei näin kuitenkaan ole. Ohjelmoinnin historian saatossa itsenäisestä puurtamisesta on siirrytty yhteispeliin, jossa tiimitaidot ovat isossa osassa. Yleensä tiimistä löytyy niin backend-, full stack- ja frontend-devaajat, jotka kaikki mahdollistavat isomman kokonaisuuden onnistumisen.
Kuten mikä tahansa työnteko, koodaaminen vaatii suunnittelua. Jotain ollaan tekemässä, jostakin tietystä syystä. Yksi tärkeimmistä taidoista on projektinhallinta. Sen avulla koodausprojektit etenevät hyvässä tahdissa ja tuloksia tehdään tehokkaasti. Samat projektinhallinnan perusperiaatteet pätevät ohjelmoinnin alalla. Joitakin erityispiireitä on. Tässä artikkelissa käymme läpi vaihe kerrallaan miten onnistunut koodausprojekti etenee.
Miksi - Tavoitteet ja tarkoitus
Lapset kysyvät kymmeniä kertoja päivässä miksi. Se on ajoittain ärsyttävä, mutta sitäkin tärkeämpi kysymys. Se kertoo tekemisemme tarkoituksen. Ilman sitä motivaatio ja suunta ovat hukassa. Syömme koska on nälkä. Koodaamme ratkaistaksemme jonkin ongelman. Aina tavoitteiden määrittelyä ja tarkoitusta ei tarvitse dokumentoida itse. Esimerkiksi työpaikalla se tulee usein ylhäältä päin tai suoraan asiakkaalta. Monilla devaustiimeillä on myös erikseen oma projektimanageri. Joka tapauksessa - jonkun sen on tehtävä.
Projektin määrittelyssä voi olla mukana monia henkilöitä. Valmisteluvaiheessa kehittäjät, ohjelmoijat ja projektipäälliköt haluavat luultavasti puhua tavoitteistaan projektille, miten sitä käytetään, miltä se näyttää ja niin edelleen. Tätä kutsutaan suunnitteluvaiheeksi tai analyysivaiheeksi. Se sisältää paljon ennakkotutkimusta. Osallistuvat tahot esittävät lisäksi kysymyksiä projektin tavoitteista.

Vaikka tekisit projektia yksin ja itsellesi, on silti hyvä seurata projektinhallinnan vaiheita. Voit pallotella ideaasi ja suunnitelmaasi esimerkiksi kaverin kanssa. Yksi olennaisimmista asioista on pohdittava tietojen ja toimintojen ja käyttäjien välistä suhdetta. Käyttäjäkokemus on kaiken A ja O. Ohjelmoinnin tarkoitus on toimia sekä tietokoneelle että loppukäyttäjälle. Teknologia-alalla käyttökokemusta kutsutaan UX:ksi.
Muita tavoitteisiin liittyviä seikkoja ovat muun muassa projektin kesto ja tarvittavat resurssit. Ehkä projektin kohteena on verkkosivusto, jolloin harkittavaksi tulevat ohjelmointikielet ovat esimerkiksi HTML, CSS, PHP ja niin edelleen. Sovellusten osalta saatat miettiä JavaScriptin ja Pythonin kaltaisten ohjelmointikielien hyödyntämistä. Lopuksi sinun on määriteltävä, miten nämä kaikki tukevat tavoitteisiin pääsyä.
Mitä ja miten - Käytännön eteneminen
Käyttöjärjestelmä, palvelin, tietokanta, protokollat, dokumentointi... huomioitavia asioita on paljon. Dokumentointi on merkittävä osa projektinhallintaa. Vaikka asiat olisi kirkkaana mielessäsi, on ne hyvä kirjata ylös. Varsinkin jos projektiin osallistuu useampi henkilö tai sillä on asiakas vastaanottajana. Ohjelmointiin liittyvä dokumentointi onkin asia, johon voisi perehtyä syvemmin. Keskitytään kuitenkin tällä kertaa koodausprojektin etenemiseen.
Tavoitteet selvät ja suunnitelma valmis. Tässä vaiheessa koodaus voi alkaa. Koodaus tehdään usein perustekstieditorissa ja tähän vaiheeseen voidaan käyttää yksinkertaista tekstieditoria, kuten Windowsin Notepadia. On olemassa myös kehittyneempiä tekstieditoreja, kuten IDE (Integrated Development Environment), Sublime Text, Atom, Notepad++, TextMate, UltraEdit, Coda ja CodeShare. Alla tärkeitä huomioita:
- Sublime Text on yksi suosituimmista. Sen avulla voit muokata tekstiä ja erottaa avainsanat, välimerkit, numerot ja linkit värin mukaan. Lähdekoodi on ihmisten kirjoittamia koodirivejä.
- Sinun on mietittävä, mitä kieltä aiot koodata ja onko se matalan tason ohjelmointikieli vai korkean tason ohjelmointikieli, kuten C++ tai JavaScript.
- Python on C++:n jälkeen yleisin ohjelmointikieli.
- JavaScript on kieli, jota käytetään yleisesti käyttöliittymissä ja verkkosivustoissa käyttöliittymän Node JS:n ansiosta.
- Python on yleisimmin käytetty ohjelmointikieli, ja se soveltuu moneen eri projektiin.
- PHP oli yksi yleisimmin käytetyistä ohjelmointikielistä maailmassa, koska sitä käytetään verkkosivustojen luomiseen ja sitä käytetään yleisesti WordPressin kanssa.
- Lopuksi kannattaa vielä muistaa Java, joka on olio-ohjelmointikieli.

Kun lähdekoodi on kirjoitettu, se on käännettävä kielelle, jota laite (esim. tietokone, älypuhelin tai tabletti) ymmärtää. Toisin sanoen, luodaan kohdekoodi. Tähän löytyy parikin eri toteutustapaa. Lähdekoodia voidaan kutsua myös lähdemoduuleiksi. Kun ne on käännetty, ne ovat kohdemoduuleita. Ne on koottava yhteen linkkerin avulla suoritettavan ohjelman luomiseksi. Ohjelmointiympäristöistä löytyy kääntäjä ja linkkeri eri ominaisuuksin.
Ohjelmoinnin ja tiettyjen ohjelmointikielien oppiminen voi kestää vuosia. Vaikka et olisi ohjelmoija, on hyvä tuntea koodaamisen perusteet. Projekteissa on yleensä mukana muun muassa asiakastyöstä vastaavia tai graafisia suunnittelijoita. Hyvä verkkopuolen graafinen suunnittelija ymmärtää miten toimittaa suunnittelmat koodareille toimivassa muodossa. Onhan projektin kuitenkin tarkoitus myös näyttää siltä mitä on suunniteltu.
Testaaminen ja kumiankkametodi
Vianetsintä ja testaus ovat olennainen osa sovellusten ja ohjelmien kehitystä. Ohjelmoinnin tasosta riippumatta sinun on tarkistettava, että koodaamasi asiat toimivat tarkoitetulla tavalla. Monesti koodarit tarkistavat toistensa koodeja. Esimerkiksi sovellusten toimivuuden suhteen vioista saattavat ilmoittaa asiakkaat. Vikojen etsiminen ei ole aina helppoa puuhaa. Jotkut ovat jopa erikoistuneet tähän ja toimivat vain testaajina. Verkkosivuston, sovelluksen tai ohjelman viankorjaus vaatii yleensä itse koodin muokkaamista.

Parantaaksesi ohjelmointitaitojasi sinun on oltava jatkuvasti hereillä vikojen suhteen. On lähes mahdotonta koodata virheettömiä ohjelmia ja sovelluksia yhdellä kertaa. Sinun on aina palattava korjaamaan tai parantamaan koodia. Tässäkin artikkelin alusta tuttu miksi kysymys tulee käyttöön. Miksi ohjelma reagoi tavalla, jota ei olla tarkoitettu? Miksi virhe tapahtuu vain tietyssä yhteydessä? Haasteeksi testaamisessa tulee usein vian toistaminen. Varsinkin jos vikailmoitus on tullut asiakkaalta.
Sinun on testattava erilaisia hypoteeseja nähdäksesi, mistä viat ovat lähtöisin. Joskus ongelma koskee vain tiettyä laitetta tai seuraa spesifisia vaiheita. Kyse on koodin hienosäädöstä isojen muutosten sijaan. Jotkut koodarit jättävät tämän vaiheen huomiotta, koska he kieltäytyvät uskomasta, että heidän koodissaan olisi jotain vikaa. Tämä on kuitenkin olennainen osa koodausta. On monia hyviä työkaluja, jotka auttavat sinua vianetsinnässä ja testauksessa. Ne löytävät vikoja ja näyttävät sinulle, mihin koodissasi on katsottava.
Mikä ihmeen kumiankkametodi?
Debugging eli vianetsintä voi olla hermoja raastavaa puuhaa. Onneksi on keksitty kumiankkametodi, jonka jokainen kokeneempi koodari tietää.
- Hanki käsiisi kylpyammeesta tuttu kumiankka ja aseta se pöydälle. Jos kumiankkaa ei löydy niin voit soveltaa.
- Kerro kumiankalle mitä koodisi pitäisi tehdä ja mikä on ongelman ydin. Ääneen, jotta kumiankka kuulee.
- Käy koodisi läpi rivi riviltä yhdessä kumiankalle kertoen yksityiskohtaisesti missä mennään.
- Ennen pitkää huomaat virheesi kumiankan kuuntelevien korvien(?) ansiosta. Kiitä kumiankkaa kuuntelusta ja korjaa virhe.

Kyseessä ei ole mikään vitsi. Kokeile googlettaa kumiankkametodi (englanniksi rubber duck debugging), ja tulet huomaamaan, että olemme täällä ihan tosissamme. Jos kumiankkaa ei tosiaan kotoa löydy niin korvaajaksi käy muu pehmolelu, soppakauha tai vaikka viaton puoliso. Lapsia tai lemmikkejä emme suosittele, elleivät he ole todella hyviä kuuntelijoita. Tarkoitus ei ole siis keskustella vaan käydä läpi omaa koodia ääneen kumiankalle kertoen. Jos kumiankka alkaa osallistua keskusteluun, suosittelemme taukoa tai yöunille siirtymistä.
Jos olet kiinnostunut oppimaan lisää ohjelmoinnnista, harkitse opetusta yksityisopettajan avulla. Yksityisopettajien tarjoamat oppitunnit räätälöidään sinun toiveiden, taitojen ja tarpeiden mukaan. Yksilölliset oppitunnit tarjoavat aimo annoksen motivaatiota sekä mielenkiintoisia harjoitteita. Jokainen opettaja on erilainen vahvuuksineen ja heikkouksineen, joten valitse tarkkaan sinulle sopivin. Tässä voit hyödyntää ensimmäistä maksutonta tutustumistuntia, jota Superprofin monet yksityisopettajat tarjoavat.
Lue lisää ohjelmoinnin hyödyistä itsellesi!





