Šta je novo?

Savet za pocetnika

Velja

Čuven
VIP član
Učlanjen(a)
29.06.2000
Poruke
358
Poena
619
Dakle od cega poceti? Da li krenuti sa Visual C++ .NET ili Visual Basic .NET? Koje su prednosti i mane, koji je bolja osnova za neki napredniji rad kasnije? I jos ako moze neka literatura, "za neupucene" serijal mi se cini solidan za pocetak...
Pozdrav!
 
Phu, Veljo, sad si ga bas ... :)

Problem je u tome sto se ucenje programiranja ne svodi na izbor odnosno ucenje jednog jezika. Naravno, niko tebe kao pocetnika ne krivi za takav predumisljaj. Postoje mnoge slicnosti (leksicke, smislene, itd) izmedju govornih jezika i programskih jezika, pa je mozda najbolje da iskoristim tu paralelu: ako si pisac, ti pises pesmu ili knjigu i vrlo je vazno da umes da pises ta dela, a ona sama se mogu vrlo lako napisati na raznim jezicima. I obratno, neko moze da barata razlicitim jezicima, a da bude izraziti antitalenat za tako neku kreativnu aktivnost. Tako je i kod programiranja; ima tu dosta da se nauci glede programerskih tehnika i tehnologija, koje su primenjive na sve te jezike, dok je sam jezik puka alatka kojom izrazavas to sto si zamislio u glavi. Znaci, programersko znanje iznad znanja samog jezika po vaznosti (svako ume da pogleda u help kada mu zafali sintaksa neke funkcije, ali kad ne umes da resis problem, to je druga prica) za pocetak.

No, od necega se mora poceti. Svi jezici imaju svojih nekih prednosti i mana. Na primer, C++ je vrlo mocan, ali je pocetnicima ponekad nerazumljiv. Pogotovo kad neki iskusni programer napise lepu sintaksnu trakavicu u dva reda, sto bi neko drugi sigurno razbio na bar 5-6 razumljivijih linija. U principu, svakim od tih jezika (ne i skript-jezika) bi trebalo da mozes da uradis istu stvar, isti zadatak (ili bar dobrano iznad 90% zadataka). Sve te implementacije su prosirive razno-raznim bibliotekama, koje su uglavnom raspolozive za sve njih (ili bar za one najcesce koriscene). Tako mozes lepo da C++om, Javom, VBom, Delphijem, ... programiras koristeci Win API ili OpenGL biblioteke, itd. No, ne treba biti "rob" jezika. Na primer, ukoliko zelis da uradis neku automatizaciju nad office dokumentima, nema smisla sada otvarati svoj Delphi ili C++ i raditi to "peske", kada postoji VBA ugradjen u office koji ce ti najbrze i najjednostavnije zavrsiti posao (tvoj vreme kao programera bi trebalo ipak da bude visoko na lestvici prioriteta).

Pitanje koje se tu sad postavlja je: sta ti od programiranja trazis i koliko nudis zauzvrat. Tj. koliko si spreman da se posvetis ucenju, koliko kasnije hoces da programiras, koje oblasti, koliko "duboko" zelis (ili moras) da ides, itd.

Za neko programiranje "povremeno", dakle da napravis sam sebi poneki program (radis uglavnom sam), drzis se nekih bazica, ofisa, sve u windows okolini, onda ti je VB (ili recimo Delphi) dovoljan i savrsen izbor. Ukoliko zelis bas da ugazis u programiranje, da posle trazis posao kao profi programer, ja bih ti izabrao C++ ili Javu (bez obzira na proizvodjaca) zbog zastupljenosti na razlicitim platformama, OS-ovima, zato sto su to jezici (posebno C++) za koje se tradicionalno odlucuju profesionalci (takoreci mainstream u tim krugovima) pa zato za njih prvo izlaze razne biblioteke, dodaci, alati i slicno.

Knjige su malo nezgodna stvar; posto tek pocinjes, niko ne moze da zna koliko ce to tebi "glatko" da ide i kakvo predznanje imas; neki idu lagano i u detalje, dok drugi "gutaju" knjigu u par dana. Mozda je najbolje da odes u knjizaru i prolistas knjige; za prvi kontakt je najbolja ona knjiga koja ce te na razumljiv nacin uvesti u osnove - ne mora uopste da pokriva sve oblasti. Kako ides dalje sa knjigom, nailazices na oblasti koje su manje ili vise jasne ili ces i sam osecati da na nekim mestima nesto "fali", pa je onda dalje lako preporuciti literaturu. Slicno je i sa izborom jezika i proizvodjaca jezika - kako ces ici dublje i dublje, polako ces razvijati svoje afinitete i znaces i sam sta hoces (a ne da ti mi ovde namecemo svoje).

Posto ni jedna knjiga ne moze sve da pokrije, ja bih ti savetovao sledecu strategiju: uzmimo za primer da si se odlucio (recimo) za C++; uzeo bih tri knjige za pocetak (ne neophodno i istog dana :D ) :
- jednu koja se dira cistog, tzv. ANSI C++ jezika, jer te ne opeterecuje raznim bibliotekama, frameworkovima i slicno. Ostavi na stranu i MFC i VCL i API i Qt i sve ostale skracenice - ova knjiga bi trebala da ima fokus na samom, cistom C++ jeziku. Ovom knjigom bi iskristalisao sintaksu.

- jednu knjigu koja se bavi programerskim tehnikama, algoritmima i slicno. Ovo je materija nezavisna od jezika uopste i trebalo bi da te uci polako da razmisljas "programerski"; kako da lako i brzo resis neke probleme, kako da formiras resenje. Hiljade i hiljade drugih programera su se vec bavile tim svim stvarima i nasli su neka optimalna resenja, pa nema potrebe da otkrivas rupu na saksiji - ustedece ti mnogo truda i vremena. Ovom knjigom bi trebalo da iskristalises logicko razumevanje.

- treca bi knjiga bila bas konkretno za alat koji si odlucio da vezbas - Visual C++ ili Borland CppBuilder ili GNU ili nesto deseto. Ovakve "za 21 dan" ili "u 3 lekcije bez muke" knjige ce te obicno nauciti kako da stavis dugme na formu i kako da 'napises' proceduru koju ce program da okida svaki put kada se dugme pritisne. Na zalost, one cesto ne odmaknu mnogo od tog nivoa i cesto ubace u igru sve gorepomenute biblioteke i tehnologije (vise da bi pohvalile kako je taj alat mocan i moderan) i to cesto ume da bude zbunjujuce i/ili da odvrati paznju. Zato bih i savetovao da se pocne sa prve dve knjige (fakticki paralelno) pa onda nije problem da predjes na ovaku "specijalizaciju" za odredjen alat, jer bi u tom trenutku trebao sasvim jasno da razlikujes sta je sta.
 
Sta da kazem?

Najveci si kralj na forumu, vec sam teo da ti pisem mail ali si me preduhitrio...bas sam hteo od tebe da cujem savet. U sustini od programiranja imam daleka secanja kao klinac sa spektrumom i osnovac sa tim 011. Jos tada sam zadatke lako resavao, logika mi je uvek bila jaca strana. I to je sve, od tada nista i sada sam eto zazeleo da se posvetim tome, ali naravno sve se krece od nule. Ambicije su mi promenjive, za sada su samo da mogu da zatvorim usta dok citam ovo sto vi programeri pisete :) a za kasnije zelim ozbiljan rad. Recimo da mi je motiv da caletov program za knjigovodstvo koji je on napisao u cliperu sa dbase bazom zajedno sa njim reprogramiram za windows okruzenje. Program je odlican ali njegovo dos okruzenje izumire, a meni zao caleta koji svoj projekat onako uz uzdah uzdize (znas li ti koliko liinija ima taj moj program:D ). Sve u svemu jos jednom ti hvala na ovakvom iscrpnom odgovoru, skapirao sam da bi mi C++ ipak bio najoptimalniji sto se tice ulaganja truda i rezultata. Koja je razlika izmedju C++ i Visual C++?
Pozdrav i hvala, imas pice kad dodjes u Bg
 
Pazi, od sinclaira i starog tima se na ovamo programiranje dosta izmenilo; struktuirano programiranje je ostalo samo u nekim specificnim oblastima (sistemsko programiranje, real-time, drajveri, i sl.), dok je velikoj vecini slucajeva devedesetih objektno programiranje zamenilo struktuirano. Knjiga o objektnom programiranju (uopsteno) ima tomova i tomova - mozes i sam da izaberes listanjem - to bi spadalo u domen onih knjiga o programskim tehnikama i tehnologijama.
Windows programiranje je bilo malo chupavo u pocetku, ali samo u pocetku - danasnji alati i razvojne okoline maksimalno olaksavaju zadatak. Srecom, bar neke osnove imas, pa razumes sta je source, da njega treba kompajlirati i linkovati da bi se dobio binarni fajl (exe ili dll). Da imas neku predstavu sta je to konstanta, varijabla, naredba, procedura/funkcija. Ako si barem nekada imao bilo kakvih dodira sa programiranjem, to je dobra pomoc - vratice se to ubrzo.

Razlika izmedju C++ i Visual C++ je u tome sto je VC++ samo Majkrosoftovo izdanje C++ jezika. Dakle, postoji nesto sto je C++ jezik, ciju strukturu, napredovanje i izmene regulise medjunarodni ANSI komitet (pa je cesto poznat i kao ANSI C++). Onda proizvodjaci te izmene implementiraju u svoje proizvode - Majkrosoft u svoj VisualC++, Borland u C++ Builder, itd. Znaci, ono sto naucis sa "cistim" C++ jezikom treba da vazi svuda - u svakom C++u, na svakom OS-u, itd. A proizvodjaci onda imaju uz svoj C++ kompajler gomilu raznih dzidza-bidza; IDE (integrisanu okolinu), dibagere za trazenje gresaka, sopstvene frameworke (gomile bibilioteka tipova, funkcija i klasa za razne specificne zadatke - grafika, baze, itd). Ali su svi kompatibilni sa ANSIjem, kao osnovom.

Sa C++om kao "nosecim" jezikom (dobro je baratati bar jos necim), posao nije tesko naci. Moze za dos, moze za windows, moze za unix/linux, moze za MacOS, moze za baze, komunikacije, operativne sisteme, grafiku, SVE. Kao kad ides da putujes po svetu, pa znas engleski :)
 

... mnoge slicnosti (leksicke, smislene, itd) izmedju govornih jezika i programskih jezika, pa je mozda najbolje da iskoristim tu paralelu: ako si pisac, ti pises pesmu ili knjigu i vrlo je vazno da umes da pises ta dela,..


Lepo rečeno, a ja smatram da je još bolje da prvo naučiš da čitaš tudja remek dela pre nego počneš da stvaraš svoja. Zato se slobodno prihvatci C++ u bilo kojoj varijanti. Radi neko vreme dok ne počneš da kapiraš tudji source - teže i složenije konstrukcije. Posle toga biraj šta ti drago .NET, Java, PHP, JScript...

Sve ti je to slični k....

Pozdrav.
 
U tome je velika prednost C++a. Bas zbog toga sto je C bio "jezik profesionalaca" uvek je pozajmljivana njegova sintaksa - da bi ljudi mogli "u letu" da predju na nove stvari bez gubljenja mnogo vremena. Tako je i C++ dobio sintaksu (pa zato "lici" mnogo na C) - nakon toga je u Java dobila C++oliku sintaksu, a takodje i mnogi skript jezici - php, perl, itd. Svi su oni slicni samo po tome sto koriste C-ovske sintaksne konstrukcije i strukture, iako su u sustini razliciti jezici. No, vec i to pomaze da se mnogo lakse nauci dodatni jezik - uce se samo specificnosti, a ne mora da se krene od nule i dosadnih detalja tipa "kako da inicijalizujem konstantu ili varijablu".
 
Nazad
Vrh Dno