c++ ucenik

NikolaCN

Početnik
Poruka
17
Pozdrav!
E, ovako, kako sad imam viska slobodnog vremena, resio sam da se upustim u jednu zanimljivu i opsirnu oblast- programiranje. Kako svemu pristupam prilicno brzo i nesmotreno, tako sam odlucio da mi prvi program bude c++. Pre par nedelja kupio sam knjigu ''c++ za 21 dan''(kako da ne) autora Jesse Libertyja i moram priznati da mi se prilicno dopalo kako sve funkcionise.
Moja pitanja za c++ programere.
Iako sam cuo da je c++ jedno od najjacih oruzja u ovoj sferi informatike, zanima me na kojim je sve poljima ovo oruzje funkcionalno, a na kojima se treba osloniti na druge jezike. Recimo, zanima me kakav je c++ za pravljenje programa za prodavnice, treba li se tu osloniti na neki drugi program ili je c++ sam po sebi dovoljan.
Da li se mogu praviti android aplikacije u njemu ili je Java majka za to? :think:
Kako je c++ okruzenje vezano za cmd moje pitanje je moze li se ono modifikovati, kao sto je recimo u Paskalu moguce umetanej Labela, buttona. Da dam primer ako sam nejasan, moze li se recimo napraviti kalkulator kao sto je ovaj windowsov, likom i delom :)
Predlozi sto se tice dodatne literature. Kad predjem c++ za 21 dan, sta dalje, mada mi je to sad manje bitno?
:bye:
 
Зашто не кренеш прво са PASCAL-ом који ће те научити принципима програмирања? Онда пређи на С, озбољнији језик, па тек после тога на С++ који има исту синтаксу као С, али је проширење С-а и користи неке напредније појмове.
 
Moze i sa C-om da krene ukoliko hoce, ali ako je zacrtao da to bude C++, neka tako i bude. Cak sta vise, i ja sam zapoceo od C++-a, tako da ne mogu da kazem da je pogresio ili slicno, samo ce se mozda malo vise namuciti. Ali bez muke nema nauke :D

Mislim da bi C bio dobar pocetak, kao uvod u proceduralno programiranje. Imam jako dobru skriptu koja uvodi programiranje kroz programski jezik C, a u skorije vreme je izasla u prodaju kao knjiga. Sa C-a na C++ bi trebalo lako da predjes, savladavajuci OOP paradigmu. Naravno, preduslov je da C posteno naucis.

E, ovako, kako sad imam viska slobodnog vremena, resio sam da se upustim u jednu zanimljivu i opsirnu oblast- programiranje. Kako svemu pristupam prilicno brzo i nesmotreno, tako sam odlucio da mi prvi program bude c++. Pre par nedelja kupio sam knjigu ''c++ za 21 dan''(kako da ne) autora Jesse Libertyja i moram priznati da mi se prilicno dopalo kako sve funkcionise.

I jos nesto, ukoliko odlucis da se bavis programiranjem ozbiljno, za to nije potrebno izdvojiti samo slobodno vreme, daleko od toga da je to dovoljno. Tome se moras posvetiti daleko vise od toga. Ucenje nekog programskog jezika je samo vrh ledenog brega. Treba se steci taj osecaj za resavanje problema, na bilo koji nacin, ali samo da si na kraju u stanju da samostalno dodjes do resenja nekog problema, bez obzira koliko je resenje efikasno. Kad sve to prodjes, onda moze da se prica o efikasnosti, i konstrukciji i analizi algoritama.

Ne zelim da zvuci obeshrabrujuce bilo sta od ovoga sto sam napisao, samo kazem da je potrebno posvetiti se tome. Ti si svakako nacinio veliki korak time sto si se zainteresovao za to i odlucio da pocnes od necega. Ne bi trebalo da odmah poslusas ovaj moj komentar (da pocnes od C-a), vec da prvo razmislis sta bi ti hteo. Ako mislis da mozes od C++-a, tako i nastavi. Cak sta vise, ti mozes raditi C++, ali se na pocetku malo vise fokusiraj na proceduralnu paradigmu, i kasnije se nadovezi na OOP.

tako sam odlucio da mi prvi program bude c++

I mala ispravka, C++ nije program, vec programski jezik, da ne bude zabune. Mozda si mislio na program (IDE) u kojem je integrisan text editor i omogucena kompilacija programa bez eksplicitnog koriscenja konzole (tj. sve se desava u pozadini, kad ti pritisnes neki button itd).

Iako sam cuo da je c++ jedno od najjacih oruzja u ovoj sferi informatike, zanima me na kojim je sve poljima ovo oruzje funkcionalno, a na kojima se treba osloniti na druge jezike.

C++ je dosta primenjen u sistemskom programiranju, razvijanju video igrica, u razvoju real-time sistema itd... U prevodu, tamo gde su performanse od kljucnog znacaja.

Kako je c++ okruzenje vezano za cmd moje pitanje je moze li se ono modifikovati, kao sto je recimo u Paskalu moguce umetanej Labela, buttona. Da dam primer ako sam nejasan, moze li se recimo napraviti kalkulator kao sto je ovaj windowsov, likom i delom :)

Da bi napravio neku GUI aplikaciju u C++, potrebno je da poznajes WINAPI (ukoliko ce te aplikacije biti pisane za Windows, a verujem da hoce).
Alternativa je Windows Forms, koristeci Visual C++.
 
Poslednja izmena:
Miki, zahvaljujem na opsirnom odgovoru. Od oktobra programiranje prestaje da bude samo hobi, pocinjem da ucim nesto cime cu se baviti citavog zivota, a koliko znam, na faksu cu poceti da ucim C, tako da sad ne planiram njega da radim, ali smatram da mi svako znanje koje steknem iz ove c++ knjige moze samo pomoci u savljdavanju C-a. Tako da cu ipak jos mesec i po dana nastaviti da radim u c++. Ako bude bilo potrebno i za literaturu, nadam se da mogu da te konsultujem :) Pozdrav!
 
Bez win Apija i MFC C++ nema leba od toga C++ samog po sebi. Sve što pipneš pisano je u APIju i MFC uz ponegde dodatka QT. Omiljeni Fotošop ili CorelDraw ili Maja ili 3dsMax itd, sve ti programi koji prave pare su pisani u Win API-ju i MFCu. E od toga sam ja počeo.Za Win API ti treba C a za MFC C++. Za windows forme ti treba moj omiljeni C++/CLI ali samo podržanog do Visual Studia 2010. Ovi novi studiji nemaju više takvu podršku za Win Forme i C++/CLI. Mogu se praviti ali M$ to ne preporučuje ....

Ja sam imao tu knjigu ali osim što je out of date previše Jess davi ako znaš američki imaš mnogo veći i bolji izbor. Upravo radim iz knjige C++Programing_In_Easy_Steps_In_Color od Mike McGrath koja je mnogo sažetija i ulazi u srž stvari.....
 
Poslednja izmena:
Krenuo sam sa c++, i u pocetku dok ne znas nista sem osnova, tu po meni spadaju statmenti, petlje, i ostale slicne stvari, imao sam osecaj da sve znam, sve mogu, i naravno tu je dosta uticalo to sto sam samouk. U to vreme sam koristio c++ sa SDL, procedularno sam programirao, nisam znao ni o od OOP. Takodje sam koristio c++ na foru, radim zadatka za takmicenje, i sta ne znam pogledam na netu. Ali u tom procesu, ti ne mozes naci nesto novo bolje, jer ne znas da postoji. Zato sam uzeo knjigu c programming language dennis ritchie, brian kernighan, koja je izasla 1988 "ansi edition". Dosta sam se mucio oko nje, ali nisam zeleo da odustanem. Tu je toliko star kod, da pola nije u upotrebi sada, i "nicemu" ne sluzi, ali toliko su strukturalno objasnili jezik, poput pravljenja printf, alloc, free, i ostalih "sistemskih" funkcija, sto mi je bilo dosta zanimljivo, vise volim da sam napravim nego da koristim tudje. Dok sam bio jos "bas" pocetnik, nisam toliko gotivio ostale jezike poput jave, mislio sam da su dosta blotovani, ali kasnije sam video, da nije tako bas. Presao sam nekoliko knjiga za Javu, i stvarno obozavam u njoj da radim, jos kad imam neki program da uradim nekom rodjaku ili sad trebam da pravim jednom coveku za firmu, nekako se podize adrenalnin, i kad "zavrsis" dozivis orgazam. "Zavrsis", i dalje tokom ucenja, tokom celog zivota, susrecu se najverovatnije sa boljim solucijama, i mozda se vratim na taj program i poboljsam ga. Kada naucis principe programiranja, na primer OOP, onda se lako prilogodis drugim jezicima. Imas sajt na primer stackoverflow, na njemu mogu se postavljati issue na koje nailazis tokom programiranja, ali nije na foru, da izbacis pitanje i da cekas odgovor, nego da navedies tvoja istrazivanja, i gde si zapeo. Sada imam osecaj drugaciji nego kad sam pocinjao. Tad kad pogledam neku knjigu i vidim petlje, i ostale proste stvari, odmah je ostavim. Ali sada sam ispravio to, jer sam nailazio cak u tim redovima nesto novo, "citanje izmedju redova". Moj savet za "sad", je da predjes neku knjigu za bilo koji jezik, i onda imas neke "osnove" za neku tvoju ideju, koja ce te pokretati da jos vise istrazujes, nnastavis s radom, ili ako nemas ideju gledas ostale kodove, ili pomazes drugim ljudima, koji zapinju oko neceg sto ti kanda znas.
 
Mislim da je za početnika najbolje da krene sa Python-om. Tačno je da sam krenuo sa C++-om, ali tada nisam znao ništa o programiranju već sam samo hteo da naučim neki programski jezik i pravim desktop aplikacije. Sada radim u C# i .NET radnom okviru i odgovara mi (ohrabruje me sad i to što će Microsoft da objavi otvorenu verziju .NET-a pa će i prenosivnost aplikacije biti lakša).

C++ ima jednu manu, a to je što dozvoljava loš način pisanja programa, kao i PHP (kod PHP-a je nešto drugo u pitanju, on je jednostavno loše dizajniran), dok kod C++-a, umesto da se forsira OOP pošto je on prosto nadskup C-a, mnogi početnici ni ne saznaju za OOP i pišu čitave programe na proceduralan način kao kod Pascal, BASIC i sl. jezika. Java međutim odmah omogućava da se programer uvede u OO koncept programiranja i to je super, to je i jedan od razloga što je Java i nastala (ako proučite istoriju njenog razvoja videćete da su je razvili isfrustrirani C++ programeri).

C# i .NET je u suštini odgovor Majkrosofta na Javu i JVM, mada sve zavisi od toga čime neko planira da se bavi u budućnosti. Java, C++, PHP, Python, Ruby, Obj-C, to su najtraženiji jezici, a i stalno se pojavljuju neki novi tako da nikako ne možemo da ti sasvim tačnu prognozu šta bi bilo isplativo za nekih desetak godina. Pascal definitivno ne (osim ako ne planira da se bavi razvojem aplikaciju u Delphi i objektnom Pascal-u, mada su i ti programeri koji rade u Delphi obično zaduženi za održavanje nekih starih programa pisanih u Delphi ili su u pitanju juniori). Mislim da je najveći problem taj što se Delphi XE okruženje plaća. pa open-source jezici imaju bolju prođu na tržištu.
 
Добро си рекао, људи уче С++ не знајући шта је ООП и праве програме на процедуралан начин. Онда их мрзи да уче нешто ново и делује им лакше процедурално програмирање. Међутим, ООП је далеко боље, програми су читкији и лакше се мења код.
 
C++ je u početku bio C with Classes (C sa klasama). Klase su jedan od elemenata objektno-orijentisanog programiranja. Nisam puno programirao u C-u tako da ti ne mogu dati neki dublji odgovor na to pitanje, ali danas je isplativije učiti C++ nego C. Razlog je taj što se C++ dosta više koristi u svim poljima, dok je C ipak za neke stvari koje zahtevaju pristup nižim slojevima i hardveru. C je odličan početak ako želiš da uđeš u suštinu, a C++ je baziran na konceptima C-a, ali su mu dodate neke nove stvari (najbitnija je podrška za OOP, a taj način razvoja softvera je mnogo jednostavniji i organizovaniji). Ako ćeš da gledaš sinutaksu, i jedan i drugi nisu jednostavni za čitanje. Ako hoćeš nešto što ima jednostavnu sintaksu i što je lako za čitanje i održavanje, a opet moćno, onda je to Python.

Ne bavi se sad sintatičkom osnovom ako si tek krenuo jer dosta toga nećeš razumeti - to je polje koje je razumljivije ljudima koji su iskusni programeri ili onima koji se bave dizajniranjem kompajlera / leksera. Najbitnije ti je da naučiš da razmišljaš kao programer, a to ćeš kasnije lako moći da primeniš na bilo koji programski jezik koji budeš učio u budućnosit.
 
Ne bih se baš složio da je Racket najlakši programski jezik za početnike... Koristi sintaksu programskih jezika Lisp i Scheme, ali takav način programiranja nije zastupljen ovde kod nas. Recimo uzmimo ovaj primer:

(if (> 2 3)
"bigger"
"smaller")
"smaller"

Retko ko od onih koji su imali prilike da programiraju u nekom popularnom, imperativnom jeziku će znati da se snađu sa ovim, pogotovo ako budu radili sa petljama gde ima dosta ugnježdavanja. Zanimljiv je jezik, ali mislim da je ipak Python najbolji izbor za početnike danas, barem po onom što sam ja do sada naučio, a možda postoji i neki koji je lakši, a nudi više mogućnosti i prilagođava se i današnjim jezicima.
 

Back
Top