Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: C#-opas? / C & C++ opiskelu

Sivun loppuun

Rox [20.05.2013 16:02:26]

#

Hei! Oon tässä opiskellut VB.NETiä pari kuukautta, ja on alkanut ohjelmointi kiinnostamaan enemmänkin. Mietin vain, että kannattaisko lähteä enemmänkin opiskelemaan C#, jos tavoitteena on tulevaisuudessa yrittää opiskella C-Kieltä, ja ehkä C++ sen jälkeen? Siihen olisi tosin vielä pitkä matka.

Takaisin otsikkoon:

Kun täällä ohjelmointiputkassakin on ilmeisesti jonkun verran porukkaa, jotka ohjelmoi C#:lla niin jos jo(i)llain olisi tarpeeksi mielenkiintoa ja aikaa kirjoittaa opas, niin tulisi C# Opas ainakin itsellä kovaan käyttöön. Ja onhan C# aika yleinen kieli kuitenkin, ja Ohjelmointiputkassa ei sitä vielä ole :) Toki googlettamalla löytää monia tutoriaaleja, mutta Suomenkielinen auttaisi oppimaan paljon paremmin.

Mielipiteitä?

vesikuusi [20.05.2013 17:19:16]

#

Takaisin johdantoon:
Miksi haluat siirtyä C#:sta C-kieleen, jos tarkoituksena on vielä opiskella C++:aa? Jos välttämättä haluat opetella C-kieltä, niin ota se joskus tulevaisuudessa C++:n jälkeen. Pointtina siis se, että itse en näe järkeväksi siirtyä olioparadigmasta proseduaaliseen ja sitten taas oliokieleen. Itse Stroustrupkin on sanonut, että opiskellakseen C++:aa on enemmänkin haitallista opiskella ensin C:tä. Tarkoittanee sitä, että C-ohjelmoija soveltaa liian helposti C-tyylistä kamaa C++:aan.

Sitten tullaan taas siihen, että suunnitelmallinen siirtyminen kielestä toiseen ei ole oppimisen kannalta kaikista ideaalisinta (voihan se ihan hauskaa tosin olla).

C# -opas olisi minun mielestäni plussaa sivustolle, mutta kirjoittajaa lienee vaikea löytää pyytämällä, kuten aiemmat keskustelut ovat osoittaneet (tällainen kuva minulla).

Stroustrupin mielipidettä vielä tuosta C++/C -asiasta: http://www.stroustrup.com/bs_faq.html­#prerequisite

Tuo aiemmman viittaukseni lähde on muistaakseni Jesse Libertyn kirja "Sams Teach Yourself C++ in 21 Days". Jossain alussa mainittiin.

Rox [20.05.2013 17:34:59]

#

Tuo on kyllä varmaan totta, itsellä ei ole vielä muista kielistä kuin vb.netistä(ja vähän VB6) kokemusta. Elikkä C#:ista kannattaa siis suoraan siirtyä C++, ilman C -kieltä välissä. Päätavoitteena nyt on ainakin siirtyä VB.Netistä C#:iin, kun siitä nyt on kuitenkin sitten helpompi siirtyä C, tai C++ kieleen ja oppisi ne aaltosulut ym. Siinä samalla.

Totta, kukaan tuskin sitä pyytämällä kirjoittaa, mutta omasta mielestä olisi tosi hienoa jos sellainen tänne saataisiin. Olen aika varma että sillä olisi muitakin lukijoita. :)

vesikuusi [20.05.2013 17:48:24]

#

Jep, varmasti olisi lukijoita.

C# on minun mielestäni oikein jees kieli aloittelijalle ja ammattilaiselle riippuen tietysti siitä, mitä koodaa. Siitä en uskalla paljon sanoa, onko C++ hyvä kieli sharpin jälkeen. C++ on hyvin vaikea kieli, jota pitäisi käyttää harkitusti ja taidolla. Itse olen opiskellut kyseistä kieltä (laiskasti) ohjelmoinnin aloittamisesta asti (n. 4 vuoden ajan) enkä sanoisi osaavani käyttää sitä kovinkaan taitavasti. Eli ehdotan, että mieluummin vaikka Java ja sitten C++, kun on perusteet ja vähän enemmänkin hanskassa.

Itse tosin olen alusta asti vääntänyt C++:aa ihan mielenkiinnosta :D

Rox [20.05.2013 18:17:58]

#

Okei, jossakin vaiheessa olisi mukava osata jokin kieli, mikä toimii ilman .NET riippuvuutta. Tähän kysymykseen ei varmaan ole yhtä oikeaa vastausta, mutta kumpaanko olisi helpompi siirtyä C#in jälkeen, C vaiko C++?

Ihan vain hyvin vuoksi oon muutaman kerran tehnyt C++ konsoli ohjelmia, tutoriaaleja katsomalla youtubesta ja sen oon kyllä huomannut että C++ pitää oikeasti hallita jos sillä haluaa tehdä kunnollisia ohjelmia.

Toivottavasti joku jaksaisi alkaa kirjoittamaan C# opasta, kova homma siinä olisi toki edessä.

vesikuusi [20.05.2013 20:11:15]

#

Rox kirjoitti:

--jossakin vaiheessa olisi mukava osata jokin kieli, mikä toimii ilman .NET riippuvuutta.

Tähän suosittelisin Javaa.

Rox kirjoitti:

--kumpaanko olisi helpompi siirtyä C#in jälkeen, C vaiko C++?

Uskaltaisin väittää, että C++ on parempi vaihtoehto sinulle, koska sinulla ei ole erityistä syytä koodata C:llä, ja C++ on C#:n tapaan oliokieli.

Metabolix [20.05.2013 21:03:14]

#

Tuollaiset siirtymiset eivät ole minusta järkevää ajattelua. Jos haluat opetella jonkin kielen, opettele se äläkä yritä ”siirtyä” siihen mitään ihmeellistä reittiä.

Jos on aiemmin käyttänyt vain VB.NETin, C#:n ja Javan kaltaisia kieliä, joissa on automaattinen roskienkeruu, kompastuskiveksi voi muodostua C++:n manuaalinen muistinkäsittely, ja kun sen kanssa törttöilee, saa aikaan vain hitaita ja kaatuilevia C++-ohjelmia.

Mieti, onko sinun ylipäänsä tarpeellista opetella C++-kieltä. C++ vaatii ohjelmoijalta entistä enemmän ja tarjoaa korvaukseksi vain lisää valtaa matalan tason asioihin, mikä ei mielestäni ole järkevä vaihtokauppa, jos ei ole erityistä syytä näpertää niillä matalan tason asioilla. Toki ymmärrän, jos tavoitteena on osallistua johonkin projektiin, jossa kieli on jo päätetty. C-kielen kohdalla tilanne on hieman samanlainen: vaikka (tai koska) se on melko yksinkertainen, monet asiat ovat vaivalloisia toteuttaa, minkä vuoksi sitä kannattaa käyttää lähinnä silloin, kun se on teknisesti välttämätöntä.

Rox [20.05.2013 22:03:40]

#

Totta, mutta päätavoitteena on nyt ensin opetella C#, ja sitten jos ja kun se on hallussa ja jos on vielä inspiraatiota, opetella se C++ taikka C.

The Alchemist [21.05.2013 09:51:37]

#

Rox kirjoitti:

Okei, jossakin vaiheessa olisi mukava osata jokin kieli, mikä toimii ilman .NET riippuvuutta. Tähän kysymykseen ei varmaan ole yhtä oikeaa vastausta, mutta kumpaanko olisi helpompi siirtyä C#in jälkeen, C vaiko C++?

Miksi .NET on niin paha? Joudut joka tapauksessa olemaan riippuvainen useasta eri kirjastosta kielestä riippumatta. Tai ehkä Javalla pääset vauhtiin juuri ja juuri. Voisi tietysti olla mukavampi koodata työkaluilla, joilla saa saman koodin toimimaan vaikka OS X:ssä tai Linuxilla, mutta se ei ole kaikille mikään itseisarvo. Lisäksi joudut tällöin tinkimään täydellisestä Windows-integraatiosta tai kikkailemaan enemmän sen eteen.

Rox kirjoitti:

Ihan vain hyvin vuoksi oon muutaman kerran tehnyt C++ konsoli ohjelmia, tutoriaaleja katsomalla youtubesta ja sen oon kyllä huomannut että C++ pitää oikeasti hallita jos sillä haluaa tehdä kunnollisia ohjelmia.

Olen eri mieltä. C++:lla on helpompi saada sovellus kaatumaan, mutta pahimmat kaatuilut saa kyllä korjattua riittävällä määrällä aikaa ja purkkaa. Toinen huomaamani ongelma on se, että kun itse aloitin C++:lla ja Qt:lla, niin sain ohjelmani purkattua kasaan toimimaan Linuxilla, mutta Windowsilla sama koodi ei aina kääntynyt toimivaksi ohjelmaksi, tai jos binäärin saikin aikaan, niin sovellus kuoli segfaulttiin heti käynnistyessään.

Metabolix [21.05.2013 17:40:47]

#

The Alchemist kirjoitti:

Olen eri mieltä.

Mistähän nyt olet eri mieltä? Minusta näyttää, että olet ihan samaa mieltä.

The Alchemist [21.05.2013 18:33:11]

#

Miten sitten "kunnollisen ohjelman" haluaakaan määritellä. Kaikissa kielissä on hienoja ominaisuuksia, joiden monipuolinen hyödyntäminen vaatii kielen perusteellista tuntemista. Ohjelmia voi kuitenkin tehä valmiiksi melko kapealla joukolla ominaisuuksia; melkein riittää kun osaa käyttää funktioita ja luokkia ja ymmärtää referenssit/pointterit ja osaa käyttää geneerisiä container-luokkia. Ei se minusta vielä tee kielestä ratkaisevasti vaikeampaa, että joutuu vähän työntämään if-elsejä joka paikkaan null-osoittimien varalle. Muistivuodoillakaan ei välttämättä ole mitään väliä, jos vuotaa vain vähän kerrallaan.

Metabolix [21.05.2013 18:43:29]

#

The Alchemist kirjoitti:

Miten sitten "kunnollisen ohjelman" haluaakaan määritellä.

No ei ainakaan niin, että ”pahimmat kaatuilut saa kyllä korjattua riittävällä määrällä aikaa ja purkkaa” ja ”Windowsilla – – sovellus kuoli segfaulttiin heti käynnistyessään".

The Alchemist [21.05.2013 19:37:10]

#

Eihän sen tarvitse Windowsilla toimia, kun Linuxille on koodi kirjoitettu. Purkan määrä ei myöskään automaattisesti tarkoita sitä, ettei ohjelma toimi oikein. Suurin osa kaikesta koodista on paskaa, teki sen kuka tahansa.

ajv [21.05.2013 21:28:42]

#

The Alchemist kirjoitti:

Suurin osa kaikesta koodista on paskaa, teki sen kuka tahansa.

Erittäin hyvin sanottu! :) Ja valitettavasti myös totta, ainakin mun alalla.

feenix [23.05.2013 23:01:27]

#

The Alchemist kirjoitti:

Eihän sen tarvitse Windowsilla toimia, kun Linuxille on koodi kirjoitettu. Purkan määrä ei myöskään automaattisesti tarkoita sitä, ettei ohjelma toimi oikein. Suurin osa kaikesta koodista on paskaa, teki sen kuka tahansa.

Ei ainakaan minun maailmassani, eikä siellä myöskään väännetä purkkaa saadakseen ohjelmat toimimaan. Ja aika huonosti menee, jos käyttäen monialustakehystä on ihan ok että koodi kaatuu yhdellä alustalla.

Itse olen Metabolixin kanssa samaa mieltä siitä, että mikään "siirtyminen" ei liene fiksua. Todennäköisesti siirtymisellä ei tarkoitettu kuitenkaan "sen jälkeen koodaan vain tällä yhdellä kielellä."

C++ on vallan hyvä kieli myöskin opiskella, vaikkei siitä mitään C++11:n uusimpia hienouksia kävisikään läpi vaan jäisi perusteisiin On hyvää yleistietoa harjoitella muistinhallintaa käsin (toki uusimmat C++-ominaisuudet tämänkin tarvetta vähentävät) ja C++ kuitenkin on laajalti käytetty kieli. C on vähän niin ja näin, sitä ei välttämättä tarvitse/kannata erityisesti opetella, ellei halua sitten koodata vaikkapa mikrokontrollereille. (Ja jos oikeasti ohjelmointia haluaa osata, ei mielestäni olisi pahasta edes koodata konekieltä vähäsen, ihan vain nähdäkseen mitä se kone oikeasti tekee)

VB.NETistä kuitenkin on hyvä "siirtyä" C#iin ensimmäisenä ja sitten mielenkiinnon ja tarpeen mukaan katsella muita kieliä.

Rox [24.05.2013 14:43:42]

#

Joo, en siis tarkottanut että sen jälkeen opiskelisin vain sitä yhtä kieltä. Myös ASM(fasm) on alannut kiinnostamaan, mutta sen opiskelusta nyt ei ole puhettakaan ennenkuin osaa edes C#:in perusteet.

Kyllä, niin meinaankin tehdä jos jostain vaan löytäisin ajallaan olevan suomenkielisen C# oppaan. Youtubesta on aika helppo seurata oppaita, mutta perusteellinen C# opas suomeksi olisi kyllä hyvä.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta