Platforma Java i potporne tehnologije otvorenog koda u poslovnom okruženju: najava

Vještina Platforma Java i potporne tehnologije otvorenog koda u poslovnom okruženju nudi se studentima diplomskog studija u zimskom semestru (i na 1. i na 2. godini). Vještina je izvedena kao kombinacija predavanja i vježbi, a cilj joj je upoznati studente s tehnologijama i razvojnim alatima koje uobičajeno nalazimo u industriji, kada je riječ o razvoju poslovnih aplikacija na platformi Java. Studenti će kroz vještinu razvijati svoju poslovnu aplikaciju, kako bi na temelju stvarnog primjera mogli što bolje upoznati navedene tehnologije.

Što to konkretno znači? Fokus ove vještine je na izradi poslovnih raspodijeljenih aplikacija: aplikacija s kojima korisnici komuniciraju putem web-preglednika a čija se poslovna logika, obrada i pohrana podataka odvija na poslužitelju. U svijetu Jave, takve su aplikacije poznate kao Enterprise Applications.

Pri izradi takvih aplikacija treba ovladati s nekoliko relevantnih tehnologija. Stoga ova vještina nastavlja priču na mjestu na kojem smo stali na Osnovama programskog jezika Java. Pogledat ćemo kako strukturirati jednu web-aplikaciju uporabom tehnologije Spring: umjesto low-level Servleta i Filtera, pisat ćemo aplikaciju i razgovarati o njoj na razini repozitorija, servisa i prezentacijskog sloja. Pogledat ćemo kako riješiti perzistenciju podataka uporabom specifikacije JPA i primjerice biblioteke Hibernate kao ponuđača perzistencijskih usluga, ali ovaj puta uz pomoć Springa.

Potom ćemo pogledati kako generirati korisničko sučelje klijentu: od izravnog generiranja kroz tehnologiju JSP pa do uporabe JavaScript biblioteke Angular 2 i jezika TypeScript. I naravno, pričat ćemo o izgradnji i oblikovanju elemenata web-stranice kroz tehnologije i specifikacije poput Bootstrapa i HTML/CSS-a.

Za koga je to? Koji su preduvjeti?

Vještina je namijenjena svim studentima koji se žele upoznati s navedenim tehnologijama. Iako je fokus vještine na Javinim tehnologijama, znanja dobivena kroz vještinu jednim dijelom nadilaze samu Javu: priča o HTML/CSS-u te JavaScript biblioteci Angular 2 i TypeScriptu ista je ma u čemu pisali poslužiteljski dio aplikacije - bila tamo Java, PHP ili neki treći jezik / tehnologija. Stoga Vam ta znanja mogu bitno olakšati ulazak u Vašu profesionalnu karijeru.

Što se tiče preduvjeta, sama vještina Osnove programskog jezika Java nije formalni preduvjet: ovu vještinu možete upisati čak i ako Osnove programskog jezika Java niste položili. Međutim, ono što je stvarni preduvjet jest da vladate gradivom koje je tamo bilo ispričano. Konkretno: kako složiti web-aplikaciju izgrađenu od servleta i filtera, kako je povezati s bazom podataka kroz JDBC ili kroz JPA, kako se anotiraju entiteti u JPA, kako si sami možete upogoniti nekog upravitelja bazom podataka (poput Apache Derby) i slično. Ako to ne znate, ova vještina nije za Vas.

Kako je vještina organizirana?

Za razliku od Osnova programskog jezika Java, na ovoj vještini imamo samo jednu grupu i ta ide ponedjeljkom od 17h do 20h u D346. Trebate imati vlastita prijenosna računala a ja donosim produžne kabele za struju.

Predavanja se održavaju u tjednima kada i inače idu predavanja na FER-u. Nakon svakog predavanja dobiva se manja domaća zadaća. OK, dišite. Rekao sam: manja domaća zadaća - nije usporedivo s domaćim zadaćama na Osnovama programskog jezika Java.

U akademskoj godini 2016./2017. vještina je održana u suradnji s tvrtkom Serengeti. Predavač je bio Nenad Pečanac - osoba koja i u stvarnom životu puno programira, ima iskustva u razvoju ovog tipa aplikacija i zna ispričati puno zanimljivih detalja. A upravo iz takvih real-world primjera može se puno naučiti. Doduše, zna dosta tiho pričati pa nekad nije baš jednostavno to sve poloviti :-) Ali praksom do savršenstva - ove godine bit će malo glasniji :-) U akademskoj godini 2017./2018. nastavljamo ovu suradnju.

Zašto bih ovo upisao?

Na kraju vještine održane akademske godine 2016./2017. pitao sam studente u anonimnoj anketi: "Što biste poručili studentima koji će sljedeće godine razmišljati o upisu ove vještine?". Evo u nastavku njihovih poruka.

  1. Svakako bih preporucio upis onima koji nemaju iskustva s ovom platformom.
  2. Za nekoga koji je znao većinu tehnologija s kojima se na vještini radi, smatram da je vještina bila korisna. Uistinu sve ovisi o samom studentu i njegovom predznanju. Ako student smatra da već vrlo vješto barata svim navedenim tehnologijama i dosadno mu je to dalje učiti, svakako ne bi preporučio upis. S druge strane, cijeli taj stack tehnologija s kojima se radi je jako jako širok i čak i na najbanalnijem tutorialu ili predavanju može se čuti neka star koja puno znači. Vještina nije zamišljena da bude strah i trepet već produbljavanje znanja iz već poznatih tehnologija, stoga ja definitivno preporučam upis. Također, iako od puno kolega na 5. godini čujem kako "oni u životu neće raditi web", mislim da to neće baš tako lako proći. Web je danas sve i svugdje i biti će još i više. Čak i ako jednog dana radite na vrlo složenim problemima i uistinu se bavite algoritmima, složenošću, računalnom sigurnošću i sl., svaki veći sustav u nekom trenutku ima potrebu za nekakvim sučeljem koje će biti, pogodite, na webu! Stoga, izbrusite znanje iz određenih web tehnologija jer nikada ne znate kada će vam u životu dobro doći.
  3. Ovo je jedna od rijetkih prilika da student FER-a nauči neku od modernih back-end i front-end tehnologija koje se zapravo koriste u praksi i zbog toga je sama po sebi jako korisna. Vještinu bih definitivno preporučio (i preporučio sam) studentima, samo bih im još preporučio da imaju strpljenja s nekim njenim manama jer je još nova, na kraju se vrijeme, po mom mišljenju, isplati.

Kada / gdje će biti upisi?

Upisi će se pokrenuti početkom rujna. Kao i kod svih mojih vještina, bit će potrebno popuniti prijavu u sustavu Ferko, pa nemojte propustiti rok.