Tapahtumat

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

Kirjaudu sisään

Osaisko joku selostaa yksinkertaisesti ja selkeästi, mitä koodaus käytännössä on?

Vierailija
07.12.2018 |

Onko esim. nettisivun koodaus sama asia kuin sovelluksen koodaaminen? Minkälasia taitoja (luonteenpiirteitä) tähän tarvitaan?

Kommentit (59)

Vierailija
41/59 |
07.12.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Ja onko koodikielessä samantyyppisiä sääntöjä, kuin vaikka kielissä on kielioppisääntöjä, jotka helpottavat niiden omaksumista? Minua kiinnostaa myös se, että miten koodin syöttäminen saa aikaan käskyjen toteuttamisen eli ehkä jo mennään sille tasolle, että miten koko tietokone toimii..

Koodi on erittäin täsmällistä. Kielioppisäännöistä puhuminen ei oikein edes kuvaa asiaa kunnolla.

System.out.println("Tämä teksti tulostuu"); ei voi käytännössä kirjoittaa yhtään millään muulla tavalla kuin juuri näin kyseisessä kielessä. Isommat kokonaisuudet sitten voi kirjoittaa useammalla eri tavalla, mutta sellainen "lauseen sisäinen" kielioppi on todella täsmällistä. Jos tuosta ottaa jonkin sulkeen, lainausmerkin tai melkein minkä vain pois, niin ohjelma ei toimi ollenkaan (sitä ei voi edes kääntää konekielelle).

Jos toki voi pystyä kirjoittamaan jotain väärin niin, että siitä huolimatta ohjelma kääntyy, mutta ohjelma kuseekin vasta suoritusvaiheessa. Näitä kutsutaan lähinnä bugeiksi. Se on yleensä enemmänkin ajatusvirhe, mutta joskus myös huolimattomuutta.

Vierailija
42/59 |
07.12.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Entä, jos nyt puhutaan, että pulaa on koodaajista, niin tarkoittaako tämä yleisesti koodaajia vai tietyn ohjelmakielen hallitsijoita? 

Sekä että. Ihannetilanteessa työnantaja löytää koodarin,  joka osaa jo tarvittavaa ohjelmointikieltä. Usein myös riittää, että löytyy koodari, joka osaa useampaakin ohjelmointikieltä ja joka sen vuoksi oppii kohtuullisen helposti ja nopeasti työnantajan edellyttämän ohjelmointikielen. 

Yksinkertaistettuna voi ajatella, että kaikissa ihmisten puhumissa kielissä on sana "kissa". Englantilainen tietää, että kissa on olemassa ja hänen pitää vain opetella, mitä kissa on ruotsiksi. Ohjelmointikielissä on samoja asioita, mutta ne kirjoitetaan eri tavalla. Pitää siis oppia vain uudesta kielestä, mikä on juuri tässä kielessä tietty sana. 

Kissa on ihan liian korkean tason konsepti. Minä koodaan solutasolla!

t, assemblerkoodaaja

Eikö se kissa kuuluisi rakentaa ihan atomeista lähtien itse ilman mitään assemblereita ja muita hömpötyksiä?

Kyllä, autotallissa polvien välissä

Sisältö jatkuu mainoksen alla
Sisältö jatkuu mainoksen alla
Vierailija
43/59 |
07.12.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Vierailija kirjoitti:

Ja onko koodikielessä samantyyppisiä sääntöjä, kuin vaikka kielissä on kielioppisääntöjä, jotka helpottavat niiden omaksumista? Minua kiinnostaa myös se, että miten koodin syöttäminen saa aikaan käskyjen toteuttamisen eli ehkä jo mennään sille tasolle, että miten koko tietokone toimii..

Koodi on erittäin täsmällistä. Kielioppisäännöistä puhuminen ei oikein edes kuvaa asiaa kunnolla.

System.out.println("Tämä teksti tulostuu"); ei voi käytännössä kirjoittaa yhtään millään muulla tavalla kuin juuri näin kyseisessä kielessä. Isommat kokonaisuudet sitten voi kirjoittaa useammalla eri tavalla, mutta sellainen "lauseen sisäinen" kielioppi on todella täsmällistä. Jos tuosta ottaa jonkin sulkeen, lainausmerkin tai melkein minkä vain pois, niin ohjelma ei toimi ollenkaan (sitä ei voi edes kääntää konekielelle).

Jos toki voi pystyä kirjoittamaan jotain väärin niin, että siitä huolimatta ohjelma kääntyy, mutta ohjelma kuseekin vasta suoritusvaiheessa. Näitä kutsutaan lähinnä bugeiksi. Se on yleensä enemmänkin ajatusvirhe, mutta joskus myös huolimattomuutta.

Kiitos vastauksista kaikille! Mietin enemmän koodikielessä sitä,  että pakkohan siinä on olla jonkinlaisia sääntöjä? Kuten tietty käsky saa aikaan tietyn toiminnon, mutta vaikka jonkin (pienen) osan muuttaminen siitä, saa aikaan sen, että myös käsky muuttuu aina hienoisesti? Äh, selitänpä huonosti...  Miten koodikielen voi oppia muistamaan? Entä miksi on erilaisia koodikieliä?

Vierailija
44/59 |
07.12.2018 |
Näytä aiemmat lainaukset

Koodaaminen on siis  tietokoneelle tarkkojen ohjeiden antamista. Ohjeet kirjoitetaan etukäteen ja niissä pyritään varautumaan kaikkeen mahdolliseen:

-mitä tehdään, jos käyttäjä klikkaa hiirtä?

-mitä tehdään, jos käyttäjä painaa jotain näppäintä?

-mitä tehdään, jos netistä tulee dataa?

-mitä tehdään, jos käyttäjä klikkaa nappia1

-mitä tehdään, jos käyttäjä avaa Tiedosto-valikon

-jne jne...

Riippuen ohjelmasta ja sen käyttötarkoituksesta, ei läheskään kaikkeen tarvi varautua. Voi olla ohjelma, joka pyörii taustalla ilman, että sen tarvii ottaa käyttäjältä vastaan mitään komentoja (vaikkapa joku palvelinohjelma).

Yksi ohjelmointiongelma voisi olla vaikkapa pelissä korttipakan järjestäminen. Jos (ja kun) ohjelmointikielessä ei ole valmista komentoa "Järjestä korttipakka", niin koodatessa pitäisi itse luoda ohjeet, millä kone osaisi järjestämisen tehdä. Tätähän voi jokainen miettiä. Kone osaa periaatteessa

-verrata kahta lukua

-tallettaa tietoa muuttujiin

-toistaa tiettyjä käskyjä sovitun monta kertaa

Miten siis käskisit konetta suorittamaan järjestämisen? Ehkä alku voisi olla jotain:

1. Ota ensimmäinen kortti (eli lue sen arvo muuttujaan)

2. Vertaa korttia seuraavaan korttiin. Jos kortti on suurempi, niin mitäs sitten..?

Vierailija
45/59 |
07.12.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Minäkin kysyn tyhmän kysymyksen. Ymmärrän sen, että koodi on se resepti, mutta minne se koodi syötetään/kirjoitetaan?  Onko olemassa jokin sovellus vai ihan oikeasti mihin..? 

Olen vähän samalla tasolla kuin tämä kysyjä. Tarkoitin siis nimenomaan ihan perusteita siitä mitä koodaus ylipäätään on. Olen itse kaupallisella puolella ja mietin näin hypoteettisesti, että voiko siitä olla hyötyä, jos opettelen esim. ohjelmoinnin alkeita mutta ilmeisesti ei? Kiinnostaa siis, että voiko ohjelmointia oppia ns. kuka tahansa vai pitääkö siihen olla perehtynyt pikkulapsesta saakkaa. Kiinnostaa siis ihan rautalangasta väännettynä miten koodaus tapahtuu.  Kiitos asiallisista vastauksista tähän mennessä. 

Vierailija
46/59 |
07.12.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Vierailija kirjoitti:

Minäkin kysyn tyhmän kysymyksen. Ymmärrän sen, että koodi on se resepti, mutta minne se koodi syötetään/kirjoitetaan?  Onko olemassa jokin sovellus vai ihan oikeasti mihin..? 

Olen vähän samalla tasolla kuin tämä kysyjä. Tarkoitin siis nimenomaan ihan perusteita siitä mitä koodaus ylipäätään on. Olen itse kaupallisella puolella ja mietin näin hypoteettisesti, että voiko siitä olla hyötyä, jos opettelen esim. ohjelmoinnin alkeita mutta ilmeisesti ei? Kiinnostaa siis, että voiko ohjelmointia oppia ns. kuka tahansa vai pitääkö siihen olla perehtynyt pikkulapsesta saakkaa. Kiinnostaa siis ihan rautalangasta väännettynä miten koodaus tapahtuu.  Kiitos asiallisista vastauksista tähän mennessä. 

https://tour.golang.org/welcome/1

Kliksuttele tuosta menemään niin pääset koodaamaan Googlen kehittämällä, etenkin web-ohjelmointiin soveltuvalla Go-kielellä.

Sisältö jatkuu mainoksen alla
Vierailija
47/59 |
07.12.2018 |
Näytä aiemmat lainaukset

Summaimella ja komparaattorilla pystyt toteuttamaan ihan mitä vaan.

Vierailija
48/59 |
07.12.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

 Onko tän kääntäjäohjelman takanakin jotkut koodarit, jotka vaan sitten käyttää eri koodikieltä (eli pelkkiä ykkösiä ja nollia) ja onko niitäkin kieliä enemmän kuin yksi?

Yksinkertaisin ajattelutapa on varmaan se, että jokaisen käyttöjärjestelmän, ohjelmiston, sovelluksen ym. on joku joskus aikoinaan koodannut eli ohjelmoinut jollakin koodikielellä. Käytännössä voit ajatella, että kaikki edellä mainitut on jonkun tai joidenkin koodaamia. 

Binääriä eli 1 ja 0 ei mun ymmärtääkseni koodaamisessa nykyään käytetä (siis silloin kun siellä on ihminen, joka sitä koodia kirjoittaa). Ohjelmointikieliä on hyvin monia. Java on yksi yleisimmistä. C, C++ ja C# on myös ohjelmointikieliä. Jokaisella kielellä on oma kielioppinsa - ihan samoin kuin meidän puhumilla ja kirjoittamilla luonnollisilla kielillä. 

Aloittajan kysymykseen vastaten: Nettisivun koodaaminen ei ole sama asia kuin sovelluksen koodaaminen. Nettisivuja koodataan XML-kielen lapsella HTML:llä ja tod. näk. käytetään CSS-tyyliohjeita.  XML on mm. Wikipedian mukaan "rakenteellinen kuvauskieli", HTML on kuvauskieli erityisesti nettisivujen tekemiseen. Sovellusten koodaamiseen puolestaan käytetään ohjelmointikieliä, jotka ovat Wikipedian mukaan "formaaleja kieliä, joita ohjelmoijat käyttävät tietokoneen ohjelmointiin". Kielioppiin verrattavissa olevia asioita on kyllä myös XML:ssä.

Ohjelmoijalla olisi hyvä olla looginen ajattelutapa. Esimerkiksi matemaattiset ja kielelliset taidot voivat auttaa. Työnantajat tuntuu etsivän monitaitoisia niin itsenäiseen kuin tiimityöskentelyyn kykeneviä koodaajia. Uuden oppiminen pitää olla päivänselvyys eli käytännössä jatkuvaa opiskelua. Yhdellä ohjelmointikielellä ei tule pärjäämään, mutta se antaa kohtuullisen pohjan lähteä oppimaan uutta/uusia.

Sisältö jatkuu mainoksen alla
Vierailija
49/59 |
07.12.2018 |
Näytä aiemmat lainaukset

Kerrankin supermielenkiintoinen ketju täällä, kiitos!

Vierailija
50/59 |
07.12.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Vierailija kirjoitti:

Minäkin kysyn tyhmän kysymyksen. Ymmärrän sen, että koodi on se resepti, mutta minne se koodi syötetään/kirjoitetaan?  Onko olemassa jokin sovellus vai ihan oikeasti mihin..? 

Olen vähän samalla tasolla kuin tämä kysyjä. Tarkoitin siis nimenomaan ihan perusteita siitä mitä koodaus ylipäätään on. Olen itse kaupallisella puolella ja mietin näin hypoteettisesti, että voiko siitä olla hyötyä, jos opettelen esim. ohjelmoinnin alkeita mutta ilmeisesti ei? Kiinnostaa siis, että voiko ohjelmointia oppia ns. kuka tahansa vai pitääkö siihen olla perehtynyt pikkulapsesta saakkaa. Kiinnostaa siis ihan rautalangasta väännettynä miten koodaus tapahtuu.  Kiitos asiallisista vastauksista tähän mennessä. 

Esim. nettisivut voi koodata internet-oppaiden avulla kuka tahansa, joka jaksaa asian opetella. Juuri pienten asiakkaiden, esim. toiminimi-yrittäjien nettisivujen koodaukselle sekä ylläpidolle olisi tarvetta. Rikastumaan sillä ei pääse, tai toteuttamaan omia taiteellisia visioita ja asiakkaan sana on laki. Ei vaadi yleensä perustaitoja kummempaa, mutta tylsyyden sietämistä ja kommunikointitaitoja tarvitaan, jotta asiakkaiden toiveista osaa ymmärtää, minkälaista lopputulosta kaivataan. Kyllä sellaisella voi ainakin pientä lisätuloa saada, jos ei jaksa kokopäiväisesti sellaista työtä tehdäkään.

Sisältö jatkuu mainoksen alla
Vierailija
51/59 |
07.12.2018 |
Näytä aiemmat lainaukset

Suosittleen muuten lämpimästi kaikkia edes vain kokeeksi testaamaan vaikka tuota html-koodausta, jotta pääsee käytännössä näkemään, mitä käy jos koodissa on virhe tms. Hyvin opettavaista! Mua opasti alkeisiin koodari-poikakaverini, mutta ei ollut semmoista hommaa jota itse jaksaisin kovin kauaa, mulla pysyy niin huonosti merkkijonojen tapaiset yksityiskohdat päässä ja jatkuva googlaaminen ja tarkastaminen on rasittavaa.

Muuten koodikielen opiskelu vertautuu mielestäni vieraan kielen oppimiseen. Sujuva koodaaminen vertautuu kielen sujuvaan kirjoittamiseen ja puhumiseen, eli koodia täytyy käyttää (=kirjoittaa koodia) niin kauan, että nuo yleisimmin käytetyt käskyt jäisivät mieleen. Kun ne on hallussa, homma on jo helpompaa ja palkitsevampaa.

Vierailija
52/59 |
07.12.2018 |
Näytä aiemmat lainaukset

Jos haluaa tutustua koodaamiseen yksinkertaisimmillaan, niin suosittelen koodikoulua osoitteessa code.org. Tätä sivustoa käytetään alakouluissakin koodaukseen tutustumisessa, ja lähinnähän kyse tuolla on sen loogisen ajattelutaidon opettelusta. Tästä sitten seuraava steppi olisi opetella ihan niitä varsinaisia ohjelmointikieliä.

Sisältö jatkuu mainoksen alla
Vierailija
53/59 |
07.12.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Olen vähän samalla tasolla kuin tämä kysyjä. Tarkoitin siis nimenomaan ihan perusteita siitä mitä koodaus ylipäätään on. Olen itse kaupallisella puolella ja mietin näin hypoteettisesti, että voiko siitä olla hyötyä, jos opettelen esim. ohjelmoinnin alkeita mutta ilmeisesti ei? Kiinnostaa siis, että voiko ohjelmointia oppia ns. kuka tahansa vai pitääkö siihen olla perehtynyt pikkulapsesta saakkaa. Kiinnostaa siis ihan rautalangasta väännettynä miten koodaus tapahtuu.  Kiitos asiallisista vastauksista tähän mennessä. 

No, kuka tahansa normaalilla järjellä varustettu voi oppia ohjelmoimaan. Siitä onko tästä mitään hyötyä itselle, muuta kuin oma hupi, on kokonaan toinen asia.

Edellä asiaa on jo käyty läpi, mutta näin vielä lyhyesti: yksinkertaisimmillaan ohjelmointi on sitä että kirjoitetaan tekstitiedosto. Tämä tiedosto sisältää joukon ohjelmointikielen käskyjä. Suurimmassa osassa erilaisista ohjelmointikielistä käskyt ovat samankaltaisia. Eivät kuitenkaan aivan samanlaisia.

Ohjelmointikielen suunnittelijat ovat määritelleet käytetyt käskyt ja niitä on noudatettava varsin tarkasti. Eli jos esimerkiksi haluaa että ohjelma tulostaa tekstiä ruudulle, käsky joka sen tekee kirjoitetaan määrätyllä tavalla.

Tätä käskyjä sisältävää tekstitiedostoa kutsutaan lähdekoodiksi. Kun tiedosto on kirjoitettu, se annetaan kääntäjä-nimiselle tietokoneohjelmalle syötteeksi. Yksinkertaisimmillaan se tapahtuu kirjoittamalla käyttöjärjestelmän komentotulkissa kääntäjä-ohjelman nimi, lähdekooditiedoston nimi ja haluttu lopullisen ohjelman nimi. Esimerkiksi :

gcc  minun_ohjelmani.c   -o  kirjoita_ruudulle

gcc :                                  on kääntäjän nimi

minun_ohjelmani.c       on käskyt sisältävät tekstitiedoston nimi

-o                                      on ohjausmerkki joka kertoo että sitä seuraava teksti on lopullisen ohjelman nimi

kirjoita_ruudulle            on lopullisen ohjelmatiedoston (=sovelluksen) nimi

Jos ohjelmoija on kirjoittanut käskyt oikein, kääntäjä muuttaa ne tietokoneen ymmärtämään muotoon lopulliseksi ohjelmaksi. Jos on tullut kirjoitusvirheitä yms. vastaavia, kääntäjä sanoo että tietyillä riveillä on jotain väärin käskyissä.

Jos kaikki menee oikein, tietokoneen hakemistoon ilmestyy valmis ohjelma joka koostuu tietokoneen ymmärtämistä käskyistä. Käskyt eivät ole enää tekstiä, vaan vain iso joukko peräkkäisiä numeroita.

Tämän valmiin ohjelman nimen kun sitten kirjoittaa komentotulkissa, niin ohjelma käynnistyy ja tekee ne asiat mitä ohjelmoija on alkuperäisissä tekstitiedoston käskyissä määritellyt.

Eli yksinkertaisimmillaan vaikka nyt printtaa ruudulle lyhyen tekstin.

Vierailija
54/59 |
07.12.2018 |
Näytä aiemmat lainaukset

.edellinen viesti jatkuu :

Lopuksi on hyvä ymmärtää ehkä tärkein ohjelmointiin liittyvä asia; se että tietokoneohjelman tekeminen ei ole pelkästään sitä, että laitetaan joukko käskyjä peräkkäin. Käskyjä voi järjestellä kohtuullisen monella eri tavoin peräkkäin ja osa niistä on parempia kuin toiset tavat.

Tässä parempi tarkoittaa esimerkiksi sitä, että tietty ohjelma tekee miljoonan ihmisen nimien järjestämisen aakkosjärjestykseen nopeammin kuin toinen ohjelma.

Näitä eri tapoja valita tietyt käskyt käytettävissä olevista ja sitten järjestää ne tietyllä tavalla, kutsutaan algoritmeiksi.

Vaikka nyt ihmisten nimien järjestämiseen aakkosjärjestykseen on joukko tiettyjä vakiintuneita tapoja ja niistä kaikista tiedetään mikä niistä tekee järjestämisen nopeasti, mikä tosi hitaasti jne.

Käytännössä iso osa tiedeyliopistojen tietotekniikan opetusta ja tutkimusta on juuri näiden erilaista algoritmien pohtimista ja ymmärtämistä.

Perustasolla jonkin ohjelmointikielen käskyjän ymmärtäminen ja sitten niiden käätäminen tietokoneen ymmärtämään muotoon on ihan sama kuin suomenkielen ja tekstinkäsittelyohjelman opetteleminen.

Kun ensin on opeteltu suomenkieli ja kirjoitusohjelman käyttö, niin sitten vasta alkaa se varsinainen homma, eli vaikka nyt romaanin tai näytelmän kirjoittaminen.

Samalla tavoin tietokoneohjelman käskyjen osaamisen jälkeen alkaa vasta se varsinainen työ, eli kuinka tehdä hyvä ohjelma joka tekee jonkin asian tehokkaasti, järkevästi ja nopeasti.

Tämä myös se vaihe jossa ne erot sitten syntyvät tavallisten ihmisten ja niiden "huippuohjelmoijien" välillä. Jotta osaa tehdä hyviä valintoja ohjelmoidessaan, siihen tarvitaan paljon kokemusta ja harjoittelua.

Sisältö jatkuu mainoksen alla
Vierailija
55/59 |
07.12.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Ja onko koodikielessä samantyyppisiä sääntöjä, kuin vaikka kielissä on kielioppisääntöjä, jotka helpottavat niiden omaksumista? Minua kiinnostaa myös se, että miten koodin syöttäminen saa aikaan käskyjen toteuttamisen eli ehkä jo mennään sille tasolle, että miten koko tietokone toimii..

Koodi on erittäin täsmällistä. Kielioppisäännöistä puhuminen ei oikein edes kuvaa asiaa kunnolla.

System.out.println("Tämä teksti tulostuu"); ei voi käytännössä kirjoittaa yhtään millään muulla tavalla kuin juuri näin kyseisessä kielessä. Isommat kokonaisuudet sitten voi kirjoittaa useammalla eri tavalla, mutta sellainen "lauseen sisäinen" kielioppi on todella täsmällistä. Jos tuosta ottaa jonkin sulkeen, lainausmerkin tai melkein minkä vain pois, niin ohjelma ei toimi ollenkaan (sitä ei voi edes kääntää konekielelle).

Jos toki voi pystyä kirjoittamaan jotain väärin niin, että siitä huolimatta ohjelma kääntyy, mutta ohjelma kuseekin vasta suoritusvaiheessa. Näitä kutsutaan lähinnä bugeiksi. Se on yleensä enemmänkin ajatusvirhe, mutta joskus myös huolimattomuutta.

Kiitos vastauksista kaikille! Mietin enemmän koodikielessä sitä,  että pakkohan siinä on olla jonkinlaisia sääntöjä? Kuten tietty käsky saa aikaan tietyn toiminnon, mutta vaikka jonkin (pienen) osan muuttaminen siitä, saa aikaan sen, että myös käsky muuttuu aina hienoisesti? Äh, selitänpä huonosti...  Miten koodikielen voi oppia muistamaan? Entä miksi on erilaisia koodikieliä?

Loppujen lopuksi tietokoneohjelma, joka tekee ohjelmakoodin käännöksen tietokoneella suoritettavaan muotoon. Koska tietokoneet ovat yleensä (=aina) varsin tyhmiä laitteita ja niiden arvauskyky on hyvin rajallinen ja vaikea toteuttaa oikein, kääntäjät (tai tulkit) eivät yleensä kelpuuta ohjelmakoodia, joka ei noudata annettua kielioppia hyvin tarkasti. Sääntöjä siis on kielestä riipppuen hyvinkin paljon. Suunnilleen kaikki, mitä ohjelmakoodi tekee, muuntuu loogisesti hyvin yksinkertaiselle tasolle, kun ohjelmakoodi ajetaan. Yksittäisiä, hyvin yksinkertaisia operaatioita voidaan suorittaa miljardeja sekunnissa (tietokoneiden mainoksissa esitellään yleensä niiden prosessorien kellotajuus, esimerkiksi  3 GHz tarkoittaa vahvasti yksinkertaistaen, että prosessori pystyy suorittamaan noin 3 miljardia operaatiota sekunnissa). Kun nämä laskutoimitukset tehdään oikein, saadaan tietokoneen näytölle piirtymään vaikka elokuva, joka on ensin streamattu netflixistä verkon yli. Tämän kaiken tekeminen alusta asti itse on hyvin monimutkaista ja hidasta. Siksi ohjelmistokehitys perustuukin erilaisten alustojen ja kirjastojen käyttöön, jotka tarjoavat helppoja tapoja tehdä jotain. Näitä kirjastoja on tyypillisesti useampia päällekkäin alempien kirjastojen hoitaessa yksinkertaisempia asioita ja ylempien monimutkaisempia. Näitä oppii käyttämään lukemalla niiden käyttöohjeita (dokumentaatioa) sekä opetusmateriaaleja. Se ei välttämättä ole nopeaa, vaan voi viedä paljonkin aikaa pelkästään ymmärtää, miten kirjastoa kuuluu käyttää ja mitä sillä voi tehdä.

Ohjelmointikieliä on usempia monestakin syystä: ensinnäkin osa kielistä on vanhoja ja hankalia ja helpompia on keksitty korvaamaan ne. Toisekseen eri kielet soveltuvat erilaisiin tarkoituksiin: esimerkiksi nettiselaimet eivät varsinaisesti aja mitään muuta ohjelmointikieltä kuin JavaScriptiä (historiallisista, yhtensopivuus- ja tietoturvasyistä), mutta toisaalta taas jonkin pienen laitteen (vaikkapa sykemittarin) ohjelmiston toteutus JavaScriptillä ei olisi järkevää, koska sille tuskin on edes tarjolla ohjelmistokirjastoja, jotka tekisivät sykemittarin teosta kaupallisesti järkevää ja sillä tehdyt ohjelmistot käytönnössä vaativat aina verrattain paljon muistia, prosessoritehoa ja sitä kautta kuluttavat paljon sähköä ja siten isoa akkua, vaikka moni muu asia onkin kaikkein helpointa tehdä juurikin JavaScriptillä. Jokin muu tekniikka sopii kuitenkin sykemittareihin paremmin. Voi myös olla niin, että toisen ohjelmointikielen rakenteet vain sopivat jonkin ongelman ratkaisemiseen paremmin kuin toisen.

Vierailija
56/59 |
07.12.2018 |
Näytä aiemmat lainaukset

...  ja siinä suomen kielessäkin näyttää vielä itselläkin olevan opettelemista :)

Vierailija
57/59 |
07.12.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Koodaaminen on periaatteessa toimintaohjeiden laatimista. Ohjelmointi on sovittujen sanojen ja ilmaisujen käyttämistä koneen toiminnan selostamiseksi. Sitä voisi verrata vaikkapa ruoanlaittoon tai leipomiseen. Joku joka suunnittelee ruoan, laatii reseptiksi kutsutun ohjeen, ohjelman. Se ohjeen laatiminen on ohjelmointia. Resepti on siis seloste siitä, kuinka tulee toimia tiettyyn lopputulokseen pääsemiseksi. Koodaaminen tarkoittaa myös sitä sanana, että käytetään sovittua koodikieltä. Koska kone ei ymmärrä mitä sattuu normaalia luonnollista kieltä, ihan kuten reseptin lukijakaan ei ymmärrä tuntemattoman ihmisen omaa erikoisterminologiaa, vaan käytetään vakiintuneita nimityksiä ja mittoja (vehnäjauho, muna, desilitra, gramma). 

Verkkosivujen koodaus yksinkertaisimmillaan klassisessa mielessä on sitä, että käytetään html-nimistä kuvauskieltä, jolla koneelle kerrotaan, mitä sisältöä ja miten missäkin osassa dokumenttia on, ja kuinka halutaan se esittää. Kyseessä on siis staattinen kuvauskieli, ja se poikkeaa jonkin verran varsinaisesta ohjelmoinnista, jota kylläkin nykyisin verkkosivuihinkin voi liittyä runsaasti. 

Kiitos, tämäkin oli vain aika teoriavoittoista. Jos lähden koodaamaan niin mistä nämä "koodit" muodostuu? Mikä tekee hyväksi koodaajaksi? Se, että muistaa ulkoa näitä koodisarjoja vai mitä? todella typeriä kysymyksiä mutta ei ole mitään tietoa alasta. 

Ei, mitään ei tarvi nykyään oikeastaan muistaa ulkoa. Käytössä on ensinnäkin kehitystyökalut, jotka itse ehdottavat erilaisia komentoja joita kielestä löytyy kun esim. aloittaa kirjoittamaan käskyä. Lisäksi googlettamalla löytää aina kaiken, hetkessä.

Itse esimerkiksi olen vuoden aikana koodannut 10 eri kielellä / frameworkilla. En todellakaan muista niiden varattuja sanoja ja käskyjä ulkoa. Mutta jos tiedän vaikka että nyt mun pitää tehdä silmukka, enkä satu muistamaan miten se nyt TypeScriptillä meni, googletan "type script for loop" ja apu löytyy heti. Olen usein mennyt mukaan projekteihin jossa käytetystä ohjelmointikielestä ei ole mitään tietoa, mutta ei se haittaa mitään, kun tietää ohjelmoinnin perusrakenteet (peräkkäisyys, valinta ja toisto) ja miten niitä käytetään. Ne kunkin kielen käskyt näiden toteuttamiselle löytää kyllä googlella.

Tuo pitää paikkaansa. Harmi kun tuota ei ainakaan aikaisemmin ymmärretty ohjelmoinnin opetuksesta vaan hypättiin heti koodaamaan jollain c/c++/javalla ja opettamaan itse kieltä. Tärkeämpää olisi ollut opettaa juurikin nuo asiat ja "kuinka pilkotaan ongelmaa yhä pienemmiksi ja pienemmiksi". Aikoinaan muistaakseni ensimmäinen "järkevä" ohjelmoinnin kurssi oli "viimeiseksi jätetty" UML:n kurssi.

Näinpä. Olen huomannut että minua pidetään melkoisena guruna ja ihaillaan sitä että pystyn tuosta vaan tekemään ihan millä tahansa tekniikalla. Se ei tarvitse mitään muuta kuin kahta asiaa:

1) Juuri tuota että ymmärtää että ei se ohjelmointi ole perusteiltaan järin erilaista olipa kieli mikä tahansa, jolloin uuden kielen kanssa ainoa ongelma on etsiä juuri tämän kielen käyttämät käskyt. Joku nopea tutorial, sitten vaan tekemään, googlesta aina tarvittaessa tietoja lisää etsien.

2) Pirusti itseluottamusta. Ei saa pelätä ryhtyä yrittämään vaikkei vielä ymmärräkään kaikkea. Tämä on todella monen ongelma, että ollaan epävarmoja. En minä, täytyisi ensin käydä kursseja... En minä voi, kun en osaa tätä kieltä. Semmoinen ei oikein nykyaikana monessa firmassa käy, tai ainakin jää jonnekin keskitasoisten, rajoittuneesti asiakasprojekteissa käytettävien ylläpitäjien kastiin. Jotta on myytävissä eri asiakkaille ja eri hommiin, täytyy olla valmis hyppäämään aina uudelleen täysin tuntemattomaan, luottamaan yleiskokemukseensa joka kyllä kantaa tulipa vastaan mikä kieli tahansa.

Vierailija
58/59 |
07.12.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Koodaaminen on periaatteessa toimintaohjeiden laatimista. Ohjelmointi on sovittujen sanojen ja ilmaisujen käyttämistä koneen toiminnan selostamiseksi. Sitä voisi verrata vaikkapa ruoanlaittoon tai leipomiseen. Joku joka suunnittelee ruoan, laatii reseptiksi kutsutun ohjeen, ohjelman. Se ohjeen laatiminen on ohjelmointia. Resepti on siis seloste siitä, kuinka tulee toimia tiettyyn lopputulokseen pääsemiseksi. Koodaaminen tarkoittaa myös sitä sanana, että käytetään sovittua koodikieltä. Koska kone ei ymmärrä mitä sattuu normaalia luonnollista kieltä, ihan kuten reseptin lukijakaan ei ymmärrä tuntemattoman ihmisen omaa erikoisterminologiaa, vaan käytetään vakiintuneita nimityksiä ja mittoja (vehnäjauho, muna, desilitra, gramma). 

Verkkosivujen koodaus yksinkertaisimmillaan klassisessa mielessä on sitä, että käytetään html-nimistä kuvauskieltä, jolla koneelle kerrotaan, mitä sisältöä ja miten missäkin osassa dokumenttia on, ja kuinka halutaan se esittää. Kyseessä on siis staattinen kuvauskieli, ja se poikkeaa jonkin verran varsinaisesta ohjelmoinnista, jota kylläkin nykyisin verkkosivuihinkin voi liittyä runsaasti. 

Kiitos, tämäkin oli vain aika teoriavoittoista. Jos lähden koodaamaan niin mistä nämä "koodit" muodostuu? Mikä tekee hyväksi koodaajaksi? Se, että muistaa ulkoa näitä koodisarjoja vai mitä? todella typeriä kysymyksiä mutta ei ole mitään tietoa alasta. 

Ei, mitään ei tarvi nykyään oikeastaan muistaa ulkoa. Käytössä on ensinnäkin kehitystyökalut, jotka itse ehdottavat erilaisia komentoja joita kielestä löytyy kun esim. aloittaa kirjoittamaan käskyä. Lisäksi googlettamalla löytää aina kaiken, hetkessä.

Itse esimerkiksi olen vuoden aikana koodannut 10 eri kielellä / frameworkilla. En todellakaan muista niiden varattuja sanoja ja käskyjä ulkoa. Mutta jos tiedän vaikka että nyt mun pitää tehdä silmukka, enkä satu muistamaan miten se nyt TypeScriptillä meni, googletan "type script for loop" ja apu löytyy heti. Olen usein mennyt mukaan projekteihin jossa käytetystä ohjelmointikielestä ei ole mitään tietoa, mutta ei se haittaa mitään, kun tietää ohjelmoinnin perusrakenteet (peräkkäisyys, valinta ja toisto) ja miten niitä käytetään. Ne kunkin kielen käskyt näiden toteuttamiselle löytää kyllä googlella.

Tuo pitää paikkaansa. Harmi kun tuota ei ainakaan aikaisemmin ymmärretty ohjelmoinnin opetuksesta vaan hypättiin heti koodaamaan jollain c/c++/javalla ja opettamaan itse kieltä. Tärkeämpää olisi ollut opettaa juurikin nuo asiat ja "kuinka pilkotaan ongelmaa yhä pienemmiksi ja pienemmiksi". Aikoinaan muistaakseni ensimmäinen "järkevä" ohjelmoinnin kurssi oli "viimeiseksi jätetty" UML:n kurssi.

Näinpä. Olen huomannut että minua pidetään melkoisena guruna ja ihaillaan sitä että pystyn tuosta vaan tekemään ihan millä tahansa tekniikalla. Se ei tarvitse mitään muuta kuin kahta asiaa:

1) Juuri tuota että ymmärtää että ei se ohjelmointi ole perusteiltaan järin erilaista olipa kieli mikä tahansa, jolloin uuden kielen kanssa ainoa ongelma on etsiä juuri tämän kielen käyttämät käskyt. Joku nopea tutorial, sitten vaan tekemään, googlesta aina tarvittaessa tietoja lisää etsien.

2) Pirusti itseluottamusta. Ei saa pelätä ryhtyä yrittämään vaikkei vielä ymmärräkään kaikkea. Tämä on todella monen ongelma, että ollaan epävarmoja. En minä, täytyisi ensin käydä kursseja... En minä voi, kun en osaa tätä kieltä. Semmoinen ei oikein nykyaikana monessa firmassa käy, tai ainakin jää jonnekin keskitasoisten, rajoittuneesti asiakasprojekteissa käytettävien ylläpitäjien kastiin. Jotta on myytävissä eri asiakkaille ja eri hommiin, täytyy olla valmis hyppäämään aina uudelleen täysin tuntemattomaan, luottamaan yleiskokemukseensa joka kyllä kantaa tulipa vastaan mikä kieli tahansa.

Kiitos sinulle ehkä koko ketjun antoisimmasta postauksesta, tällaisia harvoin näkee vauva.fissä muutenkaan. Opin paljon uutta! Myös hienosti tulee läpi tuo intohimosi alaasi kohtaan ja rohkeus tarttua uusiin asioihin. Ehkäpä ajan kuluessa ajattelu koodaukseen liittyenkin muuttuu niin että niistä tulee ihmisten puhumiin kieliin vertautuvia, arkipäiväisempiä asioita. 

Vierailija
59/59 |
07.12.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Vierailija kirjoitti:

Todella mielenkiintoista. Jos oikeasti halutaan erityyppisiä henkilöitä mukaan koodausmaailman niin pitäisi osata esittää koko ala vähän eri tavoin.  Mielestäni sitääkän ei ole tuotu esiin, että peruskoodaajista ei ole pulaa, vaan monipuolisista koodareista, jotka osaavat paljon muutakin. 

Ei alalla oikeasti ole konsensusta varmaan muusta kuin siitä, että hyviä tekijöitä tarvitaan lisää.

Ohjelmointialoilla tuottavuuserot ovat valtavia. Yksi osaava henkilö pystyy aivan oikeasti tekemään yli kymmenen vähemän osaavan henkilön verran tulosta. Vähemmän osaavat voivat sitten joskus olla riippakivi muille siten, että kaikkia heidän tekemisiään on vahdittava huomattavan tarkkaan ja läheltä.

Ja sitten yritys itse pystyy toki toimintakulttuurillaan leikkaamaan tuottavuuden vähintään kymmenesosaan, jos tuotekehitystä tehdään huonolla tavalla.

Tässä kontekstissa voi miettiä, mistä joissain 12 viikon "koodarikouluissa" ja "koodaajapulassa" on oikeasti kyse.

Missäpä alalla ei tarvittaisi ihmisiä jotka tekevät työtä kymmenen edestä? Ihan sama meno oli isossa siivousfirmassa, kun siellä olin töissä. Porukka vaihtui, kukaan ei tuntenut isoa siivottavaa rakennusta, kesti kauan oppia rutiinit... Vanha ja harjaantunut työntekijä oli varmasti kymmenen siivoojan arvoinen ja joutui korjaamaan muiden jälkiä.

Totta kai työnantajilla on aina ihan hirveä pula näistä kymmenen edestä töitä paiskivista ihmisistä. Kymmenkertaista palkkaa kun ei yleensä kuitenkaan tarvitse maksaa...

Kirjoita seuraavat numerot peräkkäin: seitsemän kaksi viisi