Ohjelmointikoulu CodeBerryn “Ohjelmoinnin perusteet” -sarjassa keskustelemme ohjelmointiin liittyvistä aiheista ja kaikesta mitä sinun täytyy tietää päästäksesi alkuun. Pysy kuulolla uusista artikkeleista, ja löydä vastaukset jokaiseen “mitä”, “miksi” ja “miten” -kysymykseesi, joita sinulla on saattanut tulla mieleen koodaukseen liittyen!

Haluaisitko oppia koodaamaan verkossa? Tule ja kokeile ensimmäisiä oppituntejamme maksutta Ohjelmointikoulu CodeBerryssä.

Tämän artikkelin tarkoitus on auttaa sinua ymmärtämään mitä erilaiset IT-alan spesialistit tekevät – minkälaisia työtehtäviä heillä on, sekä mitä eroavaisuuksia ja samankaltaisuuksia heidän välillään on. Haluamme tarjota sinulle kattavan yhteenvedon, joka ehkä selkeyttää erilaisia alan ilmaisuja niille, jotka eivät ehkä vielä tunne alaa.

On tärkeää korostaa, että usein yksilöllisten työroolien välillä ei ole täysin selkeää “viivaa” ja roolin tarkempi määritelmä saattaa vaihdella yhtiöittäin, asiantuntevuuden tai työprojektin mukaan.

Mitä eroa on ohjelmoijalla ja ohjelmistokehittäjällä

Mitä eroa on ohjelmoijalla ja ohjelmistokehittäjällä?

Päivittäiskäytössä nämä kaksi termiä vaihtelevat ja saatamme jopa lisätä sanan “koodaaminenohjelmoinnin, ja kehittämisen eli devaamisen rinnalle. Myös nämä sanat ovat keskenään vaihtokelpoiset useissa eri asiayhteyksissä. Ne kaikki kuvaavat samaa tietoutta ja roolia – henkilöä, joka käyttää ohjelmointikieliä luodakseen komentoja tietokoneille ohjelmistojen kautta, joita he voivat myös itse tehdä.

Vaikka puhekielessä nämä tarkoittavat samaa asiaa, osa työnantajista saattaa tarkentaa mitä he tarkoittavat ohjelmistokehittäjällä tai ohjelmoijalla. Osa luulee ohjelmistokehityksen olevan vain monimutkaisia suunnittelutehtäviä, sisältäen korkeamman tason päätöksentekoa (esim. Ohjelmistokehittäjä suunnittelee tietokannan tai kuinka data liikkuu erilaisten osien välillä), kun taas ohjelmoinnilla usein he tarkoittavat koodirivien kirjoittamista suunnittelijoiden luomien ohjeiden perusteella (esim. Korjaa valikko, joka näkyi virheellisesti tai kirjoita funktio, jolla on tietynlainen lopputulos).

Ohjelmistokehittäjän koulutus (ent. Datanomin tutkinto) on tarjolla monissa ammattikouluissa ja aikuiskoulutuskeskuksissa. Myös jotkin AMK-instituutit tarjoavat syventäviä tieto- ja viestintätekniikan opintoja ohjelmistokehittäjän ammatista haaveileville. Ei ole kuitenkaan suinkaan mahdottomuus opiskella ohjelmistokehittäjäksi myöskään nettikurssilla, joita on runsaasti saatavilla. Tutustu oman alueesi tarjontaan netissä ja valitse itsellesi sopivin toteutusmuoto.

Molempien, sekä ohjelmistokehittäjän palkka, että ohjelmoijan palkka riippuvat luonnollisesti työtehtävistä, ohjelmointikielistä ja muista tekijöistä, mutta Suomessa ohjelmistokehittäjä tienaa noin 3400€ kuussa palkkavertailu.comin mukaan (junior ohjelmistokehittäjän palkka ei myöskään ole hassumpi, noin 3000€ kuussa), kun taas hyvin joustavan “ohjelmoija”-työnimikkeen omaava tienaa Oikotien palkkavertailun mukaan 3100€ kuussa. Ei huono, vai mitä?

Psst… tsekkaa tästä artikkelistamme tarkemmin, paljonko on koodaajan palkka eri asemissa!

Mitä eroa on ohjelmistoinsinöörillä ja ohjelmoijalla?

Ohjelmistoinsinöörillä on usein yliopisto- tai AMK-pohjainen insinöörin tutkinto, esimerkiksi vähintään tietotekniikan kandidaatin tutkinto. Heidän tehtävänsä ja roolinsa vaihtelevat yhtiöittäin, mutta usein yliopisto- tai korkeakoulutason ammattitutkinto on vaadittu tässä roolissa kaikissa tapauksissa.

Yliopistossa tietojenkäsittelytieteen teoreettisia ja matemaattisia perusopintoja opetetaan huomattavasti vähemmällä ohjelmointifokuksella. Ohjelmistoinsinöörinä sinulla tulee olla vankka ote kehityksen teoreettisesta puolesta (esim. Datarakenteiden suunnittelusta, tehokkaista algoritmeista) ja ohjelmistoprojektien käytännöllisestä toteutuksesta.

Jos yhtiö ei hae nimenomaisesti ohjelmistoinsinöörejä, mutta ohjelmoijia tai ohjelmistokehittäjiä, tutkinto ei välttämättä ole välttämätön. Tässä tapauksessa voi olla mahdollista, että sinulla on hallussasi jo riittävät koodarin opinnot, jotka olet saavuttanut kurssien ja itsenäisen opiskelun kautta. Tietysti kyky oppia nopeasti ja avoimuus uuden opettelua kohtaan ovat välttämättömiä piirteitä tällä alalla.

Mitä eroa on web-suunnittelijalla ja web-kehittäjällä?

Luodaksemme hienot, hyvin toimivat verkkosivut, useita erilaisia eksperttejä tarvitaan niiden toteuttamiseksi. Suunnittelijat ovat vastuussa verkkosivun visuaalisesta ulkonäöstä ja tuntumasta, kun taas web-kehittäjät (web developer) ovat vastuussa miltä se näyttää. Web-suunnittelijat, eli verkkosuunnittelijat, käyttävät graafisen alan ohjelmistoa (esim. PhotoShop, Illustrator, Sketch).

Heidän tulee ymmärtää väriteoriaa, typografiaa ja muiden graafisten kykyjen omaaminen saattaa olla hyödyksi, esim. Vektorigrafiikoiden luominen tai perustypografian tietämys (sillä verkkosivut ja printtimateriaalit usein näyttävät samalta, on hyvä tietää miltä nämä näyttävät sekä ruudulla, että paperilla).

On tärkeää tietää verkkosivujen perusrakenne, ja voi olla hyödyllistä myös web-suunnittelijalle tuntea HTML:n ja CSS:n perusteet, jotta verkkosivujen rakentamiskielet eivät vaikuta täysin heprealta. Web-suunnittelijat, taas (useimmiten) eivät ole ohjelmoijia, he ovat vastuussa vain sivuston visuaalisesta puolesta.

Web-kehittäjät, eli verkkokehittäjät, luovat ja ylläpitävät web-sivustoa käyttäen verkko-ohjelmoinnin kieliä (esim. HTML, CSS, JavaScript tai riippuen tehtävistä, Javaa, Pythonia, PHP:ia tai SQL:ta jne.). Toisin kuin suunnittelijat, web-kehittäjät ovat ohjelmoijia, jotka kirjoittavat koodia, jota tarvitaan verkkosivun toimimiseksi.

Web developer-koulutus on Suomessa saavutettavissa sekä ammattikoulu- että AMK-väylän kautta, mutta monipuolisen ja laadukkaan verkkokurssin avulla voi myös saavuttaa riittävän osaamistason sekä Suomessa, että kansainvälisesti. Lisätietoa muun muassa aloittelevan koodarin palkkaa, sekä web-kehittäjän palkkaa koskien löydät täältä.

Mitä eroa on UX-suunnittelijalla ja UI-suunnittelijalla

Mitä eroa on UI– ja UX-suunnittelijoilla?

Suunnitellessa UI:ta (käyttöliittymää, user interface), suunnittelijan täytyy ottaa samanaikaisesti huomioon, sekä brändi, että käyttäjien tarpeet. UI-suunnittelija luo käyttöliittymän visuaalisen puolen, kuten värit, kuvituksen, painikkeet jne. käyttäen graafista ohjelmistoa.

Suunnitellessa UX:ää (käyttäjäkokemus, user experience), UX-suunnittelijoiden tulee havaita käyttäjien tarpeet tarkemmin, joten he järjestävät haastatteluita ja pyytävät siten myös palautetta käyttäjiltä. Tähän tietoon perustuen UX-suunnittelijat luovat sitten rakenteen, valikot, navigoinnin ja muut verkkosivun osat. He käyttävät ohjelmistoa, joka on luotu suunnittelemaan ja optimoimaan käyttäjäkokemusta.

Mitä eroa on front-end-, back-end-, ja full-stack-kehittäjillä?

Front-end, eli asiakaspuoli on osa verkkosivun näkyvä puoli: painikkeet, kuvat, tekstit ja vuorovaikutus – jokainen ohjelma toimii asiakassovelluksen avulla (selaimella). Verkkosivujen tai mobiili/verkkosovelluksien käyttöliittymän luojaa (eli front-end) kutsutaan front-end-kehittäjiksi (front-end-developer tai lyhyesti “frontiksi”). Verkkoprojektien aikana he usein työskentelevät HTML:n, CSS:n ja JavaScriptin kanssa, mutta joskus he käyttävät myös JavaScriptin frameworkeja (esim. React, AngularJS, Vue.js).

Back-end, joka tunnetaan myös serveripuolena on osa verkkosivua, jota emme näe: se tallentaa ja lataa dataa tietokannoista, suorittaa laskelmia, palvelee käyttäjän pyyntöjä, tarjoaa API-päätepisteitä – eli lyhyesti kehittää jokaista ohjelmaa joka toimii serverillä. Back-end-kehittäjät, myös nimeltään serveripuolen ohjelmoijat työskentelevät taustapuolella, eli back-endissä, “bäkissä” tai “bäkkärillä”. Useimmiten käytetyt serveripuolen ohjelmointikielet ovat Python, Node.js, PHP ja Java.

Full-stack-kehittäjät ovat taas kehittäjitä, jotka osaavat ohjelmoida sekä asiakaspuolta, että serveripuolta. Tämän tyyppisen ohjelmoijan työllisyys on aina lähestulkoon taattu.

Mitä eroa on järjestelmänvalvojalla ja DevOps-insinöörillä?

Järjestelmänvalvojat, eli sysadminit (joskus myös kapitalisoituna SysAdminit) ovat vastuussa serverien huollosta ja toiminnasta. Heidän vastuualueisiin kuuluu ohjelmistojärjestelmien asentaminen ja niiden tukeminen, seisokkiajan hallinta ja muiden vastaavien ongelmatilanteiden ratkaiseminen. Usein tähän rooliin kuuluu myös kevyt ohjelmointi: he kirjoittavat ohjelmia (scriptejä), jotka automatisoivat toistuvia tehtäviä.

DevOps-insinöörit (joskus kirjoitetaan myös pienellä: devops) toimivat rajapintana admin-puolen laitteistotehtäville ja kehittäjien ohjelmistotehtäville. He voivat toimia kehittäjinä, jotka ottavat osaa asennustehtäviin, testaamiseen ja rakenteiden toiminnan ylläpitämiseen tai he voivat toimia myös järjestelmänvalvojina, jotka omaavat vankemman otteen ohjelmointitaidoista ja osaavat luoda tai päivittää koodia.

Yksi DevOps-insinöörien tarkemmista tehtävistä on suojata käytettävät järjestelmät ja suojella niitä hakkerointiyrityksiä vastaan. Yksi tärkemmistä roolin työtehtävistä on pitää yhteyttä kehittäjätiimiin, käyttäjiin, sekä järjestelmänvalvojaan, joten heidän tulee omata loistavat kommunikointitaidot ja heidän on kyettävä työskentelemään erilaisissa ryhmätöissä.

Mitä ohjelmistoarkkitehti tekee?

Ohjelmistoarkkitehdin rooli vaatii paljon kokemusta ja laajasti erilaisia taitoja, tietoa, sekä vastuunottokykyä.

Ohjelmistoarkkitehti tekee korkeamman tason ulkoasuun ja toteutukseen liittyviä päätöksiä. He tuntevat laajasti erilaisten teknologioiden käyttämät työkalut ja niiden mahdollisuudet ohjelmistokehityksessä, sekä myös ohjelmistosuunnittelussa. Tämän lisäksi ohjelmistoarkkitehdit usein edustavat yritystä erilaisissa yritys- ja asiakastapaamisissa.

Mitä valkohattuhakkeri tekee?

Puhekielessä käytämme usein sanaa “hakkeri” kuvaamaan henkilöä, joka käyttää IT-tietoutta vahingoittamaan tietokoneita ilman lupaa saadakseen haltuunsa dataa tai aiheuttaakseen muuta vahinkoa.

Kontrastina tälle eettisellä hakkerilla eli valkohattuhakkereilla on lupa arvioida IT-järjestelmien turvallisuutta yrittämällä saada pääsy järjestelmään tai haalia dataa sopimuksen alaisena. He käyttävät kokemustaan ja tietoaan testatakseen järjestelmiä ja paljastaakseen haavoittuvaisuuksia. He dokumentoivat prosessin yksityiskohtaisesti ja raportoivat tietoturvassa olevista aukoista sitten operaattorille.

Mitä ohjelmistotestaaja tai valkohattuhakkeri tekee

Mitä ohjelmistotestaaja tekee?

Ennen kuin tuote voi päästä markkinoille tai se voidaan luovuttaa asiakkaalle, vaaditaan paljon testaamista, jotta voidaan olla varmoja tuotteen toimimisesta. Testaustyyppejä on kaksi erilaista, manuaalinen ja automatisoitu testaaminen.

Manuaaliset testaajat ottavat käyttäjän roolin ja testaavat ohjelmiston toimintoja (verkkosivu, sovellus jne.) ja raportoivat ongelmakohdat. He myös mallintavat yksittäisiä tapauksia, kuten mitä tapahtuu jos käyttäjä vahingossa koskettaa ruutua tai minkä virheviestin käyttäjä saa jos hän yrittää kirjautua sisään väärällä käyttäjätunnuksella. Manuaaliset testaajat suorittavat testejä perustuen tarkkoihin skenaarioihin ja dokumentoivat prosessin aina perusteellisesti antaen palautetta bugeista kehittäjille. Toimenpiteet, protokollat, sekä muut tarpeelliset käsitteet voi oppia muutamassa kuukaudessa ja kerättyäsi hieman kokemusta voit helposti saada työn testaajana.

Automatisoidussa testauksessa testaaja käyttää tai luo työkaluja, jotka erikoistuvat testaamiseen ongelmalistan läpikäymisen sijaan. Testin automatisoijat ovat ohjelmoijia ja automatisoijaekspertit tai -tiimit kehittävät testausprosessit.

Mitä eroa on data-analyytikolla ja datatieteilijällä?

Data-analyytikko selkeyttää ja muuttaa dataa, sekä auttaa tiimiä tulkkaamaan ja visualisoimaan sitä. Heidän päätyökalunsa ovat Excel, SQL, R ja datan visualisointityökalut kuten Tableau ja Data Studio.

Datatieteilijät johtavat monimutkaisia projekteja, identifioivat trendejä ja malleja analysoimalla dataa, luovat analyyseja ja ennusteita, sekä antavat tietoa tukemaan erilaisten päätösten tekoa. Heillä on usein loistavat matemaattiset ja tilastolliset taidot, sekä he ovat hyviä ohjelmoija. Datatieteilijöiden päätyökaluihin kuuluu SASS, Python, R, Tensorflow, Hadoop ja Spark. Tämä rooli on erittäin haluttu työmarkkinoilla, sillä myös palkat ovat usein korkealuokkaisia, mutta roolin saaminen edellyttää monimuotoista tietoutta ja kokemusta.

 

Ohjelmointikoulu CodeBerryn “Ohjelmoinnin perusteet” -sarjassa keskustelemme ohjelmointiin liittyvistä aiheista ja kaikesta mitä sinun täytyy tietää päästäksesi alkuun. Pysy kuulolla uusista artikkeleista, ja löydä vastaukset jokaiseen “mitä”, “miksi” ja “miten” -kysymykseesi, joita sinulla on saattanut tulla mieleen koodaukseen liittyen!

Haluaisitko oppia koodaamaan verkossa? Tule ja kokeile ensimmäisiä oppituntejamme maksutta Ohjelmointikoulu CodeBerryssä.