Kako...

D

dejanxyz

Gost
Hteo bih da pocnem da ucim programiranje,pa me zanima sledece:
1.Na koje pravce se deli programiranje i kojim redom se uce?
2.Koji programski jezik ima najbolji odnos ulozeno vreme/novac?
3.Koji od njih ima buducnost?
Eto toliko...i hvala!
 
Bash ne znam da li bi mogli da se nazovu pravcima.... Ali lepo bi bilo da pochnesh sa proceduralnim programiranjem, a onda da se prebacish na objekatski-orijentisano (OOP). E, sad, to ja mislim, vecina ljudi ce verovatno reci da je najbolje odmah pocheti OOP.

Od jezika je verovatno najbolje znati C/C++. Mozhe da ti posluzhi Java, Pascal i josh po neki. Vrlo je bitno shta programirash kad birash jezik.
 
dejanxyz:
Hteo bih da pocnem da ucim programiranje,pa me zanima sledece:
1.Na koje pravce se deli programiranje i kojim redom se uce?
2.Koji programski jezik ima najbolji odnos ulozeno vreme/novac?
3.Koji od njih ima buducnost?
Eto toliko...i hvala!

Danas je više bitno za koju platformu programiraš, a manje u kom programskom jeziku to radiš! Maltene svaki jezik je danas proširen toliko da skoro sve što može da se uradi u jednom, može i u ostalim (mada možda na malo komplikovaniji ili na nešto lakši način).

Ako si ozbiljno rešio da se baviš programiranjem, nabavi dobru knjigu i počni da učiš C++. On je "prenet" na najveći broj platformi, a u njemu možeš da pišeš i sistemski softver, ali i obične korisniške aplikacije. Ja ti preporučujem da ne kupuješ knjige u knjižarama nego da nađeš neku knjigu u elektronskom obliku (eBook), npr. "Thinking in C++", Bruce Eckel (http://64.78.49.204/) i tome slično.

Kada savladaš objektno orijentisano programiranje u C++, šta dalje treba da učiš zavisi od oblasti kojom želiš da se baviš, npr. sistemski softver (drajveri i sl.), računarska grafika, baze podataka... za to postavi posebno pitanje na forumu. U principu, sa C++ možeš na koju god hoćeš stranu, a možeš i kasnije da se predomisliš pa da promeniš oblast... tako da je odnos uloženo vreme/novac najbolji!

Što se budućnosti tiče, C++ ga sigurno ima! U "poslednje vreme" se pojavio određeni broj novih jezika, ali su svi oni uglavnom C-like jezici (tj. po sintaksi i pristupu najviše liče na C, tj. na C++). Takvi su npr. Sun-ova Java ili Micro$oft C#.

Ako hoćeš da programiraš za Windows platforme, put je jednostavan i mogu ti reći mnogo kraći danas nego što je to bilo pre par godina. Nabavi eBook "Programming Windows" od Charles Petzold. Ova knjiga detaljno objašnjava C-ovski pristup programiranju za Windows platform-e (dakle čist Win32 API, nema ni klasa ni objekata). Iz nje ćeš naučiti kako Windows "diše". Šta se događa unutra i sl. Posle toga počni da učiš "Managed Extensions to C++" za .NET Framework. Za ovo ne mogu da ti preporučim neku knjigu, ali MSDN (help koji ide uz MS Visual Studio) ti je dovoljan.

Neki će ti reći da ti Win32 API nije potreban, ali veruj mi da greše. Neke stvari još uvek nisu dostupne u .NET Framework-u, tako da ti i dalje s vremena na vreme zatreba Win32 API!

Pozdrav,
m
 
Hvala na iscrpnim informacijama.Interesuje me jos nesto;da li je za rad sa c++ potrebno poznavanje c i u kojoj meri?Sta bi jos bilo dobro da koristim od literature(osim gore navedene)?
 
milos12345:
a ja se pitam kada ce m$ napraviti nesto normalno za programere a ne da stalno komplikuje.........pitam se gde ime je kreativnost koju imaju ljudi iz borlanda

Da ti pravo kažem ni ja nisam neki ljubitelj Micro$oft-a. Prvi IDE koji sam počeo da koristim pod Windows-ima bio je Borland 5.02... ali kada malo duže programiraš, vidiš da MS bolje prati standarde nego Borland. Na primer, ona priča sa novim nazivima zaglavlja u c++ (bez .h) i sl. Takođe, neka zaglavlja imaju drugačiji naziv... Pored toga, MS finansijski stoji mnogo bolje, tako da je u situaciji da može da nameće standarde. Zbog toga bih se ja držao njih! Ako ne možeš da ih pobediš, pridruži im se :D

Što se tiče kreativnosti, slažem se da .NET ima dosta gluposti u sebi i da mnoge stvari nepotrbno komplikuje, ali evo jedno pitanje za tebe:

Koliko lakše, čitljivije i efikasnije se prave komponente pod .NET-om u odnosu na MFC (Microsoft Foundation Classes) ili COM (ActiveX i sl.) :?:

Sada (pod .NET-om) za minut napraviš komponentu kakvu hoćeš (sa tri dana učenja .NET-a čak i ako ništa nisi znao pre toga)... a, ako si probao da učiš COM, sigurno si video da nije mnogo teško da se nauči, ali da se primeni (bez grešaka)... treba dosta vremena! :idea:
 
dejanxyz:
Hvala na iscrpnim informacijama.Interesuje me jos nesto;da li je za rad sa c++ potrebno poznavanje c i u kojoj meri?Sta bi jos bilo dobro da koristim od literature(osim gore navedene)?


C++ je nadskup C-a, što će reći, sve što možeš da uradiš u C-u, možeš na isti način da uradiš i u C++, tj. C++ kompajler će bez greške prevesti svaki ispravan C program. Nema potrebe da učiš C, jer ćeš sve naučiti koristeći C++. Ako ti kasnije zatreba da znaš koja su to ograničenja C-a u odnosu na C++ (za neke specijalne namene), moći ćeš da naučiš sve za jedan dan. Dakle, preskoči C za sada.

Ima tu još jedna stvar: danas se obično koristi event-driven pristup (izvršavanje programa je vođeno događajima) - ovo je pristup koji se uvek koristi u grafičkim okruženjima kao što su npr. Windows ili X Window System pod linux-om. Zato je izlaz na ekran, kao i unos sa tastature (i sl.) realizovan na drugačiji način nego što je to (uglavnom) opisano u knjigama za učenje C-a i C++. Na primer, u C-u se (za konzolno programiranje - tekstualni režim) koristila moćna funkcija printf(). U C++ je to prerađeno u upotrebu stream-ova (cin, cout)... Ove funkcije/stream-ove ćeš sresti u standardnom Hello World! programu kojim manje-više počinje svaka knjiga za učenje programiranja. Ali to ti nije potrebno za programiranje u grafičkom režimu! Umesto printf(), intenzivno ćeš koristiti sprintf(), wsprintf(), String::Format() (.NET) pa nema potrebe da se previše zamaraš standardnim ulazom i izlazom.

:idea: obrati pažnju na pokazivače, možeš da učiš ili iz knjige za C ili iz knjige za C++, isto je. Razgraniči šta je to pokazivaš, a šta je ono na šta pokazivač pokazuje. Šta je to statički, a šta dinamički alocirana memorija...

:idea: nauči da pišeš/koristiš klase i sve ostalo vezano za njih (nasleđivanje, enkapsulacija...)


Što se literature tiče, nemoj misliti da kada naučiš C++, da si naučio sve! C++ ti je osnovna alatka koja se maltene podrazumeva. Osnovni izvor informacije ti je dalje MSDN (http://msdn.microsoft.com/library/) kog takođe dobijaš uz M$ Visual Studio. Onda dolazi učenje raznih API-ja (API = Application Programming Interface; to je skup funkcija koje ti neka "biblioteka" i sl. obezbeđuje kako bi koristio njenu funkcionalnost). Na primer, Win32 API ti omogućava da koristiše osnovnu funkcionalnost Windows-a, OpenGL (Open Graphics Library) ti obezbeđuje rad sa grafikom, ODBC (Open Database Connectivity) ti obezbeđuje jedan od pristupa bazama podataka... dakle, zavisno os oblasti kojom želiš da se baviš, zavisi šta ćeš koristiti. Naravno, kada dobro naučiš C++, sve će ostalo ići lakše i brže...

:idea: Navikni se (ako već nisi) da čitaš literaturu na engleskom. Naši prevodi su smešni! Na web-u imaš dovoljno literature... Kad god naiđeš na neki problem, traženje rešenja počni od http://groups.google.com 99% ćeš naći rešenje (naravno, kada naučiš kako se rešenje traži :wink: )

:idea: Čitaj što više... Čitaj sve što ti padne pod ruku... i uči!

Pozdrav :D
Mickey
 
MickeyMouse:
Sada (pod .NET-om) za minut napraviš komponentu kakvu hoćeš (sa tri dana učenja .NET-a čak i ako ništa nisi znao pre toga)... a, ako si probao da učiš COM, sigurno si video da nije mnogo teško da se nauči, ali da se primeni (bez grešaka)... treba dosta vremena! :idea:

dobro, ja sam mislio na mfc......to je nesto najgroznije sto postoji, a uz to nema puno veze sa oop-om....morash mnogo da se namucish da bi neke osnove u njemu uradio, zar ne?
 
milos12345:
dobro, ja sam mislio na mfc......to je nesto najgroznije sto postoji, a uz to nema puno veze sa oop-om....morash mnogo da se namucish da bi neke osnove u njemu uradio, zar ne?

Slažem se!!!

I ja mislim da je MFC zaista loš... dobra je stvar, međutim, što svaka MFC klasa ima public ili protected HANDLE za interno korišćeni Win32 objekat, :idea: tako da koristeći Win32 API (ako umeš :wink: ) možeš da uradiš sve što poželiš.

Ako baciš pogled na MS Visual Studio 7.0 (2002) ili 7.1 (2003) - to su .NET verzije, videćeš da MS .NET-om pokušava da potisne sve ostale pristupe windows programiranju... (ili se meni barem tako čini :wink: )
 

Back
Top