Advanced JavaScript Programming kurs

Kurs nastavlja obradu programskog jezika JavaScript kroz napredne tehnike njegovog korišćenja. Najvažnija tema ovog kursa je objektno orijentisano programiranje pomoću JavaScripta. To podrazumeva proučavanje klasa i objekata, ali i upotrebu dizajn šablona i drugih naprednih objektno orijentisanih koncepata.

U kursu je detaljno objašnjeno šta je objekat i na koji način se on može tretirati kroz aplikaciju, koje su dobre i loše strane korišćenja objekta i kakvu korist developer može imati od objektnog pristupa. Razjašnjeni su fundamentalni koncepti objektnog programiranja odgovorima na različita pitanja. Poput toga šta je klasa i na koji način se koristi za kreiranje objekata, šta je nasleđivanje i kako se može realizovati u JavaScriptu. 

Osim JavaScripta, kurs obrađuje i TypeScript – strogo tipizirani programski jezik izveden iz JavaScripta, ali napravljen po aktuelnim standardima, koji je nezaobilazan u najpoznatijim JavaScript okvirima (poput Angulara ili Reacta). Tokom ovog dela dodatno se pokrivaju i elementi koji su karakteristični za objektno programiranje, ali nisu prisutni u JavaScriptu, poput stroge tipizacije, interfejsa i slično.

Deo kursa bavi se naprednim konceptima objektno orijentisanog programiranja. Unutar njega razjašnjavaju se dizajn šabloni, koji su bitan činilac u rešavanju problema u OOP-u, kao i u timskom radu. Objašnjava se koncept upravljanja događajima i upotreba callback funkcija, kao i koncept paralelnog izvršavanja i njegove implementacije unutar JavaScripta.

Zanima vas ovaj kurs? Možete ga pohađati u okviru ovih ITAcademy programa: Frontend JavaScript Program New.

Opis i ciljevi Advanced JavaScript Programming kursa

Cilj kursa je da osposobi polaznika da razume i upotrebljava objektno orijentisani JavaScript. Nakon odslušanog kursa, polaznik će moći da radi na okvirima koji koriste TypeScript, kao i da koristi i proučava druge objektno orijentisane jezike.

Kao i svi kursevi na ITAcademy, i gradivo Advanced JavaScript Programming kursa je podeljeno u module kako bi se polaznicima olakšalo učenje i omogućilo postepno upoznavanje sa svim potrebnim veštinama. Na početku kursa imaćete priliku da se upoznate sa objektno orijentisanim JavaScript programskim jezikom. Tokom ovih predavanja iskusni predavači će vam predstaviti elemente objektno orijentisanog programiranja kao što su nasleđivanje, polimorfizam, apstrakcija… Uz to, saznaćete šta su klase i njihovi članovi, kao i kako se vrši nasleđivanje pomoću klasa i prototipova. Na poslednjem predavanju u okviru ove tematske celine polaznici će se upoznati sa nemutabilnosti i funkcionalnim programiranjem. 

U fokusu drugog modula biće koncepti naprednog objektno orijentisanog programiranja. To znači da će ova predavanja poslužiti polaznicima da saznaju šta su dizajn šabloni, kako funkcionišu callback funkcije i u kojim situacijama se koristi rukovanje događajima. Ovaj modul je veoma važan za dalje usavršavanje polaznika pre svega jer se od frontend programera očekuje da poznaju pomenute pojmove kako bi bili što efikasniji u svom radu. 

Poslednja tematska celina će polaznike uvesti u TypeScript. Na ovim predavanjima imaćete priliku da saznate kako se kreiraju strukture TypeScript projekta, kao i na koji način se izvršavaju funkcije prevođenja i startovanja TypeScript programa. Drugi deo ovog modula će obrađivati pojmove kao što su klasa i interfejs, a polaznici će saznati i na koji način tokom svog rada mogu da uključuju fajlove. Osim toga, očekuje ih i predavanje koje će se baviti tipovima podataka, kao i modifikatorima pristupa. Po završetku ovog kursa poznavaćete najvažnije praktične veštine za rad u JavaScriptu, koji je veoma zastupljen programski jezik u raznim oblastima programiranja. Ova znanja u kombinaciji sa veštinama koje ćete usvojiti na drugim kursevima pripremiće vas za uspešnu karijeru frontend programera.

Kurs Advanced JavaScript Programming će vam odgovoriti na pitanja:

1. Šta je to objektno orijentisano programiranje?

Objektno orijentisano programiranje je programiranje u kome se elementi programa predstavljaju kroz objekte, a tok programa realizuje kroz modifikacije stanja tih objekata ili izvršavanje operacija nad njima. Ovakav vid programiranja je revolucionarno uveden još 1950. godine kao postavljanje fokusa na objekte koji sadrže stanje i ponašanje. Suprotno od objektnog je proceduralno programiranje, gde se izvršavanje programske logike definiše isključivo po funkcionalnim algoritmima kojima se realizuje svaki deo sistema.

Programski jezik C je striktno proceduralan i zbog toga je 1979. godine stvoren C++ programski jezik, koji je objektno orijentisan. Oznaka ++ asocira na inkrement, odnosno nadogradnju postojećeg C jezika klasama i objektima. Iako je objekat u nazivu objektno orijentisanog programiranja, fokus je ipak na tipovima iz kojih se ti objekti kreiraju, a to su klase. Klase predstavljaju definiciju, odnosno strukturu tipa, definišu atribute objekta i ponašanje svakog objekta u zavisnosti od njegovog stanja. Objekat je samo pojedinačna instanca jedne klase i zbog toga je moguće da se kreira više različitih objekata istog tipa sa istim ili različitim vrednostima njihovih atributa.

2. Šta su to dizajn šabloni i da li imaju veze sa grafičkim dizajnom?

U programiranju postoje različiti načini da se dođe do nekog rezultata. Svaki način ima svoje dobre i loše strane, pa je u ranim fazama teško proceniti koji će pristup doneti najbolji rezultat. 

Godinama su neka od rešenja bila prihvatljivija od drugih, pa su se tako formirale grupe imenovanih rešenja za neke od standardnih problema u, pre svega, objektnom programiranju. Ova rešenja nazvana su dizajn šablonima.

Danas se od programera očekuje da znaju da prepoznaju, imenuju i primenjuju ova rešenja (šablone) kako bi bolje funkcionisali u timskom okruženju.

Dizajn šabloni u programiranju nemaju nikakve veze sa grafičkim dizajnom.  

3. Šta je to TypeScript, da li mi je potreban i zašto?

Iako je JavaScript široko prihvaćen jezik, popularan u mnogim sferama programiranja, on ima neke vidne različitosti u poređenju sa nekim drugim jezicima. Na primer, kada se poredi sa Javom, JavaScript nema tako strog režim rada sa tipovima podataka niti tako bogat objektni model. 

Te njegove osobine postoje, pre svega, zato da bi se do rezultata dolazilo lako i bez obraćanja pažnje na različite detalje. 

Ali izašavši iz uloge pukog pomagala u prikazivanju web strana, JavaScript je napustio i sferu u kojoj je bitno samo doći do rezultata brzo i jednostavno, već se među osobinama aplikacija napravljenih pomoću njega morala naći i proširivost, modularnost, validacija i slično. 

S obzirom na to da sam JavaScript inicijalno nema kapacitete da u svom prirodnom obliku isprati zahteve tržišta, došlo je do pojave različitih „pomoćnih” jezika koji imaju tražene mogućnosti, a praćeni su alatima koji ih mogu prevesti u JavaScript. Jedan, verovatno najpopularniji, od takvih jezika jeste TypeScript.

Kada napišemo neki program u jeziku TypeScript, on mora prevesti u JavaScript kako bi bio startovan, što gotov program čini stabilnijim i bezbednijim u kontekstu grešaka, a TypeScript korisnim.

Sa druge strane, trendovi su takvi da je dosta softverskih proizvoda okrenuto TypeScriptu, što ovaj jezik, na neki način, čini industrijskim standardom i bitnim sastavnim delom JavaScript proizvodnog sklopa.

Polaznici kursa Advanced JavaScript Programming

4. Da li ću učenjem JavaScripta automatski naučiti i Javu ili C++?

JavaScript, Java i C++ su tri različita programska jezika. Pa se zbog učenja jednog od njih ne povlači automatski i poznavanje drugog. Ipak, ovi jezici dele istu sintaksu jezika C, što čini da razlike između njih budu više semantičkog nego sintaksnog karaktera, zbog čega je nakon naučenog jednog učenje drugih pomenutih jezika značajno olakšano. Koncepti su većinom isti, samo se načini za njihovu realizaciju razlikuju.

5. Da li je neophodno znati JavaScript na naprednom nivou da bi se pravile web aplikacije?

Većina aplikacija se može napraviti pomoću osnovnih elemenata JavaScripta. Nije neophodno znati kako funkcionišu implementacije na niskom nivou da bi se mogle koristiti. Ako, na primer, hoćemo da uradimo nešto kada korisnik klikne mišem negde na strani, dodaćemo kod kojim ćemo takvu situaciju obraditi, ne ulazeći u analizu kako je i zašto došlo do aktivacije tog koda. Kao što, da bismo vozili auto-trke, ne moramo znati kako radi automobilski motor.

Sa druge strane, da bismo ostvarili najbolje produkcione rezultate, treba da budemo i duboko upućeni u funkcionalnosti sistema koji koristimo, pa je u tom smislu napredno poznavanje JavaScripta esencijalno za kreiranje naprednih web aplikacija.

6. Šta su to klase, a šta objekti?

Objektno programiranje podrazumeva rad sa objektima. Objekti su elementi programa koji imaju svoja stanja i ponašanje. Na primer, slika na strani može biti objekat. Taster može biti objekat. Kursor koji pomeramo po ekranu može biti objekat.

Svaki od objekata ima neke osobine koje ga definišu. Čovek ima ime i prezime, automobil može imati boju i model, proizvod može imati naziv i cenu itd.

U objektnom programiranju mesto u kome su napisane sve ove osobine naziva se klasa. Svaki put kada želimo da napravimo neki objekat, program prvo pogleda klasu, a zatim napravi objekat prema pravilima koja su definisana u toj klasi.

7. Da li je JavaScript objektno orijentisani programski jezik?

JavaScript je objektno orijentisani programski jezik. Ali, za razliku od nekih drugih objektnih programskih jezika, nije neophodno da poznajete objektno programiranje da biste mogli da radite u njemu. Kompletna objektna infrastruktura JavaScripta izolovana je od programera sve do trenutka dok on ne poželi da je koristi. Sa druge strane, kada se odlučimo da u JavaScriptu programiramo objektno, mogućnosti su bezgranične. 

Osim ugrađenog objektnog modela, postoje jezici koji obogaćuju JavaScript objektni model (na primer, jezik TypeScript), a čiji se kod lako prevodi u JavaScript. To omogućava da čak i programeri koji su navikli na tradicionalno objektno programiranje lako usvoje ovaj jezik.

Plan i program predavanja:

1. Objektno orijentisani JavaScript

  • Elementi objektno orijentisanog programiranja (nasleđivanje, polimorfizam, apstrakcija)
  • Klase i njihovi članovi
  • Nasleđivanje pomoću klasa i prototipova
  • Nemutabilnost i funkcionalno programiranje

2. Napredni OOP koncepti

  • Dizajn šabloni
  • Callback funkcije
  • Rukovanje događajima
  • Rad sa nitima
  • Promisi

3. Uvod u TypeScript

  • Kreiranje strukture TypeScript projekta
  • Prevođenje i startovanje TypeScript programa
  • Klase, interfejsi
  • Uključivanje fajlova
  • Tipovi podataka i modifikatori pristupa

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!

Da saznate sve o upisu, kliknite ovde