Split Tech City je zajednica sastavljena od tvrtki, udruga, institucija, meetupa i pojedinaca koji su posvećeni razvoju tehnološkog sektora u Splitu i regiji.

Postani član

Koji programski jezik odabrati-vodič za početnike

Mensur Duraković

Mensur Duraković

07.12.2020.

U posljednje vrijeme, ljudi mi često postavljaju pitanje: „koji programski jezik se danas najviše isplati naučiti?“ Ili drugo, vrlo slično pitanje: „koji programski jezik odabrati kao početnik?“
Najčešće su to osobe koje bi htjele ući u svijet programiranja, osobe koje žele pronaći prvi posao kao developeri ili studenti koji razmišljaju o svojoj karijeri i usmjerenju.

Odgovor je vrlo jednostavan: bilo koji programski jezik preko kojeg možete napraviti to što ste zamislili!

Zašto?

Zbog toga što su programski jezici samo alati preko kojih se rješavaju svakodnevni ljudski problemi i ta rješenja dolaze u obliku web aplikacija, mobilnih aplikacija, IoT (engl.Internet of things) rješenja i slično. Primjerice, istu mobilnu aplikaciju možete napraviti koristeći različite programske jezike/tehnologije:

  • Java/Kotlin (Android),
  • Objective-C/Swift (iOS),
  • React Native (Android i iOS)
  • Flutter (Android i iOS)
  • Xamarin (Android i iOS)

Specifičnost programskog jezika nije od presudne važnosti za napraviti nešto korisno i funkcionalno.

Koji programski jezik odabrati?

Sigurno ste pomislili „ok, čuli smo to do sada stotinu puta, nemoj filozofirati nego predloži neki konkretan programski jezik i objasni zašto baš taj“.

Pa evo, da se vratim u prošlost i zamislim kao student prve godine fakulteta, bez sumnje bih odabrao JavaScript i fokusirao se na učenje baš tog programskog jezika.

Ne želim ići previše u tehničke detalje, već ću objasniti potencijalne koristi od poznavanja JavaScripta, kako pristupiti učenju istog i odakle krenuti. Argumenti  koje ću navesti su moje osobno mišljenje i potpuno je ok da se ne slažete samnom i mislite kako je neki drugi programski jezik bolji izbor.

Ovo napominjem jer se ponekad developeri koji rade u drugim programskim jezicima znaju jako uvrijediti kad netko smatra da je drugi programski jezik bolji od onog koji oni koriste pa krenu nabrajati prednosti „njihovog“ programskog jezika i mane „protivničkog“ kako bi dokazali da su u pravu.

Iz mog osobnog iskustva, to su najčešće bili pojedinci iz skupine PHP developera i pojedini pripadnici najveće IT sekte na svijetu (Apple korisnici, iOS developeri). 😛

Samo da ponovim za svaki slučaj, pošto puno ljudi miješa ta dva programska jezika. Ne Java, nego JavaScript!

Zašto baš JavaScript?

JavaScript je nastao na totalno čudan način, neplanirano. Gospodin po imenu Brendan Eich poželio je na web stranici korisniku prikazati tekstualnu poruku kada korisnik upiše nešto u polje za unos. Nesretni Brendan nije imao rješenje za to pošto tada nije postojao način za to izvesti, pa je u 10 dana “sklepao” programski jezik koji je nazvao JavaScript.

Mnogi smatraju da je to ime bilo zapravo taktički potez kako bi se namjerno izazvale konfuzije i ukrao djelić popularnosti od tada najpopularnijeg programskog jezika – Jave.

Od tada je popularnost JavaScripta samo rasla i danas je to uvjerljivo prvi programski jezik kad je u pitanju razvoj web stranica/aplikacija. Skoro pa da ne postoji stranica na internetu koja u svom programskom kodu ne sadržava barem malo JavaScripta.

Prije nego krenemo s pozitivnim stranama, moram odmah reći da ne smatram kako je JavaScript savršen jezik. Ima svojih smicalica i općepoznatih bug-ova koji početnicima mogu biti totalno zbunjujući, pa evo jedan primjer:

Totalno nelogično, zar ne? Neću objašnjavati razlog ovog ponašanja, ali ukoliko vas zanima odgovor, možete ga pronaći ovdje.

Javascript nije idealan jezik za početnika, ali također nije ni kvantna fizika i može se savladati uz malo volje i strpljenja. Negdje na internetu sam pročitao nečije, slikovito opisano, iskustvo učenja JavaScripta:

“Learning JavaScript is like looking both ways before you cross the street and then getting hit by an airplane.”

Nakon što ste upozoreni u šta se upuštate, možemo malo i o prednostima, pa evo par njih:

Popularnost

JavaScript je danas uvjerljivo među najpopularnijim programskim jezicim. Mnogi smatraju i da je najpopularniji programski jezik na svijetu. Prilog tome govori i činjenica da je JavaScript na prvom mjestu najpopularnijih tehnologija i programskih jezika po anketi StackOverflow-a za 2020. godinu. Anketu možete pogledati ovdje.

Polivalentnost

Većina jezika ima svoju namjenu, ono u čemu su dobri i gdje ih je najbolje koristiti. Neki programski jezici su dobri za back-end development, neki za front-end development, neki za razvoj desktop aplikacija, a neki za programiranje hardvera i IoT uređaja. Jedna od prednosti JavaScripta je ta što je jedan od rijetkih programskih jezika koji omogućuje developeru da poznavajući JavaScript izrađuje web stranice/aplikacije, mobilne aplikacije, desktop aplikacije, programira softver za IoT uređaje itd. Skoro pa da ne postoji drugi programski jezik koji pokriva ovako širok spektar IT oblasti, što je sigurno dobar razlog za učenje istog.

Velika potražnja

Danas je općenito velika potražnja za developerima, pa tako i JavaScript developerima. Razlog za to je sigurno današnji trend informatizacije skoro svakog poslovanja preko web-a. Uspješno poslovanje danas zahtijeva vlastiti webshop (posebno u ovo doba pandemije), mogućnost dostave, rezervacije, kontakt i slično. Ne moram ponavljati da je web domena na kojoj uvjerljivo caruje JavaScript. Dokaz za velikom potražnjom je i anketa DevSkillera za 2020. godinu iz koje možemo vidjeti da 72% svih kompanija traži JavaScript developera.  Detaljnije možete pogledati ovdje.

Plaća

Iako je opće poznato da su developeri danas plaćeni iznadprosječno, JavaScript developeri nisu izuzetak od tog pravila, pa tako jedan senior Javascript developer u Americi može imati mjesečnu brutto plaću od 8350$ tj. negdje između 5000-6000$ netto, ovisno o regiji i porezu. Istraživanje je sprovedeno od ugledne kompanije Indeed a detaljan izvještaj možete pročitati ovdje.

Kao i sve drugo kad je u pitanju ekonomija, tako su i plaće za JavaScript developere ovdje na Balkanu manje u odnosu na druge razvijenije zemlje. Ipak i dalje su veće od prosječne balkanske plaće i po nekoliko puta.

Odlični temelji za razvoj i učenje u drugoj oblasti

Sukladno prethodno opisanoj polivalentnosti, izravna posljedica je olakšana mogućnost rada ili preusmjeravanja karijere u drugom smjeru. Primjerice, jedan Python back-end developer će vjerojatno cijeli svoj radni vijek provesti programirajući kao back-end developer. S druge strane jedan front-end developer koji dobro poznaje JavaScript može vrlo lako napraviti switch s frontenda na razvoj mobilnih aplikacija.

U zadnje vrijeme , to je postao i trend gdje IT tvrtke svojim developerima dopuštaju da se prebacuju na druge domene rada u kojima nisu toliko iskusni. Razlozi mogu biti razni, a neki od njih su zasićenje, želja za radom u nečemu novom i nepoznatom, mogućnost napretka u karijeri, želje za učenjem popularnijih programskih jezika/tehnologija i slično.

Dobrim poznavanjem JavaScripta imate čvrste temelje za izvesti prethodno opisano upravo zbog toga što jako veliki broj današnjih popularnih frameworka, library-ija i tehnologija je utemeljeno na JavaScriptu.

Želiš razvijati web aplikacije ili web stranice? Tu je React, VueJS, Angular, Svelte i mnoštvo drugih.

Ukoliko si osoba koja je više orijentirana na back-end, tu je node.JS

Zanima te razvoj mobilnih aplikacija? Tu su React Native, Ionic, NativeScript, koji su također utemeljeni na JavaScriptu.

Želiš razvijati desktop aplikacije? Tu je ElectronJS.

Ok, ali odakle početi? Što točno trebam znati?

Kod učenja svakog programskog jezika treba krenuti od osnova koje je potrebno savladati s razumijevanjem i tek onda krenuti na složenije cjeline. Kod učenja JavaScripta preporučujem učenje sljedećih cjelina točno ovim redoslijedom:

  • Leksička struktura JS-a
  • Varijable, deklaracije
  • Tipovi podataka, konverzije
  • Rad s tekstom
  • Operatori
  • Petlje
  • Nizovi
  • Funkcije (osnovno)
  • Objekti
  • Browser okolina, web API-iji
  • DOM manipulacija (mijenjanje DOM strukture, mijenjanje sadržaja i atributa, mijenjanje stilizacije)
  • Događaji
  • Napredni koncepti (hoisting, scope, namespace, ključna riječ this)
  • Funckije – napredno (closures)
  • OOP elementi u JS-u (ključna riječ new, prototype)
  • ES6 standard (spread i rest operatori, use strict mode, var/let/const, promise, arrow funkcije itd.)
  • Rad s API-ijima (REST APIs, JSON, HTTP requesti)

Sve ovo gore nabrojano možete pronaći na internetu i učiti vlastitim tempom. Neki resursi su besplatni dok se drugi plaćaju po nekoj simboličnoj cijeni.

Volite pažljivo strukturirane kurikulume s puno zadataka i želite imati certifikat? Ovi resursi su za vas:

Ako ste osoba koja voli učiti iz dokumentacije, samostalno istražujući, ovi će vam resursi pomoći:

Najbolje učite iz knjiga? Evo par jako dobrih:

Volite online tečajeve i video format učenja?

Maximilian Schwarzmüller, JavaScript – The Complete Guide 2020 (Beginner + Advanced) 

Andrei Neagoie, JavaScript: The Advanced Concepts

Napomena za kraj

Ukoliko sam Vas čitanjem ovog članka naveo da odlučite početi učiti JavaScript (ili barem pokušate), želim ovako javno obznaniti da ne odgovaram za nastalu štetu po vaše psihičko zdravlje, pretrpljeni stres i ne snosim troškove vašeg liječenja. 🙂

Šalu na stranu, naoružajte se strpljenjem i voljom jer ćete se bezbroj puta pronaći u ovakvim situacijama:

Podijeli

Povezane novosti