Mikä vaihtoehto?

Harkitsen uuden harrastuksen aloittamista. Ohjelmointi rupesi yllättäen kiinnostamaan, mutta noita ohjelmointi kieliä tuntuisi olevan melko runsas määrä; Java, C , PHP ja niin edelleen. Mitä minun kannattaisi aloittaa opettelemaan, että siitä taidosta olisi vielä jotain hyötyä parin vuoden päästä? MM. Pelien koodaus on lähellä sydäntä
8899
Äänestä

Muut lukivat myös

Vastaukset 8

Vanhimmat

Liitypä vaikka Ohjelmointiputka-sivuille.

http://www.ohjelmointiputka.net/

Kerro heille, että haluat opetella peliohjelmoinnin alkeet Allegro-kirjastolla tai SDL-kirjastolla ja C -kielellä. Saat varmasti apua, jos kyselet asiallisesti. Kysy kumpaa kirjastoa he noista suosittelevat.

Jos C tuntuu vaikealta, voit harkita Java- tai C#-kieliä. Putkan pojiltakin saa kielivalinnasta mielipiteitä. C on kuitenkin yleisesti käytössä pelialalla, joten se kai olisi yhä paras vaihtoehto pelikoodauksesta kiinnostuneelle.

Toinen tapa aloittaa on opetella ensin jokin pelien skriptaukseen käytetty kieli, kuten Lua tai Python. Siitä voit siirtyä sitten C :aan, kun ohjelmoinnin peruskäsitteet ovat selviä. Opettelukielinä ne ovat paljon anteeksiantavampia ja helpompia. Yksinään käytettynä niillä ei kuitenkaan saa C :n tavoin koneesta tehoja irti.

Mutta eiköhän se Putka ole hyvä paikka tämmöisille kysmille. Täällä nimettömänä juoksee kaikenlaisia kummia hiippareita. Siellä on sentään moderaattorit virassa ;-)

Äänestä

Kielen valinta ohjelmoinnissa on lähes analoginen tapaus verrattuna siihen että metsuri valitsee moottorisahaa. Kyllä pöllinteko luonnistaa ammattilaiselta vaikka sahana olisi Husqvarna, McCulloch, Partner, Stihl, ...what ever.

Opettele siis JOKU kieli.

Äänestä
  • On toki muodikasta todeta, että kaikki ohjelmointikielet ovat tasavertaisia, tai kielen valinnalla ei ole "oikeasti merkitystä", mutta eiväthän nämä asiat todeksi muutu, vaikka niitä kuinka toistelee.

    Käytännössä oikean kielen valinta usein vaikuttaa siihen, saadaanko projekti koskaan kunnolla valmiiksi ja kuinka paljon se oikeasti tulee maksamaan. Eri kielillä on eri vahvuudet, ja lisäksi toiset kielet ovat toisia vahvempia. Eroa ei voi mitata teoreettisella tasolla, koska siellä vain havaitaan, että kaikki kielet ovat Turing-täydellisiä.

    Kielen vahvuuden mielekäs mittari on se, kuinka monimutkaisia muutoksia ohjelman rakenteeseen voi tehdä, ilman että joutuu tekemään muutoksia koko ohjelmakoodiin. Alkeiskurssilla opimme modulaarisuuden etuja: Jos ohjelman jonkin kohdan eristää muista ohjelman kohdista, sitä voi muokata ilman, että ohjelman muu toiminta muuttuu. Mitä korkeampi abstraktiotaso kielessä on, sitä helpompi on se jakaa modulaarisiin osiin - ja sitä vahvempi kieli. Tätä voisi pitää abstraktiotason _määritelmänä_.

    Perinteisesti on toki havaittu, että korkeasta abstraktiosta joutuu joskus maksamaan hinnan suoritusajassa, koska korkean tason kielet ovat joissakin tilanteissa matalan tason kieliä hitaampia. Nopeudellakin on merkitystä, esim. suositun webbipalvelun ylläpidossa tai alkuperäistä kysyjää kiinnostavassa peliohjelmoinnissa.

    Pitää siis tehdä paras valinta kielen voimakkuuden ja suorituskyvyn välillä. Sen voi tehdä vain, jos on kokemusta useista kielistä ja todellista tietoa niiden toiminnasta.

    Lisäksi saatavilla olevat kirjastot ja työkalut vaikuttavat kehitysvaiheen nopeuteen merkittävästi. Kaikki oikeat ohjelmat kuitenkin tehdään oikeassa maailmassa, jossa on kaikenlaisia ikäviä rajoitteita ja vaatimuksia, joita teoria ei käsittele.

    Pöllintekijä naurettaisiin pihalle, jos hän ehdottaisi, että tehdäänpä 3d-pelimoottori PHP:lla. Tai miten olisi uuden webbipalvelun avaaminen 16-bittisen prosessorin konekielellä? Kärjistetyistä esimerkeistä voisi siirtyä realistisempiin, mutta pointti on tietenkin jo selvä. Ohjelmointialan pöllit ovat aika paljon monipuolisempia kuin ne, mitä metsästä saa.

    Käytännössä käy niin, että jos valitsee ohjelmointikielten "Husqvarnan", saa sitten töissä tehdä hommia, joihin Husse soveltuu, jos sellaisia on. Saattaa sitten kaduttaa, kun ei valinnutkaan toista kieltä tai kahta. Onhan toki fiksulla aina mahdollisuus kartuttaa kielitaitoa myöhemmin, onneksi.

    >>Opettele siis JOKU kieli.>>

    No niin, brainfuckin oppii päivässä, ja se on "JOKU kieli". Olisiko kuitenkin viisampaa aloittaa kielestä, joka soveltuu opettelijalle sekä oikeisiin hommiin, niin pääsee pikemmin vauhtiin?

    Alkuperäiselle kysyjälle suosittelen kieltä, johon saa neuvoja järkeviltä ihmisiltä. Ei kannata tuhlata aikaa höpöhöpökieliin, joista luvataan suuria, mutta joilla ei saa itse tuloksia kohtuullisen opetteluajan jälkeen. Eikä kannata uskoa niitä, joiden mielestä kielen valinnalla ei ole väliä. He tuskin osaavat mitään kieltä hyvin, kun kerran eivät vain näe niiden eroja.

    Tai lyhyesti: Käytä aluksi sitä, mitä kaveritkin käyttävät.

    Äänestä

  • Taas kerran kirjoitti:

    On toki muodikasta todeta, että kaikki ohjelmointikielet ovat tasavertaisia, tai kielen valinnalla ei ole "oikeasti merkitystä", mutta eiväthän nämä asiat todeksi muutu, vaikka niitä kuinka toistelee.

    Käytännössä oikean kielen valinta usein vaikuttaa siihen, saadaanko projekti koskaan kunnolla valmiiksi ja kuinka paljon se oikeasti tulee maksamaan. Eri kielillä on eri vahvuudet, ja lisäksi toiset kielet ovat toisia vahvempia. Eroa ei voi mitata teoreettisella tasolla, koska siellä vain havaitaan, että kaikki kielet ovat Turing-täydellisiä.

    Kielen vahvuuden mielekäs mittari on se, kuinka monimutkaisia muutoksia ohjelman rakenteeseen voi tehdä, ilman että joutuu tekemään muutoksia koko ohjelmakoodiin. Alkeiskurssilla opimme modulaarisuuden etuja: Jos ohjelman jonkin kohdan eristää muista ohjelman kohdista, sitä voi muokata ilman, että ohjelman muu toiminta muuttuu. Mitä korkeampi abstraktiotaso kielessä on, sitä helpompi on se jakaa modulaarisiin osiin - ja sitä vahvempi kieli. Tätä voisi pitää abstraktiotason _määritelmänä_.

    Perinteisesti on toki havaittu, että korkeasta abstraktiosta joutuu joskus maksamaan hinnan suoritusajassa, koska korkean tason kielet ovat joissakin tilanteissa matalan tason kieliä hitaampia. Nopeudellakin on merkitystä, esim. suositun webbipalvelun ylläpidossa tai alkuperäistä kysyjää kiinnostavassa peliohjelmoinnissa.

    Pitää siis tehdä paras valinta kielen voimakkuuden ja suorituskyvyn välillä. Sen voi tehdä vain, jos on kokemusta useista kielistä ja todellista tietoa niiden toiminnasta.

    Lisäksi saatavilla olevat kirjastot ja työkalut vaikuttavat kehitysvaiheen nopeuteen merkittävästi. Kaikki oikeat ohjelmat kuitenkin tehdään oikeassa maailmassa, jossa on kaikenlaisia ikäviä rajoitteita ja vaatimuksia, joita teoria ei käsittele.

    Pöllintekijä naurettaisiin pihalle, jos hän ehdottaisi, että tehdäänpä 3d-pelimoottori PHP:lla. Tai miten olisi uuden webbipalvelun avaaminen 16-bittisen prosessorin konekielellä? Kärjistetyistä esimerkeistä voisi siirtyä realistisempiin, mutta pointti on tietenkin jo selvä. Ohjelmointialan pöllit ovat aika paljon monipuolisempia kuin ne, mitä metsästä saa.

    Käytännössä käy niin, että jos valitsee ohjelmointikielten "Husqvarnan", saa sitten töissä tehdä hommia, joihin Husse soveltuu, jos sellaisia on. Saattaa sitten kaduttaa, kun ei valinnutkaan toista kieltä tai kahta. Onhan toki fiksulla aina mahdollisuus kartuttaa kielitaitoa myöhemmin, onneksi.

    >>Opettele siis JOKU kieli.>>

    No niin, brainfuckin oppii päivässä, ja se on "JOKU kieli". Olisiko kuitenkin viisampaa aloittaa kielestä, joka soveltuu opettelijalle sekä oikeisiin hommiin, niin pääsee pikemmin vauhtiin?

    Alkuperäiselle kysyjälle suosittelen kieltä, johon saa neuvoja järkeviltä ihmisiltä. Ei kannata tuhlata aikaa höpöhöpökieliin, joista luvataan suuria, mutta joilla ei saa itse tuloksia kohtuullisen opetteluajan jälkeen. Eikä kannata uskoa niitä, joiden mielestä kielen valinnalla ei ole väliä. He tuskin osaavat mitään kieltä hyvin, kun kerran eivät vain näe niiden eroja.

    Tai lyhyesti: Käytä aluksi sitä, mitä kaveritkin käyttävät.

    nörteillä ei ees ole kavereita =D

    Äänestä

  • Taas kerran kirjoitti:

    On toki muodikasta todeta, että kaikki ohjelmointikielet ovat tasavertaisia, tai kielen valinnalla ei ole "oikeasti merkitystä", mutta eiväthän nämä asiat todeksi muutu, vaikka niitä kuinka toistelee.

    Käytännössä oikean kielen valinta usein vaikuttaa siihen, saadaanko projekti koskaan kunnolla valmiiksi ja kuinka paljon se oikeasti tulee maksamaan. Eri kielillä on eri vahvuudet, ja lisäksi toiset kielet ovat toisia vahvempia. Eroa ei voi mitata teoreettisella tasolla, koska siellä vain havaitaan, että kaikki kielet ovat Turing-täydellisiä.

    Kielen vahvuuden mielekäs mittari on se, kuinka monimutkaisia muutoksia ohjelman rakenteeseen voi tehdä, ilman että joutuu tekemään muutoksia koko ohjelmakoodiin. Alkeiskurssilla opimme modulaarisuuden etuja: Jos ohjelman jonkin kohdan eristää muista ohjelman kohdista, sitä voi muokata ilman, että ohjelman muu toiminta muuttuu. Mitä korkeampi abstraktiotaso kielessä on, sitä helpompi on se jakaa modulaarisiin osiin - ja sitä vahvempi kieli. Tätä voisi pitää abstraktiotason _määritelmänä_.

    Perinteisesti on toki havaittu, että korkeasta abstraktiosta joutuu joskus maksamaan hinnan suoritusajassa, koska korkean tason kielet ovat joissakin tilanteissa matalan tason kieliä hitaampia. Nopeudellakin on merkitystä, esim. suositun webbipalvelun ylläpidossa tai alkuperäistä kysyjää kiinnostavassa peliohjelmoinnissa.

    Pitää siis tehdä paras valinta kielen voimakkuuden ja suorituskyvyn välillä. Sen voi tehdä vain, jos on kokemusta useista kielistä ja todellista tietoa niiden toiminnasta.

    Lisäksi saatavilla olevat kirjastot ja työkalut vaikuttavat kehitysvaiheen nopeuteen merkittävästi. Kaikki oikeat ohjelmat kuitenkin tehdään oikeassa maailmassa, jossa on kaikenlaisia ikäviä rajoitteita ja vaatimuksia, joita teoria ei käsittele.

    Pöllintekijä naurettaisiin pihalle, jos hän ehdottaisi, että tehdäänpä 3d-pelimoottori PHP:lla. Tai miten olisi uuden webbipalvelun avaaminen 16-bittisen prosessorin konekielellä? Kärjistetyistä esimerkeistä voisi siirtyä realistisempiin, mutta pointti on tietenkin jo selvä. Ohjelmointialan pöllit ovat aika paljon monipuolisempia kuin ne, mitä metsästä saa.

    Käytännössä käy niin, että jos valitsee ohjelmointikielten "Husqvarnan", saa sitten töissä tehdä hommia, joihin Husse soveltuu, jos sellaisia on. Saattaa sitten kaduttaa, kun ei valinnutkaan toista kieltä tai kahta. Onhan toki fiksulla aina mahdollisuus kartuttaa kielitaitoa myöhemmin, onneksi.

    >>Opettele siis JOKU kieli.>>

    No niin, brainfuckin oppii päivässä, ja se on "JOKU kieli". Olisiko kuitenkin viisampaa aloittaa kielestä, joka soveltuu opettelijalle sekä oikeisiin hommiin, niin pääsee pikemmin vauhtiin?

    Alkuperäiselle kysyjälle suosittelen kieltä, johon saa neuvoja järkeviltä ihmisiltä. Ei kannata tuhlata aikaa höpöhöpökieliin, joista luvataan suuria, mutta joilla ei saa itse tuloksia kohtuullisen opetteluajan jälkeen. Eikä kannata uskoa niitä, joiden mielestä kielen valinnalla ei ole väliä. He tuskin osaavat mitään kieltä hyvin, kun kerran eivät vain näe niiden eroja.

    Tai lyhyesti: Käytä aluksi sitä, mitä kaveritkin käyttävät.

    Pitkälti asiaa mutta väärä lähtökohta.

    Alkuperäinen kysyjähän oli opettelemassa ohjelmointia ja siinä vaiheessa olisi parempi jos ei tietäisi ollenkaan että ohjelmointikieliä on erilaisia.

    Ohjelmoinnissa kokonaisuuden hahmottaminen ja prosessin hallinta on paljon tärkeämpää kuin lopullinen koodaaminen joka voidaan, maalaisjärjen mahdollistamalla harkinnalla, tehdä millä kielellä hyvänsä.

    Siis edelleen aloittajalle neuvo: Opettele JOKU kieli. Projektissa tarvittavan kielen oppii hetkessä kun on joku kieli pohjalla ja muuten ohjelmointi "hanskassa".

    Äänestä

  • sama. kirjoitti:

    Pitkälti asiaa mutta väärä lähtökohta.

    Alkuperäinen kysyjähän oli opettelemassa ohjelmointia ja siinä vaiheessa olisi parempi jos ei tietäisi ollenkaan että ohjelmointikieliä on erilaisia.

    Ohjelmoinnissa kokonaisuuden hahmottaminen ja prosessin hallinta on paljon tärkeämpää kuin lopullinen koodaaminen joka voidaan, maalaisjärjen mahdollistamalla harkinnalla, tehdä millä kielellä hyvänsä.

    Siis edelleen aloittajalle neuvo: Opettele JOKU kieli. Projektissa tarvittavan kielen oppii hetkessä kun on joku kieli pohjalla ja muuten ohjelmointi "hanskassa".

    Nimimerkki "Taas kerran" painotti ansiokkaasti kielivalinnan merkitystä. Sääli, ettei pointti mennyt jakeluun.

    Kun alkuperäinen kysyjä oli kiinnostunut ohjelmoinnin opiskelusta ja haluaisi koodailla vähän pelejä, on aika julmaa sanoa ettei kielivalinnalla ole väliä. Väärään kieleen polkaistessaan kysyjä saattaa menettää kiinnostuksensa ohjelmointiin parissa päivässä. ("Miksi tämä on niin s**tanan monimutkaista?"-fiilis voi tulla vastaan esim. C :n kanssa aloitellessa varsin nopeasti.)

    Kielisuositukseni riippuu siitä, millaisia pelejä kysyjä haluaisi koodailla. Selaimella pelattavan tekstiseikkailun toteuttaminen on ihan erilaista kuin paikallisella koneella pelattavan arcade-pelin, joten niihin on syytä valita ihan eri kielet --- eikä vain JOTAIN kieltä(!). Ohjelmointia ei pidä tehdä kielivalinnalla sen vaikeammaksi kuin on pakko.

    Edes jonkin kielen mainitakseni, olen usein suositellut ensimmäiseksi ohjelmointikieleksi Pythonia. Sen pygame-kirjasto tukee arcade-peliohjelmointia. Pygamelle on monta tutoriaalia ja runsaasti koodia, joilla juonesta pitäisi päästä kiinni:

    http://www.pygame.org/wiki/tutorials

    Äänestä

"Pelien koodaus on lähellä sydäntä"

C64 Basic tai isompia pelejä varten C64 konekieli.

Äänestä

Jos aloitat ohjelmoimisen, kannattaa opiskella ensin Basic -kieltä.

Terv. Jake (synt. 96)

Äänestä

Kommentoi aloitusta


Aloittelija123 kirjoitti:

Harkitsen uuden harrastuksen aloittamista. Ohjelmointi rupesi yllättäen kiinnostamaan, mutta noita ohjelmointi kieliä tuntuisi olevan melko runsas määrä; Java, C , PHP ja niin edelleen. Mitä minun kannattaisi aloittaa opettelemaan, että siitä taidosta olisi vielä jotain hyötyä parin vuoden päästä? MM. Pelien koodaus on lähellä sydäntä

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu