Mitä koodaaminen on?
Mitä koodaaminen tarkoittaa? Mitä siis ihminen, joka koodaa tekee? Onko se sama kuin ohjelmistosuunnittelu? Mitä kotikoneella voi koodata?
Aukko sivistyksessä, enkä kehtaa keneltäkään kysyä, enkä edes tunne juuri ketään joka osaisi vastata.
Kommentit (254)
Mitä muita työtehtäviä it-alalla on kuin koodaamista/ohjelmointia?
Kannattaisiko Suomen panostaa tässäkin asiassa korkeamman jalostusasteen töihin, emme mitenkään voi pärjätä hintakilpailussa jotain intialaista tai kiinalaista ohjelmoijaa vastaan. Tämä on varmaan alalla aika matalan tason suorittava homma, agraarista touhua.
Vierailija kirjoitti:
Mitä muita työtehtäviä it-alalla on kuin koodaamista/ohjelmointia?
Kannattaisiko Suomen panostaa tässäkin asiassa korkeamman jalostusasteen töihin, emme mitenkään voi pärjätä hintakilpailussa jotain intialaista tai kiinalaista ohjelmoijaa vastaan. Tämä on varmaan alalla aika matalan tason suorittava homma, agraarista touhua.
Tässä on koko ajan siirrytty siihen, ettei semmoisia pelkkiä koodaajia olekaan, vaan ne "koodarit" on oikeasti huippuammattilaisia jotka tekevät ihan kaikkea mitä ohjelmiston kehitykseen liittyy. Full Stack Developereiksi usein kutsutaan.
Sitä on kyllä monessa talossa, meilläkin, yritetty monta kertaa, että Suomessa vain määritellään ja suunnitellaan ja ehkä arkkitehti täällä, mutta koodaus jossain halvemmassa maissa. Nämä projektit ei ole olleet suuria onnistumisia koskaan. Siksi off shore ja near shore käyttö on vähentynyt, ja nykyään panostetaan enemmän palkkaamaan Suomesta niitä kovia osaajia, jotka tekee ihan mitä tahansa. Varsinkin kun osaajia myydään konsultteina asiakkaille eikä kehitetä in-house projektia, sellainen ihminen jonka voi myydä määrittelijäksi, back-end-kehittäjäksi, tietokanta-asiantuntijaksi, front-end-kehittäjäksi, jotkut arkkitehdeiksikin, scrum masteriksi jne on paljon hyödyllisempi kuin joku joka nyt osaa vaan koodata jollain yhdellä kielellä.
Sieltä saat kaiken koodaukseen liittyvän tiedon
Vierailija kirjoitti:
Vierailija kirjoitti:
Vierailija kirjoitti:
Vierailija kirjoitti:
Nykyiset ohjelmointikielet on humpuukia, ja koodarit eivät osaa mitään. Vain assemblerkielellä koodaaminen on oikeaa KOODAUSTA. Nykyään kirjoitetaan jotain runoja.
Tässä on esimerkiksi Amiga-tietokoneille tehty Xenon 2-pelin bitmap-skaalausrutiini, jota käytetään pelin logon ja tekstien zoomauksessa:
SCREEN_SIZE_X:equ320
SCREEN_SIZE_Y:equ200
SCREEN_BITPLANES:equ4ZOOM_MIN:equ1
ZOOM_MAX: equ16X2ZOOM:muls.wMAGNIFY,d0
asr.w#4,d0
addi.w#$A0,d0
muls.wMAGNIFY,d1
asr.w#4,d1
addi.w#$64,d1
movea.lSCREEN,a1; $406 = Screen address
muls.w#(SCREEN_SIZE_X/8)*SCREEN_BITPLANES,d1adda.wd1,a1
move.wd0,d1
andi.w#$F,d0
sub.wd0,d1
lsr.w#3,d1
adda.wd1,a1
move.l#$10000,d1
lsl.ld0,d1leaZOOMTAB,a2$ 8724
adda.wMAGNIFY,a2
adda.wMAGNIFY,a2
move.w(a2),d4
swapd4
move.w(a2),d4
move.wd3,-(a7)
l1192F8move.ld1,-(a7)
move.ld1,d0
move.ld1,d3
move.ld1,d5
move.wd2,d7
swapd4
rol.w#1,d4
bcs.sl119318
swapd4
andi.w#$FFF0,d7
lsr.w#1,d7
lea8(a0,d7.w),a0
bral1193A2l119318swapd4
movea.la1,a2
moveq#0,d6
l11931Edbfd6,l11932Cmove.w(a0)+,d1; Read ST bitplane 1 chunk
move.w(a0)+,d0; ...2
move.w(a0)+,d3; ...3
move.w(a0)+,d5; ...4moveq#$f,d6; 16 chunks?
l11932Crol.w#1,d4
bcc.sl119372add.ld1,d1
add.ld0,d0
add.ld3,d3
add.ld5,d5dbcsd7,l11931E
bcc.sl11937E
swapd1
swapd0
swapd3
swapd5move.wd0,(SCREEN_SIZE_X/8)*1(a2); Last chunk done here.
move.wd3,(SCREEN_SIZE_X/8)*2(a2)
move.wd5,(SCREEN_SIZE_X/8)*3(a2)
move.wd1,(a2)+move.w#1,d0
move.wd0,d1
move.wd0,d3
move.wd0,d5swapd0
swapd1
swapd3
swapd5
dbfd7,l11931E
bra.sl11937El119372add.wd1,d1
add.wd0,d0
add.wd3,d3
add.wd5,d5
dbfd7,l11931El11937Eadd.ld1,d1
add.ld0,d0
add.ld3,d3
add.ld5,d5
bcc.sl11937Eswapd1
swapd0
swapd3
swapd5
move.wd0,(SCREEN_SIZE_X/8)*1(a2); Last chunk done here.
move.wd3,(SCREEN_SIZE_X/8)*2(a2)
move.wd5,(SCREEN_SIZE_X/8)*3(a2)
move.wd1,(a2)+
lea(SCREEN_SIZE_X/8)*SCREEN_BITPLANES(a1),a1l1193A2move.l(a7)+,d1
subq.w#1,(a7)
bpll1192F8
addq.w#2,a7
rtsENLARGE:
move.w#ZOOM_MIN,MAGNIFY
.loop:bsrWaitEOFleaX2LOGO,a0
moveq#-$70,d0;x pos
moveq#-$50,d1;y pos
move.w#$cF,d2;length
moveq#$35,d3;depth
bsrX2ZOOM;Zoom;bra.loop
addq.w#1,MAGNIFY
cmpi.w#ZOOM_MAX,MAGNIFY
blt.s.loop
rtsREDUCE:move.w#ZOOM_MAX,MAGNIFY
.loop:bsrWaitEOF
leaX2LOGO,a0
moveq#-$70,d0
moveq#-$50,d1
move.w#$cf,d2
moveq#$35,d3
bsrX2ZOOMsubq.w#1,MAGNIFY
bne.s.loop
rtsdseg
SCREEN:dc.l0
COPPTR_TOP:dc.l0
COPPTR_ORIGIN:dc.l0
MAGNIFY:dc.w0ZOOMTAB:
dc.w$0000,$0100,$1010,$2104,$4444,$4912,$5252,$552A
dc.w$AAAA,$AB55,$B5B5,$B76D,$DDDD,$DF7B,$F7F7,$FF7F
dc.w$FFFFX2LOGO:incbinX2logo.pic
evenJa yllä olevasta et itse ymmärrä oikeasti mitään. Vähän sama kun sanos että nykyajan yhteydenpitotavat on humpuukia, vain savumerkit on ainoa oikea tapa olla yhteydessä muihin. Järkevät koodaa tämänpäivän työkaluilla koska on paljon tehokkaampaa.
Riippuu mitä koodaa. Kyllä mä joudun aina välillä assyllä tekemään vaikka 99%:sesti teenkin c:llä. Mikrokontrollereiden startti (mitä tapahtuu ennen maini:ia) pitää yleensä kirjoittaa assyllä.
Sulautetun koodaajia onkin vaikea nykyään löytää. Nykyään koulutetaan vaan näitä korkeamman abstraktiotason koodaajia, jotka eivät ymmärrä raudasta mitään. Minäkin palkkaisin heti 2-3 koodaajaa jotka ymmärtää matalan tason kieliä. Kokoajan haku päällä, mutta ei löydy kuin "webbikoodaajia".
Paljonko maksat palkkaa ja missä työ on?
Nimimerkillä alkaa nykyiset hommat kyrsiä.
Vierailija kirjoitti:
Kun olet asentanut tuon sovelluskehitysymoäristön, voit kirjoittaa siihen vaikka
/* This is a simple Java program.
FileName : "HelloWorld.java". */
class HelloWorld
{// Your program begins with a call to main().
// Prints "Hello, World" to the terminal window.
public static void main(String args[])
{
System.out.println("Hello, World");
}
}Kun käännät tämän, näytölle tulee kirjoitus Hello, World.
Valtava työ kahden saman ilmestymiseksi näytölle.
Penskana ohjelmoin Commodore 64:lla vaikka mitä, se oli hyvin helppoa basic-kielellä, se kun on käytännössä englannin syntaksia if - then tyyliin.
Vierailija kirjoitti:
Vierailija kirjoitti:
Kun olet asentanut tuon sovelluskehitysymoäristön, voit kirjoittaa siihen vaikka
/* This is a simple Java program.
FileName : "HelloWorld.java". */
class HelloWorld
{// Your program begins with a call to main().
// Prints "Hello, World" to the terminal window.
public static void main(String args[])
{
System.out.println("Hello, World");
}
}Kun käännät tämän, näytölle tulee kirjoitus Hello, World.
Valtava työ kahden saman ilmestymiseksi näytölle.
Penskana ohjelmoin Commodore 64:lla vaikka mitä, se oli hyvin helppoa basic-kielellä, se kun on käytännössä englannin syntaksia if - then tyyliin.
Ei tuo java sen kummempaa oikeastaan ole. Tuossa esimerkissä on paljon kommentteja, kaikki /* ja */ välissä sekä // alkavat rivit, niitä ei tarvita, että ohjelma toimii. Olennaista, se itse printtaava komento on vain tuo yksi rivi System.out.println("Hello, World");
Vierailija kirjoitti:
Vierailija kirjoitti:
Kun olet asentanut tuon sovelluskehitysymoäristön, voit kirjoittaa siihen vaikka
/* This is a simple Java program.
FileName : "HelloWorld.java". */
class HelloWorld
{// Your program begins with a call to main().
// Prints "Hello, World" to the terminal window.
public static void main(String args[])
{
System.out.println("Hello, World");
}
}Kun käännät tämän, näytölle tulee kirjoitus Hello, World.
Valtava työ kahden saman ilmestymiseksi näytölle.
Penskana ohjelmoin Commodore 64:lla vaikka mitä, se oli hyvin helppoa basic-kielellä, se kun on käytännössä englannin syntaksia if - then tyyliin.
Nimenomaan, basicilla paljon helpompi ohjelmoida moinen viesti ruudulle :D
Kuusnelosen Basic tulkki tietysti joutuu kääntämään sen konekielelle mikä hidastaa ohjelman suoritusta, mutta pienessä ohjelmassa kuten tällaisen yhden viestin tulostuksessa sillä ei ole mitään merkitystä.
Hauska nuo assemblerin ihannoijat, ihan kuin se olisi jotenkin erityisen vaikeaa. Olen sitäkin tehnyt, 1974 syntyneenä lapsesta asti harrastaneena ja mm. demoskenellä pyörineenä. Minusta tuo on sitä aika yksinkertaista hommaa, mikä on haastavaa on se kun tehdään isoja ohjelmistoja ja täytyy tuntea valtava määrä erilaisia kirjastoja, frameworkeja, integraatio- ja tietoliikennetekniikoita, alustoja joilla sitä ohjelmaa voidaan ajaa jne. Jostain syystä jotkut low level tyypit kuvittelee että "webbipaskan" tekeminen on helppoa, minusta se on kyllä paljon vaativampaa kuin se low level koodin näperrys, näin molempia tehneenä. Ainakin jos se webbipaska on suuryrityksen palvelu vaikka, eikä jotkut kotisivut.
Vierailija kirjoitti:
Vierailija kirjoitti:
Vierailija kirjoitti:
Kun olet asentanut tuon sovelluskehitysymoäristön, voit kirjoittaa siihen vaikka
/* This is a simple Java program.
FileName : "HelloWorld.java". */
class HelloWorld
{// Your program begins with a call to main().
// Prints "Hello, World" to the terminal window.
public static void main(String args[])
{
System.out.println("Hello, World");
}
}Kun käännät tämän, näytölle tulee kirjoitus Hello, World.
Valtava työ kahden saman ilmestymiseksi näytölle.
Penskana ohjelmoin Commodore 64:lla vaikka mitä, se oli hyvin helppoa basic-kielellä, se kun on käytännössä englannin syntaksia if - then tyyliin.
Nimenomaan, basicilla paljon helpompi ohjelmoida moinen viesti ruudulle :D
Kuusnelosen Basic tulkki tietysti joutuu kääntämään sen konekielelle mikä hidastaa ohjelman suoritusta, mutta pienessä ohjelmassa kuten tällaisen yhden viestin tulostuksessa sillä ei ole mitään merkitystä.
Javascriptillä voit tehdä ihan saman.
Koodaaminen sopii luultavasti erityisen hyvin esim. Aspergerin syndroomasta "kärsiville"? Se edellyttänee liki monomaanista kiinnostusta melko suppea-alaiseen jutskaan?
Pelkällä koodaamistaidolla ei pitkälle pötkitä ja palkka varmasti onkin alle 4ke/kk. Myöskään tällaisille koodareille ei juurikaan ole hyviä töitä tai ylipäänsä töitä tarjolla.
Sanoisin, että koodaaminen (jonka hyvä osaaminen vaatii sen 10000 tuntia harjoittelua) on se perustaso ja sitten päälle pitäisi ymmärtää kaikenlaista aina tietokoneen elektroniikan toiminnasta asiakkaan liiketoiminnan ymmärtämiseen ja markkinoinnista käyttöliittymäsuunnitteluun. Tietysti riippuen toimialasta.
Itselläni parhaat tienestit ovat olleet keskimäärin 13ke/kk vuoden aikana. Kaikkea olen joutunut ymmärtämään taloushallinnosta aina pelisuunnitteluun ja levyjärjestelmien sisäisestä toiminnasta mainoskampanjoiden vaikuttavuuden arviointiin. Olen silti pääasiassa koodari ja teen työtäni tuottamalla koodia. Olen aina työskennellyt enintään normaalin työajan verran eli 37,5h/vko. Alalla on helppo polttaa itsensä loppuun jos ei osaa pitää omista rajoistaan kiinni. Ei tosiaan sovi kaikille ja vaatii jonkun verran myös lahjakkuutta sekä hyvää loogista päättelykykyä
Jos vertaisi terveydenhuoltoon niin siellä pitäisi saman nimikkeen alla sitten olla kaikki laitoshuoltajasta aivokirurgiin. Sen verran laaja toimenkuva voi koodarilla olla.
Minulle tuttu termi sillä olen ollut Wärtsilällä 1960 luvun lopulla töissä jossa aloitin koodaamisen. Se tapahtui numerokoodilla joka sitten syötettiin isoihin koneisiin tätä teki sitten operaattori ja suunnittelija. Minulle tuli tiedot Saksasta suurin osa töistä ja semmoinen pieni kone jossa oli numeroita jotka kukin tarkoitti eri sanoja kirjaimia. Nämä "naputeltiin" silloin reikä nauhalle sitten reikä kortille ja operaattori syötti tiedot luettavaan tekstiin. Todella isoja koneita ja kovaääniset ne oli omassa huoneessa. Hyvin nopeasti tein työni sokkona naputellen ja minut palkattiin Wärtsilään pääkoodaajaksi palkka nousi kolmen kertaiseksi ja työ oli 7/24 päivystystä välillä miten tilauksia tuli Saksasta telakalle jossa yöllä myös piti mennä " hälytys" koodaamaan. Todella pidin kovasti vaikka oli aika yksitoikkoista naputtaa vain pientä numero " päätettä" niinkuin me sanottiin. Siitä alkoi ATK ala ja jo vanhana tietokone on ollut minulle helppo ja mielenkiintoinen työväline nytkin käytän melkein päivittäin eikä ole ollut vaikeuksia kehitys kausien aikana. Harmi kun tämä työ loppui jossain välissä kun perustin perheen ja vaihdoin muuhun ammattiin mutta ATK on ollut pysyvä tiedontuoja elämän rikkaus.
Vierailija kirjoitti:
Koodaaminen = ohjelmointi
Kaveri palkattiin (pienellä palkalla) testaamaan mahdollisia tulevia uusia pelejä, palkattiin koodari tai koodaaja nimellä, että kuulosti hienommalta, ei mitään tekemistä ohjelmoinnin kanssa.
En tunne nykyistä termistöä mutta jos puhutaan vaikka java-ohjelmoijasta, niin se on aika selkeä homma.
Sellaisia "muka koodaajia" on vaikka kuinka paljon ja se osaaminen on niin vähäistä, että sillä ei "oikeallla it-alla" tee yhtään mitään.
Taitaa joskus se päivitysten tms. testaus jäädä loppukäyttäjän riesaksi, joskushan on päivitys rikkonut jotain ja aiheuttaa harmia loppukäyttäjälle. Esim. Firefox selaimella joskus ei Adidaksen verkkokauppa toiminut kunnolla, no Edgellä tosin sitten toimi ja myöhempi Firefox päivitys korjasi ongelman, tai ehkä verkkosivuston koodiakin saattoivat taustalla muutella?
Vierailija kirjoitti:
Mitä muita työtehtäviä it-alalla on kuin koodaamista/ohjelmointia?
Kannattaisiko Suomen panostaa tässäkin asiassa korkeamman jalostusasteen töihin, emme mitenkään voi pärjätä hintakilpailussa jotain intialaista tai kiinalaista ohjelmoijaa vastaan. Tämä on varmaan alalla aika matalan tason suorittava homma, agraarista touhua.
IT-alalla on todellakin paljon muitakin tehtäviä kuin koodaaminen. On hallinnollisempia töitä: Esim. projektipäällikkö/PO (Product Owner), testauspäällikkö jotka koordinoivat eri työvaiheita ja vastaavat resurssoinnista, budjeteista, muutoshallinnasta, versioinnista jne. Teknisempiä kuvauksia ja suunnitelmia tekevät usein arkkitehdit. Määrittelijät tekevät vaatimusmäärittelyä ja käyttötapauksia. Testaajat suunnittelevat testitapauksia ja ajavat testejä. Tässä nyt muutamia rooleja, jotka eivät kirjoita useimmiten yhtään riviä koodia, testauksessa voi jonkun roolina olla ns. testiautomaation koodaaminen. Koodaus on vain yksi työvaihe, kun järjestelmiä tehdään, eikä ole edes ajallisesti se kaikkein eniten aikaa vievä kokonaisuus, vaan tuohon kaikkeen muuhun menee tuplaten se aika mikä menee itse koodaamiseen.
Jos koodaajan pitää monipuolisesti itse tehdä kaikki, eikö synny houkutus tehdä niinkuin itselle on helpointa eikä niinkuin asiakkaalle olisi parasta ja laadukkainta?
Moderaattori ei olisi hyvä koodaaja kun se ei osaa muuta nappia painaa kuin deleteä xD xD
Vierailija kirjoitti:
Jos koodaajan pitää monipuolisesti itse tehdä kaikki, eikö synny houkutus tehdä niinkuin itselle on helpointa eikä niinkuin asiakkaalle olisi parasta ja laadukkainta?
Vastaus on tavallaan ei ja tavallaan kyllä.
EI, koska:
- on olemassa testausprosessi
- harvoin projektia tekee yksin ja yhden laaduton tekeminen alkaa kiusata muitakin tai pistää silmään
- pahinta on, jos vakavia virheitä pääsee tuotantoon asti jatkuvasti saman tekijän tekeminä merkittävästi enemmän kuin muilta saman kokemuksen omaavilta keskimäärin, voi olla ura aika lyhyt ellei ryhdistäydy
- useimmat ovat ylpeitä osaamisestaan ja haluavat tehdä kaunista ja laadukasta, päinvastoin kyrsii se että projektit on kilpailutettu niin tiukoille, ettei saa tehdä niin hyvää kuin osaisi, vaan täytyy yrittää löytää joku. kompromissi jossa työtunnit ei mene yli siitä mitä asiakas on valmis maksamaan, mutta laatu on siedettävä
KYLLÄ, koska
- se on usein niinkin, että laiskuus on hyve, ja jos kunnolla miettii sen miten työnsä minimoi, siitä tulee eleganttia, laajennettavaa ja vähemmän virheitä sisältävää koodia kuin jollain joka ei näin tee
- työnantajalta ja asiakkailta tulee aikataulupainetta jatkuvasti, usein on monessa projektissa yhtä aikaa ja elämä tuntuu jatkuvasti selviytymiseltä juuri ja juuri, tulipalojen sammuttelulta, eikä niin että ihan rauhassa saisi tehdä kunnolla kaiken
- asiakkaat ei ole usein edes valmiita maksamaan kunnollisesta laadusta ja testauksesta, olen nähnyt yllättävän isoja asiakasyrityksiä, jotka esim. ei osta it-talolta testausta, vaan säästävät testaamalla itse, ilman alan osaamista, ja käytännössä siis loppukäyttäjä testaa
Parikymmentä tätä vuotta alaa katsellut ensin kehittäjänä, nykyisin arkkitehtina, ja en ole vielä nähnyt Suomessa tehtävää projektia, jossa koodarien epäpätevyys tai laiskuus olisi ollut merkittävän projektin epäonnistumisen syy. Niissä projekteissa, joille käy huonosti, syyt on usein ihan muualla, esim. asiakas ei tiedä oikein mitä tilaa ja haluaa, maalia siirrellään koko ajan, on myyty alunperinkin projekti riittämättömällä hinnalla jotta voitetaan kilpailu ja sitten joko tehdään halvalla paskaa tai suututetaan asiakas alkamalla pyytää lisärahaa projektin saattamiseksi valmiiksi asti.