[ texxxi @ 02.04.2012. 07:38 ] @
Posle godinu i malo vise programiranja u C-u mislim da sam proso fazu " printf - scanf " , pokazivace znam odlicno, strukture podataka (liste ,stabla ...) isto , neke C-biblioteke naprimer sa fajlovima znam da radim i tako to . Trenutno slusam Dizaj Algoritama na predavanjima , problem je sto imam osecaj da ne napredujem vise i da bi trebalo nekako da probam nesto drugo. Pre 2-3 meseca sam presao skroz na Linux, i trenutno proucavam GCC kompajler kako radi , skriptovanje u BASH-u i Coreutilities programcice, interesuje me i GNUmake i jos neke stvari ali polako. Mogu da kazem da sam dosta naucio o Linuxu i da verovatno Windows necu da koristim ako nemoram.
Problem je sto i dalje sa C-om stojim u mestu, pa je moje pitanje kako dalje, da li je neko od vas imao slican osecaj i sta ste radili . Razmisljao sam malo o tome da skinem source code nekog manjeg programcica i da studiram malo sta su drugi radili, ili mozda SDL pa da probam malo sa grafikom nesto...

HVALA PUNO I POZDRAV !!!

[Ovu poruku je menjao texxxi dana 02.04.2012. u 08:56 GMT+1]
[ deerbeer @ 02.04.2012. 09:21 ] @
Tvoj sledeci korak s obzirom da si linuxas je http://qt.nokia.com/products/
U C-u vise i ne mozes nesto specijalno da napredujes osim ako ne predjes na c++ in qt i pocnes da radis ozbiljnije programe.
U daljem napredovanju mozes iskoristiti svoje znanje u c-u koriscenjem raznih open-source bibilioteka u svojim programima .
[ djoka_l @ 02.04.2012. 09:47 ] @
http://www.pbm.com/~lindahl/real.programmers.html

Citat:
Kada sam završio školu, mislio sam da sam najbolji programer na svetu. Mogao sam da napišem nepobedivi program za iks-oks u pet različitih kompjuterskih jezika i da napišem program od 1000 redova koji RADI (zaista!). Onda sam stupio u stvarni svet. Moj prvi zadatak je bio da pročitam i razumem FORTRAN program od 200,000 linija, a zatim da ga ubrzam sa faktorom 2.


Ja sam imao malo drugačiji put. Mogao sam da napišem iks oks u 30 jezika, a onda sam morao da menjam program od 1,000,000 redova napisan u PL/SQL-u posle 15 minuta obuke za isti...
[ djoka_l @ 02.04.2012. 10:31 ] @
Evo ti jedan zadatak za vežbu, da vidiš koliko si stručnjak u jeziku u kojem ne možeš više da napreduješ:

Napisati BASIC interpreter (ili shell za UNIX ili program koji radi isto što i awk).
Evo jednog BASICa koji možeš parcijalno da implementiraš: http://www.infinite-loop.at/Po...wer64-ReadMe/AA-C64_BASIC.html
[ deerbeer @ 02.04.2012. 10:39 ] @
Heh , pa dobro uvek moze da se napreduje ali u nekim akademskim vodama bez neke realne upotrebe ili sa izmisljanjem tople vode .
Ako se opredeli za ove komercijalne vode mislim da preporuka odozgo i dalje vazi ...
[ Nedeljko @ 02.04.2012. 11:45 ] @
Nauči sada da praviš biblioteke statičke i deljene, da ih koristiš u svojim programima, rad u višenitnom okruženju, sinhronizaciju, komunikaciju između procesa, sinhrone i asinhrone pozive, sokete, deljenu memoriju, UUID-e (GUID je sinonim), rad sa vremenom i datumima (lokalno/utc)...
[ milanche @ 02.04.2012. 14:58 ] @
Citat:
Nedeljko: Nauči sada da praviš biblioteke statičke i deljene, da ih koristiš u svojim programima, rad u višenitnom okruženju, sinhronizaciju, komunikaciju između procesa, sinhrone i asinhrone pozive, sokete, deljenu memoriju, UUID-e (GUID je sinonim), rad sa vremenom i datumima (lokalno/utc)...


+1

Samo malo preciznije:
Citat:
Nauči sada da praviš biblioteke statičke i deljene, da ih koristiš u svojim programima

Obrazuj se malo iz oblasti compiler/linker-a, obavezno nauci make utility kao i alatke za analizu ELF
formata, a ne bi bilo lose da malo vremena provedes sa autoconf/automake.

Takodje
Citat:
c++ in qt i pocnes da radis ozbiljnije programe.

nauci bar jedno cross-platform visual programming okruzenje.

Na kraju, odluci se za industriju u kojoj ces se ukotviti i poceti da primenjujes svoja programerska znanja.
U tom pravcu:
Citat:
U daljem napredovanju mozes iskoristiti svoje znanje u c-u koriscenjem raznih open-source bibilioteka u svojim programima .



[Ovu poruku je menjao milanche dana 02.04.2012. u 16:26 GMT+1]
[ Nedeljko @ 02.04.2012. 16:08 ] @
Alatke za analizu ELF formata? Čemu? Kome to treba, osim onima koji prave linkere/dibagere? Ostalo potpisujem.
[ milanche @ 02.04.2012. 16:54 ] @
Recimo -
Citat:
Nedeljko: Alatke za analizu ELF formata? Čemu? Kome to treba, osim onima koji prave linkere/dibagere? Ostalo potpisujem.


Nije da nisam mogao da budem malo precizniji - puka analiza ELF formata definitivno nije
na listi prioriteta, ali alatke koje rone po binarnim fajlovima i prijavljuju kojesta definitivno
trebaju.

Recimo:

addr2line - pomaze u slucaju kad se desi crash (segfault), vidis samo nekoliko poslednjih
adresa, a ne znas o kom simbolu se radi (u kojim funkcijama se desio crash). Dragocena alatka
posto na gomili embedded platformi nemas luksuz debugger IDE-a, cak nema ni gdb-a, ili ako ga
ima - core dump iz nekog razloga nije upotrebljiv, a moze da potraje vremena i nerava dok nabadanjem
debug printf-ova dodjes do tacke gde u nesto konkretno mozes da posumnjas.

Zatim:

nm - izlistava simbole sadrzane u objekt fajlu, pomaze u dijagnozi raznih link i run-time
problema (zasto program ne linkuje a trebalo bi, zasto executable ne uspeva da nadje simbol
funkcije a trebalo bi da je tu (neki krelac je zabrljao sa #ifdef-om, ili neko nije stavio extern "C"...)).
Ili: od nekud imas .so fajl, pa hoces da vidis sta sve tu ima i moze li se iskoristiti i kako. Ili: pomaze
da ukapiras da imas raniju verziju biblioteke koja tu neku funkciju jos nije implementirala. Ili...

itd...


[ deerbeer @ 02.04.2012. 18:09 ] @
@milanche
Nikada ne bih davao nekom junioru da radi tako nesto, ne zato sto nece znati nego zato sto ima ohoho za nauciti pre toga ,
a to je upravo ovo sto je @Nedeljko naveo i to se stice samo na realnim i konkretnim programima koje dobije kao zadatak.

Sa takvim iskustvom definitvno posle dolazi i napredni pristup u resavanju problema, samostalno definisanje dizajna i arhitekture programa
od UI-ja pa do najnizeg nivoa koliko god on nizak bio ;) kao i svi moguci nacini i scenariji koji postoje kod debagovanja .

Tek kad to apsolvira onda moze kao "dzomba klincima da prodaje fore" kako da tvikuje linker i kompajler da bi dobio nekih 4-5% boljih performansi
ako do te prilike uopste i dodje.





[ milanche @ 02.04.2012. 18:52 ] @
Citat:
deerbeer: @milanche
Nikada ne bih davao nekom junioru da radi tako nesto, ne zato sto nece znati nego zato sto ima ohoho za nauciti pre toga ,
a to je upravo ovo sto je @Nedeljko naveo i to se stice samo na realnim i konkretnim programima koje dobije kao zadatak.

Sa takvim iskustvom definitvno posle dolazi i napredni pristup u resavanju problema, samostalno definisanje dizajna i arhitekture programa
od UI-ja pa do najnizeg nivoa koliko god on nizak bio ;) kao i svi moguci nacini i scenariji koji postoje kod debagovanja .

Tek kad to apsolvira onda moze kao "dzomba klincima da prodaje fore" kako da tvikuje linker i kompajler da bi dobio nekih 4-5% boljih performansi
ako do te prilike uopste i dodje.


Hmmm....donekle se razilazlimo u misljenjima.

Imati jasnu predstavu o tome sta je kompajliranje a sta linkovanje, sta je staticka a sta shared biblioteka su stvari koje
u principu nisu komplikovane, niti bi ih vezivao za neki uzrast zrelosti u programiranju.

Prvo, ja bi ih licno razbistrio kod pocetnika radije ranije nego kasnije.

Drugo, dovoljno su zasebne da ne postoji opasnost da ucis 'prvo ovo, zatim ono' tj. 'cart before the horse'. Sta god da ucis naredno,
mozes slobodno time da se bavis, nece nista da smeta. Stvar je licnog izbora da li ce da narednih par meseci da odvoji da savlada recimo
mrezno programiranje ili kompajler/linker pitanja, i ne smeta da ide kojim god hoce redom.

Trece, za neko realno programiranje (pogotovo na Linux-u, gde ce masu puta morati da razresava dependencies i traga za bibliotekama
koje su potrebne a nisu tu ili su tu a verzija nije odgovarajuca...ako vec ne na Windows-ima gde sve ceka spremno u sistemu i masa uputstava
stize u formi gotove dokumentacije), te vestine su potrebne gotovo od prvog dana.

Dakle ne govorim o "prodavanju fora klincima" i "tvikovanju linkera", nego o "hlebu nasusnom" - hoce li uopste program moci da kompajlira
i pokrene. Cinjenica je da se na Windows-ima moze dosta radnog veka proziveti (bazirano na svom licnom primeru) da te ta i slicna pitanja
ne doticu, medjutim, na Linux-u izuzetno brzo dolaze na dnevni red, bez obzira da li se radi o licnom dizajnu, ili o naslanjanju na postojecu
kvotu necijeg koda. Misljenja sam da poznavanje tih stvari ne predstavlja fenseraj, nego realnu potrebu bez kojih se ne moze preziveti ni par
meseci u struci. Nekoliko puta sam video da pravo razumevanje pojmova u toj oblasti moze da ustedi i po 4+ sati kompajliranja kojecega.

Cetvrto, ako ce po prirodi stvari pre ili kasnije da krene da misli u terminima 'modularnosti' (moduli, instancioniranje prema potrebi, objekti, pa C++...),
znatno moze da koristi da bar u grubim crtama shvati ideju shared biblioteka/plugin-ova itd itd.


[Ovu poruku je menjao milanche dana 02.04.2012. u 20:05 GMT+1]
[ deerbeer @ 02.04.2012. 19:04 ] @
Onda te ja nisam najbolje razumeo .
Poceo si od analize ELF formata do alatki za browse linkerskih simbola pa do pocetnickog razumevanja kompajliranja i linkovanja :)
Takoreci izrazita gradacija :)
Ovo zadnje defiinitvno spada u skup skilova koje je @Nedeljko sazeo i koje se u principu nauci posle koriscenja 2-3 open source liba sa svim dependancy modulima.
Naravno ne kazem da je ovo pre toga bespotrebno ali ako se bas odmah specijalizuje za embeded platfrome onda je to sigurno required skill
[ texxxi @ 02.04.2012. 19:15 ] @
@Milanche && Nedeljko
Hvala vam, mislim da treba da organizujem programe bolje, kopirao sam neku knjigu za GCC

http://www.amazon.com/An-Intro...&qid=1333389625&sr=8-2

mislim da je to dovoljno za pocetak. Sto se tice procesa i niti trenutno slusam Uvod u operativne sistem i ucim iz ove knjige

http://www.mikroknjiga.rs/store/prikaz.php?ref=86-7555-274-2

i trenutno prolazim procese i niti , pa me interesuje sta mislite za knjigu, i da li imate neku knjigu sa konkretnim primerima.

@Djoka_I
Ma pisao sam i ja X-O, razmisljam sada da napisem svoje programcice za rad sa fajlovima kao sto su cp, ls, mv, posto koriste linux pozive i tako to...

@Deerbeer
Iz nekog razloga ne volim Javu i C++, ne znam zasto. Sta je u stvari QT ? Pravio sam neke programcice za Android u Javi, jel ima neke slicnosti ?

POZDRAV !!!
[ milanche @ 02.04.2012. 19:25 ] @
Citat:
deerbeer: Onda te ja nisam najbolje razumeo .


Mislim da si me prilicno nepotpuno razumeo.

Citat:
Ovo zadnje defiinitvno spada u skup skilova koje je @Nedeljko sazeo i koje se u principu nauci posle koriscenja 2-3 open source liba sa svim
dependancy modulima.


Sa ovim se definitivno ne bih slozio. Tek neke najprostije stvari naucis 'posle 2-3....', i to se eksponencijalnom brzinom pokaze kao nedovoljno, pa
se brzo dodje do tacke gde se ili vuce neciji rukav ili ocajava nad problemima u kasnim nocnim satima, ili jos gore - dodjes u situaciju da radis gluposti
koje trose jezive kolicine vremena i storage resursa (video licno u profesionalnim okruzenjima, i nekoliko puta celim timovima 'upalio svetlo u sobi'
sprecavajuci ih da po nekoliko sati drljaju kompajler na ogromnom paketu samo zato sto nisu do kraja razumeli sta se tacno desava tokom linkovanja
i sta to konkretno i tacno moze da znaci - naravno, i ja sam ucio od onih koji su to znali i bolje i pre).

Citat:
Naravno ne kazem da je ovo pre toga bespotrebno ali ako se bas odmah specijalizuje za embeded platforme onda je to sigurno required skill


Naravno da ne kazem da ne postoje poslovi za Linux desktop, ali cim se zucne "Li..." stvari pocinju da strasno brzo idu u embedded pravcu, i tu je zapravo
gde ce se najpre i najsigurnije 'leba najesti.

Ukratko, ono sto bih zeleo da bude zabelezeno - Linux je nesto drugacijom pocetnom filozofijom doveo do prilicno drugacijih pravila realnog programerskog
zivota (bar u nekim aspektima cele price). Ja sam se licno sa tim nekim novitetima susretao, i zelim da to nesto i podelim sa kolegama i mladjima.
[ deerbeer @ 02.04.2012. 19:56 ] @
Citat:

Sa ovim se definitivno ne bih slozio. Tek neke najprostije stvari naucis 'posle 2-3....', i to se eksponencijalnom brzinom pokaze kao nedovoljno, pa
se brzo dodje do tacke gde se ili vuce neciji rukav ili ocajava nad problemima u kasnim nocnim satima, ili jos gore - dodjes u situaciju da radis gluposti
koje trose jezive kolicine vremena i storage resursa (video licno u profesionalnim okruzenjima, i nekoliko puta celim timovima 'upalio svetlo u sobi'
sprecavajuci ih da po nekoliko sati drljaju kompajler na ogromnom paketu samo zato sto nisu do kraja razumeli sta se tacno desava tokom linkovanja
i sta to konkretno i tacno moze da znaci - naravno, i ja sam ucio od onih koji su to znali i bolje i pre).

Pa eto ja te pohvalih da si dzomba a ti mi ne verujes .Salim se malko

Meni su ta prva 2 puta odnela najvise vremena ... da ne kazem da su bili dani i noci "teskih razgovora sa linkerom" da ustanovim gde kako i sta .
Kasnije se sve to baferuje u malom mozgu i problem se prepozna pa cak i ako se ne resi odmah ispucas sve validne varijante.
Eh kamo te srece da mi je neko na vreme rekao linkersku /verbose opciju i name mangling pakao


E sad i na ovom nivou postoji neka gradacija akumuliranog znanja sve u zavisnosti od projekta i externih modula i biblioteka kao i njihove kompleksnosti .
Stvarno ne znam sa kakvim si se projektima susretao (samo pretpostavljam za jednog DSP inzenjera) ali s obzirom da si profi vec jako dugo u najjacoj IT zemlji na svetu verujem da bi prevazislo znanja i iskustva mnogih programera domace radinosti .


Citat:

@Deerbeer
Iz nekog razloga ne volim Javu i C++, ne znam zasto. Sta je u stvari QT ? Pravio sam neke programcice za Android u Javi, jel ima neke slicnosti ?
POZDRAV !!!


Hehe .. pozdravio te @Leka zadrti c-ovac .

QT je mulitiplatformski frejmvork u c++ za pravljenje desktop i mob. aplikacija .
Pises jedan kod kompajliras ga i furas na Win-u Linuxu Mac-u ...
To je ukratko ...



[Ovu poruku je menjao deerbeer dana 02.04.2012. u 21:07 GMT+1]
[ rikelme @ 02.04.2012. 20:03 ] @
Citat:
texxxi: @Milanche && Nedeljko
Hvala vam, mislim da treba da organizujem programe bolje, kopirao sam neku knjigu za GCC

http://www.amazon.com/An-Intro...&qid=1333389625&sr=8-2

mislim da je to dovoljno za pocetak. Sto se tice procesa i niti trenutno slusam Uvod u operativne sistem i ucim iz ove knjige

http://www.mikroknjiga.rs/store/prikaz.php?ref=86-7555-274-2

i trenutno prolazim procese i niti , pa me interesuje sta mislite za knjigu, i da li imate neku knjigu sa konkretnim primerima.

@Djoka_I
Ma pisao sam i ja X-O, razmisljam sada da napisem svoje programcice za rad sa fajlovima kao sto su cp, ls, mv, posto koriste linux pozive i tako to...

@Deerbeer
Iz nekog razloga ne volim Javu i C++, ne znam zasto. Sta je u stvari QT ? Pravio sam neke programcice za Android u Javi, jel ima neke slicnosti ?

POZDRAV !!!

Ja bih ti preporučio ove knjige:
Modern Operating Systems
Advanced Programming in the UNIX Environment (nemoj da te Advanced u naslovu uplaši)
The Linux Programming Interface: A Linux and UNIX System Programming Handbook

[ texxxi @ 02.04.2012. 20:41 ] @
Upravo sam ih skinuo i mogu da ti kazem da -- The Linux Programming Interface i Advanced Programming in the UNIX Environment -- mi izgledaju kao odlicne knjige, samo da prodjem manje od 2000 din za stampanje, a ovo od Tanenbauma je skoro isto kao knjiga od nasih autora .

@Milanche

Imam ovu kjigu iz C-a
http://www.amazon.com/Advanced...en-Books-Library/dp/067248417X
Download: http://uploading.com/files/ZIZ...echniques_pdf_06724...rar.html
U drugom poglavlju ima opis kako se C program izvrsava u memoriji, mislim da je 50ta strana, ako te ne mrzi da pogledas jer me interesuje da li se nesto nije promenilo posto je knjiga malo starija i da li vredi, meni je dosta pomogla da razumem neke stvari.

[Ovu poruku je menjao texxxi dana 02.04.2012. u 21:58 GMT+1]
[ milanche @ 02.04.2012. 21:22 ] @
@deerbeer,

sa ili bez pohvala (na kojima zahvaljujem), mislim da stvari stoje prilicno onako kako sam ih opisao - Linux nateruje znatno vise na
bavljenje tim vrstama problema (compiler, linker, make, config...) do granice da nekad znatno potiskuje osnovnu delatnost (DSP ili
nesto drugo) na margine.

@texxi

Nemam vremena da sada pogledam, mada mislim da se po pitanju izvrsavanja C programa nista bitno nije izmenilo u poslednjih 20 godina.
[ deerbeer @ 02.04.2012. 21:49 ] @
Citat:

sa ili bez pohvala (na kojima zahvaljujem), mislim da stvari stoje prilicno onako kako sam ih opisao - Linux nateruje znatno vise na
bavljenje tim vrstama problema (compiler, linker, make, config...) do granice da nekad znatno potiskuje osnovnu delatnost (DSP ili
nesto drugo) na margine.

Sad te bolje razumem tj poentu onoga sto si hteo da kazes .
Zalosno je sto je tako . Inzenjer treba vise da se posveti svojoj osnovnoj delatnosti i cilju a ne da robuje svojim alatima
Na embeded platformama je sigurno ekosistem drugaciji pa nema toliko izbora a ogranicenja je pregrst .

Ja stvari posmatram aplikativno sto je u 90% u softverskoj industriji slucaj .
Dobijes zadatak sa XYZ zahtevom i implementiras X , Y implementiraju kolege a Z je u formi externe open-source biblioteke koju u najgorem slucaju ulinkujes za 2 sata.
Ako je vise od 2 sata jednostavno je zaobilazis u sirokom luku i nalazis drugu ili je u mission-critical momentima implementiras ako nema druge .
Uopsteno princip je "building lego blocks" koliko god to pa cak i za c/c++ smesno zvuci u sustini je tako .





[ milanche @ 02.04.2012. 22:00 ] @
[offtopic]

Citat:
Zalosno je sto je tako. Inzenjer treba vise da se posveti svojoj osnovnoj delatnosti i cilju a ne da robuje svojim alatima


Ovo je tema duboka koliko Pacifik na najdubljem mestu, a stvari su se u poslednjih 10-tak
godina toliko tektonski ispomerale iz inzenjeringa u pravcu computer science da je to za
neverovati. Iako sam odabrao takvu stazu kroz zivot i tehnologiju koja iskljucuje bilo kakve
zalbe i podrazumeva da cu da cutke svaki put 'zagrlim svog monster-a, da mu u kratkom
roku zavrnem siju i naucim ga da prica srpski', stvari su nekada dovedene do nevidjenih i
tuznih paradoksa.

Mislim da je bolje je da ne pocinjem sa detaljima, da ne bih provristao a taman sam se privikao.
[/offtopic]
[ Odin D. @ 02.04.2012. 22:32 ] @
Mozda bude nekom od koristi:

The education of embedded systems software engineers: failures and fixes

http://www.eetimes.com/design/...s-and-fixes?Ecosystem=embedded

Citat:
texxxi: Iz nekog razloga ne volim Javu i C++, ne znam zasto.

Ako ne znas zasto - onda ne radi takve stvari.
[ texxxi @ 03.04.2012. 12:46 ] @
@Odin D.

Mozda malo grubo deluje sto sam napisao da ne volim Javu i C++, ali ne znaci da ih ne koristim. Vise sam mislio na to da mi nekako privlacna ""prostota"" C jezika. Java i C++ zahtevaju da poznajes "milione" biblioteka koje koristis i spajas i bukvalno ne mogu da se koriste bez nekog ""romana"" pored tebe i zahtevaju potpuno drugaciji pristup programiranju i ako su sintakse skoro iste....

Citat:
milanche:

Ovo je tema duboka koliko Pacifik na najdubljem mestu, a stvari su se u poslednjih 10-tak
godina toliko tektonski ispomerale iz inzenjeringa u pravcu computer science da je to za
neverovati. Iako sam odabrao takvu stazu kroz zivot i tehnologiju koja iskljucuje bilo kakve
zalbe i podrazumeva da cu da cutke svaki put 'zagrlim svog monster-a, da mu u kratkom
roku zavrnem siju i naucim ga da prica srpski', stvari su nekada dovedene do nevidjenih i
tuznih paradoksa.

Mislim da je bolje je da ne pocinjem sa detaljima, da ne bih provristao a taman sam se privikao.

Ne plasi me i onako ne znam sta cu trenutno pored ovoliko stvari, taman mislim da znam nesto, a onda vidim koliko u stvari ja ne znam nista.......... Nekad mislim da je bolje da dizem dzakove negde nego da ceo zivot ucim i nikad ne znam svoj poso....
[ djoka_l @ 03.04.2012. 12:58 ] @
Nisi u pravu što se tiče Jave i C++
Za svaki programski jezik učenje jezika je za profesionalca posao od maksimalno 5-6 dana. Onda idu meseci ronjenja kroz biblioteke.

Onako kako si koristio C do sada, nisi još ni zagrebao površinu. Nisi radio GUI, nisi koristio biblioteke osim standardnih itd. Kada prvi put budeš radio program da treba da napraviš, recimo hash tabelu, videćeš prednost, recimo C++.

Ono što je problem kod objektno orijentisanih jezika, kako sam video lepo napisano na jednom mestu, je to što navodi neiskusnog programera da ode prviše u širinu.
Čovek je rekao, ako treba da isprogramiraš bananu, u C-u ćeš isprogramirati bananu. U C++ ćeš napraviti bananu, majmuna koji drži bananu u ruci i celu džunglu oko majmuna...
[ Nedeljko @ 03.04.2012. 15:27 ] @
Veliki program je mnooogo lakše raditi objektno orjentisano, nego strukturno. Sa malim programima je obrnuto.
[ Odin D. @ 03.04.2012. 16:01 ] @
Kod programiranja se treba koncentrisati na stvari koje vaze uvijek i one koje ce vaziti u sledecih 10-20 godina.
Ucenje nekih fancy biblioteka koje ce biti aktuelne dok se ne pojavi sledeca fancy biblioteka je gubljenje vremena.
Mnogo vaznije od toga je da programer izucava i neku oblast u kojoj ce primjenjivati to svoje programiranje, pa bilo to bankarstvo, masinstvo, robotika ili nesto deseto.
Ako ne zna nista sem programiranja u uskom znacenju te rijeci - pretvara se u obicnog 'prevodioca' kome neko stalno mora diktirati od slova do slova na "ljudskom" jeziku, a on to onda kvazi-prevodi na neki programski jezik.
[ milanche @ 03.04.2012. 16:22 ] @
Citat:
Java i C++ zahtevaju da poznajes "milione" biblioteka koje koristis i spajas i bukvalno ne mogu da se koriste bez nekog ""romana"" pored tebe


Koriscenje postojeceg koda neces izbeci ni u C-u, cim dodjes do tacke da pocnes da pravis nesto zahtevnije,
osim ako se ne bavis iz cistog hobizma i uzivanja pa ti vreme nije bitno. Za sve bitno i krupno postoje gotove
biblioteke, pogotovo na Linux-u, i jedan dobar deo posla ce biti da znas gde sta ima, kako radi, i/ili da kao dobar
poznavalac C-a brzo provalis kako i sta tacno radi neciji tudji kod...tako da to nemoj uopste da uzimas kao faktor.

Sto se tice 'volem/ne volem' aspekta price - voli se sve ono sto se dobro razume. Sto bi davnih dana rekao
jedan moj kolega - 'sve je to jazz' - cuti i cepaj sve po redu. Sve na tanjiru je dobro, i krompir, i meso, i paradajz,
i ako ostavljas bilo sta po strani, nisi sebi priustio dovoljno.

Citat:
.. i zahtevaju potpuno drugaciji pristup programiranju i ako su sintakse skoro iste....


Gotovo sve razlike su iznikle upravo zato sto su u C-u (i slicnim jezicima) postojali nedostaci i zelje da se nesto cool
implementira. Gotovo da ne postoji nijedan princip iz objektno orjentisanog programiranja koji nije prvo zatrebao nekome u
okviru proceduralnih jezika, a zatim se prvo u tim jezicima implementirao...i onda je neko pozeleo da predvidiv posao
oko implementacije formalizuje i teret realizacije prebaci na kompajler.

Ako napravis nesto zanimljivo u C-u, pozeleces da ga napravis u modularnoj formi, da mozes da ga instanciras prema
potrebi u N komada. Zatim, pozeleces da jasno grupises funkcije i podatke po smislu (tj. sta treba ovom modulu, a sta
onom). Zatim, posle par godina doci ce zelja da napravis takav isti modul ali da mu das malo drugaciji felsh, ali ako bi
moglo da ne prepisujes gomile istog koda.....sve su to legitimne potrebe koje su resavane i u proceduralnim jezicima,
dok jednog dana resavanje tih problema nije formalizovano, jasno formulisano, i predato kompajlerima da ih za tebe
resavaju, i upakovano u okvire novog objektno orjentisanog jezika.

Dakle - sve je to manje-vise ista stvar, razlike su u sustini neznatne, a prelazi iz jednog u drugo blagi i logicni.

Citat:
Nekad mislim da je bolje da dizem dzakove negde nego da ceo zivot ucim i nikad ne znam svoj poso...


U ovoj delatnosti ces apsolutno ceo zivot da ucis, nemoj ni da se nadas da ces to izbeci. Doduse, moze da se desi
da se negde usancis i da godinama radis isto ili slicno.
[ milanche @ 03.04.2012. 16:26 ] @
Citat:
Ucenje nekih fancy biblioteka koje ce biti aktuelne dok se ne pojavi sledeca fancy biblioteka je gubljenje vremena


Niko nece da te ceka da sam implementiras i 100% testiras nesto za sta vec postoji gotova biblioteka
upotrebljena uspesno vec milion puta i testirana u milion scenarija.

U cilju ucenja nije lose da tako nesto implementiras sam, ali ti za to uglavnom ostavljaju tvoje licno dragoceno
slobodno vreme, kojeg najcesce imas u fazi ucenja, a retko kad posle.
[ Odin D. @ 03.04.2012. 17:28 ] @
Citat:
milanche: Niko nece da te ceka da sam implementiras i 100% testiras nesto za sta vec postoji gotova biblioteka
upotrebljena uspesno vec milion puta i testirana u milion scenarija.

Nisam mislio da pises sam ono sto vec postoji u bilo kakvoj nekoj biblioteci. Naravno da ces upotrebiti biblioteku. One i sluze tome da ne bi svi pisali sve iz pocetka svaki put.
Nego pocetnici imaju tendenciju da se uhvate nekog specificnog "rjesenja za nesto" neke specificne firme i onda studiraju iznutrice toga, kao da je to sustina samog programiranja, umjesto da to shvate kao crnu kutiju kojoj ne treba otvarati poklopac, a otvaranje poklopca i ceprkanje ispod haube ostaviti za nesto pametnije, posto prosjecan covjek obicno nema vremena da u sitna crevca studira sve sto mora da upotrebljava.

Kazem, desava se pocetnicima, vjerovatno iz razloga sto jos nemaju siru sliku svog tog programerskog zivota, pa im je tesko da razluce sta je manje, a sta vise vazno...
[ texxxi @ 04.04.2012. 14:17 ] @
@ SVI

Hvala svima za savete, malo me zbunilo koliko pravca u programiranju ima, ja cu polako da ucim ono sto me interesuje , znaci o linuxu i alatima uz njega, i OO jezike, a dalje u buducnosti sta mi posao odredi..

Posto ovo pocinje da ide malo offtopic, imam samo jos jedno pitanje, pa da zavrsim. Mislim da vec treba da ""cackam"" GUI programiranje, i naso sam dve biblioteke jedna mi je vec predlozena -Qt a druga , koja mi izgleda interesantno GTK+, pa me zanima od koje bi imao vise koristi, koja od njih bi se "verovatnije" trazila za nesto komercijalno, i da li imate iskustva u radu sa njima?

POZDRAV I HVALA NA SAVETIMA !!!



[Ovu poruku je menjao texxxi dana 04.04.2012. u 15:45 GMT+1]
[ Nedeljko @ 04.04.2012. 17:03 ] @
Cepaj Qt i zaboravi na sve ostalo. Sa Qt-om već ima brdo poslova i za Windows i za Windows/Linux/MacOS X multiplatformski.
[ the_tosic @ 29.04.2012. 17:45 ] @
Nisam hteo da otvaram novu temu, a mislim da pitanje moze i ovde da legne.

Solidno poznajem C/C++ (pointeri, funkcije, kako i u sta se kod prevodi itd... ),
solidno poznajem multithreading u javi (thread, lock, semaphore, monitor...), znam i kako niti, lockovi rade ispod haube.

Cackao sam malo niti u C++11 medjutim slabo se snalazim sa dokumentacijom (u javi je lako sa javadoc).

Potrebna mi je knjiga koja ce dobro* obraditi:
- smart ptr (na faxu smo radili c-ovsko cpp programiranje, hocu da predjem na visi nivo)
- ostatak stl-a (za sada baratam kolekcijama)
- niti, lockove itd (tesko se snalazim citajuci iz standarda samo)
- ostatak novog standarda i sve bitno sto nisam naveo

*pod dobrom knjigom smatram da je razumljivo pisana sa primerima. I da recimo za svaki header ima izvod f-ja i klasa sa pojasnjenjem.

Da li uopste postoji dovoljno dobra knjiga za c++11 ili je bolje se bacim na ( http://en.highscore.de/cpp/boost/index.html ) dok ne izadje nesto pametnije
[ texxxi @ 30.04.2012. 09:41 ] @
Mozda ova :

http://www.amazon.com/The-Stan...ce/dp/0321623215/ref=pd_cp_b_2

Da li znas mozda kako da se naruci knjiga sa Amazona u Srbiji, i koliko je postarina i tako to posto i mene interesuje nesto slicno pa bih i ja narucio ovu knjigu ...
[ the_tosic @ 30.04.2012. 18:10 ] @
E bas dodjoh da pitam za tu knjigu
Deluje mi da je to to sto trazim, bas po sadrzaju, a i realno ima 120 pozitivnih komentara.

Ja sam narucivao sa amazona i bookdepository-a, al nikad skuplje od 30-40$
Preko amazona placas cenu knjige + 4usd postarina po knjizi + 4$ za paket. Znaci ako samo ovu knjigu uzimas onda je to cena + 8$ (~65$ ukupno). Na bookdepository je postarina besplatna (€58.16).
Jedino me brine sto bi ovo sa postarinom kostalo preko 50e pa da ne naplate carinu...
[ Eurora3D Team @ 18.08.2012. 22:15 ] @
Slozio bi se sa @deerbeerom i @Nedeljkom za Qt. To ti je u svakom smislu dobar cilj ...
I da se i ja malo izfilozofiram :)
Treba u principu znati sto vise o svemu. Ne moras u detalje ali opste znanje
Na primer, kad si se opredelio za operativni sistem (mozda i promenis) dobro je znati na kojim prinipima on radi, razlike i slicnosti sa ostalima
Znati sta su programi i drugi izvrsivi fajlovi na njemu. Kako se otprilike izvrsava taj program kako se ucitavaju ostali moduli. Sta su privilegovane vrste procesa itd
Programski alati, njihove opcije i mogucnosti ...
Ovo se sve uci usput i kad budes u poziciji da te zanima i da mozes da shvatis ...
Sto vise znas to ces da imas bolje ideje kako da nesto uradis ...