Miten oppia koodaamaan?

Viestiketju alueella 'Ohjelmointi' , aloittaja ranteet_auki, 22.01.2009.

  1. ranteet_auki

    Rekisteröitynyt:
    30.03.2008
    Viestejä:
    248
    eli koodaus on jo jonkin aikaa kiinnostanut. Miten tälläisen perusopiskelijan kannattaisi alkaa opetella koodauksen saloja? Mitäköh'n kirjoja kannattaisi lukaista?
     
  2. mabasa

    Rekisteröitynyt:
    22.03.2004
    Viestejä:
    3 150
    Onko sinulla mitään pohjaa asiaan?

    Sanoisin, että lue vaikka Haikala & Märijärven Ohjelmistotuotanto, joka valottaa itse ohjelmistoprosessin saloja. Sitä ennen olisi hyvä lukea jotain ohjelmointikieltä käsittelevä teos. Jos englanti taittuu, niin esim. Bruce Eckelin kirja Thinking in Java 3rd edition löytyy ilmaiseksi netistä. Ei varmasti paras kirja pedagogisessa mielessä, mutta kattava (aloittelijalle liian yksityiskohtiin menevä, mutta skippaa reippaasti sen, mikä menee yli tai liian tarkaksi) ja hinta/laatu-suhteeltaan mainio.
     
  3. ranteet_auki

    Rekisteröitynyt:
    30.03.2008
    Viestejä:
    248
    Ei mitään kokemusta, kiinnostais kuitenkin oppia
     
  4. mabasa

    Rekisteröitynyt:
    22.03.2004
    Viestejä:
    3 150
    Kiinnostaako jokin tietty kieli tai järjestelmä? Oletko valmis ostamaan kirjoja? Löytyykö kirjastokorttia?

    Java on takuuvarma valinta ensimmäiseksi kieleksi. Sen lisäksi, että se lienee maailman yleisin ohjelmointikieli, ja siitä johtuen, materiaalia löytyy todella paljon myös netistä. Ja yleensä myös apua ongelmiin. Googlettamalla löytyy lähes poikkeuksetta jokin keskustelu, jossa joku kysyy apua juuri samaan ongelmaan kuin sinä. Se on todella suuri etu.

    Toinen voisi olla C#, johon löytyy erinomaiset ilmaiset välineet: Visual studio, jolla nopeasti pääsee graafisen ohjelmoinnin maailmaan.

    Kummassakin näissä tulee myös mukana erinomainen dokumentaatio.

    Python on varsin ilmaisuvoimainen kieli ja siten joidenkin aloittelijoille suosittelema. En osaa ottaa kantaa, miten hyvin dokumentaatiota ja ohjeita tuohon löytyy.
     
  5. geezery

    Rekisteröitynyt:
    15.05.2003
    Viestejä:
    264
    Tuo C# tai VB.Net on varmaan helpoimmasta päästä aloittaa. Java on varmaan ihan hyvä kanssa "jos osaa", itse koin sen hankalaksi ja suurin osa käyttämistäni Java sovelluksista ovat olleet todella kökköjä.

    Microsoft tarjoaa erinomaisia video tutoriaaleja. Itse ainakin mieluummin kattelen noita, kun pläräilen jotain opuksia. Harvemmin niistä on kuitenkaan hyötyä omissa projekteissa, vaan apu löytyy googlettamalla ja foorumeista. Myös tietokantasuunnittelu on tärkeää olla hanskassa, jos esim. jotain web-sovelluksia olet aikeissa tehdä.

    Linkkejä videoihin

    http://msdn.microsoft.com/en-us/vcsharp/bb466180.aspx
    http://msdn.microsoft.com/en-us/bb629407.aspx
    http://msdn.microsoft.com/en-us/vcsharp/bb798022.aspx
    http://www.asp.net/learn/

    Linkki Visual Studio 2008 Express ohjelmiin:

    http://www.microsoft.com/express/product/
     
  6. noon

    Rekisteröitynyt:
    30.09.2004
    Viestejä:
    47
    Yksinkertaisin neuvo varmaan koodaamisen oppimiseen on ... koodata. Keksi itsellesi aluksi jokin yksinkertainen projekti, suunnittele sen toteutusta, koodaa ja testaa. Periaatteessa on sama millä kielellä sovellusta toteutat, etenkin kun aluksi tulisikin keskittyä lähinnä ohjelmoinnin opiskeluun (ohjelmoinnin perustapaukset: silmukat, haarautumiset jne). Kieleksi mielestäni kannattaa valita kuitenkin jokin olio-ohjelmointikieli (C#, Java...).

    Koodia löytyy googlaamalla yllinkyllin. Suuri virhe on sortua pelkkään copy+paste-koodiin, eli saat palikan toimimaan kopioidulla koodilla, mutta et ymmärrä yhtään miksi ja miten se toimii.

    Kun osaat perusasiat oikein, on helppoa koodata eri kielellä... niissä kuitenkin toistuu periaatteessa samat asiat. Tottakai niissä on eroja. Mielestäni suurin haaste on kehitystyökalujen erot (Visual Studio, Eclipse...).

    Alku on aina hankalaa, mutta alussa tehty työ kuitenkin palkitaan jossain välissä.

    Itse väännän koodia pääsääntöisesti Javalla. Tulevaisuudessa myös C# (.Net) astuu kuvioihin mukaan.
     
  7. Antti Alien

    Rekisteröitynyt:
    06.08.2001
    Viestejä:
    1 292
    Älä lue. Tuo kirja käsittelee, kuten nimestä voi arvata, ohjelmistotuotantoa, eli kokonaisen ohjelmiston luomista asiakkaan sekavasta mielikuvasta toimitusvalmiiksi paketiksi, vieläpä yleensä yli yhden hengen ryhmässä, jota tulisi voida jotenkin hallita, ja tuottaen enemmän dokumentaatiota kuin koodia. Sillä on tasan yhtä paljon tekemistä ohjelmoinnin kanssa, kuin sahan johtamisella linnunpöntön tekemisen kanssa.

    Nimimerkillä pakollisten kurssien uhri.
    [signature]Yksirivistä ajatusta ei voi lukea rivien välistä.[/signature]
     
  8. mabasa

    Rekisteröitynyt:
    22.03.2004
    Viestejä:
    3 150
    Muistaakseni siinä käydään läpi mm. UML, vesiputousmalli, dokumentit, testaaminen, laadunvalvonta yms. perusjuttuja, jotka antavat valmiuksia ymmärtää ohjelmistoprojekteja. Se antaa viitekehyksen koodaamiselle, luo kokonaiskuvan hommasta. Todennäköisesti siinä kirjassa mainitaan myös, että koodaaminen on vain pieni osa ohjelmien tekemistä...
    Eli sinun mielestäsi ohjelmointiin ei liity olennaisesti käsitteiden, notaatioiden, käytäntöjen ja prosessien ymmärtäminen?
     
  9. kielitieteilijä

    Rekisteröitynyt:
    07.12.2008
    Viestejä:
    50
    En suosittele lukemaan. Huonosti kirjoitettu ja tylsä. Eikä ole mitään järkeä lukea, jos on vasta-alkaja; sen sijaan ohjelmoi kokeilemalla paljon (hyvinkin) pieniä kokonaisuuksia ja käy samanaikaisesti läpi jotain ohjelmointia opettavaa kirjaa.

    Eikä Javaa tms. kannata opetella ensimmäisenä (eikä ikinä jos ei ole pakko), ellei halua kiivetä perse edellä puuhun. Esim. Scheme, Haskell tai Smalltalk, niin opit ehyen ajattelumallin. Python on myös hyvä vaihtoehto varmaankin, etenkin jos olet kiinnostunut enemmän vain tekemisestä kuin ajattelemisesta.
    [signature]Puheesi on kuin kärpäsen surinaa korvissani.[/signature]
     
  10. murmur

    Rekisteröitynyt:
    29.12.2001
    Viestejä:
    5 321
    :-) Itse taas olen sitä mieltä että aloittelijan kannattaa aloittaa ohjelmoinnin opiskelu nimenomaan Javalla tai C# kielellä. Ei missään tapauksessa Scheme, Haskell tai Smalltalkilla. Java sekä C# ovat kielinä asiallisia ja pääsee helposti tekemään komentoriviohjelmia, internetti täynnä oppaita, kirjastot täynnä Java kirjoja sekä murosta löytyy iso määrä auttajia. Taitaa koulut ja yliopistotkin Javalla tehdä monessa paikassa nykyään erityisesti olio-ohjelmoinnin perusteet.

    Scheme, Haskell ja Smalltalk...aika hiljaista isolla rintamalla.

    Ensiksi opiskelet helppoja komentoriviohjelmia, ei tarvitse UI ohjelmointia heti sotkea mukaan.
    Tutin Interaktiivinen Java-opas, suosittelen ehdottomasti tutustumaan ensimmäisenä ohjelmointisivustona.
    Joensuun tosi aloittelijan Java-opas

    [signature]PS3Wiki[/signature]
     
  11. A1A

    Rekisteröitynyt:
    17.11.2000
    Viestejä:
    221
    :D

    Pitäisköhän munkin tehdä sigu, tossa olis ainesta.

    Ja ei, en keksinyt mitään aiheeseen liittyvää, pahoittelut. Heitetään nyt, että ei ehkä koodaamista kannata alottaa ohjelmistotuotannon oppaalla.
     
  12. MoonCow

    Rekisteröitynyt:
    20.08.1999
    Viestejä:
    704
    Mielestäni tämä Märijärven & co Ohjelmistotuotanto on yksi turhimmista alan opuksista mitä olen koskaan lukenut kokonaisuudessaan läpi. Ikävä tosiasia on se, että suomeksi ei ole vielä yhtään kunnollista ohjelmointiopusta tai ohjelmistotuotannosta kertovaa kirjaa kirjoitettu.
    [signature]Mikä on sun pelinumero?[/signature]
     
  13. miasma

    Rekisteröitynyt:
    07.10.2007
    Viestejä:
    367
    Ilmeisesti osalla neuvojista on se oletus, että siirryt koodaamisesta kaupalliselle puolelle ohjelmistoteollisuuteen johonkin yritykseen, jossa on monta työntekijää koodaamassa tiimissä. Sinun ei ole pakko tehdä tätä ja oma mielipiteeni on, että koodaaminen on kivaa aika tarkkaan niin kauan kuin saa itse valita intressinsä ja tehdä harrastuksenomaisesti. Kaupallinen rivikoodarin työ on anuksesta, ja ohjelmistotuotannossa koodaus näyttelee enää sivuosaa, koska mukana on kaikkea muuta ei-koodausta, joka ei tietenkään ole turhaa, mutta on se kaikki pois "hauskasta" koodaamisesta.

    Eli jos oletuksena on, että koodaamisesta (myöhemmin ohj.tuotannosta) tulee ammatti, koodaamiseen kannattaa asennoitua työkaluna. Työkalun käyttäjä arvostaa esim. ohj.kieltä yhtä paljon kuin sarjamurhaaja uhrien antioksidanttien nautiskelua pitkän eliniän toivossa tai krooninen lapsenraiskaaja lapsen terveen identiteetin muodostumista. Tällöin loistava kieli on sellainen, jota töissä käytetään ja joka rasittaa/haaastaa sinua älyllisesti mahdollisimman vähän ja johon on saatavilla kirjastoja kaikkeen mahdolliseen, ettei sinun tarvitse oppia mitään ikinä. Hyviä esimerkkikieliä: C++, Java, C#

    Jos haluat oppia kaikkea kivaa ja koodata vain siksi, että koodaaminen on kiva elämäntapa ja mitä enemmän aikaa tuhlaantuu johonkin tosi jännään teoreettiseen juttuun, jota et työssä (paitsi yliopistolla tutkijana) tarvitse missään, opiskele tähän tarkoitukseen tehtyjä mielenkiintoisia kieliä. Esimerkkejä: Haskell, Smalltalk, Scheme. Ohjelmointikielen kummastelulla on hyvä aloittaa. Mukaan on alusta saakka hyvä ottaa tietorakenteita. Kannattaa lukea perusrakenteet (lista, taulukko, puu, graafi jne) kirjasta, joka on helppolukuinen ja sivuuttaa matemaattisen kompleksisuusanalyysin. Jos homma vaikuttaa edelleen kivalta, kannattaa kysyä uudestaan täältä. Voimme neuvoa sinua intressiesi mukaan lisää.
    [signature]what makes it work
    it was never built to last[/signature]
     
  14. Whig Moderaattori

    Rekisteröitynyt:
    13.06.2000
    Viestejä:
    5 810
    Jeh. Esim. itse "koodaan" vain omaksi"iloksi" :-) Aikaisemmin joskus vuonna kivi ja miekka Basicciä C64:llä sitten Turbo Pascalia ja nykyään vain lähinnä PHP:tä.
    Ihan kiva saada välillä aivoille jotain tekemistä ja tehdä jotain PHP:llä esim. omille kotisivuille.
    Työkseni en voisi kuvitella koodaavani (liian yksitoikkoista hommaa mulle IMHO =)
     
    Viimeksi muokattu: 12.10.2010
  15. immoT

    Rekisteröitynyt:
    24.02.2003
    Viestejä:
    1 062
    Koodasin jo 80-luvulla Basicilla ja 90-luvulla Pascalilla ja C:llä. Opetin yliopistossa ohjelmointia (java) monta vuotta. Valmistuin Tietojenkäsittelystä ja olen ollut koodaus/konsultointihommissa erilaisissa puljuissa n. 5 vuotta.

    1. Asenna linux + gcc. Opettele komentorivi-linux.
    2. Opettele puhdas ANSI C.
    3. Opettele kaikki perusasiat C-kielellä, eli Tietorakenteet ja Algoritmit. Ymmärrä miten listat ja puut ja matriisit toimivat, miten niitä käytetään yms.
    4. Kokeile eri kirjastoja sekä muita kieliä: Java, C#, Python..
    5. Jos vielä haluat töihin niin opettele vasta sitten alan business-bullshit.

    http://en.wikipedia.org/wiki/ANSI_C
    http://gcc.gnu.org/
    http://www.codepedia.com/1/Algorithms-In-C
     
  16. ranteet_auki

    Rekisteröitynyt:
    30.03.2008
    Viestejä:
    248
    En ammatikseni kuitenkaan ajatellu alkaa koodaamaan, ihan omiin tarpeisiin ja huvin vuoksi. MIkäköhän on nyt se helpoin tapa aloittaa?
     
  17. mabasa

    Rekisteröitynyt:
    22.03.2004
    Viestejä:
    3 150
    Ei tuota opasta tarvitse opetella sanasta sanaan, kunhan vilkaisee edes läpi. Suosittelin, ja suosittelen edelleen sitä, niin saa viitekehyksen koodaamiselle ja tutustuu siinä sivussa esim. luokkakaavioiden tekemiseen. Eli syntyy yleiskuva siitä, mitä kaikkea muuta ohjelmointi on kuin pelkkää näppiksen takomista: suunnittelu, dokumentit, testaaminen, notaatiot, käsitteet jne. Tuntuu olevan taas ylitsepääsemättömän vaikeaa joillakin. Se on niin hankalaa laittaa teos varaukseen esim. kirjastosta alle eurolla ja käyttää pari iltaa sen parissa. Mutta kun yleisivistys on pahasta...m'kay?
    Good for you. Ei siten tarvitse välttämättä olla tekemisissä ihmisten kanssa, jotka vänkäävät aina joka saatanan asiasta, koska maailma on heille pelkkää nollaa tai ykköstä.
     
  18. cheery

    Rekisteröitynyt:
    22.02.2008
    Viestejä:
    77
    Hyvin harvat ohjelmointiaiheiset kirjat ovat lukemisen arvoisia. Ja epäilen sitä, että aloittelijalle sopivaa kirjaa edes löytyykään. Kaikenlisäksi netistä löytyy asiaa kunhan et eksy millekkään foorumeille.

    En usko että löydät kuitenkaan aloittelijaystävällistä aineistoa netistä. Kaikkein parasta sun kannaltasi olisi etsiä ohjeet siihen, kuinkä käännät/tuotat/suoritat ensimmäisen ohjelmasi haluamallasi kielellä.

    Tekstieditorin suhteen ei kannata notepadin kanssa mennä. Etsi alkuun jokin sellainen tekstieditori, mikä tukee syntaksivärjäystä ja esittää rivinumeron. Ja jos haluat kirjottaa pythonia, sen kannattaisi myös muuttaa tab välilyönneiksi. Harkitse vim-editoria myöhemmin. (tarvitset todella hyvän editorin, mutta vim vaatii oman opettelunsa)

    En suosittele: C#, C++, java, ruby, perl, php, lisp
    Suosittelen: Python, Haskell, JavaScript

    Ennenpitkään kannattaa myös opetella C ja assemblerin käyttö sille plattikselle mikä nyt sattuukaan olemaan alla kulloinkin. Se on ihan yleissivistystä, ja ne ovat jonkun aikaa vielä ihan hyödyllisiäkin välillä.
     
  19. Olorin

    Rekisteröitynyt:
    23.02.2002
    Viestejä:
    1 310
    Asenna python-tulkki, käynnistä se ja kirjoita print "Hei". Esim. linuxissa ei tarvitse edes asentaa, vaan se on yleensä valmiina. Tässä aivan perustason opas, jota on helppo seurata ja kokeilla itse:
    http://www.ohjelmointiputka.net/opas.php?tunnus=python
     
  20. Whig Moderaattori

    Rekisteröitynyt:
    13.06.2000
    Viestejä:
    5 810
    Ja myös: Python ? Mureakuha
     
    Viimeksi muokattu: 12.10.2010
  21. adder

    Rekisteröitynyt:
    21.10.2000
    Viestejä:
    3 153
    Joku simppeli ohjelmointikieli on hyvä millä pääsee helposti alkuun. Aluksi kannattaa vain opetella ohjelmoimaan. Opetella ohjelmointikieliä vasta sitten kun ohjelmoinnin periaatteet on jokseenkin hanskassa. Ohjelmointikieliinkin kannattaa tutustua melkein vaiheittain. Eli ensin tutkia jonkin yksinkertaisemman ohjelmointikielen niksejä ja sen jälkeen kokeilla jotain vaikeampia kieliä.
    Sitten aikanaan niistä alkaa käyttämään jotain sellaista joka palvelee parhaiten omia tarpeita tai millä perusteella nyt jotain lähdetkään jatkamaan.

    Näitä helppoja kieliä joihin löytyy helpostia apua ja hyviä kehitystyökaluja on esim. Java ja C#. Sitten astetta vaikeampia kieliä on C++ johon löytyy paljon hyviä kehitystyökaluja ja ohjeita.
    Mutta kielet kannattaa vähän katsella senkin mukaan missä ympäristössä halat mieluiten työskennellä ja minkälaisia testiprojekteja kiinnostaisi lähteä kehittelemään. Eli nuo mainitsemani kielet ei tosiaan ole mitään yleispäteviä jotka ovat automaattisesti edes riittävän hyviä vaihtoehtoja. Niille vaan riittää paljon työkaluja, ohjeita ja auttajia.
     
  22. Hwua

    Rekisteröitynyt:
    05.07.2007
    Viestejä:
    258
    Python on helppo kieli, tässä LUT:n opas:
    http://www.it.lut.fi/kurssit/06-07/Ti5210220/materiaali/Python-ohjelmointiopas_LTY2006.pdf

    En ota kantaa muista kielistä.
     
  23. hkultala

    Rekisteröitynyt:
    18.06.2001
    Viestejä:
    5 786
    IMHO Tällaisten lukeminen liian aikaisessa vaiheessa vie ilon harrastuskesta.


    [signature]Hei. Olen signaturevirus. Sinulle tulee vastustamaton halu kopioida tämä rivi sigusi jatkeeksi. [/signature]
     
  24. bygrace

    Rekisteröitynyt:
    01.08.2008
    Viestejä:
    15
    IMHO kyseisen kirjan lukeminen missään vaihessa vie ilon koko elämästä. Ei siitä ainakaan aloittaa kannata. Jos joskus myöhemmin haluaa taustatietoa ohjelmistokehityksen prosesseista, niin sitten voi silmäillä tuota vaikka tuota opusta vähän (tosin ainakaan se painos, jonka omistan ei taida vielä mainita sanallakaan Agilea, joten asiasisältö on jos nyt ei hapantunutta niin ei ainakaan ihan ajassa kiinni)

    Joku Python tai jopa Java voisivat sopia aloitteluun aiemminkin mainittujen kehitystyökalujen ja ohjeiden, tutoriaalien etc. helpon saatavuuden takia.
     
  25. Chemtrail

    Rekisteröitynyt:
    10.11.2008
    Viestejä:
    39
    Pythonilla vaan alkuun, ei mene järki siihen kun joutuu selvittelemään suurimman osan ajasta jonkin muun kielen "ominaisuuksia" (=epäloogisuuksia ja tapella muuttujien tyyppien kanssa yms).

    Ja tosiaan kuten muut sanoi kun osaat nyt vaikka pythonilla jotain räpeltää niin siitä on sitten helppo lähteä opettelemaan muita kieliä, peruslogiikka noissa kielissä kun on aika sama.
     

Jaa tämä sivu