Ivan Đurđevac - PHP programer

PHP je programski jezik velikih mogućnosti bez kojeg web aplikacije koje koristimo svaki dan ne bi bile ovako moćne. Ivan Đurđevac nas je uveo u svet PHP-a i objasnio nam kako je biti majstor svog zanata, odnosno programer jednog od najpolularnijih programskih jezika danas.

 

Zdravo Ivane, hvala ti što si izdvojio vreme za Tajne Zanata. Da li bi mogao da nam kažeš nešto osnovno o svom poslu? Šta je suština tvog zanata?

Iz mog ugla najvažnija je mogućnost da ljudima olakšamo i promenimo živote na bolje. To je ono što treba da bude naš krajnji cilj. Skoro sam imao priliku da pogledam intervju sa korisnikom naše aplikacije, koji je dao otkaz na svom poslu kada je počeo da prodaje svoje kurseve i potpuno se posvetio onome što voli. Putem interneta on uči ljude da sviraju instrument čudnog izgleda (handpan) koji odlično zvuči. Naša aplikacija mu je pomogla da postigne maksimalan učinak u prodaji i promeni svoj život. Suštima nije u alatima i programerskoj veštini, već u ljudima. Nisu najuspešniji programeri oni koji poznaju tehnologiju, već oni koji razumeju šta je ljudima potrebno.

Koliko dugo se baviš svojim poslom i kako je to izgledalo na samom početku?

I meni je teško da poverujem, ali već 15 godina se bavim programiranjem. U programerski svet sam ušao onog trenutka kada sam se susreo sa Delphi 4 platformom za razvoj desktop aplikacije uz pomoć objektnog paskala još u srednjoj školi. Bio sam fasciniram činjenocom da je dovoljno prevući komponentu na formu, podesiti joj osobine, napisati nekoliko linija u kodu i već imate gotovu Windows aplikaciju koja se može izvršavati na svakom računaru. To je bio trenutak kada sam znao da će ovo biti moj posao. Pre završetka studija dobio sam svoj prvi posao kao programer. Razvoj poslovne aplikacije pisane u Delphi-u bila je pravi izazov i motivacija za mene. Internet programiranje koje je u to vreme bilo u povoju je bilo izazovnije, njegova budućnost je delovala svetlije za razliku od Delphi-a koji je gubio trku i popularnost, i ja sam se okrenuo internet programiranju. Od tada pa do danas svet internet programiranja je doživeo veliku evoluciju i u godinama koje su ispred nas nastaviće da se razvija neslućenim brzinama. U vreme kada sam ja počinjao mislim da je bilo jednostavnije i lakše ući u svet programiranja, danas smo preplavljeni alatima, mogućnostima i tehnologijama. Danas se od programera očekuje da pokriva širi dijapazon tehnologija i alata.

Koliko je važno formalno obrazovanje za posao PHP programera?

Formalno obrazovanje nije presudno da se neko bavi ovim poslom. Ima primera vrhunskih programera koji nisu završili visoke škole, ipak šire obrazovanje vam može otvoriti perspektive koje će vas pomeriti sa pozicije izvršioca zadataka do nekoga ko svoje ideje sprovodi u delo. Mnogi smatraju da je upravo poznavanje različitih naučnih oblasti i njihovo povezivanje ono što čini Elona Muska jednim od najboljih preduzetnika današnjice. Mladima preporučujem da se posvete formalnom obrazovanju, ali i da nastave da se edukuju nakon studija, jer internet nam pruža mogućnost da istražimo sve oblasti koje nas zanimaju.

Na koji način nadograđuješ svoje znanje?

U oblasi koja napreduje vrtoglavim brzinama, edukacija je neminovnost. Čitam dosta knjiga, i slušam video kurseve. Na Udemy-u ima veoma kvalitetnih kurseva koji se mogu kupiti za samo deset dolara kada su na popustu, a to je skoro pa uvek. Tviter je osnovni kanal na kojem se informišem o svemu što se dešava u PHP zajednici na globalnom nivou. Svoj tweet line sam tako isfiltrirao da pratim i samo vidim tweetove koji su kvalitetni, u smislu da me informišu ili vode do dobrog članka ili bloga. Sve drugo što se meni ne čini zanimljivo i korisno ne pratim. Ako se pravilno koristi tviter može biti koristan izvor informacija. Ono što sam zapostavio u poslednjih nekoliko godina jeste korišćenje rss čitača i čitanje blogova, za šta su možda zaslužne upravo društvene mreže.

Koliko je za tvoj posao važna teorija, a koliko praksa?

Za juniore najvažnije je da sve što nauče u teoriji probaju i provežbaju u praksi. Vežba i praksa su u tom periodu od ključne važnosti. Na putu od juniora do seniora potrebno je ovladati i principima programiranja, arhitekturom aplikacija kao i dizajn paternima. Na ovom stepeniku neophodno je dobro ovladati teorijom pre nego što se upustimo u praktičnu primenu. Kada se ovlada i teoretskim znanjem i praksom rezultati su značajno kvalitetnija arhitektura aplikacija, jednostavnija rešenja i bolje razumevanje problema.

Kako se obezbeđuje kvalitetna praksa u tvom poslu?

Da biste došli do kvalitetene prakse potrebno je da se nađete u timu koji koristi najnovije tehnologije i primenjuje "best practice" iz svoje oblasti. Ukoliko ste u timu koji se opire novim tehnologijama, praksama koje se preporučuju u vašem ekosistemu, možda je vreme da promenite firmu i potražite drugi tim. Ukoliko ste početnik koji nikada nigde nije radio, onda se posvetite knjigama, vežbajte i priključite se nekom open source projektu. Povežite se sa ljudima iz vaše oblasti i pokušajte da napravite neki svoj projekat, da neku svoju ideju pretočite u delo. Sve to dovešće vas pre ili kasnije do boljeg okruženja gde ćete moći još više i brže da napredujete.

Kako izgleda tvoj radni dan?

U timu u kojem radim primenjujemo deo agilnih metodologija koje su se u našem slučaju pokazale korisne i efikasne, prilagođene distribuiranom timu. Kada dođem na posao, na slack kanalu predviđenom za "daily standup", napišem šta sam od zadataka završio prethodnog dana, šta planiram da uradim danas, i da li imam bilo kakvu prepreku u radu. To nam pomaže da znamo šta ko radi u bilo kom trenutku, ali i da pomognemo ako neko ima neki problem koji ne može samostalno da reši. Svakoga dana u određeno vreme održavamo online polučasovni sastanak na kojem raspravljamo o aktuelnim temama i zadacima kao i problemima koje trebamo da rešimo. Jednom nedeljno imamo duži sastanak na kojem pravimo retrospektivu kompletne nedelje u kom analiziramo postignute rezultate i sagledavamo šta je to što smo mogli da uradimo bolje i kvalitetnije. Svakodnevno radimo na razvoju novih funkcionalnosti, koje se testiraju a zatim se radi deploy na produkcioni server. U komunikaciji sa kolegama dolazimo do najoptimalnijih rešenja i najboljih ideja. Trudim se da u toku radnog dana određeni deo izdvojim za edukaciju. Najčešće je to neki video sa konferencije ili online kurs.

Koji su tvoji omiljeni alati za rad?

Za nekoga ko se bavi web razvojem bitno je da razvija u operativnom sistemu koji je baziran na Unixu, kako bi se srodio sa okruženjem u kom se izvršavaju aplikacije koje razvija. U samom početku sam kao i svi koristio Windows sa Wamp-om, ali sam onda prešao na Linux okruženje. Nakon nekoliko godina odlučio se da probam OSX operativni sistem koji pruža udobnost desktopa, a pritom se oslanja na Unix. To je trenutno okruženje koje svakodnevno koristim. Kako bih imao istovetno okruženje kao na serveru koristim Vigrant i VirtualBox koji mi pružaju mogućnost da lako i jednostavno podesim virtuelne mašine sa Ubuntu ili CentOS operativnim sistemima. Terminal je najbolji prijatelj svakog programera. Ja koristim iTerm2 koji sam podesio tako da kada dodjem na posao sa jednim klikom na tastaturi otvaraju mi se četiri prozora za rad, pokreće se shell skripta, koja podiže Homestead Vagrant koji svakodnevno koristim, i ostavi komentar na Slack-u da sam u kancelariji, kako bi članovi tima znali da sam dostupan. Na sličan način se odjavljujem i suspendujem Vagrant. Kada je već reč o komandnoj liniji, jedan od omiljenih dodataka jeste ZSH i Oh-My-Zsh shell koji sa svojim predefinisanim alijasima i funkcijom da se lako i brzo sa tab-om i strelicama gore-dole dođe do potrebne komande značajno štedi vreme. Jos jedan mali alat koji štedi vreme, jeste Jump sa kojim se brzo prelazi (skače) u foldere koje često koristim. PHP Storm je odličan IDE koji se veoma često ažurira sa najnovijim funkcionalnostima i brzo prati promene u web ekosistemu, tako da je zadovoljstvo koristiti ga. Za brze izmene malih projekata i pojedinačnih fajlova koristim Visual Studio Code, koji iako je od Microsoft-a veoma dobar i brz editor. Kako je broj naloga i alata koje koristim postao preveliki da bih mogao da pratim, LastPass je alat koji za mene pamti lozinke i štedi vreme.

Kako si odabrao omiljeni editor i framework?

O mogučnostima PHP Storm-a koji koristim mogao bih da pišem danima, jer njegova lista mogućnosti je nesaglediva. Koji god IDE da koristite, važno je da istražite sve njegove mogućnosti i da ih koristite ako će vam to ubrzati i olakšati rad. Što se tiče frejmvorka, ja radim u Laravelu, jer se sa njim mogu pisati kvalitetne aplikacije uz maksimalnu uštedu vremena. Glavna karakteristika ovog frejmvorka jeste da je okrenut tome da programeru što više olakša posao tako da ima dosta "synthetic sugar" elementa. Ipak dobro je da programeri eksperimentišu i poznaju više od jednog frejmvorka da se ne bi zatvorili u kutiju iz koje ne vide dalje od svog frejmvorka.

Da li si aktivan član PHP zajednice u Srbiji ili u inostranstvu?

Bio sam uključen u osnivanje udruženja PHP Srbija koje je danas na zavidnom nivou organizacije. Danas više nisam aktivan u udruženju, ali preporučujem svakome da pristupi udruženju koje je veoma otvoreno za nove članove i nove ideje. Svim PHP programerima, a posebno početnicima, preporučujem da posete meetup koji PHP Srbija organizuje jednom mesečno u Beogradu. Jednom godišnje ogranizuje se velika međunarodna konferencija koja okuplja najbolje predavače iz celog sveta. Prilika da od najboljih čujete i naučite nešto novo je nešto sto sebi ne smete da dozvolite da propustite.

Može li se u Srbiji lagodno živeti od bavljenja tvojim poslom?

Ovo jeste jedno od zanimanja sa kojim se može živeti lagodno, samo je potrebno da se ispeče zanat i dođe do nivoa seniora. Mediji zajedno sa prodavcima jednogodišnjih kurseva stvaraju lažnu sliku da je moguće završiti kurs i nakon toga možete raditi u nekoj firmu za 1000e. Istina je da senior programeri imaju plate veće od tih famoznih 1000e, ali da je za postizanje tog nivoa znanja bio potreban niz godina sa konstantnim učenjem za koje se mora izdvojiti vreme i nakom završenog posla. To u praksi znači da se nekada i do 10 sati dnevno izdvaja za rad i učenje. Seniori sa dobrim platama koje ja poznajem, ne rade od 9 do 5. I nakon više od 10 godina u ovoj profesiji, ja učim, čitam knjige i gledam kurseve kako bih nadogradio svoje znanje. Da biste došli do nivoa plate koja je iznad proseka, vaše znanje i veštine koje posedujete moraju da budu iznad proseka. Druga strana medalje jeste da neko ko završi kurs, neće moći odmah da nađe posao, jer firme žele juniora koji je sposoban da samostalno završava zadatke. Izlazak iz tog začaranog kruga je moguć dodatnim angažovanjem i završavanjem svog projekta ili radom na open source projektu. Za to vam niko neće platiti ni dinara, ali ćete steći dodatne veštine, sigurnost i nešto konkrento što možete da pokažete kada odete na razgovor za posao. Kada prvi put budete na poziciji programera, nećete imati platu od 1000e, i nemojte je tražiti, jer je to nešto što možete očekivati onda kada budete dostigli taj nivo znanja i veština. Ipak, nija valjda da verujete svemu što čujete na reklamama?

Da li je posao programera stresan i kako ti upravljaš stresom na poslu?

Ja imam tu sreću da radim na razvoju konkretnog proizvoda i da već nekoliko godina ne znam šta je to deadline. A svi znamo da su nerealni rokovi maštovitih menadžera najveći izvor stresa. Samo lagano i bez sekiracije.

Danas se možda i previše priča o poslu programera, da li je zaista neophodan veliki broj programera da bi se zadovoljile realne potrebe? Da li baš svako može da bude programer?

Umesto odgovora na pitanje da li je potreban veliki broj programera, citiraću samo dve informacije koje sam pročitao na društvenim mrežama u prethodnih nekoliko dana.

- "18 miliona programera na svetu, samo 5 hiljada ih zna blockchain, od toga je možda 1000 dobrih"

- “IT direktor BMW-a vidi BMW kao softversku kompaniju u budućnosti, da ne bi završili kao Nokia - džaba i najbolji hardver, ako softver ne može da isprati nova očekivanja i potrebe korisnika”

Ne može i ne treba svako da bude programer, svetu su potrebni i doktori i muzičari. Zato neka svako radi ono što ga čini srećnim. Ne preporučujem ulazak u programerske vode kada je novac jedini motiv. Ako ste spremni da i kada naiđete na problem ne odustanete dok ne pronađete rešenje, makar je za to bilo potrebno i nekoliko sati frustracije i moždanog naprezanja, i da budete zadovoljni nakon toga, onda ste materijal za programera. Ovo je nešto što svaki junior mora da prođe i to je jedini način da se stekne znanje i iskustvo.

Kako sebe i svoju profesiju vidiš u budućnosti?

Teško je dati odgovor na ovo pitanje. Možda odgovor treba pronaći u virtuelnoj stvarnosti, veštačkoj inteligenciji i možda u blokchain-u. Sigurno će profesija programera biti tražena i u budućnosti samo što očekujem da će više biti okrenuta tehnologijama koje sam naveo. U poslednjih nekoliko godina front-end jezici i frejmvorci su značajno napredovali i sve više su zastupljeni. Ne očekuejm da će PHP prestati da se koristi, ali će front-end frejmvorci biti sve traženiji i zastupljeniji. JavaScript će još dugo vladati scenom 🙂

Za kraj: Šta bi poručio svima onima koji žele da postanu PHP programeri?

Preporučujem vam da posećujete što više PHP konferencija i da se povezujete sa kolegama. Naučićete mnogo više i otvoriće vam se neke nove perspektive. Čitajte knjige - što više knjiga. Ne fokusirajte se samo na PHP, već istražujte sve oblasti koje vas zanimaju, čak i izvan informacionih tehnologija. Radite podjednako i na svojim soft skill veštinama.

 

Hvala Ivanu, što nam je sa puno entuzijazma otkrio tajne svog zanata. Do sledećeg čitanja.

Top