Kurs naprednog Java programiranja

Kao što i sam naziv govori, ovaj kurs polaznicima pruža priliku da savladaju tehnike naprednog programiranja u Javi. Ovaj programski jezik spada među jednostavnije za učenje, pre svega, zbog svoje objektne orijentacije i višenamenske karakteristike. Važno je istaći i da se Java ne vezuje za jedan operativni sistem, što znači da je kod napisan u ovom programskom jeziku funkcionalan na svim desktop, tablet i mobilnim uređajima.

Prilikom učenja naprednog programiranja u Javi od velike koristi će vam biti osnovna predznanja za rad u ovom programskom jeziku. Upravo iz tog razloga polaznicima ovog kursa savetuje se da uspešno završe osnovni kurs programiranja u Javi kako bi mogli što lakše da unaprede svoja znanja i dodatno se usavrše za rad u najtraženijem programskom jeziku današnjice.

Zbog osobina koje Java poseduje a koje joj omogućavaju da se prilagodi većini uređaja, veštine za rad u ovom programskom jeziku zapravo će vam predstavljati alat sa veoma širokom primenom u IT svetu. Iz pomenutih razloga Java je i zaslužila epitet najtraženijeg programskog jezika na tržištu, a njeni programeri spadaju među IT stručnjake sa veoma visokom zaradom.

Jednostavno, ako usavršite svoje veštine za rad u pomenutom programskom jeziku, bićete spremni da radite na brojnim pozicijama koje podrazumevaju kreiranje video-igrica, izradu Android aplikacija ili programiranje aplikacionih softvera, bilo da se radi o online ili offline projektima.

Zanima vas ovaj kurs? Možete ga pohađati u okviru ovih ITAcademy programa: Android Mobile Development i Java Development Program.

Opis i cilj kursa naprednog Java programiranja

Kurs Advanced Java Programming bavi se naprednim konceptima programiranja korišćenjem programskog jezika Java. Kurs započinje izučavanjem naprednog objektnog programiranja. Polaznici imaju prilike da se upoznaju sa brojnim naprednim pojmovima Java jezika, kao što su apstraktne klase, interfejsi, anonimne klase, lambda izrazi... Reč je o kompletnom arsenalu specifičnih jezičkih mogućnosti koje omogućavaju pisanje modernih, visoko optimizovanih Java aplikacija. Pored nabrojanih pojmova, uvodni modul kursa obrađuje i pojmove kao što su događaji, refleksija i dizajn šabloni.

Drugi deo kursa posvećen je različitim načinima za kreiranje struktura podataka. Tako polaznici imaju prilike da, pored objekata i nizova, poznavanje različitih struktura podataka prošire pojmovima kao što su enumeracije i kolekcije. Uporedo sa kolekcijama, polaznici imaju prilike da se upoznaju i sa generičkim tipovima podataka i načinima za tipsku parametrizaciju. Kako bi se upotpunila priča o kolekcijama, kurs Advanced Java Programming obrađuje i pojam tokova, kao svojevrstan način za lako sprovođenje nekih uobičajenih operacija nad kolekcijama podataka.

Kurs Advanced Java Programming obrađuje i napredne pristupe rada sa tekstualnim podacima, pre svih koncept regularnih izraza. Priča o tipovima podataka upotpunjena je i različitim načinima za predstavljanje datuma i vremena u Java programima.

Kako bi polaznici bili u mogućnosti da kreiraju aplikacije koje mogu da uvoze i izvoze podatke, kurs Advanced Java Programming obrađuje i različite ulazno/izlazne tokove, kao i pristupe za obavljanje serijalizacije i deserijalizacije i rukovanje fajl sistemom.

Ulazno/izlazni tokovi se koriste i u narednom segmentu kursa Advanced Java Programming, u kome se obrađuju pristupi za mrežnu komunikaciju korišćenjem Java programa. Polaznici imaju prilike da nauče kako se kreiraju serveri i klijenti koji preko mreže komuniciraju uz poštovanje TCP, UDP i HTTP protokola.

Kurs Advanced Java Programming se završava obradom koncepta niti i višenitnog programiranja. Obrađuju se najznačajnije tehnike koje Java programima omogućavaju da svoju logiku obavljaju u nekoliko nezavisnih niti.

Upoznavanje polaznika sa naprednim konceptima Java jezika. Osposobljavanje polaznika za samostalno kreiranje naprednijih Java programa, koji koriste mrežu, poseduju veći broj niti i primenjuju napredne postulate objektno orijentisanog programiranja.

Kurs Advanced Java Programming će vam odgovoriti na pitanja:

1. Šta su generički tipovi podataka?

Apstrakcija jeste jedan od osnovnih postulata programiranja korišćenjem programskog jezika Java, ali i objektno orijentisanog programiranja uopšte. Tako se unutar modernih programskih jezika teži postizanju što višeg stepena apstrakcije, koji olakšava i ubrzava razvoj softvera. Rukovanje generičkim tipovima podataka predstavlja jedan od najviših stepena apstrakcije i dinamike u kreiranju objektno orijentisane klasne arhitekture programa. Tako generički tipovi podataka omogućavaju kreiranje klasa kod kojih tipovi kojima će one manipulisati nisu automatski određeni. Takva činjenica programeru obezbeđuje neslućene mogućnosti manipulacije tipovima. Stoga je pojmu generičkih tipova podataka posvećena posebna pažnja unutar kursa Advanced Java Programming. Polaznici će naučiti kako da kreiraju različite vrste generičkih podataka, među kojima su najznačajnije generičke kolekcije i generičke klase.

2. Šta je refleksija?

Među napredne koncepte kojima se bavi kurs Advanced Java Programming spada i pojam refleksije. Refleksija pripada oblasti dinamičkog programiranja, a omogućava manipulaciju arhitekturom klasa za vreme izvršavanja programa. Naime, standardna procedura definisanja tipova u nekom programskom jeziku podrazumeva pisanje izvornog koda kojim se definišu osobine i ponašanja tipova koji se stvaraju. Takav posao obavlja se pre izvršavanja aplikacije. U nekim situacijama može da se pojavi i potreba za analizom ili izmenom osobina tipova koji su kreirani pre pokretanja aplikacije, odnosno tokom takozvane design time faze. Na primer, programer će možda poželeti da tokom izvršavanja aplikacije pročita nazive svih svojstava koja neka klasa poseduje. Možda će poželeti da izmeni osobine nekog svojstva, ili čak da doda novo svojstvo. Sve ovo i još mnogo više moguće je postići korišćenjem refleksije, koja je detaljno obrađena u kursu Advanced Java Programming.

3. Šta su dizajn šabloni?

Iako reč dizajn asocira na to da se možda radi o nekoj grafičkoj komponenti aplikacije, dizajn šabloni su, zapravo, veoma daleko od toga. To su, u stvari, čisto programski oblici koji imaju veze isključivo sa programskom strukturom aplikacije.

Šta je tačno dizajn šablon? Ništa drugo do – standardno rešenje za neki programski problem. Do tog rešenja se došlo evolutivno i empirijski i njegovom upotrebom eliminišemo pojavu „izmišljanja tople vode” u kreiranju aplikacija. Time znatno ubrzavamo proizvodnju, naročito ukoliko se ona odvija u timskom okruženju.

Šabloni nisu nešto što možemo upotrebiti tako što ćemo uraditi Copy/Paste. Oni se implementiraju u objektnu strukturu i čine njen sastavni deo, sa akcentom na reči „objektna”, jer su dizajn šabloni usko vezani baš za objektno orijentisani programerski koncept.

Tokom trajanja kursa Advanced Java Programming imaćete prilike da se upoznate sa osobinama različitih dizajn šablona.

Kurs naprednog Java programiranja

4. Šta su niti?

Jedna od najmoćnijih funkcionalnosti programskog jezika Java podrazumeva mogućnost izvršavanja većeg broja poslova u isto vreme. Mogućnost obavljanja većeg broja poslova tokom istog vremenskog perioda drugačije se naziva konkurencija, a programski jezik Java konkurencijom rukuje korišćenjem procesa i niti. Naime, operativni sistem izvršavanje različitih aplikacija predstavlja korišćenjem procesa, dok je svaki proces sastavljen od jedne ili više niti. Svaka Java aplikacija podrazumevano poseduje jednu primarnu, odnosno glavnu nit. Veoma često, nit koja je automatski dostupna svakom Java programu nije dovoljna za fluidno izvršavanje aplikacija. Upravo zbog toga se pribegava kreiranju dodatnih niti, korišćenjem različitih funkcionalnosti koje su na raspolaganju Java programerima. Kurs Advanced Java Programming ilustruje različite tehnike za kreiranje niti i rad sa nitima.

5. Na koji način se obavlja komunikacija preko mreže?

Vreme lokalnih aplikacija, odnosno aplikacija koje funkcionišu kao izolovane celine na korisnikovom računaru i koriste isključivo lokalne podatke, davno je prošlo. Današnje, moderne aplikacije veliki deo svoje logike zasnivaju na korišćenju mreže za razmenu podataka. Tako aplikacije svoje podatke mogu čuvati na nekom udaljenom serveru, a zatim takve podatke koristiti tokom svog izvršavanja. Za razvoj aplikacija koje prilikom svog izvršavanja koriste mrežne resurse neophodno je poznavati osnove mrežnih protokola, kao i različite funkcionalnosti Java jezika za ostvarivanje mrežne komunikacije. Sve to polaznici će biti u prilici da saznaju tokom trajanja kursa Advanced Java Programming, koji se bavi osnovama TCP, UDP i HTTP Java programiranja.

6. Šta su ulazno/izlazni tokovi?

Tokom svog izvršavanja, Java programi veoma često imaju potrebu za korišćenjem nekih podataka koji se nalaze izvan aplikacije. Takođe, često se može javiti potreba i za skladištenjem podataka koji se koriste unutar aplikacije. Sve su to operacije koje zahtevaju korišćenje ulazno/izlaznih tokova.

Ulazno/izlazni tokovi su osnovni mehanizmi koji omogućavaju da jedan Java program dobije neke podatke iz spoljašnjeg sveta, ali i da podatke koji postoje unutar programa emituje spoljašnjem svetu. Pri tome se ulazni tokovi koriste kako bi Java program pročitao neke podatke, a izlazni kako bi podatke poslao, odnosno upisao.

U kursu Advanced Java Programming detaljno se obrađuju različite vrste ulaznih i izlaznih tokova.

7. Šta su apstraktne klase i interfejsi?

U nekim situacijama, može se javiti potreba za kreiranjem klasa koje bi se koristile samo kao obrazac za kreiranje nekih drugih klasa. Takve klase bi služile kao osnova za sve klase koje bi iz njih bile izvedene. Tako nešto moguće je obaviti korišćenjem apstraktnih klasa, koje omogućavaju da se kreira klasa koja se ne može instancirati.

Pored apstraktnih klasa, esencijalni sastojak gotovo svakog objektno orijentisanog programskog jezika jesu i interfejsi. Reč je o pojmu koji omogućava najviši stepen apstrakcije u objektno orijentisanim jezicima.

Moderno i efikasno objektno orijentisano programiranje ne može se zamisliti bez pojmova interfejsa i apstraktnih klasa. Stoga se ti pojmovi detaljno obrađuju unutar kursa Advanced Java Programming.

Plan i program predavanja

Modul 1 – Napredno objektno programiranje

  • Objektno orijentisano programiranje u Javi
  • Apstraktne klase i interfejsi
  • Klase unutar klasa
  • Događaji
  • Refleksija
  • Dizajn šabloni

Modul 2 – Strukture podataka

  • Enumeracije
  • Kolekcije
  • Generički tipovi podataka
  • Tokovi

Modul 3 – Tekst, datumi i vreme

  • Napredni rad sa tekstom
  • Datumi i vreme

Modul 4 – Rad sa podacima

  • Ulazno/izlazni tokovi
  • Serijalizacija
  • Fajlovi i folderi

Modul 5 – Rukovanje mrežom

  • Uvod u internet mrežne protokole
  • TCP socket programiranje
  • Rukovanje HTTP-om
  • UDP socket programiranje

Modul 6 – Niti

  • Uvod u višenitno programiranje
  • Rukovanje nitima
  • Konkurencija i sinhronizacija

Kurs naprednog Java programiranja

3 načina da dobijete odlično plaćen posao

Spremili smo dokument koji otkriva tri pouzdana načina za dolazak na dobro plaćenu poziciju za stručan rad sa računarima. Preuzmite izveštaj ovde.

Da li ima mesta? Upisni rok je otvoren!

UpisDa saznate sve o upisu, kliknite ovde