1. Kysymys
Kaipaisin neuvoja miten voisin edistyä pitemmälle c++: ssassa.
Aloitin ohjelmoinnin pascalilla ja siirryin c++:ssaan.
osaan jo perusasiat mutta kun täälläkin lukee keskusteluja niin niissä esiintyy monta sellaista asiaa mitä esim. hassun hauskassa c++ oppaassa ei käsitelty. Onko noita laajempia vinkkejä joissakin kirjoissa. Koulussa opetellaan nyt syksyllä kyllä ohjelmointia mutta taidan jo nyt osata enemmän kuin siellä opetetaan. Voiko jossakin koulussa/kurssilla opetella ohjelmointia?
Lainasin kirjastosta kaksi kirjaa: Olioiden ohjelmointi c++: lla ja Opeta itsellesi windows ohjelmointi.
Olioiden ohjelmointikirjaa en ole vielä aloittanut.
Windowsohjelmointikirja taas on niin sekava että en tiedä kannattaako lukea.
Windows kirjasta tuli mieleen toinen kysymys.
Onko tämmöinen ohjelma DOS ohjelmointia:
#include <iostream>
using namespace std;
int main()
int plaa=0;
{
cout <<"helou world" <<endl;
.......
En jaksa tehdä enempää.
Kun siinä windows kirjassa on niin sekavat kaikki että pitääkö windowsille tosiaan ohjelmoida sillä tavalla?
Ja voiko tuolla "dos" ohjelmoinnilla edistyä pitkälle?
Olen ajatellut ruveta vähitellen katselemaan tuota grafiikan tekoa, jos itseopiskeluna onnistuu.
kysymys 3.
Tietääkö joku mistä voi ladata ohjelmien lähdekoodeja (c++) koska niitä lukemalla oppii kans.
Jos koodi käännettynä toimii dossissa niin kyllä se silloin on dos ohjelmointia.
Vastaus kysymykseen kolme. Tuossa on ainakin yksi vaihtoehto.
Kirjoista suosittelisin sellaisia kuin Päivi Hietasen C++ ja Olio-ohjelmointi sekä Bjarne Stroustrupin C++ -ohjelmointi. Tosin tuo jälkimmäinen käy enemmänkin hakuteoksesta ja sopii vain edistyneemmille.
Kouluissa ohjelmointia voi opiskella kunnolla ammattikorkeakouluissa ja yliopistoissa, kenties myös ihan ammattikouluissa. Meillä lukiossa tarjotaan muutamaa ohjelmointikurssia, täytyy katsoa jos onnistuisin jatkokurssin jossani välissä katsastamaan. Taso ei kuitenkaan ole kovinkaan hääppöinen, usein itseopiskelu on paras vaihtoehto.
Periaatteessa jos osaat Hauskan C++-oppaan asiat, osaat C++:aa niin hyvin että voit jo alkaa tutustumaan Windows-ohjelmointiin/muuhun grafiikkaohjelmointiin kiinnostusten mukaan. Jos peliohjelmointi kiinnostaa niin SDL, OpenGL ja DirectX ovat sellaisia, joita kannattaa opetella. Samalla oppii myös ihan perus-C++:n asioita. SDL-opas löytyy putkan opasalueelta, OpenGL:ää ja DirectX:ää löytyy ainakin gamedev.netistä. Opiskelu onnistuu ihan mukavasti itseopiskeluna. Itse suosittelen että aloitat SDL:llä, tai jos pelipuoli ei kiinnosta niin kannattaa tutustua Windows-ohjelmien tekemiseen.
Periaatteessa tuo koodisi ei ole DOS-ohjelmointia, sillä kyseinen koodi on standardia C++:aa ja pitäisi kääntyä kaikille alustoille. Eli voin kääntää saman koodin myös Linuxiin ja ajaa sen konsolista. Ohjelma ei siis ole DOS-ohjelma vaan olisi parempi puhua tekstipohjaisesta ohjelmasta.
Tulipas ihanan sekava viesti, noh kai tästä jotain saa irti?
Muista käyttää kooditageja...Tuo pätkä on täysin järjestelmäriippumatonta koodia, eli sen voi oikeilla välineillä kääntää mille tahansa käyttöjärjestelmälle. Window$in kaikki määrittelyt tuntuvat ainakin aloittelijalle sekavilta (en ole itsekään jaksanut oikein opetella), mutta tähän löytyy paljon auttavia lisäkirjastoja. Mm. SDL ja xWidgets luovat ikkunan todella yksinkertaisilla parilla koodirivillä. Käyttöliittymän ym. tekeminen on yleensä kuitenkin se yksinkertaisin osa ohjelmointia, esim. peleissä paljon enemmän vaivaa täytyy nähdä erilaisista algoritmeista ja funktioista. "Dos-ohjelmoinnilla" ei saa näyttävää tulosta heti aikaan, mutta sen saavuttamiseen tarvitaan ennen kaikkea se, että osaa perusasiat ja käyttää niitä tehokkaasti.
Paras tapa (yleensä) oppia ohjelmointia on nimenomaan kokeilla toisten tekemiä koodeja ja muokata niitä. Osoitteesta http://sourceforge.net löytyy kymmeniä tuhansia avoimen lähdekoodin projekteja, joista on varmasti lähdekoodit saatavilla. ;)
edit: Heikki ehti ensin-paljon toistoa...
Itselläni on erittäin huono kokemus kaikista Windows-ohjelmointi-oppaista ja esimerkiksi Teach Yourself Game Programming -nimisen kirjan Windows-puolen toiminnoista. Oppaiden ja kirjojen huono puoli on siinä, että kirjoittaja opettaa tekemään asioita hänen tavallaan. Se ei ole kaikille luonteva tapa eikä välttämättä paras tai edes oikea. Pääsääntöisesti Windows-ohjelmia voi tehdä paljon siistimmin ja helpomminkin (kukin omalla tavallaan), kun vain jaksaa nähdä sen pienen aloittamisen vaivan. Ja kuka käski tehdä C++:lla? Osaat Pascalia, niin jos koet sen luontevammaksi, voit aivan hyvin käyttää sitä. String-muuttujatyyppi helpottaa elämää valtavasti, C++:lla ei ikinä pääse yhtä helpolla.
WinAPI on sellaisenaan (minusta) hyvin sekava ja kömpelö järjestelmä. Jos jaksat nähdä sen vaivan, että teet sille pienen, yksinkertaisemman rajapinnan, pääset helpolla. Muutama luokka, joiden taakse piilotat WinAPIn kammotukset, ja kaikki on jo helpompaa. Tietenkin valmiitakin rajapintoja on olemassa (wxWidgets, GTK, ...).
Yksi hyväksi koettu tapa on jonkin Darg'n'Drop-ympäristön käyttö. Nuo vain tapaavat olla maksullisia, mutta Borlandin tuotteista (Pascal => Delphi, C++ => C++Builder) voi ladata 30-60 päivän kokeiluversiot. Tämä tapa vastaa pitkälti valmiiden luokkien käyttöä ja antaa lisäksi mahdollisuuden luoda graafinen ympäristö hiirellä.
Jos peliohjelmointi kiinnostaa, et todella tarvitse WinAPIa juuri nimeksikään, SDL:llä et ollenkaan. Ikkunan luonnin jälkeen kaikki on kiinni rajapinnasta. Joillekin sopii OpenGL, toisille DirectX. 3D-peleissä on käytännöllisesti katsoen pakko osata edes toinen, 2D-peleissä kelpaavat myös SDL, Allegro ja muutamat muut.
Kannattaa muistaa, että koodi kuin koodi on huonosti kirjoitettuna sekavaa ja muulloinkin, jos sitä on paljon, joten ei voi pelkästään Windows-ohjelmia syyttää.
Kiitoksia valtavasti!!!
välttämättä kirjat ei oo paras tapa oppia ohjelmoimaan, kannattaa varmaan ottaa jotain tavotteita ja sitten itse yritää pähkäillä niistä eteenpäin (:
Aihe on jo aika vanha, joten et voi enää vastata siihen.