Tapahtumat

Kun kirjaudut sisään näet tässä ilmoitukset sinua kiinnostavista asioista.

Kirjaudu sisään

Osaako joku selittää mulle, että mitä koodari käytännössä tekee?

Vierailija
14.07.2017 |

Kiitos jo etukäteen.

Kommentit (85)

Vierailija
81/85 |
27.06.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Kukaan ei vielä maininnut, että loogisen ajattelun lisäksi koodaaja tarvitsee abstraktia hahmotuskykyä. Kun puhutaan monimutkaisista tietorakenteista, niin täytyy kyetä päässään hahmottamaan, miten vaikka tieto mallinnetaan objekteiksi ja kuinka kannattaa periyttää ja jakaa useammiksi objekteiksi jne. Ainakin itsellä juuri tuo vie myös aikaa. Sitten kun homma on hahmottunut päässä ja kuvina itselle, niin varsinainen koodin kirjoittaminen on sitten se toinen puoli.

Myös debugointi eli vian selvitys on tärkeää. Pitää kyetä päättelemään miksi järjestelmässä tapahtuu virhetilanne ja mistä kohtaa sitä lähtee tutkimaan tarkemmin ja millä työkaluilla.

Niin kaikki ei osaa. Mutta matematiikka, ei ole mitään osuutta.

Matematiikalla ei ole suoraan osuutta koodaamiseen useimmissa tapauksissa. Mutta matematiikan hallitseminen on yhteydessä niihin taitoihin, joita myös koodaamisessa tarvitaan.

Sitten pitää muistaa erilaiset suunnittelumallit (pattern), joita käytetään samalla tavalla eri ohjelmointikielistä riippumatta. Eli pitää usein opetella uusia tapoja tehdä softaa. Tulee uusia frameworkeja, joiden avulla saa tehokkaampaa ja/tai näyttävämpää tulosta aikaan.

Hommaa riittää tällä saralla ja vauhti sen kuin kiihtyy.

Tietokoneet on matemaattisia laitteita ja kaikki ohjelmakoodi on matemaattisen logiikan puolelle menevää silloinkin, kun kyse on jonkin sellaisen yksinkertaisen asian tekemisestä joka ei varsinaisesti edellytä tekijältä matemaattista asiantuntemusta. Sitä aletaan tarvitsemaan kuitenkin hyvin nopeasti. Tässä on mm. peliohjelmoinnista haavaileville 3D-puolen alkeistason alkeita käsitteleviä kirjoja:

http://canvas.projekti.info/ebooks/Mathematics%20for%203D%20Game%20Prog…

https://tfetimes.com/wp-content/uploads/2015/04/F.Dunn-I.Parberry-3D-Ma…

Ennen kuin joku ehtii sanoa, niin ei näitä tarvita jos suunnitelmissa on jonkin pasianssipelin ohjelmointi. Mutta jos ihan vakavissaan suunnittelee uraa niin sitten kyllä. Periaatteessa noiden kirjojen oppien pitäisi aueta viimeistään lukiomatikalla, mutta käytännössä nykyisin nuoremmman sukupolven matikantaidot ovat vähän mitä sattuu.

No ei se nyt ihan noinkaan mene. Perus pelikoodarin kannattaa osata koodata Unityllä, ei koodata uutta Unityä.

Ymmärsit asian. Sitähän tässä on koko ajan yritetty selventää, että "koodari" on suhteellisen yksinkertainen perustason työ jossa ei edellytetä korkeaa koulutusta ja matemaattista osaamista. Tästä syystä tavallisista koodareista ei ole valtavaa pulaa eikä peruskoodareille makseta kovin kaksista palkkaa. Sitten kun on tarvetta kehittää vaikka tässä esimerkissä uusi 3D engine niin homma alkaa menemään ihan toisen tasoisia matemaattisia asiantuntijoita vaativaksi ja näille myös maksetaan sen mukaisesti.

Ne kovasti uutisissa hypetyt 7-15 tonnin työt on tohtoritason töitä eikä mitään peruskoodareitten hommia. Peruskoodaus alkaa olemaan jo nykypäivän vastine entisaikojen tehdasduunarihommille ja kovaa vauhtia sitäkin ollaan (toistaiseksi vaihtelevalla menestyksellä) ulkoistamassa halvempiin maihin. Silloin jää meille ne kovimman pään työt, eli kannattaa panostaa matemaattiseen asiantuntemukseen jos on nuori ja vielä ehtii.

Ei ne ole aina matemaattisia ne kovemman tason koodaushommat. Pitää olla monipuolinen, kuten fullstack-kehittäjä, joka pystyy yksin ratkomaan koko järjestelmän ongelmia. Ja tekemään skaalautuvia reaaliaikaohjelmistoja. Se ei tosiaan ole mitään tehdashommaa ja sitä nykyään tarvitaan paljon. Korkeampi matematiikka ei ole edellytys.

Näköjään näissä keskusteluissa kahden puolen ihmiset puhuvat koko ajan ristiin.

Ammattikorkeatasolla ja jossain datanomiopinnoissa koodaus keskittyy yksinkertaisiin arkipäivän asioihin. Sitten kun mennään yliopistotasolle niin se alkaa olemaan ihan muita asioita kuten erilaisia laskennallisia alueita simuloinnista ja optimoinnista tekoälyyn ja prosessorisuunnitteluun (nämä tapahtuvat tietokoneilla, usein superluokan, ja toteutetaan ohjelmointina, mutta se on kaukana siitä mitä maallikot ajattelevat tietotekniikkana). Olen toiminut pitkään tutkijana ja opetustehtävissä tällä alueella. Voin vahvistaa, että kyllä se vain matematiikkaa on ja tutkintovaatimuksiin kuuluu teoreettinen matikka toisena pääaineena ja yleensä sen rinnalle sivuaineina muita matemaattis-luonnontieteellisiä aineita. Ihan erikseen on sitten muita tietokoneisiin liittyviä opintoaloja ja laitoksia yliopistoissa, jotka on esim. kauppatieteellisesti suuntautuneita. Ne eivät ole luoteeltaan matemaattis-luonnontieteellisiä opintosuuntia vaan niistä sijoitutaan yleensä tietohallinnollisiin ym. tehtäviin. Nämä ovat luonteeltaan täysin eri aloja.

Näiden matemaattisten tietoteknisten asioiden parissa töitä tekevät keskittyvät akateemisen maailman ulkopuolella etenkin erilaisiin näiden alueiden R&D-tutkimushommiin. Kun näitä menetelmiä käytetään erikoistuneissa ohjelmistotuotteissa niin omat asiantuntijansa toteuttavat ne asiat ja perustason ohjelmoijat muun arkisemman ohjelmistokehityksen ympärille. Tietenkin pienemmissä yrityksissä samat asiantuntijat voivat joutua tekemään kaiken itse jos ei apulaisia ole.

En tiedä, mistä ristiinpuhumisesta sinä puhut, mutta asenteestasi huomaa, että mielestäsi on vain kahdenlaista ohjelmointityötä: Tohtoritason matemaattista huippuyksilöiden koodaamista, jota sinäkin teet. Ja sitten on perus apulaiset, joita saa Kauko-Idästä niin paljon kuin haluaa. Minä en ole samaa mieltä. Siihen väliin mahtuu paljon. Ehkä sinulla on vain suppea kokemus ja näkemys.

Juuri näin. Tässä on kaveri, joka leijuu tohtorinhatullaan vaikka oli osaksi oikeassakin. Ohjelmointialalla on paljon huippuhommia, joissa palkka ansaitaan kentällä todistetuilla taidoilla. Ei ole väliä onko akateeminen tausta jos ajattelun on kunnossa ja asiat opeteltu vaikka itsenäisesti.

Yliopistoissa on paljon wannabe-koodareita, jotka osaavat oman alansa teorian hyvin, mutta eivät kykenisi osallistumaan vaikka Linux kernelin kehitykseen sen monimutkaisuuden takia.

Vierailija
82/85 |
28.06.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Koodaaminen on kuin todella vieraan kielen osaamista. Ja 5% matematiikkaa.

Just näin. Tyttäreni 26 v. aloitti hommassa vähän toista vuotta sitten.

Heidän firmassaan periaatteessa etätyötä ei saa tehdä ja työasioista ei saa puhua. Eipä silti, en minä ainakaan mitään ymmärräkään, joskus esitellyt minulle mitä tekee!

Tuosta matematiikasta, mun tyttärellä ainakaan ei ole matikkapäätä mutta todella teräväp

inen tyttö muuten.

Pitkiä päivä välillä tekee, mutta palkkaa tulee mukavasti.

Sisältö jatkuu mainoksen alla
Sisältö jatkuu mainoksen alla
Vierailija
83/85 |
28.06.2018 |
Näytä aiemmat lainaukset

Yksi hyvä puoli tuossa alassa on työaikojen joustavuus. En oikein osaa edes kuvitella mitään muuta alaa, missä jopa kesätyöntekijä saa tehdä töitä itselleen sopivien aikataulujen mukaan ilman työajanseurantaa. Monet nörtit ovat iltaihmisiä ja jotkut valuvat töihin vasta iltapäivän puolella. Toisaalta eri puolilla maailmaa olevien tiimien välinen yhteydenpito vaatiikin sitä, että pystyy tekemään töitä myös iltaisin. Siinä on kuitenkin omanlaisensa vapaus, kun voi tehdä töitä etänä vaikka kesämökiltä jos sattuu kaunis päivä. Tai hyvällä säällä käydä parin tunnin veneajelulla alkuillasta ja palata sen jälkeen töihin. 

Jos sattuu olemaan luonnostaan illanvirkku ja aamulla hidas käynnistymään, niin IT-alan vapaat työajat ovat suorastaan siunaus, jota ei voi edes oikein rahassa mitata.

Vierailija
84/85 |
28.06.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Mä olen koodari. Nykyään juuri kukaan ei pelkästään koodaa vaan useimmat tekee kaikkia softankehityksen vaiheita. Esim. ennen lomaa asiakkaalta tuli tarjouspyyntö uudesta toiminnallisuudesta. Työ annettiin mulle. Asiakkaan kanssa sitten alkuun speksattiin  mitä lähdetään toteuttamaan, millaiset käyttöliittymät, millaiset tiedonsiirtoformaatit ja protokollat liittymässä toiseen järjestelmään. Sitten kun suunnitelmat oli tehty lähdin toteuttamaan eli siihen itse koodaamiseen. Meillä koodarit myös suunnittelevat arkkitehtuurin itse ja testaavat, tähän ei ole eri ihmisiä. Aina välillä näytin asiakkalle mitä on tulossa jotta asiakas voi tarvittaessa pyytää muutoksia - nykyään kehitys on joustavaa eikä niin että alussa lyödään kaikki kiinni ja sitten tehdään speksin mukaan. Asiakas voi ehdottaa parannuksia tai laajennuksia (näistä toki maksetaan sitten lisää), koodari voi ehdottaa niitä, asiakkaan loppukäyttäjät kokeiltuaan voivat ehdottaa. 

Mutta toki työn ydin on se koodaaminen eli istuminen tietokoneella ja toteuttaen toiminnallisuuksia erilaisilla ja alati asiakkaasta riippuen vaihtuvilla tekniikoilla. Itse teen tätä lähes 100% etätyönä mikä on loistavaa tällaiselle epäsosiaaliselle jurrikalle. 

Lisäisin tuohon vielä ainakin dokumentaation. Yleensä varsinaisen "tuotteen" kylkeen tuotetaan myös jonkinlainen dokumentaatio, jonka tekemiseen koodari usein osallistuu ainakin jonkinlaisella panoksella. Tämä riippuu toki paljon firmasta.

Testaaminen ja jo olemassa olevien järjestelmien paikkailu saattaa kuulua toimenkuvaan myös.

Itse kun olen pikkufirmassa töissä niin toimenkuva on devaajan tittelistä huolimatta melko laaja, eli tarpeen mukaan lähtien aina markkinoinnista ja myynnistä, matkalla saattaa olla päässä niin arkkitehdin, projarin kuin koodarinkin hatut eikä loppukäyttäjien kouluttaminen tai tukeminenkaan ole täysin vierasta.

99% koodareista ei tuota ymmärrettävää dokumentaatiota. Meillä teknisillä dokumentoijilla on sitten tosi hupaa yrittää koodareiden sönkötyksistä saada aikaan järjellistä informaatiota.

Enpä noita meidänkään devaajia laittaisi käyttäjälle suunnattua dokumentaatiota yksinään tekemään, mutta vaikkapa arkkitehtuuriin liittyvä tekninen dokumentaatio luonnistuu kyllä mainiosti. Sivumennen sanoen kyllä tulee mieleen että jos sinulla on vaikeuksia kommunikoida 99% koodareista kanssa niin etsisin syyllistä ehkä kuitenkin peilistä enkä koodareista :)

Vierailija
85/85 |
28.10.2019 |
Näytä aiemmat lainaukset

Hyvä vastaus. Aikaisemmin joku kirjoitti, että koodaaja koodaa. Se ei selvittänyt mitään.

Kirjoita seuraavat numerot peräkkäin: yhdeksän seitsemän kolme