Citat:
Dragan: Zanimljiv primer (pretpostavljam da si mislio na ArrayList vs LinkedList, dve implementacije List interface-a u Javi). Ja to cesto pitam juniore na intervju-u, i obicno ne znaju, i onda ima malo pomognem i sete se i struktura podataka i sta je u kom slucaju bolje. Ono sto mi je neverovatno da retko ko poveze tu naucenu teoriju sa ovako nekim konkretnim primerom, btw Java collections API je pun primera primene raznoraznih algoritama i design patterna.
Mislio sam na List<T> i LinkedList u .net-u, ali isto vazi za ArrayList umesto List<T> posto je implementacija sustinski ista, samo je jedna bazirana na generics a druga prihvata tip Object pa samim tim sve.
Naravno, bolje je ako znas kako se implementiraju te (i druge) strukture podataka, ali je u vecini poslova dovoljno da znas kako i kada koju da upotrebis, bez da znas kako radi. Ja znam implementacije sticajem okolnosti i zbog licnog interesovanja. Fakultet nisam zavrsio a za posao mi nije trebalo.
Citat:
Dragan: Gro ljudi koji radi kod nas (cca 250) su fakultetski obrazovani, mislim preko 90%, ogromna vecina ETF/PMF. Kao juniori najbolje prolaze ljudi sa relevantnih fakulteta (pre evga FTN/NS), najbze napreduju kasnije - naravno uvek ima izuzetaka, ovo je na bazi mog iskustva (ne znam ni sam sigurno, bar 200-300 intervjua u poslednjih 5-6 godina, preko 70 ljudi koji su kod mene prosli tehnicki intervju i sa dosta njih kasnije sam i radio, obucavao). Cinjenica jeste da je potraznja velika a samim tim i pritisak da se vise zaposljava, mogucnosti za instant skolovanje jos vece - videcemo kako ce to ici. Ja licno verujem u formalno obrazovanje u ovoj sferi, mada znam nekoliko sjajnih strucnjaka koji nikada nisu zavrsili fakultet (mahom poceli) ali isto znam da su isti sedeli dan i noc da bi usvojili vestine koje imaju. No, ovde pricamo o velikim brojevima a ne o izuzecima, mada je pitanje koliko je moje isustvo relevantno.
Pitanje je da li bolje napreduje onaj ko je upravo zavrsio fakultet ili neko ko nije a stekao je isto toliko godina iskustva. Jedino sto to pitanje zavisi od osobe do osobe a ne mozes na istoj osobi isprobati obe varijante :)
U svakm slucaju, ne treba generalizovati. I medju fakultetlijama i medju samoukima ima i dobrih i losih programera. A desavaju se i stvari kao sto je to da neko zavrsi fakultet, ima neko juniorsko znanje programiranja, sql-a i sl. ali ne zna kako se pise port na kraju http adrese u browser-u, ne zna sta je System Idle process (i nije mu ocigledno) i sl. Uostalom, sa toliko intervjuisanih ljudi si se verovatno i sam suretao sa takvima :)
Opet, sto se tice samoukih, najcesce lose situacije su "programiranje se isplati, sad cu ja to da naucim pa da radim". Nekad to da dobre rezultate, cesto ne. Kod samoukih dobre rezultate uglavnom daje ucenje zbog interesovanja a ne zbog zaposlenja.
Citat:
Dragan: Ja sam poceo karijeru sa C/C++, pre nekih 7-8 godina sam se prebacio na Javu. Ono sto se mora odati credit Sun-u ranije a Oraclu sada je da se dosta trude da zadrze backward compatibility, sto na nivou jezika, sto na nivou same platforme (JVMa). Nemojte smetnuti sa uma da Java sledece godine puni 20 godina, pre manje od mesec dana Java 8 je postao GA, a on nam donosi najvece promene u samom jeziku od 5-ice. U konktekstu vremena kada je nastao je uspeo da se nametne kao relativno cist, moderan OO jezik baziran na C-u, mislim da je napravljen solidan kompromis i da tome duguje popularnost. Cenim da ce biti pri vrhu i u narednim godinama, te ima moju preporuku za nekoga ko je na pocetku karijere. Jos nesto, cini mi se da Java ekosistem od pocetka forsira pricu o designu software-a (design patterns, best practices), tako da se obicno i programiranje moze dosta dobro usvojiti posto sam community dosta insistira na tome.
Bez namere da potezem c# vs. java diskusiju jer su u pitanju cisto licne preference, meni se C# vise svidja. Po sintaksi su gotovo isti, medjutim, kod svih jezika imas izvestan trade off izmedju slobode i toga da jezik zna sta je dobro za tebe bolje nego ti sam. C++ vise ide na slobodu a ti moras da pazis na sve zivo. Java opet ide na drugu stranu. Razliciti ljudi preferiraju razlicit odnos izmedju ova dva, nekima je C++ super, nekima Java, meni je C# tacno na pravom mestu :)
Ima tu i tehnickih razloga, kao sto je npr. nepotpuna podska za generics (ne znam koji se termin na srpskom koristi) u Javi (podrzava jezik ali ne i runtime) i sl. No, to ce valjda jednog dana biti implementirano :) MS je ipak imao priliku da sa novijim jezikom iskoristi iskustvo drugih i vidi sta bi trebalo implementirati.
OK, malo flame-a (ipak je advocacy): vidim da je doslo vreme da java kopira od ms-a, nakon sto je ms kopirao stvari iz jave ;] (neki od novih feature-a u verziji 8).