Šta je novo?

Programski jezici -> napomena za pocetnike

silverglider

Administrator
Administrator
Učlanjen(a)
30.07.2000
Poruke
5,577
Poena
770
Posto vidim kako krecu pitanja i objasnjavanja u smislu "kojim programskim jezikom da se bavim", skrenuo bih paznju ljudima koji razmisljaju da pocnu da se bave programiranjem na par detalja.

Programski jezik nije sve i sva u progamiranju. Tacno je da se ne moze zaobici, ali nije pocetna i zavrsna tacka. Osnovu cini programersko znanje i nacin razmisljanja u smislu da se proramski zadatak pravilno razume, podeli na delove, napravi pravilan model tih delova, razrade algoritni i onda tek predje na samu implementaciju, uz naknadne operacije (odrzavanje, dokumentacija, itd). Konkretan primer: jedan te isti algoritam jednog sortiranja, npr QuickSort moze da se implementira u skoro svakom jeziku i vazno je shvatiti sustinu. Glupo (i mozda ne skroz primereno) poredjenje je kao kada bi rekli "hocu da naucim da obradujem bmp" ili "hocu da naucim da vozim toyotu"; ispada da se ne vidi shuma od drveca; cilj bi bio da se nauci obrada grafike ili voznja automobila - ostalo su detalji.

Vreme prolazi, trendovi se menjaju, jezici kao i ostali alati se takodje menjaju vremenom - ono sto ostaje univerzalno je upravo taj nacin vaseg sistematskog razmisljanja i zato nemojte striktno da se vezete za jedan alat. Jedan te isti problem moze da se resi na vise nacina i sa razlicitim alatima - naglasak je na resenju. Zato skrecem paznju da treba imati u vidu da treba nauciti i mnoge druge stvari i da nije sve do pukog izbora jezika.

Izvinjavam se na smaranju i zahvaljujem na paznji ;)
 
Trebalo bi ovaj thread da bude sticky (a i da ga ima u FAQ )
 
Apropo ovog, da li neko crta algoritme kad pravi program?
Ja jok :) I ima li naprednih koji vole Rose?
 
salac je napisao(la):
... da li neko crta algoritme kad pravi program?
Kada te bude velichina programa, problemi oko naknadnih ispravki, izmena i td. naterala da prethodno nacrtash algoritme, videcesh da je taj deo posla itekako vazan. Da ne pricham o kompletnoj dokumentaciji koja bi trebalo da ide uz program!
 
Koriscenje Case odnosno UML alata se podrazumeva za svakog ko je shvatio programiranje na ozbiljan nacin. Odnosno, ako mu se dijapazon ne proteze samo na "vodjenje video klubova" od strane priucenih "single-man-company" ljudi. Pravim alatom se lako dizajniraju klase, proverava logicka struktura, stvara baza za dokumentaciju i, ako zatreba, generise neki source definicija ili sql skriptova.

U mom slucaju to nije Rational Rose, nego kombinacija EnterpriseArchitecta, ObjectWorkbencha i WithClass-a (ovaj zadnji ne neko vreme).
 
silverglider je napisao(la):
Vreme prolazi, trendovi se menjaju, jezici kao i ostali alati se takodje menjaju vremenom - ono sto ostaje univerzalno je upravo taj nacin vaseg sistematskog razmisljanja i zato nemojte striktno da se vezete za jedan alat. Jedan te isti problem moze da se resi na vise nacina i sa razlicitim alatima - naglasak je na resenju. Zato skrecem paznju da treba imati u vidu da treba nauciti i mnoge druge stvari i da nije sve do pukog izbora jezika.

Nije bas sasvim tacno...
Ima tzv pocetnika i druge vrste, onih kojima je kasno da prodju kompletnu skolu. Njima treba preporuciti C tj C++ pored, izucavanja algoritama, sto se nikako ne da zaobici...
 
Dejane, nemoj da vadis recenicu ili dve iz konteksta celog threada. Ili nisi razumeo povode za taj post ?

Ja sam mislio da je thread jasno postavljen. Skretanje paznje takodje. I, naravno, na koga se odnosi - na ljude koji pozele da programiraju i, ne poznavajuci materiju, kazu sebi "uzecu C++ to se trazi (ili to rula, cuo sam tu-i-tu)", i pomisli da ce kupovinom jedne knjige tipa "Postajem baja za 21 dan" stvarno postati baja u programiranju i da je resio stvar.

Dakle, nisam ulazio u pojedine specificne slucajeve, pa da sad analizliram ko ima koliko godina, da li mu je kasno ili ne, kojom oblasti bi se bavio, da li ima predznanje, itd, itd pa da savetujem odmah i direktno "C++" ili "java" ili nesto trece (malo bi se razvuklo; takodje uciti nesto "skraceno" ovde bukvalno znaci "uciti ofrlje" - ni jedan doktor nije pravi doktor ako prekoci anesteziju, zarazne bolesti i opekotine, ma kako dobro vladao hirurgijom, na primer). Ovo se odnosilo na nase "mlade" pocetnike, koji jos uvek nemaju sliku koliko je oblast, u stvari, ogromna i da se ne zamenjuju teze; tacnije, da ne misle da izaberu jezik i da onda sve sta treba da urade je da sednu i programiraju (kao sto i pocetnici tamo u "Maticne ploce..." cesto pitaju "koja je najbolja ploca", kao da postoji jedna najbolja). Valjda se bira alat prema oblasti delatnosti, a ne obratno.

Poenta posta je i bila da se ne stvara jedan konkretan predlog, a sa druge strane da se ostavi napomena da uciti programirati nije isto sto i uciti neki programski jezik. Dakle, ako je neko savladao neko grananje, looping i slicno u sintaxi jednog jezika, ne znaci da je to to. To je samo savladjivanje koriscenja jednog alata koji je potreban u resavanju zadatog problema. Nije cilj znati sve objekte, funkcije ili strukture neke biblioteke (bilo to MFC, VCL, ...) napamet - vazno je da covek zna da resi problem i gde ce za delove takvog problema naci resenje - sta ima gotovo, sta ce morati sam, sta moze OS da mu odradi (APIju moze da se pristupi iz fakticki bilo kog jezika), itd. Sintaxu takvih funkcija, struktura, ... ce uvek naci u helpu (naravno da ce mu se one cesto koriscene uvuci vremenom u glavu). Analiza i odluke sta i kako su te stvari koje odredjuje znanje i iskustvo, a to ne pise nigde u knjizi "baja za 21 dan". Tamo ima nekih nagovestaja i ako covek ne shvati na vreme sustinu, zauvek ce pokusati da probleme resava sablonski.

Naravno da jezik nije skroz nevazan, ali izbor jezika nije alfa i omega programiranja - valjda sam sad bio jasniji sta je bila tema i povod pocetnog posta) :)
 
I ja se izvinjavam, samo sam skrenuo paznju na ljude iz drugih struka, kojima zatreba programiranje za vrlo specificne stvari.
Takvi obicno znaju da ono "baja za 21 dan" nije bas tako...

Ti si, naravno, u pravu u, i jasno mi je sta si hteo da kazes.
 
salac je napisao(la):
Apropo ovog, da li neko crta algoritme kad pravi program?
Ja jok :) I ima li naprednih koji vole Rose?

Ja obicno crtam algoritme na papiru ali nekad me mrzi pa radim direktno u kodu sto naravno ne valja. Doduse programiranje mi je samo hobi.
 
silverglider je napisao(la):
Posto vidim kako krecu pitanja i objasnjavanja u smislu "kojim programskim jezikom da se bavim", skrenuo bih paznju ljudima koji razmisljaju da pocnu da se bave programiranjem na par detalja.

Konkretan primer: jedan te isti algoritam jednog sortiranja, npr QuickSort moze da se implementira u skoro svakom jeziku i vazno je shvatiti sustinu.


Sad sam dobio zelju da se raspisem, ali nemam ideju u glavi kako to lepo da prezentiram. Unapred se izvinjavam ako se previse rasplinem.

Verujem da ovde kod nas ima dosta ljudi koji se "bave" programiranjem poluprofesionalno ili amaterski. Ja zaista ne znam kako izgleda gradivo u skolama koje se bave programiranjem ali iz prica i postova koji su ovde okaceni dobio sam utisak da ako se sam ne angazujes, slaba vajda od diplome koju dobijes. Ono sto mene zanima kao "programera" koji se moze staviti u gore pomenutu grupu je gde moze da se nabavi i koja je to literatura koja je neophodna za neko dublje razumevanje ove problematike? Konkretno: Gde da nadjem resenja za probleme koji se cesto javljaju kao onaj QuickSort koji si pomenuo? Ili: Postoji li nesto kao "Zbirka zadataka za pointere/pokazivace"? Svako moze da kupi one "21 dan" knjige (i sam ih imam nekoliko) ali ni u jednoj nema, ma koliko trazio, ovo sto me zanima.
 
Re: Re: Programski jezici -> napomena za pocetnike

Maric je napisao(la):
Ono sto mene zanima kao "programera" koji se moze staviti u gore pomenutu grupu je gde moze da se nabavi i koja je to literatura koja je neophodna za neko dublje razumevanje ove problematike?
Postoje knjige koju pishu majstori svog posla , koje su po pravilu velikog obima sa puno primera(na CD-u), a koje u sebi sadrze pored osnovnih i gomile stvari koje ti nisu cesto potrebne, ali kada ti zatrebaju, reshio si problem. Naprimer: za Delphi postoji jedna od takvih knjiga koju su napisali Xavier Pacheko i Syeve TEixtiera, a zove Delphi Developer's Guide.
 
Re: Re: Programski jezici -> napomena za pocetnike

Maric je napisao(la):
... moze staviti u gore pomenutu grupu je gde moze da se nabavi i koja je to literatura koja je neophodna za neko dublje razumevanje ove problematike? Konkretno: Gde da nadjem resenja za probleme koji se cesto javljaju kao onaj QuickSort koji si pomenuo? Ili: Postoji li nesto kao "Zbirka zadataka za pointere/pokazivace"? Svako moze da kupi one "21 dan" knjige (i sam ih imam nekoliko) ali ni u jednoj nema, ma koliko trazio, ovo sto me zanima.

Problem sa knjigama tipa "xxx za 21 dan" je u tome sto te samo na brzaka upoznaju sa doticnim programom/alatom/paketom, dok neko sustinsko znanje i ne prenose. Znaci, ako sam do sada radio (lupam sad primer) u Jbuilderu 3, pa sam sad nabavio JBuilder 5, za koji kazu da je prilicno bogatiji paket, onda ima razloga da pogledam knjigu "JBuilder 5 za 21 dan", jer cu tu brzo i pregledno saznati kako da uradim dodatni poslic alatima koji se isporucuju u paketu ili da se upoznam sa novom dodatnom bibliotekom ili izmenama u postojecoj. Podrazumeva se u ovakvom slucaju da su izmene na samom jeziku male ili nikakve i da jezikom kao takvim baratas.

Sto se tice ostalih stvari iz tvog pitanja, dobro bi bilo da se prouci malo literatura koja se tice struktura podataka i algoritama (posto je to manje-vise univerzalno gradivo za sve jezike).
Sto se tice samih pokazivaca, na primer, dobro je pogledati neku knjigu koja se bavi samim jezikom (nezavisno od implementacije, da li je to ms, borland, sun, etc), jer te stvari spadaju u osobine jezika, dakle, za C++ je primer "C++: The Complete Reference" od Schildta u izdanju Osborna (kao lagano objasnjenje). Kvalitetnije knjige (koje opisuju neki jezik) ukljucuju i neke cesce koriscene algoritme.
 
A zasto niko ne pominje Turbo Pascal!?:D
Kostala me je nepaznja i nezainteresovanost za informatiku u srednjoj skoli, pa sada na faxu imam problema jer ne znam ni osnovno, a ima likova koji kidaju...dajte neki ubrzani kurs za Amona - da ih covek stigne!:D
 
Amon_Ra je napisao(la):
A zasto niko ne pominje Turbo Pascal!?:D
Kostala me je nepaznja i nezainteresovanost za informatiku u srednjoj skoli, pa sada na faxu imam problema jer ne znam ni osnovno, a ima likova koji kidaju...dajte neki ubrzani kurs za Amona - da ih covek stigne!:D

Na kom si faxu?
Niko ovde nije naucio programiranje u srednjoj skoli.
Prvo treba da usvojis crtanje algoritama na papiru i
rucno testiranje...zatim sledi puno postupnih zadataka:
brojaci,
sume,
proizvodi,
indikatori,
....
....
Ne mozes odmah u matrice i rekurzije...
Potrebno je bar cetiri meseca i bar 500 programa.
Dobra knjiga? Pa ... trenutno pisem ...
 
Niko ovde nije naucio programiranje u srednjoj skoli

????
Ja sam dosta naucio o programiranju u srednjoj skoli. Imali smo profesora koji je bas dosta trazio (sto nije odgovaralo ostaloj deci, ali ja sam to lagano savladao). Steta sto sam posle toga zaribao.
 
Na FON-u sam i ne pise mi se dobro sto se tice programiranja.Nego kada budes zavrsio tu knjigu daces mi jedan primerak da vidim hoce li mi pomoci :D
 
Rastuzili ste me.....potreba crtanja algoritama + case alati. Mislim, nije da ja ne crtam nista, imam neki svoj sistem.
A Rose mi uopste ne pomaze, naprotiv, samo me zbunjuje. Nista, moracu da poradim na tome kad svi kazete da 'tako treba'.

ps. al malo je zeznuto raditi sa Rose-om kad se koristi MFC, zar ne?
 
Re: Re: Programski jezici -> napomena za pocetnike

Maric je napisao(la):
Sad sam dobio zelju da se raspisem, ali nemam ideju u glavi kako to lepo da prezentiram. Unapred se izvinjavam ako se previse rasplinem.

Verujem da ovde kod nas ima dosta ljudi koji se "bave" programiranjem poluprofesionalno ili amaterski. Ja zaista ne znam kako izgleda gradivo u skolama koje se bave programiranjem ali iz prica i postova koji su ovde okaceni dobio sam utisak da ako se sam ne angazujes, slaba vajda od diplome koju dobijes. Ono sto mene zanima kao "programera" koji se moze staviti u gore pomenutu grupu je gde moze da se nabavi i koja je to literatura koja je neophodna za neko dublje razumevanje ove problematike? Konkretno: Gde da nadjem resenja za probleme koji se cesto javljaju kao onaj QuickSort koji si pomenuo? Ili: Postoji li nesto kao "Zbirka zadataka za pointere/pokazivace"? Svako moze da kupi one "21 dan" knjige (i sam ih imam nekoliko) ali ni u jednoj nema, ma koliko trazio, ovo sto me zanima.

Ja bih ti preporucio knjigu Dr Djura Paunic : Strukture podataka i algoritmi.

Knjiga je za studente informatike PMF-a u NS-u za istoimeni predmet. Ako imas sanse da ti neko nabavi ili da svratis u NS to je definitivno knjiga koja ce ti mnogo toga pokazati. Ima i toliko (Quick)sortova da ti se zavrti u glavi :)

Mozda je jedino mali problem sto je kao jezik koristena Modula2 ali posto je slicna TPaskalu ne bi trebalo da bude problema (naravno ako znas osnove TPascala :) )
 
Ma to (modula, pascal) je toliko citljivo da je najmanji problem "prebaciti" u jezik koji covek koristi; vazno je da shvati poentu, tj algoritam.
 
Re: Re: Re: Programski jezici -> napomena za pocetnike

Scorpio76 je napisao(la):
Ja bih ti preporucio knjigu Dr Djura Paunic : Strukture podataka i algoritmi.

Knjiga je za studente informatike PMF-a u NS-u za istoimeni predmet. Ako imas sanse da ti neko nabavi ili da svratis u NS to je definitivno knjiga koja ce ti mnogo toga pokazati. Ima i toliko (Quick)sortova da ti se zavrti u glavi :)

Mozda je jedino mali problem sto je kao jezik koristena Modula2 ali posto je slicna TPaskalu ne bi trebalo da bude problema (naravno ako znas osnove TPascala :) )

Hvala na informaciji, imam nekoliko prijatelja u NS, snacicu se nekako. Samo mi reci, molim te, gde tacno moze da se kupi, da gnjavim drugare sto je moguce manje. Mozda cak i sam pazarim, desi mi se cesto da svratim do moje nove prestonice ;)

Sto se tice jezika... Pa valjda cu se snaci. Znam svasta po malo a nista do kraja ;)
 
Re: Re: Re: Re: Programski jezici -> napomena za pocetnik

Maric je napisao(la):
Hvala na informaciji, imam nekoliko prijatelja u NS, snacicu se nekako. Samo mi reci, molim te, gde tacno moze da se kupi, da gnjavim drugare sto je moguce manje. Mozda cak i sam pazarim, desi mi se cesto da svratim do moje nove prestonice ;)

Sto se tice jezika... Pa valjda cu se snaci. Znam svasta po malo a nista do kraja ;)

Probaj u :
1. sekretarijatu PMF (Institut za matematiku) - zgrada desno od Plave zgrade
2. Stylos na FTN-u
(3.) Solaris na Spensu

Ali trebalo bi da u 1. ili 2. nadjes jer Djuri svake godine stizu novi pacijenti :) pa ne bi trebalo da fali.
 
Vrh Dno