Elämässäni on kaksi tärkeää harrastusta: ohjelmointi ja musiikki. Näistä ensimmäinen on minulle myös ammatti. Aina välillä minulta kysytään mitä teen työkseni, mitä ohjelmointi oikeastaan on. Olen päätynyt selittämään tätä musiikin kautta.
Elämässäni on kaksi tärkeää harrastusta: ohjelmointi ja musiikki. Näistä ensimmäinen on minulle myös ammatti. Aina välillä minulta kysytään mitä teen työkseni, mitä ohjelmointi oikeastaan on. Olen päätynyt selittämään tätä musiikin kautta.
Joskus opettajani sanoi, että ohjelmoinnin tarkoitus on saada tietokone toimimaan halutulla tavalla. Tämä on myös musiikin tarkoitus, saada kappale toimimaan tietyllä tavalla. Valitut instrumentit, eli valitut ohjelmointikielet, vaikuttavat lopputulokseen, eli kappaleeseen tai ohjelmaan. Kuten hyvä musiikki, myös hyvä ohjelma vaatii luovuutta. Se vaatii luovuutta luojaltaan, valmiutta rikkoa rajoja, ajatella laatikon ulkopuolella, olla aina valmis uusiutumaan ja olemaan nöyrä. Ohjelmointi vaatii sen tunnistamista, että aina voisi olla vieläkin parempi.
Instrumentit valitaan käyttötarkoituksen mukaan. Mikäli halutaan tietynlaiseen ympäristöön sopiva kappale, sen instrumenteiksi ei ole järkevää valita toisen lajityypin soittimia. Monet klassisen musiikin ystävät eivät varmasti arvostaisi sähkökitaroita ja haitareita konserttisalissa aivan kuten Microsoftin Enterprise-järjestelmien käyttäjät eivät välttämättä arvosta Linux-pohjaisia ohjelmistoratkaisuja. Tietyt asiat eivät vain sovi yhteen.
Tuottajaa tarvitaan
Musiikki vaatii myös kapellimestarin ja tuottajan, jonkun joka varmistaa, että lopputulos vastaa odotuksia. Meillä heidät tunnetaan projektipäällikköinä. Harva muusikko voi tehdä musiikkia vain itselleen ja täysin omilla ehdoillaan. Taiteilijalla on aina rajoitteita, joko levy-yhtiön asettamia tai muita taloudellisia realiteetteja. Musiikki on bisnestä, tietyt tuotteet myyvät ja niitä voidaan räätälöidä tietyille kohderyhmille. Tämäkään ei ole kovin kaukana ohjelmistoalasta, jossa asiakas on se kuuntelija, se joka sen levyn maksaa ja tuo leivän pöytään. Yritys on siis ohjelmoijan levy-yhtiö, projektipäälliköt levyn tuottajia – ja ohjelmoijat ehkä studiomuusikoita ja taiteilijoita.
Näppäimistö on ohjelmoijan instrumentti. Meidän ei tarvitse virittää kitaran kieliä, vaan virittää aivot, päästä flow-tilaan, sulkea ulkomaailma pois ja edetä kohti päämäärää. Ensin tehdään runko, jonka päälle voidaan rakentaa perusrytmi. Mikäli musiikissa kertosäettä toistaa liikaa, siihen turtuu, kappaleesta tulee raskas, sen kuuntelu on vaivalloista ja sitä ei halua enää kuunnella. Sama pätee ohjelman rakenteessa. Monimutkaiset, monipuoliset teokset vaativat musiikissa ja ohjelmoinnissa useamman kerran, jotta niihin pääsee sisälle.
Nerokkuus näkyy pienissä asioissa
Muusikoiden tapaan ohjelmoijatkin jättävät työhön jälkensä. Muistatko itse hetken kun olet musiikkia kuunnellessa ajatellut: ”briljanttia”, ”nerokasta” tai ”aivan!”? Vai kuulutko ryhmään, joka kuuntelee musiikkinsa sellaisenaan, sitä sen tarkemmin analysoimatta ja vain kokonaisuudesta nauttien? Itse kuulun musiikkia kuunnellessa ja ohjelmakoodia lukiessa ensin mainittuun ryhmään. En voi kuunnella musiikkia analysoimatta sen soittimia, nyansseja, niitä pieniä asioita, jotka tekevät siitä nerokasta.
Ohjelmakoodia lukiessa en voi myöskään olla arvostelematta toteutustapaa, nerokkuutta (tai usein sen puutetta) tai muita asioita, jotka tekevät ohjelmasta sellaisen kun se on. On vaikea käyttää ohjelmia miettimättä miksi se toimii näin ja miten tämä on tehty. Tieto voi lisätä tuskaa, mutta usein se myös lisää arvostusta ohjelman tekijöiden lahjakkuutta, luovuutta ja työmoraalia kohtaan.