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

1537

    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. Milloin ajattelit

      Nähdä minut? Onko jotain odotuksia?
      Ikävä
      138
      1668
    2. Yksi mies ajatteli hyvin pitkään

      ja hänen kaipauksensa menetti kiinnostuksensa häneen…
      Ikävä
      112
      1270
    3. Ihastuin sun kaksoisolentoon

      Kaipaan sitä nyt tästä eteenpäin. Joskus käy näin. 👋🏻
      Ikävä
      169
      1192
    4. Maailmanlaajuinen tietokone ongelma?

      Kuinka systeemit voidaan rakentaa niin että yksi tietokone ongelma vaikuttaa miljardin ihmisen elämään jopa viikkokausia
      Maailman menoa
      86
      1097
    5. Minä vaan masennun yksinäni

      Viettäkää mukava perjantai ilta ja kiva viikonloppu. 🌃🌞🐺💤
      Ikävä
      188
      912
    6. Monenko kanssa olet harrastanut seksiä

      tänä aikana kun olet kaivattuasi kaipaillut?
      Ikävä
      83
      835
    7. Ketä kaivattusi mielestäsi muistuttaa

      ulkonäöllisesti?
      Ikävä
      39
      819
    8. Hyvää yötä naiselle.

      Olitko sä taas lihonut? Hyh Hyh mieheltä jonka tunnet
      Ikävä
      89
      798
    9. Nainen voi rakastaa

      Ujoakin miestä, mutta jos miestä pelottaa näkeminenkin, niin aika vaikeaa on. Semmoista ei varmaan voi rakastaa. Miehelt
      Ikävä
      76
      748
    10. Naantalissa kohahtaa

      Yli 4 vuotta puhelimeen, tietokoneelle murtautumista sekä Whatsapp urkintaa Naantalissa hakkeritiimin jäseniä
      Naantali
      137
      692
    Aihe