Koodaus kirja

Aloittelijanrtti

Haluaisin opetella koodaamaan pelejä, tai ainakin päästä alkuun.

Kannattaako 14 vuotiaan aloittaa sellaisilla alakoululaisille tarkoitetuilla kirjoilla? Vaiko onko ne vähän liian yksinkertaisia/helppoja?

Voiko kirjan avulla opetella koodaamaan, vai täytyykö mennä jonnekkin kurssille?

Kokemuksia? Minkä nimistä kirjaa suosittelisit?

23

1621

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • ei-helppoa-kieltä

      Ei alkeiden opettelusta mitään haittaa ole.
      Ohjelmoinnin opettelu on joka tapauksessa suurimmaksi osaksi itseopiskelua.

      Olen huomannut että monessakin jonkun tietyn kielen ohjelmoinnin oppikirjassa edetään liian nopeasti. Ensin on vaan joku Hello World esimerkki ja sitten jo hypätäänkin värkkäämään osoitteilla ja muilla sekavuuksilla.

      Sellaiset kirjat on selvästi suunniteltu jo jonkun toisen ohjelmointikielen hallitsevalle, ei alkeisopetusta tarvitsevalle.

      Ja jos jossain ohjelmoinnin oppikirjassa kehutaan että "tämä ohjelmointikieli on helppo..." niin siinä reilusti kyllä valehdellaan. Ei mikään ohjelmointikieli eikä mikään muukaan kieli ole helppo.

      • Ohjelmointikielissä ensimmäisen oppiminen on se kynnys. Seuraavissa on lähinnä se, että onko kieli funktionaalinen, imperatiivinen vai declaratiivinen ja lisäksi oliomallinnus tuo syntaksiin lisää.


    • cfascfaw

      Melkein kannattaa aloittaa jostain helposta ja esivalmiista pelimoottori pohjasta, niin pääsee ehkä paremmin jyvälle.

      • ei-helppoa-kieltä

        Varmaan hyödyllistä, mutta siinäkin täytyy olla perehtynyt ohjelmointiin ja käytettyyn ohjelmointikieleen selvästi alkeita enemmän, että koodia edes jotenkin olisi mahdollista ymmärtää.


    • Asentele Lazarus, Delphi tai joku muu helposti omaksuttavissa oleva ympäristö, ja koita onkia tietoa, kuinka saat aikaa yksinkertaisen pelin jossa mitataan reaktioaikaa.

      Aloitus tilanne jossa pelaaja painaa koko ajan A kirjainta toisella kädellä, ja Ä kirjainta toisella kädellä, kun ruudulla olevat kolme palloa ovat saman väriset (pallot vaihtavat väriä eri nopeuksilla), pelaaja päästää molemmat näppäimet vapaaksi. Voittaja on se joka omistaa lyhyemmän ajan 100 parhaan ajan tilastossa.

      Pelin idea on yksinkertainen ja sen voi toteuttaa yksinkertaisin menetelmin, mutta myös haastava, kun laajennat pelin ominaisuuksia niin että myös pelaaminen kaverin kanssa verkon yli onnistuu. Tai jotain muuta yksinkertaista, tärkeintä on motivoitua ja nauttia tuloksista.

      ELI
      Tavoitteellinen opiskelu tuottaa tulosta, ei se että yrität päntätä päähäsi jonkin kirjan kannesta kanteen. Vain tekemällä oppii, luetut jutut unohtuu heti kun pistät kirjan kannet kiinni.

      • Ei Lazarusta eikä Delphiä. Sillä tekemällä saa vain aivovaurion kun työkalu ohjaa haitallisiin ohjelmointikäytäntöihin. Vähän vastaavalla tavalla miten Basic kieli aiheutti aivovaurioita 80-luvulla.

        Python mahdollistaa myös joidenkin asioiden tekemisen huonosti mutta siinä on erittäin matala kynnys alkaa tekemään, sille on sopiva kirja ja itse kieli on hyödyllinen työkalu monessakin hommassa.

        Peliohjelmonnissa parempi kieli tällä hetkellä olisi kyllä Javascript ja vähiten aivovauriota varmaan tulisi Schemestä, että siitä voi hyvin punnita. Lazarus ja Delphi ovat hullun hommaa. Mikään ominaisuus ei puolla niiden käyttöä.


      • BrainMD

        -Ei Lazarusta eikä Delphiä. Sillä tekemällä saa vain aivovaurion kun työkalu ohjaa haitallisiin ohjelmointikäytäntöihin. Vähän vastaavalla tavalla miten Basic kieli aiheutti aivovaurioita 80-luvulla.-
        No nyt se selvisi, mistä sinun aivovaurio on peräisin.


      • BrainMD kirjoitti:

        -Ei Lazarusta eikä Delphiä. Sillä tekemällä saa vain aivovaurion kun työkalu ohjaa haitallisiin ohjelmointikäytäntöihin. Vähän vastaavalla tavalla miten Basic kieli aiheutti aivovaurioita 80-luvulla.-
        No nyt se selvisi, mistä sinun aivovaurio on peräisin.

        Basic aiheutti joo aivovauriota.

        Niitä aivovaurioita voi toki korjata opettelemalla tekemään asioita oikein mutta silloin asioiden oppimisessa kestää pidempään. Helpommalla selviää kun keskittyy opettelemaan oikeita asioita eikä missään nimessä mitään ObjectPascal LCL/VCL oksennusta.


    • imnotarobot123

      1 vaihtoehto on tehdä joku Direct3D -opetussarja, löytyy aika hyviäkin sellaisia joissa on opetettu aivan kädestä pitäen miten tehdään direct3d-grafiikkaa, juurikin pelikäyttöön tarkoitettuahan d3d on.

      Microsoftilta saat ilmaiseksi jonkun visual c -kääntäjänkin opiskelijaversion.

      Minäkin teen huvikseni d3d-opetustehtäviä silloin tällöin, vaikka en pelejä sinänsä ohjelmoikaan aina.

      Botin-tunnistus-peli joka on sivustolla, aika hauska yritä huomata 1:n pixelin kokoinen autokin jostain kuvasta puskan takaa, tuota pelaa oikeastaan huvikseenkin.

      • Riippuu tietysti henkilöstä mutta 14-vuotiaalla ei vältsisti ole trigonometriaa riittävästi opeteltuna että turhan korkea kynnys tulee, ja ei nyt hemmetissä mitään C :aa.

        Jos nyt jotain 3D häkkyröitä haluaa niin ennemmin Microsoftin BabylonJS: https://www.babylonjs.com/


      • itseoppinut

        No jaa, minä opettelin C :lla ohjelmoimaan 10-vuotiaana. Tosin C on aika paljon muuttunut 25 vuodessa. Mutta jos nopeus riittää, niin Python on hyvä, nopeampiin juttuihin C on hyvä.


      • Aika harvassa tilanteet missä Pythonin suorituskyky ei riittäisi.


      • trollerson
        M-Kar kirjoitti:

        Aika harvassa tilanteet missä Pythonin suorituskyky ei riittäisi.

        Ainakin tuo Babylon JS:n ja WebGL:n suorituskyky vaikutti heikolta verrattuna natiivipeleihin.

        FPS oli minulla 15 - 60 fps välillä, 60 tuossa varmaan oli se tavoite FPS / katto, mutta aika reippaasti se tippuu sen alle jos skenessä on muutakin kuin neliön muotoinen laatikko.

        Muuten vaikuttaa kyllä hyvältä ja helpolta.


      • trollerson kirjoitti:

        Ainakin tuo Babylon JS:n ja WebGL:n suorituskyky vaikutti heikolta verrattuna natiivipeleihin.

        FPS oli minulla 15 - 60 fps välillä, 60 tuossa varmaan oli se tavoite FPS / katto, mutta aika reippaasti se tippuu sen alle jos skenessä on muutakin kuin neliön muotoinen laatikko.

        Muuten vaikuttaa kyllä hyvältä ja helpolta.

        Nykyisin varmaan 10x vähemmän suorituskykyä.

        Yleensä sillä ei ole mitään merkitystä kun suorituskykyä saa kuitenkin herkästi sen 60fps. Ainakin minulla rullaa täysillä vaikka on kohta 7v vanha kone.

        Ja vaikka suorituskykyä tarvitsisikin enemmän niin ei merkitystä koska siinä vaiheessa kun se oma hengentuote on valmis niin selaimissa varmaan WebAssembly johon voi kääntää sen koodin sit.

        Semmoinen yleisohje ollut ohjelmistokehityksessä aina, että pitäisi pyrkiä valitsemaan mahdollisimman selkeätä ja futureproof tekniikkaa, yleensä sitä mikä on tulossa käyttöön ennemmin kuin semmoinen mitä on käytetty 10v jotta saadaan koodille mahdollisimman pitkä käyttöikä.

        Sovellusohjelmat on tavallisesti uudelleenkirjoitettu 12v välein ja mitä siistimmin on tehty niin sitä helpompaa on se siirtäminen. Suorituskyky ollut aina aika yhdentekevää kun se paranee kokoaika kun sovellusalusta, rauta, käyttöjärjestelmä ja oma koodi päivittyy.


    • enevpk1

      Kaikenlaisia kirjoja on aina hyvä lukea. Scratch saattaa vaikuttaa vähän lapselliselta, mutta kyllä siinä ihan oikeasti ohjelmoidaan. Ja hyviä esimerkkejä on tarjolla, joiden koodi saattaa silti olla perin yksinkertainen. Koodauksen oppiminen edellyttä myös itse tekemistä

    • arvelija-

      luulisi, että netistä googlettamalla löytyy jotain opetusmateriaalia

    • http://www.helloruby.com/fi Linda Liukas - Hello Ruby on paljon huomiota saanut kirja.

      Koottu lause, ehto lause, iterointi eli silmukat, aliohjelmat, muuttujat, tiedon välittäminen aliohjelmalle ja muut perusasiat on joka ohjelmointikielessä. Pascal oli aikoinaan paljon käytetty opetuskieli. Siitä syntyivät Delphi ja Lazarus. Helpompia ja järkevämpiä ne ovat kuin C ja sen muunnokset. Perusasiat kannattaa opetella jollain selkeällä kielellä. Ohjelmointia voi opetella omin päin, koska kääntäjä ilmoittelee virheistä.
      Tämä naurattaa aina.... eri ympäristöissä saa erilaisen vastauksen.
      $ make love
      make: *** No rule to make target 'love'. Seis.

      • Niin silloin oli kun sillä oli jotain merkitystä. Opetuksessa on käytetty sen jälkeen Javaa ja Pythonia. Lisp on myös ollut käytetty opetuksessa.

        Ei Pascalia enää käytetä opetuksessa kun tiedetään että se ohjaa kehittäjää huonoihin ohjelmointimalleihin.

        Varmaan ihan hyvä kirja tuo Hello Ruby, mutta harmillisesti Ruby alkoi vähitellen kuolemaan.


    • En ymmärrä miksi Pascal ohjaa huonoihin ohjelmointimalleihin.
      Ei sen rakenne paljoa eroa C:stä tai Javasta. Muuttujien tyypit toki tarkistetaan paremmin.
      Merkkijonoja, osoitteita, kokonaislukuja ym ei pääse sotkemaan samalla tavalla kuin C:ssä.

      • "En ymmärrä miksi Pascal ohjaa huonoihin ohjelmointimalleihin.
        Ei sen rakenne paljoa eroa C:stä tai Javasta."

        No eihän se C eikä Java ohjaa myöskään hyviin malleihin. C eroaa merkittävästi edukseen lähinnä siinä, että on defacto systeemiohjelmointikieli, että jos matalaa tasoa tekee niin C on oikea työkalu, mutta nyt ei ole siitä kyse sellaisesta tarpeesta. Javan vika taas se, että väkisin ohjaa oliokoodiin.

        Python on selvästi parempi opetuksessa.


    • Pythonia en tunne, mutta paljon sitä käytetään. Sillä hyvä aloittaa. Ei tarvitse muuttujia esitellä niin tarkkaan. Pythonista on useampi versio. 2.7 alkaa olla historiaa.

      • Vielä parempi se, että voi ohjelmoida paljon ilman muuttujia.

        Se olisi oikeastaan aika hyvä oppia varhaisessa vaiheessa, että sijoutusoperaattoria tulisi välttää.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Et olisi piilossa enää

      Vaan tulisit esiin.
      Ikävä
      96
      4799
    2. Pekka Aittakumpu ja Jenni Simula kiistävät väitetyn aviorikoksen

      "Y­lei­ses­sä tie­dos­sa oleva asia”, sanovat Kalevan lähteet https://www.kaleva.fi/pekka-aittakumpu-ja-jenna-simula-ki
      Maailman menoa
      168
      4343
    3. Onko jollakin navetassa kuolleita eläimiä

      Onko totta mitä facebookissa kirjoitetaan että jonkun navetassa olisi kuolleita eläimiä? Mitä on tapahtunut?
      Puolanka
      85
      4179
    4. Minä en ala kenenkään perässä juoksemaan

      Voin jopa rakastaa sinua ja kääntää silti tunteeni pois. Tunteetkin hälvenevät aikanaan, poissa silmistä poissa mielestä
      Ikävä
      116
      2668
    5. Miksi olet riittämätön kaivatullesi?

      Mistä asioista tunnet riittämättömyyden tunnetta kaipaamaasi ihmistä kohtaan? Miksi koet, että et olisi tarpeeksi hänell
      Ikävä
      137
      2658
    6. Hymysi saa tunteet

      Pintaan❤️ jos et tarkoita niin älä tee sitä
      Ikävä
      44
      2197
    7. Tiedän, että emme yritä mitään

      Jos kohtaamme joskus ja tilaisuus on sopiva, voimme jutella jne. Mutta kumpikaan ei aio tehdä muuta konkreettista asian
      Ikävä
      28
      2087
    8. Aloitetaan puhtaalta pöydältä

      Mukavaa iltaa mukaville. 😊 ❤️ ⚜️ Minusta ei kaikki täällä tykkää, eikä tarvitsekaan. Kun eivät ymmärrä, niin sitten ei
      Ikävä
      226
      1870
    9. Kuvaile kaivattusi

      ulkonäköä?
      Ikävä
      88
      1749
    10. Näin pitkästä aikaa unta sinusta

      Oltiin yllättäen jossain julkisessa saunassa ja istuttiin vierekkäin, siellä oli muitakin. Pahoittelin jotain itsessäni
      Ikävä
      9
      1737
    Aihe