Nyt tulis tälläinne yleinen kysymys , elikkä olen nyt käynyt C-kielen pari kurssia perusteita. Ja nyt tulossa sitten C++ kurssi. Niin kannattaako noin pienen reenauksen jälkeen vaihtaa kieltä? Koska meidän opetteja joskus tarinoi tunnilla että , ei kannata pomppii kielestä kieleen ihan syntax syistä. Ja sitten toinen kysymys tohon grafiikkaan liittyen että voiko C:llä ohjelmoida pieni muotosia graaffisia ohjelmia. Vai pitääkö aina olla tuo C++ oliot kehiin periaate , ihan sen kannalta kysyin tahtoisin tietää ammattilaisen mielipiteen. Mutta tosiasia on se että koodaamalla oppii mutta , silti että kahen vaiheilla jätänkö ton kurssin väliin.
No esimerkiksi kannattaa tutustua putkan SDL-oppaaseen, onhan SDL nyt jollei kokonaan niin ainakin suurimmaksi osaksi C:llä kirjoitettu.
Tosin eipä sillä väliä, itse käytän C++:aa ja ihan hyvin se SDL sielläkin toimii ;)
sitä paitsi c:n ja c++:n syntaksit ovat niin lähellä toisiaan että siirtymisen ei pitäisi olla valtaisan hankalaa. Ainoat ongelmat todennäköisesti tulevat c++:n c:hen nähden uusien ominaisuuksien kuten luokkien kanssa (jos sielläkään)
edit: sori, en ole ammattilainen joten en voi suositella kannattaako niin tehdä, mutta voin kyllä edellä mainitut seikat allekirjoittaa edelleen
Nooh tuo vastaus riittää aika lailla. Varsinkin jos jossain vaiheessa koittaa jotain graaffisempaa tehä. Niin C++ taitaa olla se hyvä vaihtoehto. Taidampa tutustuu tohon SDL oppaaseen kyllä ensimmäisenä.
C++ on laajennettu C, joten kyse ei ole eri kielestä. Voit ohjelmoida C++:lla kuin C:llä ja käyttää halutessasi C++:n ominaisuuksia. C++ mahdollistaa olio-ohjelmoinnin mutta ei pakota siihen.
C:llä voi tehdä kaiken saman kuin C++:lla, mukaan lukien graafiset ohjelmat.
Kiitoksia vinkeistä todella paljon, nyt olen askeleen viisaampi. Pitää vaan alkaa kokeilemaan tota C++:ssaa.
Itse suosittelisin opettelemaan sen C:n ensin. Huomattavasti helpompaa opetella C++:n uutuudet sitten, kun ei tule niin paljoa asiaa päin naamaa kerralla.
Toisekseen C on täysin validia C++-koodia, mutta C++-koodi ei ole validia C-koodia. Tästä syystä C++-taustalta on vaikeampi opetella C:tä, kun toisinpäin.
Itse taas suosittelisin tutustumaan suoraan C++:aan ilman C:tä. Jos nimittäin opettelee ensin C:n ja sitten C++:n, voi C++-ohjelmiin jäädä C-mäistä koodia, jonka voisi tehdä toisinkin. Jos kerran C++ kiinnostaa, niin kannattaa keskittyä juuri siihen kieleen. C++ on laajempi kieli kuin C, mutta eihän kaikkea tarvitse heti oppia. Mielestäni ohjelmointikieliä oppii parhaiten kirjoittamalla sopivankokoisia ohjelmia kyseisellä kielellä.
Tässä on myös sellainen puoli, että jos aikoo esim. ihan ammatiksi ryhtyä ohjelmistosuunnittelijaksi/ohjelmoijaksi, niin jos C++:n törmää, niin aika suurella todennäköisyydellä törmää myös C:hen. Ja usein tarvitsee osata myös ylläpitää vanhojakin sovelluksia, jo tämän takia lähtisin C:stä liikkeelle. Ja tämähän pätee oikeastaan kieleen kuin kieleen...
Itse olen samaa mieltä Jaskan kanssa. Hyvä C++ -ohjelmoija oppii kyllä helposti (käytännössä luultavasti osaa intuitiivisesti) ylläpitämään C-sovelluksia, mutta C-ohjelmoijasta ei välttämättä kovin helpolla saada C++ -ohjelmoijaa (vaan C:tä C++-ympäristössä kirjoittava ohjelmoija)
Triton kirjoitti:
Ja usein tarvitsee osata myös ylläpitää vanhojakin sovelluksia, jo tämän takia lähtisin C:stä liikkeelle. Ja tämähän pätee oikeastaan kieleen kuin kieleen...
Siis mikä pätee kieleen kuin kieleen? Että pitää opetella C:tä ensin?
Vai tarkoititko että jos haluaa opetella VB.Netiä, niin olisi hyvä opetella ensin VB6 tai QBasic?
Siis meinasin tuota jälkimmäistä vaihtoehtoa... Ei ehkä VB:n kohdalla ihan QBasiciin asti tarvitse mennä, mutta otetaan esimerkiksi Java-sovellukset. Tällä hetkellä on käytössä servletit ja jsp sekä J2EE sun muut, mutta pikku hiljaa ollaan kuitenkin siirtymässä esim. Springiin ja tulevaisuudessa vielä uudempiin tapoihin. No on hyvin todennäköistä, että ihan ensimmäiseksi ei lähdetä päivittää kaikkia vanhoja sovelluksia uusiksi vaan siinä tulee menemään aikaa. Eli todennäköisesti kymmenen vuoden kuluttua on olemassa vielä C-ohjelmia tai Javan servletti-toteutuksia, joita tarvitsee ylläpitää ja korjailla tms. Vastaava esimerkki on COBOL-ohjelmat. Vanhimmat niistä on about 1970-luvulta, mutta kylläpä niitäkin käytetään vielä ja osaajien määrä vähenee vuosi vuodelta. Joten itse ainakin näkisin hyvänä saumana opiskella COBOLIA, koska varmasti töitä on osaajille tarjolla. Vastaavasti tämä voi hyvinki päteä tulevaisuudessa muidenkin kielten kohdalla.
Ja niin kuin tuolla topicin aikaisemmassa vaiheessa jo mainittiin, että C on validia C++:ssaa, mutta C++ ei ole validia C:tä...
Mutta tämänkin asian voi nähdä useammalta eri kannalta.
Triton kirjoitti:
Ja niin kuin tuolla topicin aikaisemmassa vaiheessa jo mainittiin, että C on validia C++:ssaa, mutta C++ ei ole validia C:tä...
Juuri siksi kannattaa opetella ensin C++. Jos osaa C++:aa ja joutuu kirjoittamaan C:tä, niin välineet pitää huolen siitä, että oikeasti kirjoittaa C:tä. Toisin päin sortuu helposti C:n kirjoittamiseen C++-ympäristössä.
Yleinen ohjelmointitaito on huomattavasti tärkeämpi asia kuin tietämys yksittäisestä kielestä. Jos osaa C++:aa muttei pysty kirjoittamaan C:tä, ei ole kovin hyvä ohjelmoija. Jos osaa ohjelmoida hyvin, sen COBOLinkin oppii auttavasti ehkä parissa tunnissa tai parissa päivässä, vaikkei olisi ennen nähnytkään.
Itse en ainakaan palkkaisi työntekijää, joka kertoo osaavansa tasan yhtä (tai edes tasan viitta) kieltä. Ennemmin kysyisin, ovatko tietyt ohjelmoinnin käsitteet tuttuja. Esimerkiksi olio-ohjelmointi on kuitenkin melko samanlaista C++:lla, Javalla, PHP:llä ja Object Pascalilla tai jopa C:llä (kyllä, aivan oikein).
Kun on tavoitteena oppia ohjelmoimaan, kannattaa valita kielistä se, jota oppii helpoiten ja jolle on parhaiten opiskelumateriaalia.
Jos olisi tarkoitus ruveta ensi viikolla ylläpitämään C:llä tehtyä ohjelmistoa, pitäisi tietenkin opetella C:tä. Aloittelijan on kuitenkin ihan turha ajatella asiaa tältä kannalta, koska töihin on vielä monta vuotta ja ohjelmoinnin alkeet ovat suunnilleen samat joka kielellä.
Metabolix kirjoitti:
Itse en ainakaan palkkaisi työntekijää, joka kertoo osaavansa tasan yhtä (tai edes tasan viitta) kieltä. Ennemmin kysyisin, ovatko tietyt ohjelmoinnin käsitteet tuttuja. Esimerkiksi olio-ohjelmointi on kuitenkin melko samanlaista C++:lla, Javalla, PHP:llä ja Object Pascalilla tai jopa C:llä (kyllä, aivan oikein).
Btw, tuo työnhakijan oma arvio osaamisestaan on muutenkin hieman kyseenalainen. Joku voi osata käyttää omasta mielestään hyvin tietokonetta, kun pystyy kirjoittamaan tekstiä Wordilla. Toinen taas voi osata mielestään käyttää tietokonetta vain kohtuullisesti kun osaa kyllä käyttää useita ohjelmia, asentaa ja poistaa sovelluksia, tehdä jotain perusylläpitoa, mutta on huono selvittelemään ohjelmien ja käyttöjärjestelmän kanssa usein eteen tulevia ongelmia.
Eli en välttämättä palkkaisi suoraan henkilöä joka vaan listaisi osaavansa kymmenen ohjelmointikieltä "hyvin". Toki jos haastattelussa kävisi ilmi, että osaamista tosiaan löytyy, niin mikäs siinä.
Grez kirjoitti:
Btw, tuo työnhakijan oma arvio osaamisestaan on muutenkin hieman kyseenalainen.
Toki. Ainakin näin Suomessa sanoisin kuitenkin, että oma arvio on ihan kelvollinen lähtökohta. Mainituista asioista (Word, Excel vs. C++, Python) voi päätellä osaamisen kymmenpotenssin, ja erilaiset tyhmät kommentit ("osaan hyvin yhtä kieltä", "muistan ulkoa ainakin 50 funktiota") vihjaavat, että arvio on mennyt hieman yläkanttiin. :) Tietysti nämä mainitut Word-ammattilaiset ja C++-koodarit hakevat muutenkin eri työpaikkoja, eikä kukaan varmaan lähde tosissaan hakemaan Java-paikkaa, jos ei ole koskaan kokeillutkaan sitä.
Tohon on itse pakko kommentoida että , yritykset eivät tiedä edes nykyään millasta asiantuntiaa hakevat. Sanotaan näin vaikka Linux ylläpitäjän pitää osata kaikki eri palvelin protocollat, sekä yleisimmät scripti kielent php,python jne. Sekä syvällistä Windows palvelin puolta. Ihmettelen mistä sellasii tyyppejä löytyy ketä osaa molemmat systeemit. Itse en ole varmaan ikinä eläissäni windows palvelinta käyttänyt. Ja yleensä ainakin omasta näkökulmasta , jos haetaan linuxin järjestelmiin ylläpito/ohjelmoijaa olis suotavaa just se että ei sotkettais windossia siihen vaatimuksiin. Tämä nyt poikkesä hieman aiheesta , mutta itse joudun kyllä ohjelmoimaan ylläpidossakin jonkin verran. Mutta ihmetytttä noi hakemukset ylläpidon lisäksi pitää osata 5 eri ohjelmointi kieltä. Jokin raja pitäs olla alottelialle ja vasta valmistuneille , että nekin pääsisivät joskus uran alottamaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.