Nyt tarvitsisin suosituksia siitä, mistä ja miten kannattaisi aloittaa ohjelmointiin tutustuminen ja opettelu. Sellainen käsitys minulla on, että C ja C olisivat varsin käytettyjä ohjelmointikieliä (korjatkaa, jos olen väärässä), joten olisiko näistä syytä aloittaa, ja onko näille kielille saatavana hyviä aloittelijan oppaita? Vai kannattaisiko perehtyä ensin johonkin muuhun mahdollisesti ?
Ohjelmointia aloittelijalle
AnneK
251951
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 25
Vanhimmat
php ja java tuohon vielä mukaan.
Kirjastosta löytyy oppaita ihan tyyliin
"Java for dummies" eli jos sulla ei ole MITÄÄN kokemusta ohjelmoinnista.
>...joten olisiko näistä syytä aloittaa
Tästä on puhuttu tälläkin palstalla hyvin monta kertaa että ohjelmoinnin opiskelussa on paljon tärkeämpiä asioita kuin kielen valinta joka on lähinnä sivuseikka. Ihan sama millä aloittaa niin muut oppii kyllä hetkessä.
>...saatavana hyviä aloittelijan oppaita?
Perusteita löytyy vaikka tuolta:
http://www.ratol.fi/opensource/ohjelmointi/index.html
Jos päädyt harjoittelemaan C :lla niin siihenkin löytyy apua samalta sivustolta:
http://www.ratol.fi/opensource/cplusperusteet/index.htm
C ja C ovat huonoja valintoja ensikieleksi omatoimiseen opiskeluun. Sopivat ihan hyvin oppilaitoksiin jossa on asiantunteva opettaja.
Eli C ja C opiskelussa saattaa mennä "ojasta allikkoon" tämän seikka on (pitäisi olla) jokaisen (vähän pidemmälle ehtineen) C ohjelmoijan tiedossa!
(Ammattilaisten keskuudessa C ja C on eniten käytetty kieli. Mutta se ei oikein sovellu ensikieleksi)
>...saattaa mennä "ojasta allikkoon"...
Mikähän tuossa nyt on sitten C-riippuvaista?
Noin voi ilman ohjausta opiskellessa käydä millä kielellä tahansa ja C:llä kuitenkin oppii käytännön tarpeisiin eikä helpot ohjelmat ole sen vaikeampia sillä kuin millään muullakaan kielellä.
Mutta kuten tuossa ylempänä todettiin, ohjelmoinnin opiskelussa on paljon tärkeämpiäkin asiaoita kuin kieli.
Ymmarran hyvin, etta teoriapuoli on tarkeaa. Ajat-
telin kuitenkin, etta asiat ymmartaisi parhaiten
yhdistamalla tuon teoriapuolen kaytannon kokeilui-
hin jollain sopivalla ohjelmointikielella.
(Ja kylla, olen todellakin aivan aloittelija
ohjelmoinnin suhteen)
Täällä jo mainittu Lazarus on sopiva. Jos etsit siihen sopivaa kirjallisuutta niin kannattaa katsoa myös Delphi-kirjoja.
Kun noin väität niin et varmaan pääsisi yliopistotasolla alkeellisemmastakaan C/C kurssista läpi! Mietippä sitä sitten vuoden verran kun seuraava mahdollisuus tulee.
Eli pystyt C/C kääntäjällä tekemään "sallitusti" sellaista koodia joka on "sopimatonta" (ja kaiken lisäksi se saattaa toimia oikein!)
Jokainen C/C osaaja (pitäisi) tietää tämän.
>Mietippä sitä sitten vuoden verran...
Lupaan miettiä mutta en tiedä mitä se auttaa kun olen jo vuosikaudet tehnyt C/C softaa, muidenkin kuin omasta, mielestäni menestyksekkäästi.
>...kokeiluihin jollain sopivalla ohjelmointikielella.
Tottakai harjoituksia tarvitaan mutta edelleen painotan sanaa "jollain", ihan sama millä kielellä niin kauan kuin nyt puhutaan lause- eli proceduraalikielistä (C, Java, Pascal, Basic,... ). Sitten kun mennään johonkin erityyppiseen kieleen, esim Lispiin tai Prologiin, niin asia on hieman toinen.
Näinhän ne kertovat. Mutta eivät pääse alkeellisemmastakaan C-kurssista läpi. Et todellakaan olisi ensimmäinen. Mietippä miksi?
Kursseilla nuo ohjelmat tarkastetaan ensin testausohjelmilla vasta sellaiset jotka pääset niistä läpi tutkitaan ja jos ne ovat tarpeeksi hyviä niin voi päästä kurssista läpi.
ihan kaikkiakaan assareitten juttuja: nehän ei assarit voi tietotekniikankaan laitoksella antaa reppuja ihmisille tulospalkkiosyistä siitäkään syystä, että ne ihmiset eivät tee mitään, koska seuraavien apurahnahakemusten eräjättöpäiviä silmälläpitäen on toki edullista, mitä vähemmän reppuja laitoksella tulee eli mitä enänpi tulee hyväksyttyjä opintosuorituksiakin ja jos pääsee leviämään sana, ettei sillä laitoksella pääse läpi vaik'ei mitään varsinaisesti (prujaamista siten, että minimissänsä vaihtaa tekijän eli edellisen prujaajan nimen omaansa) teksikään, ei kukaan edes hakeudu sille laitokselle ja menee sitäkin kautta sillä laitoksella henkilökunnilta leivät suista, koska tulee irtisanomisia vähentyneen opiskelijamateriaalin takia. Jos assarit alkaisivat jollain täysin mystisellä tietokoneusto-ohjelmistolla täysin automatisoidusti silmittömästi raakkaamaan opintosuoritteitten tekemättäjättämisiä, alkaisivat melko pian laitoksen esimiehet salaisissa kokouksissaan keskustelemaan siittä, onko se assari ensinkään mies taikka nainen paikallansa eli onko sen metodeissa jotain vikaa.
Ohjelmoinnin alkeiskurssille osallistuu useita satoja opiskelijoita vuodessa (joten luulisi että asia olisi hyvin yleisesti tiedossa). Vain osalla on mahdollista päästä seuraaville kursseille.
Eli jos et osaa tehdä oikein niin et pääse etenemään. On muistettava että kursseilla opetetaan kaikki ne asiat jotka mahdollistavat pääsyn eteenpäin.
Eli kurssin alussa ei tarvitse tietää mitään ohjelmoinnista.
Tuohan olisi mainio idea oppilaitoksille!
Eli jokainen harjoitustyö ajetaan niin, että standardisyötteen tilalla on vihamielinen generaattori, joka matkii tyypillistä netistä tulevaa puskurin ylivuotohyökkäystä.
Ja vain ne harjoitustyöt, jotka selviävät tuosta antamatta hyökkäysgeneraattorin ajaa omaa koodiaan, pääsevät edelleen manuaaliseen tarkasteluun.
Tai itseasiassa ennen manuaalitarkastusta voisi olla vielä toinen automaatti, joka tarkistaa, että tietyillä vakiosyötteillä tulee asialliset vastaukset.
Näin vaarallista koodia kirjoittelevat eivät pääsisi edes kurssilta läpi, ja näinhän sen pitäisikin olla.
Jos yritykset tämän jälkeen valittavat työvoimapulaa, niin tietohallintopäälliköiden olisi syytä katsoa peiliin: Jospa lopultakin korvattaisiin C/C Delphi -kielellä, niin olisi helpompi löytää koodaajia, jotka osaavat tuottaa myös tietoturvamielessä kelvollista jälkeä.
Uskon täysin eräiden muiden kirjoittajien kommentteihin, että moni itseään ammattilaisena pitävä C/C -koodari ei ehkä pääsisi yhdeltäkään kurssilta hyväksytysti läpi. Eikä heikolla osaamisella pidäkään päästä.
Tuo, että C -kieli on yleisin, on ehkä totta, mutta siihen voi suhtautua toisinkin:
Oma tapani on ollut opetella sen verran C:tä, että osaan lukea .h -tiedostoista funtioiden prototyypit ja kirjoittaa niiden perusteella vastaava .pas -tiedosto Delphiin/Kylixiin.
Assemblerin osaamisesta on tässä myös hyötyä: Voi helposti tehdä testiohjelman, jossa haluttu (yleensä DLL:stä kutsuttava) C:llä tehty funktio laitetaan testiin, näin selviää sen oikea kutsutapa silloinkin, jos muuten jää epäselväksi, onko se "cdecl" (kutsuja siivoaa pinon) vai stdcall (kutsuttava siivoaa pinon). On noissa muutamia muitakin eroja, mutta tuossa se kaikista tärkein.
kieli?
Delphi on Pascal-kieleen pohjautuva graafinen ohjelmankehitysympäristö ja ohjelmointikieli.
Jos haluat kaupallisen version niin:
http://www.moonsoft.fi/products/000341.aspx
Mutta jos haluat käyttää vastaavaa tuotetta vapaasti (tai muissa käyttöjärjestelmissä) kokeile Lazarusta.
(Lazarus linkkejä täällä jo olikin)
professionaalitasoisina tottakai, mutta ne on varmaankin jossain muussa versiossa tuommoiset kielet, kun mulla on siinä Delphissä objektia, joka meni paskalle eli Object Pascalia eikä yhdessäkään helpissäkään hiiskuta sanallakaan mistään Delphikielen syntaksista taikka semmoisesta ohjelmoinnin kannalta tuikitärkeästä detaljista.
Delphin käyttämä Object Pascal ei ole se sama Object Pascal minkä Borland kehitti aikoinaan Pascal kielestä. Mitään Pascal standardia ei edes ole...ei ole aivan väärin sanoa että "ohjelmoin Delpillä" näin ainakin tiedetään mitä Object Pascalia käytetään.
Vaikka esim. Delphi, Free Pascal ja Lazarus ohjelmat eroavat vähän toisistaan niin siltikin ne ovat aika yhteensopivia (kaikkia ominaisuuksia ei ole jokaisessa).
Täytyypä muistaa että sana Object Pascal on erään Microsoftin työntekijän "hallussa".
jos sinulla on excel niin vba:lla saa hyvän alun ohjelmoinnin perusteisiin...sen jälkeen jos kiinnostusta riittää voi helposti siirtyä vb:n sillä saa jo erillisiä ohjelmia....siitä sitten vaativampaan c ... onnea
Pascal (ja java). Helppoja Pascal kehittimiä ovat Lazarus ja Delphi. Lazarus toimii useissa käyttöjärjestelmissä ja on vapaasti käytettävissä.
Tässä jotain vinkkejä Lazaruksella alkuun pääsemiseksi:
http://www.lazarus.freepascal.org/
http://fi.wikipedia.org/wiki/Lazarus
http://wiki.lazarus.freepascal.org/index.php/MainPage/fi
Kokeile vaikkapa
tuoreimmat versiot löytyy:
http://www.de.freepascal.org/lazarus/
(windows versio on helpoiten asennetava)
Näyttäisi tuo yksi linkki olevan väärin. Ehkäpä tarkoitit tätä:
http://wiki.lazarus.freepascal.org/index.php/Main_Page/fi
Teepä selväksi, mitä todella haluat:
1. Saada helpolla työpaikan, mutta sillä ei ole mitään väliä, vaikka teet heikkolaatuisia tuotteita, joihin alalla tosin on muutenkin totuttu. Siis juuri sellaisia, jotka tulevaisuudessa ovat onnistuneiden puskurin ylivuotohyökkäysten kohteena ?
Jos näin, varma valinta on C
2. Haluat tehdä korkeatasoisia ohjelmia, jotka ovat (älykkyystasostasi riippuen ainakin lähes) virheettömiä, eivätkä virheellisinäkään aiheuta sellaista puskurin ylivuodon mahdollisuuteen perustuvaa tietoturvareikää, josta krakkerin (=rikollinen systeemiin murtautuja) on helppo työntää omaa konekielikoodiaan systeemiin ajettavaksi.
Tässä tapauksessa varma valinta on Delphi.
Delphillä koodaat ohjelmia ja myös DLL:iä windows -ympäristöön.
Samalla kielellä voi ohjelmoida myös Linux -ympäristöön, joko Kylixillä (viimeisin versio v. 2002, joka tekee asennuksen Linuxiin haastavaksi, muttei mahdottomaksi, varsinkin jos voit itse valita käyttämäsi Linux -version. Varmin valinta tässä on Debian Sarge 3.1r1 oletuksena tulevalla 2.4.27 -kernelillä) tai FreePascal Lararus -yhdistelmällä.
Sinun kannattaa tehdä myös tämä:
Mene kirjastoon. Älä kuitenkaan mihinkään pikkukirjastoon, vaan sellaiseen, jossa on hyvä valikoima myös tieto-/ammattikirjallisuutta. pk-seudulla tällainen on esim. Tikkurila (Pasilan ollessa remontin takia kiinni).
Hae hyllystä alkeisopas sekä Delphistä että C :sta ja lue muutama ensimmäinen luku kummastakin, eiköhän jo tästä tule selväksi, millainen syntaksi kummassakin on. Jo tästä voit päätellä jotain syntaksin selkeydestä.
Kannattaa myös miettiä: jos syntaksi on niin hankala/sekava, että ohjelmoija joutuu kiinnittämään huomionsa ohjelmointikielen syntaksiin tehtävänä olevan asian sijaan, niin tämä ei varmasti ole hyväksi syntyvän koodin laadun kannalta.
Ja vielä käännetyn koodin ajoaikaisesta nopeudesta:
Enemmän merkitystä tähän on sillä, miten koodaat, kuin sillä, millä kielellä koodaat.
Fiksusti kirjoitettu Delphi -koodi on yleensä keskimäärin vähintään yhtä nopeaa kuin C koodi, voi olla nopeampaakin. Joissain tehtävissä hieman (mutta ei merkityksellisesti) hitaampaa, joissain tehtävissä taas huomattavasti nopeampaa.
Kannattaa huomata, että omalla koodaustyylillä on tässä iso merkitys. Itse olin koodaamassa ohjelmakoodia, joka järjesti satojatuhansia rivejä järjestykseen tiettyjen sääntöjen mukaan. Pääavainkenttänä oli aakkostietoa. Yritin ensin käyttää suoraan Delphin TStringList -tyyppiä, ja siihen Sorted := true. Ratkaisu olisi kyllä toiminut, mutta oli huomattavan hidas.
Ilmeisesti nopeampi olisi ollut tämä:
1. MyStringList.Sorted := False
2. Lisää kaikki merkkijonot listaan
3. MyStringList.Sort;
Itse tein jotain vielä nopeampaa: tarkistetaan kunkin merkkijonon 1. merkki ja laitetaan ne 31 eri listaan:
1. ennen A -kirjainta
2-30. kirjaimella A-Ö alkavat
3. Ö -kirjaimen jälkeen tulevat
ja lopuksi kukin lista erikseen järjestykseen.
Myös assemblerin opettelu kannattaa (pääkielestä riippumatta). Vaikka et itse koodaisi riviäkään assembleria, on hyödyllistä ymmärtää assembleria sen verran, että voi mahdollisesti liian hidasta koodia tukiessaan katsoa assemblertasolla, millaista koodia kääntäjä on tehnyt ja miten lähdekoodia kannattaisi muuttaa, jotta käännetty ohjelma olisi nopeampi.
Noh, tärkeämpää kuitenkin on oppia olemaan huolellinen ja keskittyä aluksi koodin virheettömäksi suunnitteluun, ja optimoida tuota nopeutta myöhemmin.
Jos haluat soittaa ja jutella tästä tai muusta, katso numero täältä:
http://ota.se/mika0800
ps. tuo kotisivu aloitti "elämänsä" Delphi -formina. Muunsin sen HTML:ksi omatekoisella "export form to html" -toiminnolla.
Tuo on 1. versio muuntimestani, ja siksi siinä on muutama puute, kuten rullauspalkkien puute DIV -elementistä. Ei siis ole käytetyn teknologian puute, vaan kertoo vain siitä, että tuon sivun teko ei ole ollut tärkeimpiä juttuja, ja muita kiireitä on riittänyt.
Kotisivulla kauheat värit? Tällaista palautetta olen saanut monelta perinteisellä putkinäytöllä sivuja katselleelta. Sivut on suunniteltu kannettavalla, jossa TFT -näyttö, ja sellaisella ne värit näyttävät ihan ok:lta.
Ei kannata aloittaa millään monimutkaisella olio-kielellä, vaan esin kannattaa opetella perusteet helpolla kielellä.
C on tähän paras, koska siitä on helppo jatkaa C :n. C/C sopii kaikkiin ympäristöihin. Aikaisemmin joku hölmö neuvoi käyttämään Delphiä, niin kysypä häneltä miten tehdään Symbianille koodia Delphillä? Udohda myös paskal, VB ja muut mikkisoftavälineet.
sitä että Delphi on työkalu millä tehdään Windows ohjelmia. Kylix:sillä Linux ohjelmia ja ehkä sitten tulevisuudessa (kuka tietää) tulee myös "Delphi" Intel-Mac:lle.
Ja sitäpaitsi Assembly on parhain kieli :))
esim. työväenopistoon (tai mikä sinulle sitten sopiikaan)