Tieteessä nyt

 

Tiede-lehti jakoi 100 stipendiä lukiolaisille.

Onnittelut palkituille!

 

Lisää Tiedettä sähköisenä!

Tiede-lehden iPad-versio on ladattavissa ja ostettavissa irtonumeroina App Storessa.

 

KESKUSTELU


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


Tänään on Su Touko 27, 2012 10:18 pm


Kaikki ajat ovat UTC + 2 tuntia [ DST ]




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

Liittynyt: La Marras 21, 2009 1:34 am
Viestit: 1237
MaKo71 kirjoitti:
kse kirjoitti:
Olikos muuten niinkin, että valmistajakohtaiset tiedosto-I/O-rajapinnat olivat ainakin tuolloin ennen muinoin suoraan jostain sieltä minne aurinko ei paista?


Oli niitä sellaisiakin, mutta kaikissahan ne oli kuitenkin erilaisia. PC-Turbo-Pascal nojasi muistaakseni kuitenkin DOS:n systeemikutsuihin tiedosto-I/O:ssa ja oli niiltä osin melkein 1:1 Turbo-C:n eli C:n kanssa. Nimissä oli jotain eroja, joku BlockRead -homma muistuisi mieleeni... Tai jotain.


Urf... BlockRead :shock: Mieleen alkaa kumpuamaan jotain hyvin ikäviä muistoja... :?

Lainaa:
Ja Python on tosiaan kiva kieli ja yks mun vapaa-ajan projektien kieli. Töissähän koodataan täsmälleen sillä, millä työnantaja sanoo, makuasioista välittämättä :)


Niin... minä olen päässyt keplottelemaan asemaan, jossa hommat koostuvat mm. protokollien ja algoritmien kehityksestä ja työnantajaa ei voisi vähempää kiinnostaa millä kielellä koodaan omat ideoiden testaukseen käyttämäni työkalut - kunhan vaan lopputulemana on riittävän hyvä speksi.

Lainaa:
Lainaa:
C++:n pariin pitäisi kyllä joskus palata... se on ilmaisuvoimassaan jotenkin elegantti - kunhan vain hoksaa miten asiat pitää tehdä.


Älä ota sitä, vaan ota D:

http://www.digitalmars.com/d/


Mitä? Ei moniperintää? Blah... eihän sellainen kiinnosta.

Itseasiassa ajattelin seuraavaksi opetella Erlangin, koska siinä on rinnakkaistus ja hajautus suoraan sisään rakennettuna.

Saapas nyt sitten kuitenkin nähdä - vuosien saatossa kun on pitänyt opetella kaikkea muutakin heti, kun kerkiää...

_________________
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.


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

Liittynyt: Ke Marras 15, 2006 1:09 pm
Viestit: 1145
Paikkakunta: Oulu
kse kirjoitti:
Mitä? Ei moniperintää? Blah... eihän sellainen kiinnosta.


:D Minä aikanani rakentelin sellaista käyttöliittymä-runtime -kirjastoa, jossa kaikki asiat tehtiin moniperinnällä pienistä paloista. Yksi moniperittävä luokka oli ikään kuin "DNA:ta", ja pienistä paloista koostettiin isompia kokonaisuuksia.

Meni sen homman kanssa lopulta hermot, kun projektin kanssa olin ihan solmussa, että mitähän attribuuttia oliot nyt oikein käsittelee tai mitä metodia kutsuu, kun saman nimisiä tuli hierarkian ylemmiltä palikoilta moneen kertaan eri kautta :D

...Toinen "kuningasidea" oli se, että tein kirjastoa, jossa kaikki ikkunan komponentit olivat omia rinnakkaisia prosessejaan. No, olihan siinä hyvätkin puolensa, mutta oli se aika hirveän raskas ja X-serveri oli aina välistä vähän ihmeissään siitä, että kukas täällä nyt käskee tehdä ja mitä :) Tosin tämä projekti oli työn alla joskus viime vuosituhannella.

Erlangia on kyllä paljon kehuttu - tai sanottu, että se voi olla vaikea aloittaa, mutta mukava sitten, kun sitä osaa - mutten ole itse vielä saanut kipinää sen opettelemiseksi.

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


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

Liittynyt: Ma Marras 30, 2009 10:52 pm
Viestit: 248
kse kirjoitti:
C++:n pariin pitäisi kyllä joskus palata... se on ilmaisuvoimassaan jotenkin elegantti - kunhan vain hoksaa miten asiat pitää tehdä.


C++ yksinään voi olla hieman karu, jos on tottunut Pythonin, Javan tai C#:n vakioherkkuihin.

C++:sta kiinnostuneille olenkin yleensä suositellut kunnon työkalupakkia onnistumisprosentin maksimoimiseksi. Qt esimerkiksi on loistava. Ei häpeä näppäryydessä Pythonille juuri lainkaan mutta natiivibinäärien vauhti ja suorituskyky onkin sitten omaa luokkaansa.


Ylös
 Profiili  
 
 Viestin otsikko: Re: Koodaamisen itsenäinen opiskelu
ViestiLähetetty: Pe Maalis 19, 2010 9:44 pm 
Poissa

Liittynyt: La Marras 21, 2009 1:34 am
Viestit: 1237
mal kirjoitti:
kse kirjoitti:
C++:n pariin pitäisi kyllä joskus palata... se on ilmaisuvoimassaan jotenkin elegantti - kunhan vain hoksaa miten asiat pitää tehdä.


C++ yksinään voi olla hieman karu, jos on tottunut Pythonin, Javan tai C#:n vakioherkkuihin.


En varmaankaan osaa selittää tätä kovinkaan hyvin, mutta koittakaa pysyä perässä...

Ensinnäkin sanottakoon, että C++ lemmikkiprojektini on tapahtumapohjainen simulaattori, jossa tapahtumien välitys on abstrahoitu siten, että simulaattorikirjastoa käyttävän ohjelmoijan ei tarvitse tietää onko simulointi yksisäikeinen, monisäikeinen vaiko kokonaan hajautettu. Tämä projekti on tosin ollut syvässä unessa jo vuosikaudet...

Se mitä tarkoitan "eleganttiudella" tulee toisaalta osittain tuosta karuudesta, mutta myös ilmaisuvoimasta, joka liittyy moniperintään, templateihin, operaattoreiden ylikuormaukseen jne. Ehkä toisella tavalla sanottuna juuri niihin C++:n ominaisuuksiin, joilla aloittelija kaikkein helpoiten ampuu itseään jalkaan.

Jotenkin siis se, että pystyy sanomaan mahdollisimman paljon äärimmäisen vähällä määrällä koodia, on mielestäni jotekin kaunista - vaikka se monasti merkitseekin sitä, ettei kukaan muu ihan pienellä pohtimisella hoksaa mitä koodi oikeastaan tekee. Uudelleenkäytettävyyden kannalta tietysti hieman huono juttu, mutta ainakin minä saan aikamoiset fibat, kun yhtäkkiä kokee "valaistumisen" ja tajuaa miten kymmenien rivien sillisalaatin pystyy korvaamaan parin rivin nerokkaalla "loitsulla".

_________________
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.


Ylös
 Profiili  
 
 Viestin otsikko: Re: Koodaamisen itsenäinen opiskelu
ViestiLähetetty: Pe Maalis 19, 2010 10:27 pm 
Poissa

Liittynyt: Ma Marras 30, 2009 10:52 pm
Viestit: 248
Ok, käsittääkseni ymmärsin nyt, mitä tarkoitit.

Tuossa edellä lähinnä halusin antaa vinkin mahdolliselle C++ -aloittelijalle. Kannattaa samantien tutustua tehokkaisiin työkalupakkeihin, niin voipi jossain vaiheessa saada jotain aikaiseksikin ;)

C++:n työkalupakeista edellä mainitsemani Qt mielletään yleensä graafisten käyttöliittymien kirjastoksi. Tätä se tietenkin on mitä suurimmassa määrin, mutta myös paljon muuta. Esim. säikeystys on äärimmäisen kätevää ja suoraviivaista Qt:n ytimellä, hommaa ei juurikaan näppärämmin voisi hoitaa.

Toki myös muut paketit, kuten boost, tarjoavat paljon mukavaa C++-ohjelmoijan elämää helpottavaa pikkukivaa, Qt ei missään nimessä ole ainoa kirjasto. Qt:n käyttö on kuitenkin hyvin maanläheistä ja pragmaattista ja koodista tulee mielestäni varsin siistin näköistä ja luettavaa.


Ylös
 Profiili  
 
 Viestin otsikko: Re: Koodaamisen itsenäinen opiskelu
ViestiLähetetty: La Maalis 20, 2010 12:49 pm 
Poissa
Avatar

Liittynyt: To Loka 09, 2008 7:52 pm
Viestit: 2714
kse kirjoitti:
Jotenkin siis se, että pystyy sanomaan mahdollisimman paljon äärimmäisen vähällä määrällä koodia, on mielestäni jotekin kaunista - vaikka se monasti merkitseekin sitä, ettei kukaan muu ihan pienellä pohtimisella hoksaa mitä koodi oikeastaan tekee.

Ja kun lukee saman pätkän muutaman vuoden päästä, ei sitä tajua enää itsekään. :wink:

Loogisesti yksinkertainen ratkaisu on tietenkin aina kaunis. Se on lähempänä ongelman ydintä, ja siksi sellaisen löytämiseen liittyy aina jonkinlainen valaistumistuntemus.

Tyylikkäitä ratkaisuja ei kuitenkaan tarvitse esittää mitenkään korostetun tiiviisti. Ei sen koodin kauneus minusta vähene, vaikka sitä jäsentelee, laventaa ja höystää kommenteilla sen verran, että sen ymmärtäminen ei enää ole mitään salapoliisitouhua. Huoliteltu muotoilu, selkeys ja helppolukuisuus on myös kaunista, ja sellaista kauneutta arvostaa sitä enemmän, mitä enemmän joutuu lukemaan koodia, jota ei ole viitsitty mitenkään jäsennellä ja selventää.

Joskus tiiviys ja selkeys kuitenkin leikkaavat.

Quicksort (Haskell -- geneerinen):
Koodi:
qsort []     = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs)


Quicksort (C, C++, Java, melkein C# -- vain int-taulukoille):
Koodi:
void qsort(int a[], int lo, int hi) {
  int h, l, p, t;

  if (lo < hi) {
    l = lo;
    h = hi;
    p = a[hi];

    do {
      while ((l < h) && (a[l] <= p))
          l = l+1;
      while ((h > l) && (a[h] >= p))
          h = h-1;
      if (l < h) {
          t = a[l];
          a[l] = a[h];
          a[h] = t;
      }
    } while (l < h);

    a[hi] = a[l];
    a[l] = p;

    qsort( a, lo, l-1 );
    qsort( a, l+1, hi );
  }
}

_________________
We're all mad here.


Ylös
 Profiili  
 
 Viestin otsikko: Re: Koodaamisen itsenäinen opiskelu
ViestiLähetetty: La Maalis 20, 2010 5:13 pm 
Poissa

Liittynyt: La Marras 21, 2009 1:34 am
Viestit: 1237
abskissa kirjoitti:
kse kirjoitti:
Jotenkin siis se, että pystyy sanomaan mahdollisimman paljon äärimmäisen vähällä määrällä koodia, on mielestäni jotekin kaunista - vaikka se monasti merkitseekin sitä, ettei kukaan muu ihan pienellä pohtimisella hoksaa mitä koodi oikeastaan tekee.

Ja kun lukee saman pätkän muutaman vuoden päästä, ei sitä tajua enää itsekään. :wink:


Olekin koittanut pitää "taideohjelmoinnin" erossa oikeasta työnteosta, mutta täytyy kyllä tunnustaa, että n. viikko sitten tuli ihmeteltyä omaa python-koodia - ensiksi luulin, että oli tehnyt jonkun typerän virheen ja että koodi tekisi jotain ihan muuta kuin sen piti - seuraavaksi, kun koodia olisi pitänyt korjata, en ymmärtänytkään yhtään mitä se teki - kunnes puolen päivän pohdinnan jälkeen hoksasin, että koodihan teki juuri sitä mitä sen pitikin :shock:

...ja olin kirjoittanut kyseisen pätkän pari viikkoa aiemmin... :oops:

No - muutujien epäselvä nimeäminen ja ylimalkaiset kommentit yhdistettynä näppärään kikkaan on monasti aika huono yhdistelmä. :roll:

_________________
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.


Ylös
 Profiili  
 
 Viestin otsikko: Re: Koodaamisen itsenäinen opiskelu
ViestiLähetetty: Ma Maalis 22, 2010 5:17 pm 
Poissa

Liittynyt: La Marras 21, 2009 1:34 am
Viestit: 1237
abskissa kirjoitti:
Joskus tiiviys ja selkeys kuitenkin leikkaavat.


Joo... :lol:

Koodi:
int m(int a,int b){return b?b&1?b>0?a+m(a,--b):-a-m(a,-++b):m(a<<1,b>>1):0;}

_________________
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.


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

Kaikki ajat ovat UTC + 2 tuntia [ DST ]


Paikallaolijat

Käyttäjiä lukemassa tätä aluetta: Edup ja 9 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