Bok, Habr!
Što studirati? Pojaviti se računalne znanosti ili naučiti vještine softverskog inženjera? Ova pitanja su vrlo aktualna u naše vrijeme.
Što ćete vi izabrati?
Ljudi koji tek započinju svoj put u IT sektoru i planiraju upisati neki tehnički fakultet ili jednostavno traže obrazovne programe za programiranje, često se susreću s ogromnom količinom smjerova. Suština je u tome da su predmeti na svakom od tih smjerova slični, posebno u prvom i drugom semestru.
Radi jasnoće, podijelimo sve smjerove u dva tabora — to su Computer Science i Software Engineering. Principijalna razlika je u tome da je prvi smjer fleksibilniji i bolje proučava temeljne stvari, dok se drugi fokusira na praktične vještine stvaranja programa za tržište. Bez obzira koji od ovih smjerova odabrali, na kraju ćete postati programer. Vjerojatno ćete nakon ili tijekom studija negdje i zaposliti se, a to na koji sektor razvoja ćete ići i na što ćete moći računati odrediti će smjer koji odaberete.
U oba tabora tijekom prva 2-4 semestra proučavaju se slični predmeti, kao što su linearna algebra, matematička analiza, diskretna matematika i diferencijalne jednadžbe. Cijela ta matematika obično se proučava u oba tabora, ali u Computer Science dodaje se još jedan kolegij iz diskretne matematike i diferencijalnih jednadžbi. Također, zajedničko za sve smjere je uvod u opću računalnu znanost, a tu već počinju razlike. U smjeru Computer Science govori se o arhitekturi računala, teoriji algoritama, strukturi podataka i njihovoj analizi, o tome kako programi rade i kako se mogu pisati koristeći klasične konstruktore, operativne sustave, prevoditelje i slično. Drugim riječima, pokriva se veća osnova. S druge strane, u Software Engineering govori se o OOP dizajnu, testiranju softvera, osnovama operativnih sustava i slično. Drugim riječima, fokusira se na tehnike kako bi student mogao naučiti koristiti već gotova rješenja i uz njih rješavati različite poslovne probleme. Sve to obično se uči u prvoj godini studija.
Tijekom drugog godine oba smjera počinju proučavati predmete poput arhitekture računala i strukture operativnih sustava, ali se na Smjeru Softverskog inženjerstva ti predmeti proučavaju površnije. To je povezano s time da se tamo pripremaju ljudi koji će imati malo veze s tim predmetima. Počevši od druge godine studija, na Smjeru Računalnih znanosti se više naglašava mikroarhitektura i jezgre operativnih sustava, dok se na razvoju softvera veći naglasak stavlja na korisničke sučelje, testiranje, analizu softvera, razne metodologije upravljanja itd. Konkretno, OOP se proučava u oba smjera dovoljno duboko, jer je ova paradigma programiranja vrlo popularna u današnje vrijeme i jednostavno se mora znati.
Tijekom treće godine studija na Smjeru Računalnih znanosti proučava se kombinatorika, kriptografija, umjetna inteligencija, osnove razvoja softvera, 3D grafika i teorija kompajlera. Na Smjeru Softverskog inženjerstva proučava se sustavna sigurnost, mreže i internet, upravljanje softverom i općenito menadžment. No, ovisno o visokom učilištu, sadržaj ovih predmeta i njihovo detaljno proučavanje može varirati.
Možda je najvažnije pitanje ovog članka pitanje kamo se najbolje upisati. Tu sve ovisi o vašim preferencijama. Ako želite biti veoma fleksibilan i svestran inženjer, trebate se opredijeliti za Računalne znanosti. A ako želite vezati svoj život uz razvoj softvera i biti u mogućnosti stvarati korisne programe za krajnje korisnike, onda je Softversko inženjerstvo pravi izbor za vas.

Zaključno, trebalo bi reći da će vas na Smjeru Računalnih znanosti naučiti rješavanju problema i pronalaženju elegantnih načina rješavanja tih problema, dok će vas na Smjeru Softverskog inženjerstva oblikovati u poslovnog programera koji će moći upravljati projektima, ljudima i stvarati aktualni softver.
Izvor: habr.com
