Näkökulmia ohjelmistoalan opintoihin

Kävin ostamassa ensimmäisen ohjelmoinnin oppikirjani yläasteella. Kirjakaupan täti kyseli tilausta koneelle naputellessaan liittyikö tämä johonkin kurssiin eli kannattaisiko tilata samantien useampikin kirja. Ei liittynyt, olin vain itse päättänyt opetella ohjelmoimaan. Olin pelannut pienen ikäni konsoleilla ja tietokoneella, joten nyt kun nettisivujen teko onnistui, olin valmis oppimaan miten voisin rakentaa maailman parhaan pelin. Siinä kohtaa en tiennyt päätyväni opiskelemaan ohjelmistopuolta teknilliseen yliopistoon. En tiennyt, että silloin valitsemani ohjelmointikieli vaikuttaisi osaltaan paikkakunnan valintaan.

Yliopistossa vastaan tuli ohjelmistopuolelta ensimmäisenä pakolliset ohjelmoinnin peruskurssit. Ne tuntuivat tekniikan puolesta hyvin helpoilta harrastustaustani ansiosta. Kaikki aloitettiin tietysti perusteista ja harjoitustyötkin tehtiin yksin, mikä oli toki hyvä niille monille, jotka eivät entuudestaan harrastaneet ohjelmointia. Hyvä motivaatio riitti kyllä ummikoiden esitiedoksi. Ilman sitä tai harrastuneisuutta ei ihmisillä mennyt niin hyvin.

Yllätyksenä tuli kuitenkin uudet työkalut terminaalin puolella ja erityisesti koodin tyylivaatimukset, joihin en ollut omissa räpellyksissäni kiinnittänyt juuri huomiota. Alun muutosvastarinta kannatti kuitenkin hiljentää, täällähän kuitenkin oltiin oppimassa uutta ja omaksumassa samoja käytäntöjä, joita työkseen koodatessa tarvitsee. Pointtina ei myöskään ollut oppia kaikkia maailman kieliä, vaan se yleinen ohjelmoinnin taito, joka siirtyy varsin helposti kielestä toiseen.

jed
Terminaalikoodausta.

Seuraavaksi siirryttiin valinnaisiin ohjelmointikursseihin. Itselleni se tarkoitti ohjelmistotekniikan ottamista pääaineeksi, mutta nykyisin ohjelmistopuolta voi maistella vähän enemmän ennen pääaineen valitsemista ottamalla suuntaavia ohjelmistokursseja pohjalle. Näissä alettiin mennä jo syvemmälle tiettyihin tekniikoihin eikä hiottu enää pelkkiä yleisiä ohjelmointitaitoja. Oli tietorakenteita ja tietokantoja, rinnakkaisuutta ja algoritmeja, web-ohjelmointia ja paradigmoja. Näissä pääsi viimeistään näkemään aiemman harrastuneisuutensa yksipuolisuuden. Ei ihan riittänytkään se yksi kirja mihin tahansa projektiin. Yksin suoritetut harjoitustyöt muuttuivat parin kanssa tehtäviksi, minkä kautta pääsi oppimaan koodauksen ja kommunikoinnin yhteensovittamista.

Yhtä aikaa pyöri ohjelmistotuotannon johdatuskurssi, jossa päästiin työskentelemään isommalla porukalla. Dokumentoinnin tuska tuli tutuksi, mutta samalla alkoi näkökulma avartua yhden koodaajan työpanosta laajemmalle. Hiljalleen myös omat kiinnostukseni elivät. Vaikka koodauksen ja siihen liittyvän luovan ongelmanratkonnan nautinto pysyi, alkoivat ohjelmistoprojektien haasteet kiehtoa enemmän. Päädyin siis ottamaan maisterivaiheen pääaineeksi ohjelmistotuotannon ja tekemään kandidaatintyön ohjelmistopuolen projektinhallinnasta.

ide
Terminaalityökalut eivät ole ainoita käytettyjä työkaluja.

Ohjelmistotuotantoa lukiessa ajatusmaailma laajeni entisestään. Ohjelmoinnin tekniset haasteet tuntuivat triviaaleilta, koska arkkitehtuureja, ohjelmistotuotannon ja tietokantasuunnittelun menetelmiä tai testausta käsittelevät kurssit osoittivat todellisten haasteiden olevan ohjelmistojen suunnittelussa ja projektityöskentelyssä. Eikä pelkästään näissä, vaan harjoitustöiden laajetessa ja tehtävänantojen mennessä niukemmiksi kommunikoinnin merkitys etenkin asiakkaan suuntaan korostui. Kaikki oikeat ongelmat johtuivatkin lopulta huonoista sanavalinnoista ja puhumatta jätetyistä yksityiskohdista.

kaavio
Suunnittelu on joko kaavioita tai dokumentaatiota.

Viimeisenä vastaan tuli ohjelmistotuotannon loppuvastus, tietotekniikan projektityökurssi. Tällä kurssilla toteutetaan ulkopuoliselle asiakkaalle noin puolessa vuodessa uusi, tilauksen mukainen ohjelmisto, ja kaikki tähän asti opittu laitetaan käyttöön. Meillä oli onneksi sekä teräksinen tiimi että hyvin kommunikoiva asiakas, eikä valtavia katastrofeja tullut eteen. Stipendi sen sijaan tuli, mutta ehkä oleellisempana tämä kurssi veti ohjelmistopuolen opinnot yhteen niin koodauksen, suunnittelun, projektinhallinnan kuin kommunikoinninkin suhteen. Pieniä ongelmia kyllä riitti kaikilla osa-alueilla osoittamaan, ettei ohjelmistotyön haasteita voi lakaista yhden syyn alle. Kaikilla osa-alueilla on valtavasti osattavaa, eikä koulunpenkillä tule kaikkea sitä oppimaan, mutta kuitenkin kaikkien alueiden pitäisi toimia sujuvasti sekä yksin että keskenään. Ei ihme, että suurin osa ohjelmistoprojekteista epäonnistuu kriteerin tai toisen valossa.

farrim2
Farrim, meidän selainpohjainen massiivimoninpelattava merirosvoseikkailu.

Kokonaisuudessaan ohjelmistopuolen opinnot ovat jossain määrin työläämmät kuin kirjatenttipainotteiset opintokokonaisuudet mm. harjoitustöiden määrän takia, mutta tällä polulla opitut taidot ovat hyvinkin konkreettisia unohtamatta hyvän teoriapohjan valamista. Ohjelmistoalalla riittää osaajille töitä, eikä ainakaan tarvitse pelätä kiinnostavien haasteiden keskenloppumista!

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

Muodostetaan yhteyttä palveluun %s