@Odin D.,
Stvari kao sto su sortiranja, pretrage, prolazi kroz grafove i sl. su stvari koje su i dan danas osnova rada i sa najnovijim programskim jezicima.
Potpuno je nebitno da li pises program u COBOL-u ili u nekoj najnovijoj inkarnaciji pimp-ovanog skript jezika, kada imas zadatak da nadjes resenje za konkretan problem ima smisla da znas osnove.
Ako ti je posao takav da nemas nikakve potrebe da znas detaljno osnove informatike, onda ti fakultet uopste nije ni potreban pa je bolje da se uopste ne gubi vreme sa fakultetom vec da se za tih 4 godine nabije praksa.
Nema apsolutno nista lose u tim poslovima, stavise verovatno ogroman % poslova koji se zovu "programiranje" ne trazi nista vise od znanja koje se moze pokupiti u osnovnoj skoli + prakse u konkretnom razvojnom okruzenju.
Medjutim poslovi koji spadaju u pravo softversko inzenjerstvo zahtevaju sira znanja, koja se izucavaju na fakultetima (ili kuci, ako neko tako zeli) i nisu uopste suvisna iz prostog razloga sto za vreme studiranja buduci sw. inzenjeri ne znaju da li ce se baviti isklucivo obradom signala, bazama podataka, bioinformatikom, vestackom inteligencijom, multimedijom ili necim 10-tim, pa da mogu da se fokusiraju samo na 5-10% gradiva koje njima treba.
Takodje i sami poslodavci znaju da je moguce da u toku radnog veka jednog sw. inzenjera bude potrebno da se radi vise stvari koje zahtevaju razlicite koncepte iz osnova informatike ili sw. inzenjerstva.
Fakat da poslodavci stavljaju akcenat na resavanju razlicitih problema u toku izbora kandidata (i ti problemi jako cesto ukljucuju vise razlicitih stvari koje spadaju u osnove informatike/sw. inzenjerstva) samo pokazuje da je to relevantno. Ne bi poslodavci bacali
svoje resurse na testiranju ljudi koliko poznaju osnove sw. inzenjerstva / informatike da to nema smisla.
Citat:
Promjenilo se jedino to sto se danas ne moze zivjeti od osnova programiranja kao sto se moglo u vreme spektruma; sto nisi ni pocemu poseban ako znas neke osnove programiranja kao sto si bio poseban u vreme spektruma; sto danas nisi uopste poseban i izuzetak ako imas kompjuter kao sto si bio po tome poseban u vreme spektruma itd.
Ne moze se ziveti od osnova programiranja danas kao sto se nije moglo ziveti ni pre 20 godina.
Ali da ih moras znati ako se bavis softverskim inzenjeringom, to je definitivno slucaj.
Ako radis u, sta znam, Siemensu i radis na softveru za novu MRI masinu trebace ti da znas da li je pametnije da koristis linearni ili neki drugi filter za skaliranje slike u zavisnosti od toga sta hoces sa tom slikom da radis. To ljudi uce na obradi signala (ili kuci, nebitno, bitno je da to moraju da nauce).
Ili ako treba da pretrazis neki dataset od par TB, koji je algoritam optimalniji za taj problem, u pogledu brzine, koriscenja memorije itd. To ljudi uce na studijama informatike (ili kuci, nebitno, bitno je da to moraju da nauce).
Ili ako treba da implementiras neki algoritam na novoj arhitekturi, recimo kao sto je GPU u poslednjih par godina, ako ne znas osnove multiprocesorskog programiranja kao i specificnosti arhitekture u vezi sa tim osnovnim konceptima (recimo koliko kostaju atomicke operacije) sanse da za*eres u optimizaciji su ogromne i umesto 100x ubrzanja mozda dobijes 5x usporenje u odnosu na CPU kod (nista necuveno kada se radi o CUDA-i, npr.).
Potpuno je nebitno da li ces za sve te stvari imati neku toolbox biblioteku koja implementira sortove, pretrage, resampling itd... ako nemas pojma koji od tih alata iz toolboxa da koristis, napravices po*ranu implementaciju koja ce ili da se vucara ili mozda nece zadovoljavati konkretne zahteve koji mogu biti max. koriscenje memorije, brzinu itd... ako radis na necemu ozbiljnom kao sto je gore pomenuta masina, taj tvoj softver ce raditi sa pravim ljudima i uticati na odluke koje mogu znaciti zivot ili smrt.
Kada radis na necemu novom, nemas wizard koji ce ti uciniti kod brzim ili implementaciju manje zahtevnom u pogledu memorije. To
TI moras da uradis i da bi to uradio moras imati solidno znanje koje spada u osnove racunarstva ili obrade signala (sta vec radis).
To uopste nisu naivne stvari, i sasvim je logicno da poslodavci koji rade na njima traze ljude koji znaju ne samo da programiraju vec i da odaberu optimalan pristup pre implementacije kako bi zadovoljili to sto se trazi od njih. Zato pitaju svasta na razgovoru za posao. Mozda ti na konkretnom poslu nikad neces morati da lupas glavu koji je sort bolji ali, cuj, to poslodavac ne zna danas i ako treba da zaposli sw. inzenjera nije lose zaposliti nekog ko zna vise umesto manje.
Btw, ako neko kaze da sam odabrao los primer - ako pricamo o zapadu, masa poslova jesu u "ozbiljnim" industrijama sa "ozbiljnim" stvarima od medicine preko telekomunikacija pa sve do automatike i automobila ili trgovine na berzi.
[Ovu poruku je menjao Ivan Dimkovic dana 07.04.2014. u 20:30 GMT+1]
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