[ Chojba @ 18.06.2012. 14:53 ] @
Pozdrav svima! Voleo bih da od iskusnijih ljudi sa ovog foruma dobijem smernice o nastavku ucenja programiranja. Znam da ima dosta ovakvih tema na forumu, ali s obzirom da ja otprilike znam sta zelim nadam se da ce se tema koliko toliko razlikovati od onih vec postovanih.

Prvo ukratko o meni i mom "znanju" iz programiranja: Imam 21 godinu. Studiram informatiku na PMFu u Nisu. U srednjoj skoli sam ucio Pascal, Delphi i Visual Basic nakon cega sam zavoleo VB.net i dosta vremena sam proveo na internetu uceci isti dok nisam dosao na fakultet i shvatio da mi je VB.net samo ugradio neke lose navike, i da sam realno pravi pocetnik u programiranju i samoj informatici. Inace, sa programiranjem sam se upoznao jako mlad(sa nekih 12 godina, QBasic) i iako sam do pre godinu dana bio jako nedisciplinovan pri ucenju istog, mislim da sam stekao da kazem "osecaj" za programiranje, tako da dosta lako usvajam nove stvari i cini mi se da sam programiranje izabrao za profesiju :)

Sto se mog trenutnog znanja tice, trenutno stojim ovako: Polozio sam "Uvod u Programiranje"(C), "Web Programiranje"(HTML, CSS, JavaScript) i Objektno-Orjentisano Programiranje(C++ i Java). Iz svakog od ovih jezika osim C-a sam naucio dosta vise od onoga sto smo ucili na predavanjima i vezbama, skidao sam razne knjige sa neta na engleskom jeziku i ucio iz njih.

Za razliku od nekih mojih kolega, svestan sam da je moje trenutno znanje jako malo, i da nas na fakultetu uce samo osnove(makar na osnovnim studijama), dok bi mi trebali da se samostalno "dopunjujemo" sa svih strana ako sutra zelimo da imamo dobar posao.

Moje sposobnosti kada je u pitanju dizajn su ravne nuli, pa sto se tice Weba zelim da naucim samo osnove koje ce mi olaksati da odradim npr scrapovanje podataka sa nekog web sourca ili bilo koji drugi kontakt moje desktop/sistemske aplikacije sa internetom. Zelim da se bavim "ozbiljnim" programiranjem, gde je bitan svaki bajt memorije, trazi se brzina i efikasno resavanje problema...

Voleo bih da budem programer u C++-u i Javi, i najverovatnije u C# nakon sto savladam ova dva, da se bavim velikim projektima i radim na ozbiljnim aplikacijama, da mi znanje omoguci da zapalim preko grane ako to zelim, jednostavno da budem profesionalac u svom poslu.

Narucio sam par knjiga na engleskom koje se bavi uvodom u C++("C++ Without Fear A Beginner's Guide That Makes You Feel Smart", "C++ By Dissection" i "C++ for Dummies") i sa vecinom stvari u njima sam vec upoznat, ali ce mi svakako uvecati i ojacati osnovu.

Pitanje glasi: Sta nakon ovih knjiga ? :) S obzirom na trenutno znanje iz informatike, ja samo jos znam da moram da naucim baze podataka(tu imam gotovo 0 znanja), pa me interesuju vasi saveti o literaturi, stvarima na koje bi trebao da obratim paznju, oblastima za koje jos nisam cuo a morao bih...

Moj neki plan bi bio da do kraja osnovnih studija(jos 2 godine) naucim koliko god dobro mogu C++, Javu i C#, zatim da za vreme master studija ovo znanje iskoristim da steknem neku vrstu "prakse" na freelancing sajtovima i da nakon zavrsenog mastera mogu da smatram da imam znanje koje bi firme smatrale zavidnim za programera koji nema radnog iskustva.

Unapred zahvalan!

*Jako mi je zao sto je post ispao ovoliko dug, ali hteo sam da steknete sto bolji uvid kako bi ja dobio sto bolji savet :)
[ Boris_ZR @ 20.06.2012. 20:23 ] @
I ja sam veliki amater kao i ti, ali šta mogu da primetim:

- Izbaci termin informatika, to je tako old school :) Koristi soft. development ili sl. Uostalom, informatika je nauka o informacijama, šire od programiranja.
- Specijalizuj se za jedan jezik - java ili C++, šta god. Ovde može svako da kaže šta hoće, ali početnik treba da ima "svoj" jezik.
- Uči baze.
- Kreni da radiš nešto konkretno, smisli sam sebi neke projekte, tako se najbolje uči, po mom mišljenju. Desktop, web, android, šta god, ili baš ovim redom. :)
- Nemoj da želiš više ništa, već postani to.
[ kkedacic @ 22.06.2012. 13:39 ] @
Ja sam jos veci amater od vas jer mi je programiranje hobi, a fax nema bas nikakve veze s time.

Mnogo puta sam pokusao uci u programiranje, prije svega jer su me kompjuteri oduvjek privlacili, isprobavao sam sve i svasta (C++, java, masm, php etc.), ali nije islo. Dok se nisu spojili Linux, assembler i C. I to bas tim redosljedom i onda se desilo to da sam stvari poceo kontati na nacin na koji sam zelio.

Citat:
Chojba:Moje sposobnosti kada je u pitanju dizajn su ravne nuli, pa sto se tice Weba zelim da naucim samo osnove koje ce mi olaksati da odradim npr scrapovanje podataka sa nekog web sourca ili bilo koji drugi kontakt moje desktop/sistemske aplikacije sa internetom. Zelim da se bavim "ozbiljnim" programiranjem, gde je bitan svaki bajt memorije, trazi se brzina i efikasno resavanje problema...

Ako ti dizajn neide, moje je misljenje da se s njim nebi trebao niti bahcati, za osobne stvari, mini projekte i opcenito ne naprednu upotrebu potrebni HTML i CSS se nauci za par sati. Ovaj zadnji dio quotea i mene pokrece :) Meni su osobno svi web skriptni jezici odbojni, ali sam nedavno skontao CGI/C programiranje koje po onome sto sam procitao zamjenjuje sve web jezike i jos je brze, nisam jos nista tako pokusao ali C znam, PHP mi je odvratan pa cu dati i CGI/C sansu samo da uhvatim vremena.

Sto se tice ozbiljnih i efikasnih jezika prije mjesec dana sam naisao na jezik Adu, citao sam malo o jeziku i jako mi se dopao. Jezik se inace koristi za vrlo specificne stvari tipa kontrola leta, software za vojne gadgete (avione...) itd., inace ovako pola ljudi nije cula za njega.

Inace mi objektno programiranje nije bas naj ljepse i mozda mu se okrenem kad jos vise naucim proceduralno/imperativno, mislim da nije dobro za pocetnike i da je za stvarno velike projekte, nemam tu puno iskustva i to je samo moje misljenje.

Meni je puno pomogla metoda da si zadam neki zadatak i da ga rijesim, nekad se rijesi nekad ne, ali svaki se puta mnogo nauci. Osobno, mislim cak da sam vise naucio na zadacima od kojih sam odsutao, nego koje sam rijesio. Naj bolja je metoda da se stalno nesto radi.

Imam mnogo prijatelja koji studiraju racunarstvo i radili su neke projekte za novce, a to je najbolji nacin ucenja. Mozes pitati i profesore da ti daju neki zadatak. Ja bih pitao prijatelje da im se pridruzim, ali su radili samo projekte u javi i php-u, a to mi se nimalo ne dopada.

Hebi ga, meni to nije studij i profesija, ja si mogu dopustiti da mjesecima ucim asm, polu mrtve jezike i da radim u C-u nesto tjedan dana sto se inace uradi u 2, ali najbolji nacin ucenja je najtezi, nije to samo u programimranju negu u zivotu, najteze stvari su na kraju najbolje. Popreko prece, naokolo brze :D

Najbolje smjernice bi mogao dati netko tko od toga zaradjuje i upaznat je s trendovima. Mene recimo zanima dali se jos uce i koriste stari jezici kao sto su fortran, cobol, pomenuta ada? Ili funkcijski jezici poput lispa, haskella itd.?
[ deerbeer @ 22.06.2012. 14:16 ] @
Citat:

Najbolje smjernice bi mogao dati netko tko od toga zaradjuje i upaznat je s trendovima. Mene recimo zanima dali se jos uce i koriste stari jezici kao sto su fortran, cobol, pomenuta ada? Ili funkcijski jezici poput lispa, haskella itd.?

Ako koriscenje smatras aktivno pisanje koda odgovor je NE ili u najboljem slucaju vrlo vrlo malo,
a ako mislis na upotrebu / koriscenje koda koji je napisan davno onda DA .

Kako sad stoje stvari najbolje je fokusirati na neki od opste prihvacenih jezika c, c++, java ili c# ,
obavezno neka od web platformi (asp.net, php itd..) , a sve zajedno sa nekom od baza (mssql , mysql ili oracle) .




Sto se tice framework-a za razvoj odabrati onaj koji se :
1.) Konstantno razvija
2.) Ima krstenu dokumentaciju
3.) Rasprostranjenu komunu na webu (forumu i sajtovi usko specijalizovani za odredjeni framework i troubleshooting)
4.) Rasprostranjenost na trzistu poslodavaca
[ nkrgovic @ 22.06.2012. 16:01 ] @
Citat:
kkedacic:
Ako ti dizajn neide, moje je misljenje da se s njim nebi trebao niti bahcati, za osobne stvari, mini projekte i opcenito ne naprednu upotrebu potrebni HTML i CSS se nauci za par sati. Ovaj zadnji dio quotea i mene pokrece :) Meni su osobno svi web skriptni jezici odbojni, ali sam nedavno skontao CGI/C programiranje koje po onome sto sam procitao zamjenjuje sve web jezike i jos je brze, nisam jos nista tako pokusao ali C znam, PHP mi je odvratan pa cu dati i CGI/C sansu samo da uhvatim vremena.

Sasvim sigurno ih ne zamenjuje, stavise, uz potpuni nedostatak frameworka za CGI u C-u, mislim da ga zamenjuje na isti nacin na koji pucanje sebi u nogu zamenjuje pesacenje :). Dodatno, brzina je em potpuno nebitna, bar na tom nivou, em je cena takvog razvoja tolika da nema brzine koja to moze da offsetuje, em nisam ni siguran da je brze.

Da se razumemo, ima super primena za C++ programiranje i to sto ti hoces da radis je sjajan nacin da nesto naucis, ali, veruj mi, bolje da ucis da pravis ceo web server... onda ces imati i nesto sto ima primenu.
[ Chojba @ 22.06.2012. 20:39 ] @
@Boris_ZR - vidis sto se mene tice, ja bas mislim da su ozbiljniji programeri u velikoj vecini informaticari(tu naravno ne potenciram da moras da imas zavrsen fax), ali za ozbiljno programiranje moras da se razumes u vecinu stvari koje nisu cisto kodiranje - algoritmi, poznavanje arhitekture racunara, operativnih sistema, baza podataka....

1. Znaci generalno jezici koji bi "zakrpili" jednog programera bi mogli da budu:

C++ i Java
Asp.net i PHP
i recimo MySQL ?

2. Da li je "bolje" nauciti C++, Javu i C# solidno, ili samo jedan od tih jezika "perfektno" ?

3. Posto vidim da je C# trenutno jako popularan, a i profesor OOP-a nam je napomenuo da cemo u buducnosti lako moci da predjemo sa C++-a i Jave na C#, da li programer moze da se osloni samo na C#(plus web, plus baze) ako ga dovoljno dobro nauci, odnosno zanima me koliko je mocan ?

4. Kako generalno izgleda intervju za posao jednog junior programera ? Na koji nacin se proverava njegovo znanje ? Da mu se neki mini projekat koji bi trebalo da demonstrira njegovo znanje ? Ako je tako, jel moze neki primer ?(ne mora preslikan, bitno da se iz njega vidi sta mora da se zna :) ).
[ Nedeljko @ 22.06.2012. 21:52 ] @
Najbolje je znati jedan od jezika C++, Java i C# savršeno, a preostala dva solidno.
[ Stijak @ 02.07.2012. 09:33 ] @
Citat:
Chojba:
2. Da li je "bolje" nauciti C++, Javu i C# solidno, ili samo jedan od tih jezika "perfektno" ?

Pa dok ne radiš - teško je bilo šta naučiti perfektno. Znam na ličnom primjeru - naučiš osnove - uradiš razne vežbice i pitaš se šta dalje. Posebno jer poslovne aplikacije često koriste neke frameworke koji se izbjegavaju u vježbicama po netu - a da ih samo teorijski učiš - teško je. Put koji predlažu neki je učestvovanje u open-source projektima, ali svi ovi poznati projekti su imali prekompleksan kod da bi se ja tu mogao snaći i vrijeme sam gubio u traženju po kodu umjesto nekog konkretnog učenja kodiranja. Uostalom - već imaš dovoljno znanje da tražiš posao junior developera pa možeš nastaviti usavršavanje učeći.

Citat:
Chojba:
3. Posto vidim da je C# trenutno jako popularan, a i profesor OOP-a nam je napomenuo da cemo u buducnosti lako moci da predjemo sa C++-a i Jave na C#, da li programer moze da se osloni samo na C#(plus web, plus baze) ako ga dovoljno dobro nauci, odnosno zanima me koliko je mocan ?

C# je u Srbiji nesrazmjerno popularan valjda zbog uticaja Microsofta - u svijetu je to daleko manje i mi se krećemo u tom pravcu... Problem je što zbog cijene licenci svi prelaze na linux - posebno na serverima, a tu .net slabo radi (postoji mono koji ima dosta mana). Ipak - vjerujem da će kod nas to još neko vrijeme biti fina lova. Npr. većina softvera po bankama i sličnim firmama je upravo u .netu.

Citat:
Chojba4. Kako generalno izgleda intervju za posao jednog junior programera ? Na koji nacin se proverava njegovo znanje ? Da mu se neki mini projekat koji bi trebalo da demonstrira njegovo znanje ? Ako je tako, jel moze neki primer ?(ne mora preslikan, bitno da se iz njega vidi sta mora da se zna :) ).

Uglavnom nemaju vremena niti je realno da se od tebe očekuje da im neki projekat radiš - ako se na konkurse prijavljuješ 5 puta sedmično. Ali trebaš imati nešto iskodirano - neke jednostavne aplikacije - ali koje opet pokrivaju dosta toga - npr. baze, neki GUI,, neka obrada podataka, možda i neku komunikaciju sa netom. Imaš dosta vježbica na netu sa raznih fakulteta gdje je cilj napraviti neku takvu školsku aplikaciju... To možeš okačiti negdje na netu zajedno sa svojim CVjem. Na intervju će te pitati neke stvari oko APIja, kako bi implementirao ovo ili ono i sl. i tu možeš da se pozivaš na svoje aplikacije i kažeš da si to već tu npr. implementirao.
[ tosa @ 06.07.2012. 10:07 ] @
Citat:
Nedeljko: Najbolje je znati jedan od jezika C++, Java i C# savršeno, a preostala dva solidno.

Ko zna Javu i C# 'savrseno' a C++ solidno, taj je mediokritet od programera.
[ Mihajlo Cvetanović @ 06.07.2012. 11:36 ] @
Prejaka reč, druže. Tako su ranije pričali za FORTRAN, a pre toga za asembler. Vreme neumitno gazi sva naša verovanja, sve ono što mislimo da znamo, i zato ne treba biti tako fundamentalan.
[ Stijak @ 10.07.2012. 21:47 ] @
Citat:
Mihajlo Cvetanović:
Prejaka reč, druže. Tako su ranije pričali za FORTRAN, a pre toga za asembler. Vreme neumitno gazi sva naša verovanja, sve ono što mislimo da znamo, i zato ne treba biti tako fundamentalan.

Baš to! A pre Assemblera - to se pričalo za machine code. http://www.pbm.com/~lindahl/mel.html

:) Nekako vidim i sebe kako kroz 15ak godina govorim Java je pravi jezik - a ne neki NoviJezik& koji intelifentnije nagađa šta hoćemo da uradimo i automatski paralelizuje ono što se može paralelizovati ;)
[ tosa @ 11.07.2012. 01:17 ] @
Java je teško đubre, bez obzira na kontekst vremena.
[ Nedeljko @ 11.07.2012. 09:30 ] @
Lako je zalepiti etiketu bez argumenata.
[ tosa @ 11.07.2012. 09:42 ] @
Citat:
Nedeljko:
Lako je zalepiti etiketu bez argumenata.

Nemam nameru da se ubedjujem, ko voli da pise kilometre boilerplate koda da bi na kraju dosao i do same implementacije svog problema - taj nek uziva u Javi. Ima dosta firmi koje placaju za to besmisleno trosenje vremena...
[ Nedeljko @ 11.07.2012. 11:46 ] @
To što si izvalio je obična glupost. Druga je stvar da li neko zna ili ne zna da programira. To nema veze sa javom.
[ tosa @ 12.07.2012. 01:58 ] @
Citat:
Nedeljko:
To što si izvalio je obična glupost. Druga je stvar da li neko zna ili ne zna da programira. To nema veze sa javom.

Neka bude, sto vas je vise Java programera to bolje za mene :)