Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Mikä kieli aloittelijalle?

Sivun loppuun

Kasperi [27.03.2012 20:35:16]

#

Moi!

Olen ohjelmoinnissa aika vasta-alkaja, ja kaipaisin suosituksia, millä kielellä kannattaisi opiskelu aloittaa. Hieman on kokemusta C:stä ja Visual Basicistä, mutta sekin vuosikymmenen takaa. Käyttöympäristönä on Ubuntu.

Pääosa käytöstä olisi omien pikkuohjelmien laadintaa ihan harrastuksena, mutta joku mielenkiinto on myös web-sivujen taustaohjelmiin (cgi, php tai vastaava) ja sulautettujen järjestelmien (microcontroller) opetteluun.

Pienen nettitutkimuksen jälkeen mielenkiintoisimmaksi aloituskieleksi on noussut Python, sitten Java, PHP ja C++. Perusteena ehkä Pythonin helppo kieli ja varsin vapaa muuttujien käyttö, sekä mahdollisuus perinteiseen funktio-tyyliseen ohjelmointiin.

Kaipaisin mielipiteitä tästä aiheesta, eli millä kielellä kannattaa ohjelmoinnin opettelu aloittaa ja miksi?

Kuin myös siitä, mille noista em. kielistä on helpoten saatavilla fiksu graafinen kehitysympäristö (siis hieman Visual Basicin tyylinen)?

makumaku [27.03.2012 20:53:34]

#

Kasperi kirjoitti:

Hieman on kokemusta C:stä ja Visual Basicistä, mutta sekin vuosikymmenen takaa.

No itse varsinkin tuossa tilanteessa kokeilisin ensin palauttaa C:n muistoja mieleen. Eli tekisin sillä jotakin.

dartvaneri [27.03.2012 20:54:15]

#

Itse ehkä suosittelisin pythonia, sillä sillä voit tehdä niitä omia pikkuohjelmiasi, ja se myös käy web-sivujen taustaohjelmiin, tosin sillä puollella taitaa olla php tätänykyä suositumpi. Ja sitten jos haluat mikrokontrollereita ohjelmoida, riippuen toki millaisia, mutta Atmellin piirejä yleensä ottaen ohjelmoidaan assemblyllä tai c++ pohjaisella(muistaakseni) kielellä. Pythonilla on käsittääkseni myös kohtuu helppo lukea ja kirjoittaa serial portin kautta. Lisäksi python on kohtalaisen helppo oppia, kuten taisit sanoa.

Metabolix [27.03.2012 20:57:03]

#

Oletko lukenut aloittajan oppaan ja aiemmat samanlaiset keskustelut?

Aloituskielellä ei ole mitään väliä, kunhan pääset alkuun. Eri tarkoituksiin sopivat erilaiset kielet, ja pidemmän päälle on joka tapauksessa viisasta opetella useampia kieliä.

Kasperi [27.03.2012 21:07:55]

#

Aloittajan opasta vilkaisin, mutta en noita vanhoja keskusteluja älynnyt lueskella. Pitääpä perehtyä...

Mitenkä mahtaa olla tuo graafinen maailma, onko siinä olennaisia eroja eri kielien kanssa?

dartvaneri [27.03.2012 22:44:52]

#

noh, suurimpaan osaan on olemassa erilliset kirjastot, myös php:hen, mutta php:tä käytettäessä verkko-ohjelmointiin, yleensä käytetään graafiseen puoleen html(rakenne) ja css(tyylimäärittelyt).

Grez [27.03.2012 22:51:34]

#

Itse ymmärrän kyllä "graafisella maailmalla" vähän eri asian kuin html ja css. PHP:llä pystyy toki piirustelemaan esim. GD:llä, mutta esim. OpenGL-softan tekemiseen se ei ole ihan omimmillaan.

Toisaalta ehkä Kasperi tarkentaa, mitä hän tarkoittaa graafisella maailmalla.

Kasperi [28.03.2012 01:06:34]

#

Joo, sori epäselvä terminolgia.

Tarkoitan "graafisella maailmalla" sellaista ympäristöä kuin on esim. VisualBasicissa. Siis ikkunoiden, tekstikenttien, painikkeiden, kuvien yms. luomista ja niiden "taakse" kirjoitettavaa ohjelmakoodia. En siis oikeastaan web-maailmaa, vaan ohjelman graafista käyttöliittymää vastakohtana komentorivikäytölle. Mahtaakohan tuo kulkea oikeammin nimellä GUI?

Ilmeisesti tämä sivu viittaa noihin ympäristöihin, mutta on minulle vielä aika hepreaa.

http://wiki.python.org/moin/GuiProgramming

Tämä aloittelijan ongelma on lähinnä se, että vaihtoehtoja on satamäärin ja helppoja ja hyvin dokumentoituja aloituspaketteja on vaikea löytää.

Toistaiseksi, nyt myös nuo aiemmat linkit lukeneina, tuo Python vaikuttaa varsin hyvältä aloituskieleltä. Siihen kun vielä löytäisi oikean (=helpon) graafisen ympäristön, niin siin kai olisi tuo paketti, mitä etsin kasassa.

The Alchemist [28.03.2012 07:02:42]

#

Kasperi kirjoitti:

Tämä aloittelijan ongelma on lähinnä se, että vaihtoehtoja on satamäärin ja helppoja ja hyvin dokumentoituja aloituspaketteja on vaikea löytää.

Höpö höpö. Netti on täynnä dokumentaatioita. Kaikki koodaajat ovat aloittaneet ja oppineet nykyisin saatavilla olevilla dokumentaatioilla. Joillekin matskua on ollut saatavilla vieläkin vähemmän.

Jos haluat koodata, niin sitten alat opetella sitä. Josset pääse alkuun ilman kädestä pitäviä ohjeita siitä, kuinka käyttää näppäimistöä ja hiirtä, niin saattaa olla parempi siirtyä vaikka postimerkkeilyn pariin.

lainaus:

Toistaiseksi, nyt myös nuo aiemmat linkit lukeneina, tuo Python vaikuttaa varsin hyvältä aloituskieleltä. Siihen kun vielä löytäisi oikean (=helpon) graafisen ympäristön, niin siin kai olisi tuo paketti, mitä etsin kasassa.

Python ei itsessään sisällä toiminnallisuutta graafisten käyttöliittymien tekoon. Joudut etsimään jostain lisäkirjaston (TCL, GTK+, Qt tms.). Se myös aikalailla määrää sen, mitä GUI-tuella varustettua kehitysympäristöä voit käyttää.

Koodaus on loppuviimein joka tapauksessa tekstin kirjoittamista, joten kielen valinta sen perusteella, mikä tarjoaa helpoimman IDE:n, on ihan helvetin typerää.

Pythonin kanssa itse suosittelen Qt-kirjastoja, koska sitä voi käyttää myös esimerkiksi C#:n ja C++:n kanssa, joten kerätystä kokemuksesta voi hyötyä kieltä vaihtaessakin. Qt:lle on myös oma kehitysmpäristö, Qt Creator, mutten tiedä miten se tukee Pythonia. Käyttöliittymälomakkeita voi suunnitella Qt Designerilla, ja kyseiset lomakkeet ovat täysin kieliriippumattomia, joten niitä voi käyttää niin Python- kuin C++-koodissakin.

Synomi [28.03.2012 07:27:45]

#

C# varmaan voisi olla ihan hyvä kieli aloitella, koska sen graafinen kehitysympäristö vastaa paljon Visual Basiccia, sen saan helposti käyttöön vaan lataamalla Visual Studio Expressin, sen voi viedä web ympäristöön käyttämällä ASP.Nettiä, ja ohjeita löytyy kaikenlaisia. Voihan sitä koulujenki kautta lähtä ohjelmointia opiskelemaan, sieltä sitä hyvät pohjat saa mistä voi lähtä kehittämään.

Edit: Jaa unisena jäi tuo Ubuntu huomaamatta.

Grez [28.03.2012 09:24:31]

#

Synomi kirjoitti:

sen saan helposti käyttöön vaan lataamalla Visual Studio Expressin

Muuten joo, mutta...

Kasperi kirjoitti:

Käyttöympäristönä on Ubuntu.

devain [28.03.2012 09:34:21]

#

Jos arvaan oikein että AP tarkoittaa sulautetuilla järjestelmillä sitä tavallisinta harrastelijan sulautettujen järjestelmien ohjelmointia eli tehdään pieniä robotteja ja vilkutellaan ledejä ja päästellään korvia raastavia ääniä piezo-kaiuttimesta niin voin suositella Arduino-alustaa. Siinä käytetään Atmelin kontrolleria jota voi ohjelmoida joko C-kielellä tai Arduinon omalla kielellä joka on hyvin lähellä C:tä mutta tehty hiukan aloittelijaystävällisemmäksi.

Yleiseen ohjelmoinnin opetteluun suosittelisin minäkin Pythonia. Tosin tuosta vapaasta muuttujien käytöstä olen eri mieltä. Itse koen ohjelmoinnin selkeämmäksi ja vähemmän virhealttiiksi vahvasti tyypitetyillä kielillä.

Kasperi [28.03.2012 13:08:29]

#

Kiitoksia taas kommenteista. Vaikka osalle tämmöinen vasta-alkajan neuvominen tuntuu ehkä turhauttavalta, niin olen saanut tästäkin keskustelusta paljon varmuutta, mihin suuntaan lähteä.

Aloituskieleksi päätin valita tuon Pythonin ja löysinkin siitä hyvän suomenkielisen perusoppikirjan kirjastosta ja parikin opetusmonistetta netistä. Niillä pääsee varmasti alkuun. Ohjelma on myös näköjään ladattavissa Ububtu Software Centerin kautta suoraan ainakin versiona 2.6.

Tuo graafinen ympäristä on vielä hieman hakusessa, mutta yritän saada ladattua tuo PyQt:n joka vaikuttaa melko laajalta paketilta.

Hieman tarkemmin asiaan perehdyttyäni jätän tuon microcontrolleri-ohjelmoinnin jonnekin tulevisuuteen ja keskityn aluksi vain tähän perusohjelmointiin. Noissa controllereissa tuntuu olevan omat ohjelmat ja niistä sitten joskus...

dartvaneri [28.03.2012 16:31:25]

#

Löytyy python alkeis opas myös ohjelmointiputkastakin:
https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=python_01

Kasperi [28.03.2012 17:02:55]

#

dartvaneri kirjoitti:

Löytyy python alkeis opas myös ohjelmointiputkastakin: ...

Joo, huomasin myös tuon. Se sisältyi tuohon sanaan "opetusmoniste". :)


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta