SITNA CREVCA
Kako postati programer (1)
Dobro plaćen i zanimljiv posao
Ognjen POPOVIĆ
1. oktobar 2016.

Tekstovi o programiranju su na stranicama „Sveta kompjutera” bili mnogo prisutniji pre nekih dvadesetak godina. „Svet kompjutera” je imao „Hakerski bukvar”, „Intro servis” i druge rubrike, koje su vremenom nestale iz sadržaja. Izuzetak od pravila su sjajni umeci „Dodavanje dinamike” i „Mala škola ajaksa” u kojima smo pre nekoliko godina pisali o web programiranju ili serija tekstova o osnovama programiranja aplikacija za pametne telefone i tablete koju smo objavili kada je to bilo najaktuelnije. Brojni su razlozi zašto smo prestali da objavljujemo slične tekstove, među kojima su manje intresovanje za ovu oblast u jednom periodu, prelazak programiranja iz hobističkih u profesionalne vode, ali i nepovoljna ekonomska situacija u zemlji, što je nažalost i danas jedna od glavnih kočnica za ostvarivanje mnogih ideja vezanih za časopis.

Započinjemo seriju tekstova koji će biti namenjeni onima koji su tek započeli da se interesuju za programiranje. Put ka uspehu je stvar vežbe i upornog rada, pa zato krenite odmah.

Autoru je čast što će na ovim stranicama napisati nešto što izdaleka podseća na zaboravljene rubrike. Započinjemo seriju tekstova koji će biti namenjeni onima koji su tek započeli da se interesuju za programiranje. Nivo stručnosti tekstova biće bliži rubrici „Kompjuterske vode” koja je izlazila sredinom devedesetih, sa namerom da olakša novopečenim kompjuterašima bolje razumevanje, tada relativno novih, PC računara. Razlika je što u ovom slučaju težište stavljamo na oblast programiranja. Ovaj serijal neće sadržati predugačke kôdove, niti ćete čitanjem serijala postati stručnjak za konkretan programski jezik. Želimo samo da prođemo kroz najvažnije termine i pojmove sa kojima ćete se susretati na putu ka vrhunskom softverskom inženjeru i samim tim biti u stanju da lakše samostalno nastavite u tom pravcu. Danas nije problem naučiti programski jezik - problemi nastaju u svim onim propratnim buzz wordovima, podešavanjima i koracima koji su vam potrebni da biste uopšte počeli sa samim postupkom pisanja kôda.

Ako ste iskusan plivač, za vas će ovo biti samo gaz preko plitkog potoka, te mirno možete otplivati u dublje vode. Međutim, možda i iskusniji programeri pronađu nešto što do sada nisu znali, jer nikad ne znate šta vas čeka kada spustite pogled i umesto peska u plićaku ugledate duboko crno more.

Programiranje nekad i sad

Razlika u načinu na koji se programira danas i u eri pre PC računara je velika. Programiranje je bilo rasprostranjeno na kućnim računarima, a programer je često morao da poznaje hardverska ograničenja i arhitekturu kompjutera na kojem radi kako bi programskim putem maksimalno iskoristio raspoložive resurse. Učilo se iz dostupnih knjiga, slanjem pisama, a internet na kom danas možete pronaći odgovor na skoro svako pitanje, nije postojao. Okruženje u kojem se pisao kôd je bilo mnogo primitivnije, a postupak pisanja i snimanja izvornog kôda je bio sporiji.

Danas je hardverska moć računara neuporedivo veća. Za pravljenje svih osim najzahtevnijih aplikacija ne morate biti vrhunski programer i previše razmišljati o optimizaciji kôda. Prosečno znanje će biti dovoljno za solidnu platu, programeri nisu više stereotipni nosioci očnih pomagala, a u industriji se povećava i broj ženskih programera. Odgovor za veliki broj vaših programerskih problema sigurno se već nalazi dostupan pretragom raznih sajtova na internetu, a rešenje se postiže maltene copy-paste metodom. Pojavljuje se ogroman broj biblioteka i frameworkova koji nadograđuju programski jezik i olakšavaju rad. Loša strana ovolike ekspanzije je to što te nove tehnologije niču kao pečurke posle kiše, ali relativno brzo i padaju u zaborav. Pored programskog jezika, danas je za uspešnog programera ključno poznavati i ove frameworke.

Da li se isplati biti programer?

Isplati se! Imamo utisak da u Srbiji postoji jedna nova staležna grupa koju čine programeri (pročitajte Miodragovu kolumnu iz prošlog broja). Ko je imao sreću da je rođen u pravo vreme, pri čemu mislimo na generacije koje su sredinom 2000-tih upisivale fakultet, može da zarađuje mnogo više, ne samo od svojih vršnjaka, nego i od većine građana Srbije. U to vreme su se pojavili privatni fakulteti specijalizovani za programiranje, a oni državni su polako prilagođavali stare ili nove smerove povećanoj potražnji za programerskim veštinama.

Strane firme znaju da je Srbija važi za zemlju sa kvalitetnim programerskim kadrom. Računica je jasna jer su ponuđene plate za nas visoke, a za njih niske. Moguće je da već po završetku srednje škole (matematička gimnazija ili neka sa programerskim usmerenjem svakako nije loša preporuka), novopečeni brucoš koji je samostalno izučavao programiranje par godina unazad, u najjačim firmama dobije praksu i platu od hiljadu evra. Kako je radno vreme obično klizno, moguće je nekako uskladiti i fakultetske obaveze sa praksom. Češća varijanta ipak jeste da se posao nudi diplomiranim studentima ili studentima završnih godina. To su pre svega ETF, PMF, Računarski fakultet, ali i drugi. Ako imate dovoljno novca, naša preporuka je privatni fakultet i vaša želja za učenjem, a ne provlačenjem kroz gradivo (u skladu sa ambicijama).

Zavisno od škole, diploma nosi određenu težinu, podrazumeva širok spektar obrazovanja i ostavlja dobar utisak na poslodavce. Ipak, programiranje nije zanimanje koje isključivo zahteva ovaj „papir”. Ukoliko imate motiva i vredni ste, možete brzo da napredujete u programiranju i na druge načine, kao što su mnogobrojne akademije, kursevi, ili online resursi, a na razgovorima za posao se pre svega traži da pokažete znanje. To znači da postoji realna mogućnost zaposlenja iako niste više u cvetu mladosti da biste se vraćali na studije, mada ćete imati izvesni hendikep u odnosu na mlađe generacije. Na internetu nije teško pronaći test primere pitanja i zadataka kakve ćete dobiti pri konkurisanju za posao.

Programerske pozicije se grubo dele na juniore, mediore (ko još ovo izmisli) i seniore. Sve te podele su odokativne, pa recimo da vam je potrebno godinu-dve dana iskustva i/ili učenja za prvu kategoriju, tri do pet za drugu, i tako dalje, sve zavisi od tempa kojim napredujete. Plate za ove pozicije takođe znatno variraju od firme do firme. Za prvu to može biti sve između 400 i 1000 evra, za mediore od 700 do 1500 evra, a za seniore od 1300 pa 2000+ evra. U tim iskusnijim programerskim godinama često postajete i koordinator tima ljudi koji rade na nekom projektu. Što se plate tiče, u nekim firmama ćete deo dobijati na ruke ili na bankovni račun kao fizičko lice, što je isto kao da radite kao freelancer. U nekima ćete samo deo sume dobijati na ruke, a u nekim ćete imati puno zaposlenje i doprinose. Na ovom linku možete pogledati rezultate jednog od većih istraživanja sprovedenih prošle godine u našoj zemlji: http://startit.rs/istrazivanje-srpski-programeri-plate-obrazovanje/. Naravno, statistika nikada ne daje potpuni uvid, ali možete steći okvirnu sliku uzimajući u vid istraživanje, ali i komentare čitalaca.

Posebna kategorija je biti freelancer, iliti raditi kao „slobodan strelac”. Obično ćete raditi za strane firme, a uplate primati na svoj devizni račun. Imajte u vidu da se za svako primanje novca mora platiti porez državi. U praksi to niko ne proverava i frilenseri od pamtiveka ne plaćaju ništa. Mi to, naravno, ne smemo da preporučimo, a ukoliko imate redovne poslove i primanja, jedno od najlakših pravnih rešenja je postati preduzetnik. Ukoliko frilensujete sa firmama u našoj zemlji, one će, za razliku od stranaca, od vas svakako očekivati da budete jedno takvo pravno lice. Ovo su već pitanja druge prirode koja zahtevaju plaćanje savetodavnih usluga knjigovođe ili pravnika i možemo se osvrnuti na njih u nekom od narednih brojeva ukoliko za to bude interesovanja.

Gde učiti programiranje?

Stranica broj jedan za rešavanje programerskih problema je Stack Overflow. Članovi sajta mogu da postavljaju pitanja, ali i da pišu odgovore. Svako dobro postavljeno pitanje ili pružen odgovor obično su nagrađeni od strane članova, što je sistem koji održava kvalitet sajta na visokom nivou. Akitvnost na ovom sajtu možete ubaciti i u sopstveni rezime. Programiranje za Internet je veoma traženo, a jedna od poznatijih, mada pomalo osporavanih stranica, je www.w3schools.com. Pored nje, svakako pogledajte i Mozilla developer network na developer.mozilla.org, dok u razmatranje online kurseva možete krenuti od Codecedemyja, ali su tu i udemy.com, coursera.org i drugi (lista je preduga). Resursa za učenje zaista ima mnogo, od obične pretrage na Googleu, pa i YouTube videa, sajtova kao što su Quora ili Reddit, Facebook grupa i tako dalje.

Mogućnosti informisanja i učenja preko domaćih resursa i te kako postoje. Organizacija Startit je na Kickstarteru prikupila više od 100.000 dolara za ulaganje i razvoj IT-a u Srbiji. Od uloženog novca je, pored centra u Beogradu, za sad izgrađen i centar u Inđiji. U ovim centrima se često organizuju razna predavanja, besplatne ili komercijalne programerske radionice, a sajt (startit.rs) je dobar izvor vesti iz IT sfere. Zatim, preporučujemo da pratite Dafed (dafed.org), neprofitnu organizaciju posvećenu umrežavanju i organizovanju edukativnih događaja za IT zajednicu. Zanimljiva predavanja se naknadno kače na njihov YouTube kanal.

Susreti, odnosno „meetupi” (www.meetup.com), omogućavaju da se prijavite u grupe koje se bave programskim jezicima i periodično, bez obaveze, prisustvujete organizovanim skupovima u vašoj blizini. Na njima se družite, slušate predavanja, a to je i jedan od načina da budete u toku sa događajima iz IT sveta.

Što se domaćih kurseva tiče, ponuda je i više nego raznovrsna. Posetite www.kursevi.com za jedan od načina pretrage. Na kraju krajeva, ne zaboravite ni staru dobru - knjigu. Iako tehnologije jako brzo napreduju, novo izdanje neke knjige može biti aktuelno dovoljno dugo.

Kako naći posao?

Berza poslova u našoj zemlji je prepuna otvorenih pozicija za programere. Pored mejling lista i oglasa na fakultetima, opet možete posetiti sajt Startit jer veliki broj firmi baš tu postavlja oglase. Startit je napravio i listu praksi koju možete videti na startit.rs/it-prakse-prakse-za-studente-2016. Slične informacije postoje na sajtu helloworld.rs (deo Infostud portala). Na njemu možete naći i vesti iz industrije, kao i insajderske komentare i ocene firmi od strane ljudi koji u njima rade (pogledati i ogledalofirme.com). Vrlo aktivan forum sa berzom poslova je www.elitesecurity.org, a pogledajte i www.itposlovi.info. Facebook ima veliki broj grupa u kojima se razmenjuju i znanja i pružaju poslovne prilike, navedimo samo grupe IT poslovi i prakse, HTML/CSS/JS Srbija, i tako dalje. Preporučićemo i sajt angel.co koji je zanimljiv jer vam pruža priliku za ulaz u mlade i startap kompanije. U ovako ranom razvoju firme, kao kompenzaciju možete očekivati mali procenat vlasništva kompanije, nauštrb visine plate - što je praksa koja kod nas još nije preterano zaživela.

Mnoge firme i organizacije, kao što su Nordeus ili Fonis sa Fakulteta organizacionih nauka, organizuju takmičenja kao što su Hakatoni, o kojima smo već pisali u više navrata. Učešće u njima je prilika za sticanje iskustva u branši, a možda i za dobijanje posla. Microsoft duži niz godina organizuje Bubble Cup takmičenje za studente i srednjoškolce. Nalik organizaciji Bubble Cupa, postoje izazovi na tzv. Online judges sajtovima (en.wikipedia.org/wiki/Online_judge). Iako se radi o kompetitivnim takmičenjima za iskusne programere, vas će zanimati da potražite tutorijale ili izazove za početnike. Potrebno znanje možete da steknete preko domaćeg sajta Microsoft BubbleBee.

Za freelance rad preko interneta pogledajte www.upwork.com, koji je nastao sjedinjavanjem dva velika freelance sajta oDesk i Elance. Pored toga pogledajte www.toptal.com, ali da biste putem njega mogli da ponudite svoje usluge firmama iz belog sveta moraćete da ispunite mnogo strože kriterijume. Ako se odlučite za ovaj put, posvetite malo vremena kreiranju svog korisničkog profila, a građenje CV-ja možete početi konkurisanjem za najsitnije poslove, kao što je izrada domaćeg zadatka bogatom klincu iz zemlje prvog sveta. Pomenuti Stack Overflow ima berzu poslova, pa je i to jedan od načina da konkurišete za rad u inostranstvu.

Za povezivanje sa IT profesionalcima i programerima, preporuka je napraviti profil na Linkedinu. Ljudi zaposleni na HR pozicijama redovno gledaju profile kandidata, pa ponekad možete očekivati i poziv na razgovor za posao (istina sa velikim brojem drugih kandidata, ali vam je ponuda ipak „pala s’ neba”).

Ovaj pomalo nadahnuti deo teksta ublažićemo činjenicom da programerski posao nije lak. Zahteva dugo sedenje za računarom i sigurno ćete proživeti mnogo neprijatnih situacija kada kasnite sa rokovima i kada po više sati ne možete da utvrdite zašto, tako mu integera, dolazi do greške u kôdu. Put ka uspehu je stvar vežbe i upornog rada. U nastavku krećemo sa nekim osnovama programiranja, a nastavljamo i u sledećim brojevima, pa sve dok nas sa znanjem ne prestignete.

Grlom u kodiranje

Kako programiranje, koje se na engleskom često naziva kodiranjem ili razvijanjem (coding, developing), uopšte izgleda? Za sticanje predstave o tome, pogledaćemo kako se piše par jednostavnih komandi, bez naročitog udubljivanja u teoriju.

int x = 5;

int broj = 1;

String imeCasopisa = „Svet kompjutera”;

System.out.println(„Zbir brojeva je „ + (x + broj));

System.out.println(„Ime casopisa je „ + imeCasopisa);

Ovaj program je pisan po sintaksi, tj. po pravilima programskog jezika Java. U prva tri reda mi u program uvodimo tri takozvane promenljive, koje smo nazvali broj, × i imeCasopisa. Lako je videti da smo tim promenljivama dali da imaju neke vrednosti tako što smo koristili znak jednakosti. Pravilo je da ispred imena napišemo int ako promenljiva treba da postane broj, a String ako treba da bude neki tekst. U suprotnom, došlo bi do greške. Zatim smo iskoristili dve komande jezika Java pomoću kojih na ekran ispisujemo tekst. Taj tekst se može pisati iz više delova povezanih znakom plus. Primetite da se u celom kôdu po završetku jednog „iskaza” stavlja znak tačka zarez.

Ukoliko želite da već sada kreirate svoj prvi program na računaru, ovaj kod možete da iskopirate u neku „aplikaciju” za programiranje. Takve aplikacije, i to besplatne, možete skinuti sa interneta. Neka to bude NetBeans.

Da biste uopšte mogli da programirate u Java programskom jeziku, morate da imate instaliran tzv. JDK (Java Development Kit). Na sledećem linku kliknite na Javu (bez NetBeansa, jer ćemo njega na kompjuter snimiti na drugi način) i izaberite verziju za vaš operativni sistem: http://www.oracle.com/technetwork/java/javase/downloads/index.html. Nadamo se da možete sami da utvrdite da li vam je Windows u 32-bitnoj ili 64-bitnoj verziji, npr. tako što uradite desni klik na My Computer, tj. This PC.

Sada se uputite na sajt NetBeansa, koji možete i sami da pronađete, pa pritisnite veliko dugme download. Pošto je naš primer u Javi, možete da izaberete neki od prva dva paketa, ali možete da izaberete i ceo paket (all bundle), ako nekad poželite da pišete kôd i u drugim programskim jezicima. Instalirajte NetBeans kliktanjem ’OK’ i ’Next’ na sve što vam se ponudi (osim možda slanja telemetrijskih podataka autorima). U jednom trenutku bi automatizovani proces trebalo da prepozna malopre instalirani JDK, pa je i tu dovoljno da samo potvrdite nastavak instalacije.

Kada je instalacija završena, otvorite NetBeans i Izaberite: New Project: Java: Java application. Kliknite ’OK’ i dočekaće vas automatski generisan kôd. Između vitičastih zagrada tzv. funkcije sa imenom main, unesite kôd iz primera. Primetite komentar „TODO code application logic here” koji će vam ukazati na mesto na kojem bi trebalo da pišete.

Sve je spremno za pokretanje programa. Kao što je slučaj i sa drugim komandama u većini Windows aplikacija, to se može učiniti na više načina. Pritisnite npr. zeleno ’Play’ dugme, i u posebnom prozorčiću videćete tekst koji se ispisao kao rezultat našeg programa. U nadi da će slike biti čitljive u štampi, znatno smo povećali veličinu fonta. U praksi mnogo više kôda staje na ekran.

Ovakav program nazivamo konzolnim, jer je sve što dobijamo tekst koji se ispisuje u tamo neki podrazumevani prozor (output window). Tokom učenja programiranja često ćete praviti samo ovakve konzolne aplikacije, bez ikakvog korisničkog interfejsa na koji ste navikli svakodnevnim korišćenjem kompjutera, koji podrazumeva rad u prozorima i kliktanje mišem. Sigurni smo da vaša mladalačka energija, nasuprot tome, jedva čeka da napravi bilo šta što liči na klasičan program iz „Test Run” rubrike, pa makar on ne radio ništa naročito. Zato odmah dajemo i takav primer.

Za pravljenje klasične aplikacije, ponovite pomenuti postupak, samo u prozoru za pravljenje novog projekta otčekirajte opciju Create Main Class. Nakon toga kliknite desnim tasterom na naziv vaše aplikacije u levoj strani ekrana, i izaberite New: jFrame Form (i potom samo potvrdite). Pronađite opciju design koja se nalazi blizu taba centralnog prozora. Ako već nije, klikom na ovu opciju se prikazuje pogled na tzv. formu. Forma je, da tako kažemo, ono što će se videti u Windowsu kada budete pokrenuli vaš program. Sa desne strane ekrana sada potražite brojne kontrole (komponente). Te komponente su standardne Windows stvarčice kao što su dugmići, padajući meniji, skrol barovi itd. Vi sada možete bukvalno da se igrate umetnika i prebacujete te komponente na vašu formu i tako gradite aplikaciju. Kada pokrenete program, sve komponente koje ste prebacili na formu biće vidljive i upotrebljive.

Ako ste na formu stavili dugme (button), primetićete da ono već u sebi sadrži neku funkcionalnost. Naime, na to dugme ćete moći da kliknete mišem i ono će izgledati kao da je pritisnuto. Osim toga se ništa neće desiti, a da bi se nešto desilo moraćete da napišete kôd. Dva puta kliknite na dugme, što predstavlja najlakši način da vas NetBeans prebaci na mesto na kojem pišete kôd, i to kôd koji će se izvršiti kada neko u vašoj aplikaciji pritisne dugme.

Pogledajte sliku i prepišite kod. Kada pokrenete program, prikazaće se forma sa dugmetom, a efekat našeg kôda je promena teksta na dugmetu prilikom svakog klika. Primetite da, kada pišete kôd, niste u design prozoru nego u source prozoru (u prevodu, izvorni kôd vaše aplikacije). Ako hoćete da na formu ubacujete još neke komponente, vratite se u design prozor. Prvi put po pokretanju programa (klikom na zeleno ’Play’ dugme) NetBeans će ponuditi opciju za main klasu, a vi potvrdite.

Za kraj, pogledajte na slikama kako izgleda isti program, ali na primer u programskom jeziku C#, i to u nekoj drugoj aplikaciji za programiranje. Za programiranje u jeziku C# je najbolje koristiti „aplikaciju” Visual Studio. Sličnosti u načinu programiranja su odmah uočljive, pa već možete reći da nazirete neke zajedničke obrise toka pravljenja programskog kôda. Ovog puta smo izvršili preraspodelu prozora kako bi i forma i kôd stali na jedan ekran.


PRETHODNI TEKST
SLEDEĆI TEKST
Najčitanije
Igre
Telefoni
Hardver
Softver
Nauka
Aktuelno štampano izdanje
JUN 2025
Doom: The Dark Ages
Doom iz mračnog doba drugačiji je od svih drugih Doomova, jer je Slayer koncipiran kao tenk sa štitom...
Clair Obscur: Expedition 33
Estetika Belle Époquea, gameplay u skladu sa kanonima JRPG-a, vrhunsko pripovedanje i ljubav prema igrama...
Computex 2025, Tajpej, Tajvan
AI NEXT
Ovaj, nekada ultra-PC-specifični sajam, odavno se proširio na srodne tehnologije, biznis rešenja i digitalne usluge, postavši varijanta azijskog C...
Gigabyte GeForce RTX 5070 Gaming OC 12G
Višak samopouzdanja
Kartica je sa hardverske strane vrlo kvalitetna, ali ništa ne može da nadomesti nedostatak snage „pod haubom”...
Asus ProArt P16 (H7606WP)
Pronalazak neverovatnog
Novi ProArt P16 donosi moderna rešenja, u dobro usaglašenom odnosu gabarita i performansi – alatka koju ćete sa ponosom nosati sa sobom...
Logitech ProX Superlight 2
Sve udvostručeno
Ovaj miš predstavlja jasnu indikaciju da najveći proizvođač ne želi da napusti nijedan segment tržišta...
Winhance 25.05
Popravka Prozora
U pitanju je alatka koja omogućava da se brzo rešite (većine) bloatwarea, ali i da obavite optimizaciju rada Windowsa...
TCL NXTPAPER 11 Plus
Momak za sve
Ovo bi bio najbolji tablet „za te pare” i da košta 100 evra više...
.rs: Beogradski prevoz na Yandexu • Srbija u SEPA • Loši primeri digitalizacije
Unapređeno e Zakazivanje
Beogradski prevoz na Yandexu • Srbija u SEPA • Loši primeri digitalizacije
Google Mariner, Google Astra i AI autonomni agenti
Uspon tihog softvera
Umesto kliktanja stručnog lica, softver će, već ove godine, u tihom, gotovo nečujnom načinu rada - završavati posao...
Fatal Fury: City of the Wolves
Fatal Fury je oduvek bio čudna cvećka u svetu borilačkih igara; takav je i ostao...
Arc Raiders
Novi extraction shooter iz pera autora dobrih delova franšize Battlefield (i potcenjenog The Finals)...
© 2025 Svet kompjutera. Sva prava zadrzana.
Novi broj - Arhiva - Forum - O nama