Tieteessä nyt

Tee aikamatka 30 vuoden taakse ja lue Tiede-lehden - silloin Tiede 2000 -lehden - ensimmäinen numero 1/1980.

 

KESKUSTELU


Tiede.fi-foorumin päävalikko. Keskustelua kaikille tieteestä kiinnostuneille. Edellyttää rekisteröitymistä.


Tänään on Pe Syys 03, 2010 1:42 am


Kaikki ajat ovat UTC + 2 tuntia [ DST ]




Aloita uusi ketju Vastaa viestiin  [ 98 viestiä ]  Mene sivulle Edellinen  1, 2, 3, 4, 5 ... 7  Seuraava
Kirjoittaja Viesti
 Viestin otsikko: Re: Koodaamisen itsenäinen opiskelu
ViestiLähetetty: Ma Maalis 08, 2010 2:19 am 
Poissa

Liittynyt: La Marras 21, 2009 1:34 am
Viestit: 666
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...

_________________
"Self-evidently dangerous climate change will not emerge from a normal scientific process of truth seeking... ...scientists - and politicians - must trade (normal) truth for influence." - Prof. Mike Hulme, UEA


Ylös
 Profiili  
 
 Viestin otsikko: Re: Koodaamisen itsenäinen opiskelu
ViestiLähetetty: Ma Maalis 08, 2010 12:07 pm 
Poissa
Avatar

Liittynyt: Ke Maalis 16, 2005 12:56 pm
Viestit: 2414
Paikkakunta: Lahti
Saw kirjoitti:
Työelämään tarvitaan JAVAA.


Työelämää on monenlaista. Voisin yhtä hyvin väittää, että työelämässä tarvitaan .Nettiä. Riippuu ihan puhtaasti siitä minkä alan hommia päätyy tekemään.

_________________
Kokeilu on tieteen paras menettelytapa.
- Pelle Peloton


Ylös
 Profiili  
 
 Viestin otsikko: Re: Koodaamisen itsenäinen opiskelu
ViestiLähetetty: Ma Maalis 08, 2010 8:58 pm 
Poissa
Avatar

Liittynyt: To Loka 09, 2008 7:52 pm
Viestit: 1577
Heksu kirjoitti:
Toki jos kyseessä on pelkkä harrastus, pelkällä notepadillakin voi monissa tapauksissa tulla aivan hyvin toimeen.

Notepadia en edes laske tekstieditoriksi. :wink:

Kaikille nykykielille saa kehittyneet työkalut aivan ilmaiseksi, joten niiden perusteella ei valintaa tarvitse tehdä. Kunnollinen tekstieditori kuuluu joka tapauksessa ohjelmoijan työkalupakkiin, vaikka koodin vääntäisikin IDEssä.

Pitää taas mainostaa Project Euleria. Erinomainen tapa harjoitella kielen kuin kielen alkeita.* Samalla saa vähän harjoitusta algoritmeihin ja ongelmanratkaisuun yleensä. Koska tehtävissä toistuu tietyt peruskäsitteet, fiksu ohjelmoija oivaltaa tehdä uudelleenkäytettäviä osia, joten jotain suunnitteluymmärrystäkin saattaa kehittyä.

*: Toki noita tehtäviä voi ratkoa ihan kynällä ja paperillakin, mutta haastavaksi menee.

_________________
*******************************************************


Ylös
 Profiili  
 
 Viestin otsikko: Re: Koodaamisen itsenäinen opiskelu
ViestiLähetetty: Ma Maalis 08, 2010 9:27 pm 
Poissa

Liittynyt: Ma Helmi 22, 2010 3:20 am
Viestit: 42
kahlaaja kirjoitti:
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...


Auttaisi vähän jos tietäisi mitä alaa aiot opiskella. Hyödyllisin kieli vaihtelee paljon alan mukaan. Kannattaa katsoa opiskeliaoppaat, ja kurssikuvaukset sekä kurssien kotisivut.

Jos on todella tylsää voi ilmoittautua jo nyt avoimeen yliopistoon ja etäsuorittaa kursseja.


Ylös
 Profiili  
 
 Viestin otsikko: Re: Koodaamisen itsenäinen opiskelu
ViestiLähetetty: Ma Maalis 08, 2010 9:29 pm 
Poissa
Avatar

Liittynyt: Ke Maalis 16, 2005 12:56 pm
Viestit: 2414
Paikkakunta: Lahti
abskissa kirjoitti:
Pitää taas mainostaa Project Euleria. Erinomainen tapa harjoitella kielen kuin kielen alkeita.*


Tämäpä olikin hyvä vinkki, kiitos :)

_________________
Kokeilu on tieteen paras menettelytapa.
- Pelle Peloton


Ylös
 Profiili  
 
 Viestin otsikko: Re: Koodaamisen itsenäinen opiskelu
ViestiLähetetty: Ti Maalis 09, 2010 12:56 am 
Poissa

Liittynyt: La Marras 21, 2009 1:34 am
Viestit: 666
BrunenG kirjoitti:
kahlaaja kirjoitti:
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...


Auttaisi vähän jos tietäisi mitä alaa aiot opiskella. Hyödyllisin kieli vaihtelee paljon alan mukaan. Kannattaa katsoa opiskeliaoppaat, ja kurssikuvaukset sekä kurssien kotisivut.

Jos on todella tylsää voi ilmoittautua jo nyt avoimeen yliopistoon ja etäsuorittaa kursseja.


Tietotekniikan osalta on ainakin tullut kuultua sellaista, että suurin osa "mää oon koodannut javaa 7-vuotiaasta alakaen" -tyypeistä valittaa peruskursiin kaikkille opiskelijoille yhteisen osan aikana kurssin "naurettavasta helppoudesta" - vaan sitten kun siirrytään tietotekniikan opiskelijoille spesifiseen osaan, niin nämä "lapsigurut" aloittavatkin vielä suuremman parkumisen opintojen järjettömyydestä ja - käsittääkseni - osa jopa lopettaa opintonsa tuohon.

Ilmeisesti se on vain niin vaikea tunnustaa, että kaikki mitä on itse oppinut vuosien saatossa onkin pelkää roskaa, joka pitäisi unohtaa, että pääsisi eteenpäin.

_________________
"Self-evidently dangerous climate change will not emerge from a normal scientific process of truth seeking... ...scientists - and politicians - must trade (normal) truth for influence." - Prof. Mike Hulme, UEA


Ylös
 Profiili  
 
 Viestin otsikko: Re: Koodaamisen itsenäinen opiskelu
ViestiLähetetty: Ti Maalis 09, 2010 1:06 am 
Poissa

Liittynyt: La Marras 21, 2009 1:34 am
Viestit: 666
abskissa kirjoitti:
Kaikille nykykielille saa kehittyneet työkalut aivan ilmaiseksi, joten niiden perusteella ei valintaa tarvitse tehdä. Kunnollinen tekstieditori kuuluu joka tapauksessa ohjelmoijan työkalupakkiin, vaikka koodin vääntäisikin IDEssä.


Miksi tyytyä tekstieditoreihin ja huonoihin valmistajakohtaisiin IDEihin, koska aina voi käyttää emacsia?

_________________
"Self-evidently dangerous climate change will not emerge from a normal scientific process of truth seeking... ...scientists - and politicians - must trade (normal) truth for influence." - Prof. Mike Hulme, UEA


Ylös
 Profiili  
 
 Viestin otsikko: Re: Koodaamisen itsenäinen opiskelu
ViestiLähetetty: Ti Maalis 09, 2010 1:21 pm 
Poissa

Liittynyt: Ke Marras 25, 2009 10:27 am
Viestit: 39
Heksu kirjoitti:
Saw kirjoitti:
Työelämään tarvitaan JAVAA.


Työelämää on monenlaista. Voisin yhtä hyvin väittää, että työelämässä tarvitaan .Nettiä. Riippuu ihan puhtaasti siitä minkä alan hommia päätyy tekemään.


Niinpä! En ole vielä kohdannut DSP järjestelmiä, jossa tarvitaan JAVAA. Siellä C on edelleen se lähes ainut ja oikea kieli assyn rinnalla

C-kielen kun hanskaa, niin hanskaa kaikki muutkin + oppii ymmärtämään matalantason hommistakin jotain. Tosin mihin sitä matalantason osaamista tarvitaan, jos survoo UI koodia tms.

Joskus näin analogisen kellon Windowsissa, joka oli koodattu 100% assemblerilla. Tais mennä melko pieneen tilaan. Tosin nykyään on vähän hankala käyttää pelkkää assya moniydinprossuissa

Tässäpä varsin oiva koodaamisprojekti

Mutta koodin koko ja suoritusaika kunniaan, siirtykäämme assembleriin 8) 8)


Ylös
 Profiili  
 
 Viestin otsikko: Re: Koodaamisen itsenäinen opiskelu
ViestiLähetetty: Ti Maalis 09, 2010 7:00 pm 
Poissa
Avatar

Liittynyt: To Loka 09, 2008 7:52 pm
Viestit: 1577
softbuster kirjoitti:
C-kielen kun hanskaa, niin hanskaa kaikki muutkin + oppii ymmärtämään matalantason hommistakin jotain.

Matalan tason ymmärryksestä on tietenkin aina hyötyä, mutta muuten tuo ei pidä paikkaansa. Vaikka Javan tai C#:n syntaksi on C:stä peritty, niin kielinä niillä ei C:n kanssa ole juuri mitään tekemistä. Proseduraalisesta oliokieleen siirtyvä joutuu opettelemaan paljon uusia asioita. Siirtymävaiheessa, joka voi kestää vuosia, ensimmäistä oliokieltä opetteleva koodari soveltaa pääasiassa aivan vääränlaisia (siis proseduraalisia) ongelmanratkaisu- ja suunnittelumalleja. Koodi on pullollaan staattisia metodeja ja luokiksi naamioituja structeja (IDE "auttaa" tässä, kun saa napin painalluksella julkiset getterit ja setterit kaikille kentille). Polymorfismia, perintää, rajapintoja ja abstrakteja luokkia tms. olio-ominaisuuksia ei ole hyödynnetty yhtikäs missään. On vain structeja ja niitä manipuloivia funktioita, joita vain nimitetään luokiksi ja metodeiksi.

Itse asiassa väittäisin, että samaan syntiin sortuvat myös pelkästään oliokielten kanssa peuhanneet ja kokeneetkin ohjelmoijat. Olioajattelu on vaikea oppia ja vielä vaikeampi soveltaa. En ole eläissäni nähnyt yhtään lähellekään tyylipuhdasta oliototeutusta. Enkä tehnyt.

_________________
*******************************************************


Ylös
 Profiili  
 
 Viestin otsikko: Re: Koodaamisen itsenäinen opiskelu
ViestiLähetetty: Ti Maalis 09, 2010 7:19 pm 
Poissa

Liittynyt: Ke Marras 15, 2006 1:09 pm
Viestit: 940
Paikkakunta: Oulu
abskissa kirjoitti:
En ole eläissäni nähnyt yhtään lähellekään tyylipuhdasta oliototeutusta. Enkä tehnyt.


Toisaalta tuohan on harvoin kellekään mikään päämäärä, ainakaan minusta "oliomaisuudella" ei ole itseisarvoa.

_________________
http://mkoskim.drivehq.com
http://mkoskim.deviantart.com


Ylös
 Profiili  
 
 Viestin otsikko: Re: Koodaamisen itsenäinen opiskelu
ViestiLähetetty: Ti Maalis 09, 2010 8:02 pm 
Poissa
Avatar

Liittynyt: To Loka 09, 2008 7:52 pm
Viestit: 1577
MaKo71 kirjoitti:
Toisaalta tuohan on harvoin kellekään mikään päämäärä, ainakaan minusta "oliomaisuudella" ei ole itseisarvoa.

Ei tietenkään. Pitää nyt korjata sen verran, että olen myös nähnyt niitä hyviä ja jonkin verran oliomaisiakin toteutuksia. Tarkoitin vain sitä, että tyylipuhtauteen on vaikeaa tai mahdotonta päästä.

Jos työkaluksi on kuitenkin valittu oliokieli, toteutuksissa olisi ihan hyvä pyrkiä mahdollisimman oliomaisiin ratkaisuihin. Niitä ajatellen se kieli on suunniteltu, ja niissä se toimii parhaimmillaan.

Mikään lopullinen hopealuotiparadigma olio-ohjelmointikaan ei tietenkään ole.

Kuva

_________________
*******************************************************


Ylös
 Profiili  
 
 Viestin otsikko: Re: Koodaamisen itsenäinen opiskelu
ViestiLähetetty: Ti Maalis 09, 2010 8:20 pm 
Poissa

Liittynyt: Ke Marras 25, 2009 10:27 am
Viestit: 39
abskissa kirjoitti:
softbuster kirjoitti:
C-kielen kun hanskaa, niin hanskaa kaikki muutkin + oppii ymmärtämään matalantason hommistakin jotain.

Matalan tason ymmärryksestä on tietenkin aina hyötyä, mutta muuten tuo ei pidä paikkaansa. Vaikka Javan tai C#:n syntaksi on C:stä peritty, niin kielinä niillä ei C:n kanssa ole juuri mitään tekemistä. Proseduraalisesta oliokieleen siirtyvä joutuu opettelemaan paljon uusia asioita. Siirtymävaiheessa, joka voi kestää vuosia, ensimmäistä oliokieltä opetteleva koodari soveltaa pääasiassa aivan vääränlaisia (siis proseduraalisia) ongelmanratkaisu- ja suunnittelumalleja. Koodi on pullollaan staattisia metodeja ja luokiksi naamioituja structeja (IDE "auttaa" tässä, kun saa napin painalluksella julkiset getterit ja setterit kaikille kentille). Polymorfismia, perintää, rajapintoja ja abstrakteja luokkia tms. olio-ominaisuuksia ei ole hyödynnetty yhtikäs missään. On vain structeja ja niitä manipuloivia funktioita, joita vain nimitetään luokiksi ja metodeiksi.

Itse asiassa väittäisin, että samaan syntiin sortuvat myös pelkästään oliokielten kanssa peuhanneet ja kokeneetkin ohjelmoijat. Olioajattelu on vaikea oppia ja vielä vaikeampi soveltaa. En ole eläissäni nähnyt yhtään lähellekään tyylipuhdasta oliototeutusta. Enkä tehnyt.


Tavallaan totta turiset.

Tuo puhdas olioajattelu ja ohjelmointi on nykyään lähinnä harha-ajattelua. Firmoissa (niin suomessa kuin muuallakin) käytetään hyvinkin paljon erilaisia UML mallinnustyökaluja ja niillä jopa pyritään saamaan aikaan toimivaa koodia. Käsin koodatut C++ sovellukset on varsin kaukana olioajattelusta.

Eräässäkin suuressa saksalaisessa firmassa lähes kaikki oli mallinnettu ja hienoja luokkakaavioita yms. oli piirretty viimesen päälle, mutta kun koodiin vilkas, niin se kauheus paljastu. Siellä oli suvereenisti käytetty strukturaalisia tapoja. Eli kuten sanoit, tehty structeja, jotka "näyttää" luokilta. Kun jotain uutta oli lisätty, niin mallikaavioita ei oltu päivitetty. Ja itse mallikaaviot oli 3-4v vanhoja

Puhas mallinnus / olio-ohjelmointi on nykyään aikataulujen puiteissa melko hankalaa ja siks useimmissa isoissa alan firmoissa koodit on sitä C ja C++ sekamelskaa.

Matalantason softat onneks tehdään vielä perinteisellä C kielellä ja hyvin paljon embedded SW hommia tehdään vielä C-kielellä. Trendi on nykyään se, että erilaiset itsenäiset rautakortit, driverit, aktiivisensorit, modeemit, L2-L3 protokollakerrokset yms. toteutetaan pääosin C -kielellä.


Ylös
 Profiili  
 
 Viestin otsikko: Re: Koodaamisen itsenäinen opiskelu
ViestiLähetetty: Ti Maalis 09, 2010 8:37 pm 
Poissa

Liittynyt: Ma Marras 30, 2009 10:52 pm
Viestit: 248
Kyllähän tuo olio-ohjelmointi välillä tuottaa aika hupaisia implementaatioita, esim.

http://www.vtk.org/doc/nightly/html/cla ... _graph.png

Googlen C++ -ohjeistus on aika lähellä sitä, miten meilläpäin on pyritty asioita käytännössä toteuttamaan.


Ylös
 Profiili  
 
 Viestin otsikko: Re: Koodaamisen itsenäinen opiskelu
ViestiLähetetty: Ti Maalis 09, 2010 8:47 pm 
Poissa

Liittynyt: Ma Loka 19, 2009 10:19 pm
Viestit: 865
Monesti kun siirrytään IT-puolesta insinöörisovellusten kautta tieteelliseen laskentaan, niin oliopohjaiset kielet vaihtuvat proseduaalisiin, eikä tarvitse mennä edes kovin hard core sovelluksiin kun hallitsevaksi kieleksi tulee Fortran.

_________________
"Erikoisen merkityksen saa juuri neutronien aikaansaama fissio, kun havaitaan että esim. U-235 -ytimen halkeamisessa vapautuu keskimäärin 2,5 uutta neutronia."

- Atomi- ja ydinfysiikka, P. Jauho 1961


Ylös
 Profiili  
 
 Viestin otsikko: Re: Koodaamisen itsenäinen opiskelu
ViestiLähetetty: Ti Maalis 09, 2010 9:54 pm 
Poissa

Liittynyt: Ke Marras 25, 2009 10:27 am
Viestit: 39
mal kirjoitti:
Kyllähän tuo olio-ohjelmointi välillä tuottaa aika hupaisia implementaatioita, esim.

http://www.vtk.org/doc/nightly/html/cla ... _graph.png

Googlen C++ -ohjeistus on aika lähellä sitä, miten meilläpäin on pyritty asioita käytännössä toteuttamaan.


Tuo kaavio taitaakin olla sitä nykytaidetta olioajattelulla höystettynä....

Nuo C++ ohjeistukset on monessa firmassa varsin hyvällä tasolla. Projektin alussa niitä noudaetaan pilkuntarkkaan. Mutta ongelma usein piileekin vanhoissa koodeissa, joita on päätetty käyttää uudessa tuotteessa. Sieltä kun löytyy varsin mielenkiintoisia "olioita", joiden modaaminen projektin haluamalle tasolle on vaivalloista. Ja jos aikataulu on tiukka, niin vanhaan koodiin sörkitään nopeasti halutut muutokset ja sovitaan, että tehdään uus ja parempi kun jää aikaa. Ja senhän nyt sitten tietää miten siinä käy. Eli vanhat oliohässäkät tunataan kuntoon ja taas sama ongelma odottaa toista projektia

Olis joskus mukava päästä sellasiin hommiin, jossa alkuperäinen roska on tehty alusta saakka oikeilla menetelmillä ja olioajattelulla. Sellaselle toiminnalle nostaisin hattua

DSP hommissa C on aivan ykkönen. Nykykääntäjät tekee hyvin hyvin tiivstä koodia ja osaa ottaa huomioon esim. käskyjen rinnakkaisajoa jne. Kooduksessa joutuu käyttämään muutamia jippoja, joilla kääntäjä tajuaa että nyt lasketaan ALU A rekkareilla ja nyt B:n rekkareilla. Hyvin harvoin kannattaa käsin koodailla assya nyky DSP:lle. Kääntäjät tarjoo ns. intrinsic -toimintoja joilla pääsee käsiks DSP spesiaalisiin käskykantoihin. Kääntäjä on joskus jopa niin fiksu, että osaa C koodista päätellä, että tässä kohtaa voisi käyttää sisäänrakennettuja käskykantoja.

Kääntäjät mahdollistaa C++ koodin, mutta sitä ei käytetä, kun käyttikset on useimmiten kaupallisia ja varsin tehokkaasti optimoitu juuri siihen DSP prossuun. Voipi olla että firmat eivät ole ottaneet riskiä siirtyä C:stä C++:aan sen takia, että reaaliaika laskenta vaatimukset tunnetaan nykykoodista ja C++ on kuin musta verho systeemisuunittelijoille. Vaikkakin siitä voisi olla hyötyä ylläpidossa ja uudelleenkäytettävyyden ansiosta. Nykyisten yksittäisten DSP verkkokomponenttien koodi koko on kuitenkin kymmenien megatavujen luokkaa, ja joka ei muuta tee kuin murskaa numeroita niin hätäseen kun mahdollista. Niin voisi olla tavallaan perusteltua mallintaa koko DSP arkkitehtuuri uudelleen olioajattelulla.

Mielnkiintoista olisi nähdä / kuulla mielipiteitä asiasta.


Ylös
 Profiili  
 
Näytä viestit ajalta:  Järjestä  
Aloita uusi ketju Vastaa viestiin  [ 98 viestiä ]  Mene sivulle Edellinen  1, 2, 3, 4, 5 ... 7  Seuraava

Kaikki ajat ovat UTC + 2 tuntia [ DST ]


Paikallaolijat

Käyttäjiä lukemassa tätä aluetta: Ei rekisteröityneitä käyttäjiä ja 2 vierailijaa


Et voi kirjoittaa uusia viestejä
Et voi vastata viestiketjuihin
Et voi muokata omia viestejäsi
Et voi poistaa omia viestejäsi

Etsi tätä:
Hyppää:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Käännös, Lurttinen, www.phpbbsuomi.com
phpBB SEO