Sulla on tuossa koodissa virhe! ≠ Ookko nää ihan tampio?

27.10.2022 10:32:25
MIKSI TÄÄ EI TOIMI!=?!?

Onko sinulla tullut junnukoodarina tilannetta vastaan, missä konsoli on täynnä virheitä, ja koodi ei vaan lähde toimimaan? Kello käy ja virheet pysyvät itsepintaisesti konsolissa armottomasta stackoverflow copy-pasteamisesta huolimatta. Pulssi nousee, kämmenet hikoavat ja hikikarpalot alkavat kerääntymään ohimolle. Kohta se sennukoodari tulee katsomaan miten sinulla menee, eikä taski ole lähellekään valmis!!!

"Mitenkäs täällä etenee?" -kajahtaa kysymys ilmoille. Sisäiseen varoitusvalotauluun ilmestyy vilkkuvia valoja, vaarasta ilmaisevan merkkiäänen säestämänä. Puheentuottamisalgoritmi etsii epätoivoisesti jotain edes etäisesti fiksua selitystä siihen, miksi taski ei ole edennyt. "Oletko ollut pitkään jumissa?" -kuuluu seuraava kysymys. Nyt sisäinen varoitusvalotaulu räjähtää täyteen vilkkuvia valoja. Puheentuottamisalgoritmi sekoaa täysin ja kaikki ajatukset peittyvät taukoamatta huutavan varoitussummerin äänen alle. Onneksi kaikki tämä kakofonia aiheuttaa kutsun elämää ja olemassaoloa uhkaavan tilanteen funktiolle, joka tunnistaa tilanteeksi “Nyt sinua syytetään jostain mitä olet tehnyt väärin!” ja antaa tunnistetun tilanteen puheentuottamisalgoritmin kutsun parametrina. “E eeen tässä kovin pitkään” -sopertelee junnukoodari samaan tyyliin kuin erään tuotemerkin mainoksessa “En se minä ollut, se oli...”.

KoodausTaidot muuttujan arvoksi asetetaan 0, koska validaattori ei hyväksy negatiivista arvoa. OletTampio muuttujan arvoksi asetetaan true, koska pakkohan sen on olla totta, jos virhetilannetta ei saa heti ja välittömästi korjatuksi. Kauhuskenaario funktio suoltaa jatkuvalla purskeella dataa kuten: “Nyt loppuu työt, kun hommat eivät etene!” ja “Ei minusta koskaan tule koodaria!”. Samalla itsesyytös funktio säestää vieressä: “Miksi pitää olla niin tampio, ettei vaan osaa eikä tajua?”.

“Miksi et ole kysynyt apua?” -välittyy kuuloelimien kautta seuraava sennukoodarin kysymys. Jälleen kerran iskee paniikki moodi päälle ja kaikkiin mahdollisiin taitoihin liittyviin muuttujiin yritetään epätoivoisesti syöttää negatiivisia arvoja. Lopulta puheentuottoalgoritmista putkahtaa ulos: “No en nyt hoksannut, kun ajattelin keksiväni ratkaisun.”. Pikaisen virhekoodien vilkaisun jälkeen sennukoodari kertoo missä vika on. Junnukoodarin paletti on vielä, niin sekaisin funktiorallista, että sennukoodarin ratkaisuesitykseen puheentuottoalgoritmi saa ähelletyksi epävärman “Jooh, niin.” vastauksen. Sennukoodari tunnistaa tilanteen ja ohjaa ensin kursorin oikealle riville ja toteaa “Poista nuo rivit. Kirjoita saneluni mukaan...”. Tallennus ja kappas, sehän toimii taas.

Mikä sitten on tarinan opetus? Lyhyesti, osaamattomuus ≠ olen tyhmä. Sisäinen dialogi saattaa olla varsinkin virhetilanteissa hyvinkin ankaraa ja itseä alas painavaa. Vääränlainen tunne osaamattomuudesta saattaa johtaa kysymisen välttelemiseen, koska silloin suoraan osoittaa toiselle, että “en vaan osaa”. Osaamattomuus tulee kuitenkin ilmi ennen pitkää. Oman oppimisen kannalta olisikin huomattavasti rakentavampaa ilmaista osaamattomuus mahdollisimman nopeasti. Mielellään heti, kun huomaa ettei tilanteeseen oikeasti keksi ratkaisua. Haastavimpia ovat tilanteet, joissa ratkaisusta on tavallaan ajatus ja ratkaisu etenee, mutta ei tule täysin valmiiksi. Eli miten opin tunnistamaan milloin on riittävän jumissa tai taskin tekeminen edistyy turhan hitaasti.

Siksi olisikin hyvä sopia junnukoodarin kanssa, joku tietty aikaraami, jossa asian pitää edetä. Avun kysymiseen pitäisi muodostaa mahdollisimman matala kynnys. Paras edellytys tälle luodaan ilmaisemalla selkeästi, että ohjaava sennukoodari on (varsinkin perehdytys aikana) ensisijaisesti töissä auttaakseen junnukoodaria kehittymään. Tämä pitää pystyä osoittamaan myös käytännössä. Eli sennukoodari hoitaa omaa projektia, jos junnukoodarin auttamiselta ehtii. Mikäli tilanne on toisinpäin, junnukoodari sen kyllä aistii nopeasti ja kynnys avun kysymiseen eli sennukoodarin häiritsemiseen kasvaa eksponentiaalisesti.

Avoin kommunikaatio auttaa kummasti tässä(kin) tilanteessa. Samaan tapaan kuin työhaastattelua jännittävän ihmisen kannattaa kertoa haastattelijalle, että haastattelutilanne jännittää, junnukoodari voi avoimen rohkeasti kertoa, että osaamattomuus harmittaa/hävettää. Koodaaminen on matematiikan tavoin taitoaine, jonka oppii vain tekemällä. Jos tekemiseen tarvittavat tiedot puuttuvat, ne on luonnollisesti hankittava ensin. Mitä enemmän ja useammin apua uskaltaa kysyä, sitä nopeammin ongelmanratkaisun työkalupakkiin kertyy työkaluja.

Siispä, ei kannata kokea olevansa tampio, vaikka välillä hommat jumittavat ja virhekoodit pysyvät itsepintaisesti konsolissa. Se kuuluu asiaan! Erityisesti junnukoodarin kohdalla. Oman kokemuksen pohjalta sanoisin, että junnukoodarin tärkein taito on avun kysymisen taito. Jos tämä taito on ruosteessa tai sitä ei ole päässyt vielä muodostumaan, kannattaa junnukoodareiden tai sellaiseksi aikovien panostaa tämän taidon opetteluun.

Loppukaneetiksi on pakko laittaa kysymiseen liittyvä latteus, joita erityisesti opettajien viljeltäväksi löytyy maailmasta pilvin pimein. “Se joka kysyy, on tyhmä vain hetken. Se joka ei kysy, on tyhmä koko ikänsä”.

P.s Jos et tiedä mitä ≠ merkki tarkoittaa, uskallatko kysyä sitä työkaverilta/esihenkilöltä? Jos et, niin mieti mitkä ajatukset/tuntemukset sinua estävät kysymästä.

Muita blogeja tältä tyypiltä

Tuliko taas koodattua spagettia?

Onko koodarin ruokavaliolla vaikutusta siihen miten paljon spagettikoodia syntyy? Entä vaikuttaako spagetti koodarin vatsassa samalla tavalla kuin spagettikoodi projektissa?

Lukaseppa

Ohjelmointikielen valinta - Millä kannattaa aloittaa?

Tekisikö mielesi opetella ohjelmointia, mutta et osaa päättää minkä ohjelmointikielen valitset? Jos vastasit kyllä, niin yksi merkittävimmistä päätöksistä alussa on "oikean" ohjelmointikielen valinta. Kummin, kaiman tai kaverin suosituksesta valittu kieli ei välttämättä kiinnosta riittävästi jolloin koodaaminen ja harjoittelu voi jäädä varsin vähäiseksi. Koodaamaan oppii vain tekemällä, joten ensimmäiseksi kieleksi kannattaa valita se, joka itseä kiinnostaa eniten muiden mielipiteistä välittämättä.

Lukaseppa

Opiskellakko vaiko eikö opiskella työn ohessa?

Onko työn ohessa opiskelemisessa mitään järkeä, jos kuitenkin on jo alalla töissä? Ohjelmistotuotanto on siitä mielenkiintoinen ala, että työllistyäksesi et välttämättä tarvitse tutkintoa. Toisaalta monet varsinkin julkisissa kilpailutuksissa mukana olevat ohjelmistotalot edellyttävät korkeakoulututkintoa työnhakijoilta. Tutkinnon tarpeellisuus riippuukin pitkälti siitä, minkä tyyppisiin tehtäviin haluaa.

Lukaseppa