Quote:
Zaista na znam sta vas na etf-u uce, ali u Americi se uvjek stavljao naglasak na vjecne, nepromjenjive stvari. Na ono sto razlikuje zanatliju od naucnika. Da se razumijemo kao sto svako moze nauciti da instalira windows, isto tako svako moze nauciti da napise program, kreira bazu podataka. To nije znanje za koje je potreban fakultet, cak sta vise, pogledaj neke vece, postovanije developere, john carmack prvi. Kakvu diplomu on ima, a nadji mi jednog programera koji mu moze prismrdit u 3d engine-ima. Justin frankel koji je programirao winamp danas sam s pomocu jos dvojce likova pravi nesto sto etabiliranim firmama ukljucuje kompletan razvojni tim likova sa akademskim potvrdama. Naravno to su iznimci ali u mom iskustvu likovi koji su programeri iz ljubavi I hobija su uvjek bolji od onih koji su gulili na faksu da dobiju papir.
Racunarstvo je analiza algoritama, strukture podataka, kompajleri I leksicka analiza, cisto matematicke discipline poput diskretne matematike, numericke metode, logika, operativni sistemi. Koliko prosjecni programer hobijista zna o kompjuterskoj arhitekturi? to je ono sto je bitno po meni u tom domenu prirodnih nauka. Jave I c#-ovi dodju I prodju. To je nesto cime se moze ovladati putem tecaja, to je zanat. Zato me zbunjuje uopste taj pristup kod nas, skroz mi je nejasno zasto je informatika (koja je po meni cisto zanatska diploma, da se niko ne uvrijedi, ali za deset godina vise od pola obuhvacenog tom diplomom je bezvrijedno) postavljena pod elektroinzinjering. Ne vjerujem da nas obrazovni sistem uopste pravi razliku izmedju racunarstva I informatike, sto je tuzno u najmanju ruku.
Druga stvat je institucija koja ne prati redoslijed ucenja te nauke. I sam sam bio zrtva toga pa sam se vazda zbunjivao sta to odredjena linija koda radi, ali poveze coek tackice neminovno.
Vecina ljudi na ovoj planeti ne zna sta je to ustvari racunarstvo, tu istini za volju ima doza nuznog opskurantizma, ali ko zeli da zna nije tesko objasnit. Instaliranje windowsa, pisanje skripti sa server strane, to je informatika. A programiranje/baze podataka, iako su sastavni dio racunarstva, ne sluze puno cemu vise od pokazivanja primjera u realnom domenu. Sta to danas koristi vecina za programiranje I I 2? Javu? Nekad su to bili pascal, pa c, pa c++ (za.programiranje dva). Sutra to.moze biti python, ruby, ili neki od ovih novih popularnih jezika kao erlang. Nebitno, na kraju krajeva. Zato je programiranje zanat.
Obrazovni sistem stvara kadar za kojim postoji potreba na trzistu rada. Ogromna vecina, po mojoj procjeni nekih 95% svih poslova koji se na svijetu rade su zanatske prirode. Od toga sta radi vodoinstalater, preko programera, arhitekte, zubara , pa do ljekara. Nesto nauce, i onda to znanje primjenjuju na konkretne probleme. Tako da reci nekome da radi zanatski posao uopste ne treba da bude neka uvreda, da nema ljudi koji rade zanatske poslove, dzabe bi nam bila sva teorija.
Sa druge strane, imas pozive kod kojih je kreativnost u prvom planu, ali takvi se vrlo, vrlo rijetko adekvatno vrijednuju na trzistu rada. Od umjetnika, pa do naucnika. A da stvari budu najgore, cak i vecina naucnika svoj posao radi u mikrosferama, po uhodanim pravilima, zanatski.
Cinjenica je da prosjecnom programeru danas, koji moze raditi i na kompleksnim i intelektualno zahtjevnim projektima, uopste ne treba znanje o hardveru, a stvari kao sto je kvantna mehanika(koju smo morali itekako uciti na ETFu) i da ne pominjem. 3 puta bi bilo korisnije da smo ucili kako se pravi softver kako treba, i ucili stvari kao sto su Design Patterns, ili cak i prakticne stvari kako sto su tehnike Object Relational Mappinga, i tako dalje. Cak su i stvari kao CPU arhitektura prolazni. Ono sto nije prolazno je teorija izracunljivosti, koncepti kao Turingove masine, analiza kompleksnosti itd, ali to su osnovi kojima svako ne mora vladati da bi radio neki posao.
U informatici postoje nivoi apstrakcije, i kad bi svako radio na svakom, nigdje ne bismo stigli. Najvise prakticnog posla uvijek ima na vrhu, i zato je logicno da se ljudi ka tome usmjeravaju. Besmisleno je teorijom peglati nekoga koga ta teorija ne zanima, i svakako ce je brzo zaboraviti jer je nece koristiti. Kad mi sljedeci put zatreba algoritam za trazenje najkraceg puta u grafu, prilikom rjesavanja nekog konkretnog problema, rado cu konsultovati udzbenik sa algoritmina.