Koodaamisen itsenäinen opiskelu

Seuraa 
Viestejä36
Liittynyt18.11.2005

Itseäni on pitkään kiinnostanut aloitella koodaamisen harjoittelu tosissaan itsenäisellä pohjalla. Lähinnä haluaisin oppia nykyajan työ-ja opiskeluelämässä tarvittavina tärkeitä taitoja. Peruskomentoja tiedän monesta eri kielestä ja esim. Matlabin perusteet osaan jotenkin.

Kuitenkin mitä, millä ja miten kannattaa opetella tätä jaloa taitoa. Olen myös aloittamassa ensi syksynä TKK:lla opintoni joten tämä harjoittelu varmasti antaisi hyvää pohjaa opintoja varten...

ps. Intissä on välillä tylsää ja läppäristä on muuksikin kuin suureksi mp3-soittimeksi

Sivut

Kommentit (113)

Vierailija

Se on kieli kuten puhuttukin ja vaatii sääntöjen oppimisen ja sen tarkkuuden minkä se vaatii koska näppäinvirhe riittää.

Työn rytmityskin on tärkeää että on vireänä. Lopettaa ennen kuin alkaa hakata päätään seinään.

abskissa
Seuraa 
Viestejä3654
Liittynyt9.10.2008

Valitse jokin aloittelijaystävällinen ja yleinen oliokieli, esim. Java, C# tai Python. Valinnalla ei ole suurta merkitystä; kun yhden kielen oikeasti osaa, muiden samantyyppisten kielten oppiminen ei ole kovin vaikeaa. Poimi vaikka se, jonka syntaksi eniten silmää miellyttää, tai heitä noppaa, jos kaikki näyttävät samalta.

Osta avuksi ainakin yksi kielen perusasiat kattavasti ja pätevästi esittelevä kirja. Lataa tarvittavat työkalut ja ala tehdä kirjan harjoituksia tai nettitutoriaaleja (esim. Javalla on "virallinen" tutorial, joka olisi hyvä käydä läpi ensimmäisenä). Kielen alkeiden opettelu sujuu parhaiten tekstieditorilla, jos et ole koneiden kanssa aivan kädetön -- ja oletettavasti et ole. Sitten kun perussanasto alkaa olla hallussa, ja voi alkaa rakennella ihan oikeita ohjelmia, kannattaa etsiä käsiin sopiva IDE, ja alkaa opetella sen käyttöä. Siinä vaiheessa voi myös olla paikallaan ostaa ainakin yksi oliosuunnittelua käsittelevä kirja.

We're all mad here.

MaKo71
Seuraa 
Viestejä1467
Liittynyt15.11.2006
kahlaaja

Kuitenkin mitä, millä ja miten kannattaa opetella tätä jaloa taitoa.



Parempi puoliskoni on tuossa jo tovin opetellut ohjelmointia itsenäisesti lukemalla "Game development with Python" -kirjaa. On tykännyt, kun kirjassa mennään askel kerrallaan eteenpäin ja selitetään, mitä mikäkin lause missäkin kohdassa tekee.

Cargo
Seuraa 
Viestejä979
Liittynyt27.8.2007
kahlaaja

ps. Intissä on välillä tylsää ja läppäristä on muuksikin kuin suureksi mp3-soittimeksi



Miten voi olla armeijassa "välillä tylsää"?! Itselläni oli noin yli 250 metsäaamua ja läppärit pannassa!

Koodaamisen itsenäinen opiskelu onnistuu helpoimmin ostamalla kutakin kieltä käsittelevän johdatusteoksen...

" sähkö (se sähkö, jota tuotetaan mm. voimalaitoksissa) ei ole energiaa "
- Vastaaja_s24fi

“Jos et ole kaksikymppisenä vihreä, sinulla ei ole sydäntä. Mutta jos et ole nelikymppisenä perussuomalainen, sinulla ei ole aivoja.”
- Cargo

Seppo_Pietikainen
Seuraa 
Viestejä7615
Liittynyt18.10.2007

Python tai ruby ovat aivan hyviä aloituskieleksi ja vaikka ne ovatkin semanttisesti ja syntaktisesti aivan omalaatuisensa, ne ohjaavat hyvin oliokäsitteen sisäistämiseen.

Kaveri, joka tuntee oliomaailman osaa myös tehdä sovelluksia esimerkiksi perus-C:llä (vaikkakin pitkin hampain), ei välttämättä päinvastoin.

Tulkkaavilla oliokielillä ovat omat etunsa opiskeluvaiheessa, sen jälkeen on helpohkoa siirtyä Javaan ja edelleen esim. C++:aan.

On hyvä pitää mielessä, että koodaaminen perustuu pitkälle opittuihin ja itse muodostettuihin idiomeihin.

Kukin kieli johtaa omiin idiomeihinsa, samoin kuin kullekin hyvälle koodaajalle kehittyy omat kielisidonnaiset idiomit, esimerkkinä tavat (idiomit) käsitellä ja partitioida globaaleja muuttujia/olioita turvallisesti ja ylläpidettävästi monimutkaisissa ja suurissa sovelluksissa.

Suosittelisin IDE-värkkien välttämistä kunnes oma taito on edistynyt tarpeeksi. IDE:t tuppaavat tyrkyttämään omia 'tyylejään' ja jopa omia idiomeitaan, jotka eivät välttämättä aina ole sieltä parhaasta päästä.

Toinen suositus: Käytä Open Source tuotteita mahdollisimman paljon. Säästät rahaa, aikaa ja vaivaa.

Kolmas suositus: Hanki kirjallisuutta ja seuraa valitsemaasi ohjelmointikieliä käsitteleviä keskusteluryhmiä ja sivustoja.

Neljäs suositus: Valitse itsellesi tarpeeksi haastava sovellus toteutettavaksesi.

--
Seppo P.
Kreationismi perustuu tietämättömyyteen, se sikiää tietämättömyydestä ja siitä sikiää tietämättömyyttä. Tietämättömyyden levittäminen on kreationismin elinehto ja tietämättömyydessä rypeminen on kreationistin luonnollinen elämisenmuoto

kahlaaja
Seuraa 
Viestejä36
Liittynyt18.11.2005
Cargo

Miten voi olla armeijassa "välillä tylsää"?! Itselläni oli noin yli 250 metsäaamua ja läppärit pannassa!





Ilmavoimissa kun on niin aikaa on itsensä kehittämiseen;)

Hyviä vinkkejä tullut, taidan kävästä kirjastossa, lainata asiaa käsittelevän teoksen ja näin keskustelupalstojen kautta lähteä rakentelemaan oppimista

Vierailija

Yhden kielen omaksuminen ensin kohtuu hyvin on ok tapa. Ota vaikka Java (tai vähän riippuu mihin nyt olet pyrkimässä... Java/C# about samanlaisia... noh, pitkälti samantapaisia). Tosin itse ottaisin kaksi ohjelmointikieltä ja kummallekin jonkin "oman projektin" (ihan alkuopiskelun jälkeen) ja jos toinen alkaa tökkimään niin sitten toista .

Sitten ainakin itselle tärkeää on että tekee jotain mielekästä eli oppiminen tuntuu koko ajan mielekkäältä eikä mene pään seinään hakkaamiseksi. Jos tulee ongelmia, niin kysyy apua tai ainakin alkuun vain ohittaa ongelman. Ei kannata heti jäädä moneksi päiväksi setvimään hankalaa kohtaa. Siinä menee vain hermot ja oppiminen ei edisty.

Ja tosiaan koulus on järkevintä jos alalle aikoo ( tai sitten saat toki tehdä asian vaikeasti/helposti ja kehität itsestäsi vain juuri tiettyyn tehtävään niin armoitetun gurun ettei moista löydy... onnistuu sekin... kuulemma... pitää vain olla about he-le-ve-ton hyvä ja töitä riittää .. itse en ole niin hyvä, valitettavasti ).

abskissa
Seuraa 
Viestejä3654
Liittynyt9.10.2008
Seppo_Pietikainen
Kaveri, joka tuntee oliomaailman osaa myös tehdä sovelluksia esimerkiksi perus-C:llä (vaikkakin pitkin hampain), ei välttämättä päinvastoin.

En ole aivan samaa mieltä. C-kieli on hyvin matalan tason kieli. Olio-ohjelmoijan ei tarvitse välttämättä tietää muistin hallinnasta, rakenteesta ja osoittimista tuon taivaallista, vaikka ei siitä tosiaan haittaakaan ole.

Seppo_Pietikainen
Tulkkaavilla oliokielillä ovat omat etunsa opiskeluvaiheessa, sen jälkeen on helpohkoa siirtyä Javaan ja edelleen esim. C++:aan.

C++:aan siirtyminen tuskin on helppoa kenellekään automaattiseen roskienkeruuseen tottuneelle. Se on laaja ja tehokas työkalu mutta myös hyvin vaikeasti hallittava. Vuonna 2010 ohjelmoinnin aloittavan ei välttämättä tarvitse koskaan koskea C++:aan tai muihin vanhempiin ja matalamman tason kieliin.

Seppo_Pietikainen
Suosittelisin IDE-värkkien välttämistä kunnes oma taito on edistynyt tarpeeksi. IDE:t tuppaavat tyrkyttämään omia 'tyylejään' ja jopa omia idiomeitaan, jotka eivät välttämättä aina ole sieltä parhaasta päästä.

Aivan. IDE:ien ongelma on se, että niitä käyttäessä huomio kiinnittyy liikaa työkaluun ja pois kielestä. Kun editori näyttää punaista virheiden kohdalla ja muotoilee kaiken valmiiksi, ohjelmoijan ei tarvitse itse ajatuksella tarkistaa kirjoittamaansa koodia. Työn tekemistä se tietenkin nopeuttaa, mutta kieltä opetellessa olisi kuitenkin opittava perussanasto ja kielioppi. Parhaiten kielen oppii niin, että tarkistaa aina ensin itse koodinsa ennen kuin antaa sen kääntäjän haukuttavaksi. Sitten kun pystyy ilman luntteja kirjoittamaan 99% oikean muotoista koodia, voi ottaa IDEn käyttöön ja antaa sen korjata loput 1%. Typojahan sattuu kaikille, ja Javankin tapaisissa helpoissa kielissä on joitakin erikoisempia rakenteita, joita ei ole mitään erityistä syytä osata ulkoa.

We're all mad here.

Heksu
Seuraa 
Viestejä5463
Liittynyt16.3.2005

Olio-ohjelmoinnin ja siihen liittyvien käsitteiden ja menetelmien hallitseminen on erittäin suositeltava taito. Kun osaat ajatella oliopohjaisesti, ohjelmointiin käytettävä kieli on tavallaan sivuseikka. Kieli vaikuttaa sitten lähinnä siihen, minkälaiseen ympäristöön teet sovelluksia.

Itse teen pääasiassa windows-maailman sovelluksia .NET-ympäristössä. .Net-maailmaan pääsee helposti sisälle Microsoftin loistavilla ja ilmaisilla Visual Studio Express-työkaluilla.

Suosittelisin IDE-värkkien välttämistä kunnes oma taito on edistynyt tarpeeksi. IDE:t tuppaavat tyrkyttämään omia 'tyylejään' ja jopa omia idiomeitaan, jotka eivät välttämättä aina ole sieltä parhaasta päästä.



Tämä on puhdas makuasia, itse nimenomaan suosittelen IDEä, kuten esim. Visual Studiota, koska se tekee visuaalisuudella ja neuvomisella (syntax highlighting, virheiden alleviivaus, koodin ajo rivi kerrallaan jne) oppimisen paljon helpommaksi. Toki jos kyseessä on pelkkä harrastus, pelkällä notepadillakin voi monissa tapauksissa tulla aivan hyvin toimeen. Aluksi voi kuitenkin joutua hakkaamaan päätä seinään, kun omia virheitään voi olla vaikea huomata. IDEssä pitää aina oppia IDEn omat kommervenkit, ja huomio voi aluksi keskittyä epäoleellisiin asioihin. Työelämässä kuitenkin tehokkuus ja nopeus ratkaisee.

Trash
Seuraa 
Viestejä1724
Liittynyt25.2.2010

Pythonilla pääsee nopeasti ja helposti tekemään pieniä kokeiluja koska se on tukattava kieli. Eli suoraan python shellissäkin (python IDLE) voi kirjoitella komentoja ja katsoa mitä tapahtuu. Eikä vähän isommatkaan koodinpätkän tarvitse sen ihmeempiä projektiasetteluja ja kääntämisiä. Ei muutakuin uuteen ikkunaan koodia ja painaa F5.

Pythonin syntaksi on kyllä hieman erilaista kuin esim. C:tä muistuttavat Java ja C#.

Vierailija

Minulla täytyy olla jonkin konkreettinen tarve, ennen kuin jaksan perehtyä tarpeeksi ohjelmointikieleen.

PHP:tä ja perliä on tullut opittua nettisivuja tehdessä. Pythonin kiehtovuus on se, että S60-puhelimia voi ohjata Pythonilla melko laaja-alaisesti. Omaan kännykkääni tein webcam-ohjelman.

Mitään oikeaa kieltä en ole jaksanut opetella, koska en vaikuta oikein olevan koodaajatyyppiä.

abskissa
Seuraa 
Viestejä3654
Liittynyt9.10.2008
Cubemon
Mitään oikeaa kieltä en ole jaksanut opetella, koska en vaikuta oikein olevan koodaajatyyppiä.

Öh... kyllä Python, PHP ja Perl ovat aivan oikeita kieliä.

We're all mad here.

Vierailija

Itse lähtisin liikkeelle C# ja Visual Studio. Paras yhdistelmä aloittelijalle. Paras IDE mitä löytyy ja hyvä oliokieli. .NET on aivan huippuhomma ja sillä on tuottavaa (nopeaa) tehdä sovelluksia.
Ja ehdottomasti projektiksi joku oma sovellus (win/web). Valmiit tutoriaalitkin voi olla ok mutta intohimo koodata ensimmäiseksi sovellukseksi ( sen HelloWorldin jälkeen) jotain tutoriaalin keinotekoista ideaa voi olla aika vähäistä. Oman idean ohjelmoiminen sovellukseksi ajaa itseopiskelua parhaiten eteenpäin. Myös Open Source projektit hakevat jatkuvasti uusia ohjelmoijia. Kannattaa tutustua tuoreisiin open source projekteihin ettei koodimäärä ole mitään satoja tuhansia rivejä.

Sitten jos jonkun ajan kuluttua haluaa oppia tuntemaan mitä pinnan alla tapahtuu, syvemmältä kuin CLR. Eli miten käyttöjärjestelmä toimii ja rakentuu sekä mitä tarkoittaa esimerkiksi termit: named pipes, shared libraries, dynamic libraries, forkkaus etc. niin Siirry Linuxiin ja tutustu GTK tai QT ohjelmointiin. Linuxissa asiat ovat tuolla saralla näkyvissä kun taas Windowsissa ei välttämättä synny niin syvällistä tarvetta oppia näitä asioita, koska ne ovat blackboksattu ja rajapinnat tarjoavat työkaluja ohjelmoijalle. Toki näin on Linuxissakin mutta siinä alkaa herkemmin toimimaan komentorivillä ja tulee syvemmin tutuksi käyttöjärjestelmän sielunelämään - tuota suosittelen kaikille Windows ohjelmoijillekin. Luotaus Linuxiin auttaa ymmärtämään myös Windowsia.

Saw
Seuraa 
Viestejä6251
Liittynyt20.6.2009

Työelämään tarvitaan JAVAA.
Papuja rakentamaan. Toimi.

Tai älä. Ohjelmointikikkoja tärkeämpää on itse idea. Mitä ollaan tekemässä? Sitten pohditaan mitä tarvitaan. Sitten pohditaan millä voisi tehdä. Sitten pohditaan millä tehdään. Sitten pohditaan mitä tehdään. Sitten suunnitellaan, pohditaan ja tehdään JNE

Young man, there's a place you can go.
I said, young man, when you're short on your dough.
You can stay there, and I'm sure you will find
Many ways to have a good time.

It's fun to stay at the Y.M.C.A.
It's fun to stay at the Y.M.C.A.

kse
Seuraa 
Viestejä1308
Liittynyt21.11.2009

Sopiva suositus riippuu aika paljon siitä mikä on tavoite- ja ambitiotaso.

Jos kiinnostus on puhtaasti pienten sovellusten väsäämisessä omaan käyttöön ja helppojen harjoitustöiden teko koululle, niin varmaankin joku sopiva korkean tason oliokieli IDEineen on varmaakin oiva valinta. Itse suosittelisin Pythonia, koska sillä on äärimmäisen helppo lähteä liikkelle, mutta sillä kuintenkin potentiaalia varsin pitkälle.

Jos taas haluaa ymmärtää asiat perinpohjaisesti ja päästä kunnolla "sisuskaluihin" kiinni, niin sitten korkean tason kielistä on vain haittaa. Yksi suuri ongelma on esim. siitä, että ne usein abstrahoivat tietorakenteet ohjelmoijan näkymättömiin (tästä ei tietysti ole haittaa, jos on aiemmin opetellut asiat tai puskee töitä perustason koodarikulina, jolle joku muu kertoo mitä tietorakenteita ja algoritmejä käyttä).

Riittävän yksinkertaisella kielellä pääsee (eli siis joutuu) koodaamaan itse alusta alkaen kaikki aivan yksinkertaisimpia rakenteita lukuunottamatta. Tällöin pystyy omaksumaan sen, miten eri asioita kannattaa koodata ja esim. miten tietorakenteiden ja algoritmien valinta vaikuttaa suorituskykyyn, muistinkulutukseen jne.

Yksin kertaisista kielistä C olisi ainakin ilmeinen valinta - se ei ole kielistä mitenkään kaunein tai siistein, mutta ainakin sillä on mahdollisesti käyttöä jatkossakin - ainakin, jos haluaa tehdä jotain laiteläheistä tai peuhata muuten käyttöjärjestelmien kanssa. Toinen vaihtoehto olisi tietysti scheme...

Anonyymi mielipide 15 mg

Mahdolliset haittavaikutukset

Sairauden tunne, suun kuivuminen, lisääntynyt hikoilu, näköhäiriöt, ärtyneisyys, unihäiriöt, masennus, pyörtyminen, hegenahdistus, oksentelu, ripuli, hiustenlähtö, impotenssi ja gynekomastia.

Sivut

Uusimmat

Suosituimmat