Mislim da se na ovoj temi, kao i na svim srodnim temama na ES-u uvek nekako krene u pogresnom pravcu, tj. u pravcu raspravljanja da li je fakultet tj. fakultetska diploma potrebna kako bi se neko zvao "programer" ili ne. Cela prica se onda pretvori u monotonu raspravu gde svaki "tabor" navodi primere kako je fakultet potreban/nepotreban i sve se svede na najobicniji flame.
Ja mislim da to pitanje i nije bas tako relevantno, tj. zapravo mislim da je najmanje relevantno od svih mogucih odgovora - ako osoba pita sta treba da uradi kako bi postala, recimo, programer, mislim da je daleko pametnije posavetovati je sta konkretno treba da nauci / vezba / uradi, nego ulaziti u besmislenu raspravu gde svako ima svoje misljenje i koja nece doneti nista konstruktivno.
Mislim, kakav je to odgovor "idi na fakultet" ili "treba ti fakultet" - potpuno beskoristan. Da je neko trazio takav odgovor, mislim da ne bi ni postavljao pitanje vec bi otisao na neki fakultet i upisao ga :)
Dakle, ako neko zeli postati 'programer', po mom misljenju treba da nauci sledece:
- Mora imati srednjoskolsko znanje matematike, eventualno bez integrala, ako ne zeli da se bavi nekim matematicki-intezivnim oblastima
- Osnove racunarskih arhitektura, algoritme i grafove
- Bulovu algebru
- Osnove programiranja (petlje, grananje, sortiranje, itd...)
- Ako zeli da se bavi objektno orijentisanim programiranjem, treba da se upozna sa osnovnim principima istog (apstrakcije, polimorfizmi, itd...)
- Ako zeli da se bavi bazama podataka, treba da nauci osnovne koncepte istih
- Ako zeli da se bavi 3D grafikom, osnove 3D grafike (transformacije, sencenje, itd...)
E, kada se ovo gore savlada, onda se prelazi na:
- Konkretne programske jezike (C, C++, Java, php, itd...)
- Osnove operativnog sistema / operativnih sistema za koji se planira razvoj
- Sistemske API-je gore spomenutog operativnog sistema
- Ako se bavi DB razvojem, konkretnu bazu (MySQL, Oracle, itd...)
- Ako se bavi grafikom, graficke API-je (OpenGL, itd...)
U paraleli sa ovim treba raditi projekte, mogu biti privatni - a mogu biti i neki open-source projekti, gde ce se savladati koncepti iz tacaka gore.
Kada se sve to zavrsi, mislim da se osoba moze nazvati junior programerom, i ne bi trebalo da ima problema da nadje prvi posao u trzistima gde je IT radna snaga vrlo potrebna.
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos:
http://www.digicortex.net/node/17 Gallery:
http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! -
https://github.com/psyq321/PowerMonkey