Iz ugla programera

Prostor za autentična iskustva, izazove i savete, pružajući uvid u svet programiranja direktno iz perspektive stručnjaka.

Blog Iz ugla programera
05.03.2024. ·
2 min

Koliko smo svoje privatnosti spremni da žrtvujemo na internetu?

Razmatranje politike privatnosti aplikacija koje koristimo često se zanemaruje u žurbi da se iskusi nova funkcionalnost ili usluga. Svesni smo da sve ćešće na internetu nije proizvod ono što nam se predstavlja, već da smo taj proizvod postali mi i naši lični podaci i često na to pristajemo. Ali, koliko su se pomerile granice dozvoljenog za prikupljanje podataka i da li one uopšte postoje? Deljenje informacija na mreži postalo je druga priroda, ali da li se ikada zapitamo šta se dešava sa tim informacijama? Primetno je da čak i ono što smatramo skrivenim ili prolaznim može lako završiti u pogrešnim rukama, kao što pokazuje slučaj britanca Aditja Verme. On je na društvenoj mreži Snapchat šaljivo poslao poruku o tome da će "razneti avion", misleći da je to privatna šala između prijatelja. Međutim, ova poruka je dovela do ozbiljnih posledica, uključujući angažovanje španskih borbenih aviona. Srećom, on nije optužen za terorizam u ovom slučaju, ali mu preti visoka novčana kazna zbog podizanja borbenih aviona koji su reagovali i ispratili avion Edvard Snouden, bivši saradnik američke Nacionalne bezbednosne agencije (NSA), već je upozorio na ovakve opasnosti, ističući kako tehnološki napredak često dolazi s visokom cenom gubitka privatnosti. Njegova otkrića o masovnom nadzoru pokazala su koliko duboko sežu koreni nadzora u digitalnom svetu. Iako je tehnologija donela brojne pogodnosti u našim životima, čini se da smo, možda i nesvesno, pristali na kompromise kada je u pitanju naša privatnost. Ovaj slučaj nas tera da se zapitamo o granicama koje smo spremni da postavimo u ime pogodnosti koje tehnologija pruža. U svetlu ovakvih incidenta, važno je ponovo proceniti kako pristupamo tehnologiji i privatnosti. Moramo da budemo svesni da kompanije kojima ne plaćamo usluge, kao što su Google, Facebook i druge, znaju o nama možda i više nego ljudi sa kojima živimo, a sve češće smo i žrtve sajber kriminala i prodaje naših ličnih podataka na dark web-u. Neki od saveta stručnjaka za zaštitu podataka idu od preporuka da se izbegavaju besplatni komercijalni softveri, kao i društvene mreže, korišćenje bezbednijih alternativa za sveprisutne usluge koje koristimo poput internet pretraživača (DuckDuckGo), pa čak do saveta da nikada na društvenim mrežama ne objavljujemo uživo fotografije, već da ih objavljujemo sa odreženim zakašnjenjem, kako bi veliki broj marketing servisa teže znao gde se tačno nalazimo. Da li smo kao društvo postali previše opušteni kada je u pitanju deljenje naših ličnih informacija?

20.02.2024. ·
3 min

Nova pravila, stari problemi: Apple omogućava sideloading u EU, ali to će staviti developere u nezavidnu situaciju

Apple je u poznat kao kompanija koja se trudi da na sve načine potpunu kontrolu nad iPhone telefonima - svojim najprodavanijim uređajima je počeo da uvodi USB-C port kao standard na svojim laptopovima i tabletima još 2015. godine (prvi put sa MacBook Pro laptopom) odnosno 2018. godine (iPad Pro), dok je na iPhone uređaje USB-C stigao tek prošle godine, što je većina korisnika sa oduševljenjem dočekala. Razlog za takav potez su relativno novi zakoni Evropske unije. Tačnije, EU je donela zakon koji zahteva da svi uređaji ,koji će se od stupanja zakona na snagu proizvoditi, moraju da imajui USB-C standard kako bi se smanjila količina elektronskog otpada. Iako taj zakon ima svoje mane, deluje da je na duže staze bolji za sve korisnike. Nakon toga se šuškalo o još jednom važnom zakonu koji je bio donesen, a koji bi ozbiljno mogao da potrese Apple, a to je zakon koji zahteva od Apple-a da omogući sideloading. Naime, Akt o digitalnim tržištima (DMA) u Evropskoj uniji predstavlja regulatorni okvir koji zahteva od velikih tehnoloških platformi, poput Apple-a, da omoguće sideloading i pristup alternativnim prodavnicama aplikacija na svojim uređajima. Ovo bi moglo direktno da utiče na Apple-ovu praksu naplate provizije od 30% na transakcije unutar App Store-a, omogućavajući developerima da nude svoje aplikacije i usluge bez potrebe da plaćaju ove provizije Apple-u. Kao rezultat, DMA ima potencijal da smanji kontrolu koju Apple ima nad distribucijom aplikacija i digitalnim tržištima, nudeći više slobode i izbora korisnicima i developerima​​​​​​. Apple je krajem januara objavio blog post kojim objašnjava kako će se usaglasiti sa ovim zakonom u EU. Jedan deo tog teksta neodoljivo podseća na odluku koju je kompanija Unity donela (pa povukla) sredinom septembra prošle godine, a to je naplaćivanje 50 centi po svakoj instalaciji ukoliko je aplikacija premašila preko milion ukupnih instalacija te godine (Apple-u, za razliku od Unity-ja, ovo uopšte neće biti teško da prati). Uzmimo za primer Facebook, koji ima oko 400 miliona aktivnih korisnika u okviru EU, i neka oko trećina toga ode isključivo na iOS korisnike. Facebook bi godišnje morao da plaća Apple-u preko 60 miliona evra samo zato što ljudi koriste njihovu aplikaciju. Naravno, kompaniji Meta to ne bi predstavljao neki veliki trošak, ali zamislite da je Flappy Bird ostao na iOS-u - taj developer bi Apple-u bio dužan ozbiljan deo svoje zarade, dok gigant nije “prstom mrdnuo”. Većina developera je besna zbog ovakve odluke, uključujući i neke od najvećih igrača kao što su Spotify, Revoult i drugi. Uprkos otvaranju mogućnosti za sideloading i pristup alternativnim prodavnicama aplikacija, Apple naglašava da će developeri i dalje moći da distribuiraju svoje aplikacije preko Apple App Store-a, pridržavajući se postojećih uslova, uključujući i plaćanje standardne provizije od 30%. Na ovaj način Apple očigledno želi da primora developere da se oslone na njihov App Store, umesto da koriste alternativne prodavnice aplikacija, čime se developerima potencijalno nameće ekonomski manje povoljna opcija plaćanja fiksne takse od 50 centi po preuzimanju aplikacije u odnosu na standardnu proviziju od 30%. Šta vi mislite da će biti krajnji ishod svega ovoga? Pišite u komentarima!

31.01.2024. ·
5 min

Početak karijere u IT-ju: Izazovi tehničkog intervjua i kako ih savladati

Početak karijere u IT-ju: Izazovi tehničkog intervjua i kako ih savladati Započinjanje karijere u IT sektoru često je popločano nizom izazova, a jedan od najvažnijih je svakako tehnički intervju. HelloWorld.rs je nedavno imao priliku da razgovara sa Aleksandrom Markovićem na temu "Istine i zablude o radu u srpskoj IT industriji". Ovaj put, Marković nam pruža uvid u proces pripreme i prolaska kroz tehnički intervju kao neko ko je promenio pet kompanija i prošao osam tehničkih intervjua, a u par situacija je bio i sa druge strane stolice. Priprema za tehnički intervju Priprema je prvi i najvažniji korak ka uspešnom tehničkom intervjuu. Kako Marković objašnjava, "u skladu sa pozicijom za koju kandidat konkuriše, bitno je podsetiti se nekih fundamentalnih stvari”. Ova priprema uključuje ne samo osvežavanje znanja specifičnog za posao za koji se aplicira, već i vežbanje kako koncizno i efikasno preneti to znanje. Marković naglašava da je "vreme uglavnom ograničeno, pa ljudi cene kad se ne skreće mnogo sa teme", ističući važnost fokusa i preciznosti. Tehnološke veštine koje su na ceni Razumevanje koje tehnološke veštine su trenutno na ceni može bitno uticati na ishod intervjua. Marković ističe da su u svetu automatizacije testova "Java i Python sa odgovarajućim bibliotekama poput Seleniuma ili Pytesta, a ponegde i JavaScript" i dalje visoko tražene veštine. Međutim, on takođe podseća da je "najbitnija želja za učenjem", što znači da kandidati ne bi trebalo da se ograničavaju samo na tehnologije sa kojima su već upoznati. "To nije inženjerski pristup", dodaje on, podstičući kandidate da budu otvoreni za nova znanja i iskustva. Značaj formalnog obrazovanja Pitanje formalnog obrazovanja u IT sektoru često izaziva polemike, a Markovićeva perspektiva pruža jedan ugao gledanja kada je reč o ovom pitanju. "To se razlikuje od kompanije do kompanije", kaže on, priznajući da dok neke firme i dalje visoko cene formalno obrazovanje, druge daju prednost praktičnom iskustvu.  “'Kršteni' fakulteti su i dalje na ceni, naročito za pozicije sa višim senioritetom. Međutim, ima i onih slučajeva koji su formalno obrazovanje nadomestili dugogodišnjim radom”, objašnjava Marković. Ovo pokazuje da put ka uspehu u IT sektoru nije jednostran i da postoji više načina da kandidati pokažu svoju vrednost. Vrste tehničkih zadataka Razumevanje koje vrste tehničkih zadataka se mogu očekivati na intervjuu pomaže kandidatima da se adekvatno pripreme. Marković objašnjava da zadaci obično uključuju "kratka pitanja kroz koja se vidi da li kandidat barata onim što je napisao u CV-ju." On naglašava značaj transparentnosti i sposobnosti da kandidat odbrani svoje rešenje, dodajući da je "bitno tretirati intervju kao dvosmernu ulicu", što znači da i kandidat treba da ima priliku da postavlja pitanja regruteru i proceni da li je pozicija adekvatna za njega. Praksa i portfolio projekata Značaj prakse i portfolija projekata ne može se dovoljno naglasiti. "Veoma je važna," kaže Marković, objašnjavajući da kompanije sve više traže dokaze o praktičnom iskustvu kandidata. Savetuje kandidatima da aktivno rade na projektima koji mogu da pokažu njihove veštine i sposobnost za samostalan rad, kao i za rad u timu. Isticanje tokom tehničkog intervjua Kako se istaći tokom tehničkog intervjua? Marković savetuje da je "najbolje da znate sve što vas pitaju, pa i više od toga". Naravno, to dolazi sa razumevanjem i sposobnošću da se znanje jasno prenese.  "Bitno je da čovek ume da objasni i obrazloži to što zna", što implicira duboko razumevanje materije. Učenje iz grešaka Greške na tehničkim intervjuima su neizbežne, ali Marković ih vidi kao prilike za učenje. Deljenjem svojih slabih tačaka i otvorenošću za pitanja, kandidati mogu da pokažu svoju spremnost na učenje i adaptaciju, što je visoko cenjeno u IT sektoru. Suočavanje sa nervozom Nervozu tokom intervjua Marković smatra normalnom. "Nisam nešto bio nervozan, možda malo u početku, ali to vremenom prođe" kaže on, ističući ponovo da je intervju pre svega razgovor, prilika za obostranu ocenu i razmenu informacija. Važnost mekih veština Soft skills, poznate i kao meke veštine, predstavljaju niz ličnih atributa, socijalnih veština, komunikacijskih sposobnosti, i emocionalne inteligencije koje omogućavaju ljudima da se na efikasan način nose sa međuljudskim odnosima, stvaraju pozitivno radno okruženje, i efektivno komuniciraju sa drugima. Za razliku od hard skills, koje su specifične veštine i znanja potrebna za obavljanje određenih tehničkih zadataka ili poslova, soft skills su više povezane sa ličnošću pojedinca i načinom na koji funkcioniše sa drugima u profesionalnom kontekstu. Marković naglašava važnost ovih veština, objašnjavajući da "te veštine kasnije bitne i za odnos prema kolegama u timu i kompaniji". Profesionalizam, način izražavanja, i ponašanje na poslu ključni su za uspešnu karijeru u IT sektoru. Markovićeva iskustva i saveti služe kao dragoceni vodič za sve one koji teže da unaprede svoje karijere u IT sektoru. Kroz njegovu priču, vidimo da je kontinuirano učenje, otvorenost za nove tehnologije, i razvoj mekih veština, poput komunikacije, timskog rada, i emocionalne inteligencije, ono što čini pravog IT profesionalca. On ističe da tehnički intervju treba shvatiti kao priliku ne samo da pokažete svoje znanje, već i da demonstrirate svoje međuljudske veštine, adaptabilnost, i sposobnost za rast i učenje. U suštini, Markovićeva poruka je da, bez obzira na trenutni nivo znanja ili iskustva, strast prema učenju, spremnost na izazove, i razvoj celokupne ličnosti je ono što vodi ka uspehu. S ovim savetima i uvidima, HelloWorld.rs želi da inspiriše i podrži IT profesionalce i one koji teže da to postanu, podstičući ih da grade svoje karijere ne samo na čvrstim temeljima tehničkog znanja, već i na bogatstvu mekih veština koje su jednako važne za ostvarivanje dugoročnog uspeha i zadovoljstva u dinamičnom svetu IT-ja.

HelloWorld
0
25.01.2024. ·
6 min

Istine i zablude o radu u srpskoj IT industriji

U Srbiji 104.000 ljudi radi u IT sektoru, a ovaj broj svake godine se uvećava za po nekoliko hiljada. Poslovi u ovoj industriji su među najplaćenijima, sa dobrim uslovima i velikom potražnjom na tržištu rada. Zvanični podaci Republičkog zavoda za statistiku kažu da prosečna neto plata u oblasti „računarsko programiranje, konsultantske i s tim povezane delatnosti“ iznosi 262.011 dinara. Bez iskustva, na početničkim pozicijama, zaposleni u IT kompanijama dobijaju od 800 do 1.200 evra, dok inženjeri sa velikim znanjem i iskustvom mesečno mogu da zarade i više od 5.000 evra. A osim visoke plate, zaposlenima su zagarantovane i mnoge pogodnosti, kao što su fleksibilno radno vreme, rad od kuće, privatno zdravstveno osiguranje, sportske aktivnosti, tim bildinzi i slično. Nije IT za svakoga Sve ovo razlozi su što su studije informacionih tehnologija u vrhu liste želja mnogih maturanata, a i oni koji su se školovali za neke druge profesije, sa ili bez fakultetske diplome, sve češće se prekvalifikuju i pronalaze posao u IT industriji. Poslodavcima u ovom sektoru nije obavezna diploma, već znanje, pa su mnogi zaposleni završili samo kurseve od nekoliko meseci ili su čak potpuno samouki. Ipak, ljudi koji imaju ozbiljne karijere smatraju da je zabluda da je IT za svakoga i da realnost nije baš – naučiću tehnologije i odmah ću zarađivati 5.000 evra mesečno. - Veliki zalet IT industrije privukao je u poslednje vreme pažnju „non-tech“ ljudi koji misle da po principu „je l možeš malo da mi objasniš“ mogu da nauče posao. Stvari ne funkcionišu tako, jer je većina nas provela decenije gledajući u komandnu liniju računara. Ono što mogu da uradim je da nekome pokažem šta treba da uči i da pomognem ako „zapne“, ali bez velikog truda ne može se dobiti neophodno znanje – objašnjava za HelloWorld.rs Nikola Novković, DevOps inženjer u kompaniji „Symphony“. Kako kaže,  posao u IT-u je lep i zanimljiv, ali je ponekad i težak i iscrpljujući. - Postoje rokovi koji su usaglašeni sa klijentom, tehnologije koje evoluiraju na dnevnom nivou, postoje noći kada nešto jednostavno krene po zlu, pa se zapitam da li sam dovoljno dorastao ovome, ko je meni dao ovoliku odgovornost - dodaje Nikola. Vrhunski uslovi za rad i nerad On navodi da je još od detinjstva voleo video igre, sklapanje računara, a tokom studija započeo je svoju IT karijeru u Vazduhoplovnoj akademiji u Beogradu, gde je kasnije radio i kao nastavnik programiranja, osnova bezbednosti informacionih sistema, osnova računara i srodnih predmeta. Nakon decenije rada u školi, prešao je u privatni sektor, u kompaniju Verisec International, u kojoj je napravio prve DevOps korake. Kolege su ga, kaže, dočekale otvorenih ruku, deleći sa njim znanje i iskustvo i upućujući ga šta treba da uči. Posle tog iskustva, u kratkom roku, promenio je nekoliko firmi, gde je, navodi, bilo i loših iskustava. Sadašnja kompanija, dodaje, zadovoljava sve njegove potrebe i želje, koje su, kako kaže, možda i „razmaženi prohtevi“. - Istina je da su uslovi za rad u IT kompanijama natprosečni. Moja kompanija ima fantastične prostorije u centru Beograda, opremljene vrhunskom opremom i ostalim uslovima za rad i nerad. Najčešće radim iz kancelarije, jer tamo su ljudi, tamo su obezbeđena tri obroka, tamo je pikado, tamo je bazen. Ali, ako se probudim, a napolju veje sneg ili se dete razbolelo, pa ne može u vrtić, nije nikakav problem da radim od kuće – kaže Nikola. Prema njegovom mišljenju, svakako najveća prednost rada u IT industriji je to što, i pored kriznog perioda, potreba za dobrim inženjerima uvek postoji, što ostavlja prostor i za pregovore o dobroj plati i uslovima rada. - Dobra strana je i to što imaš mogućnost da radiš na tehnologijama koje si kao klinac gledao sa sjajem u očima, što praviš nešto što će izmamiti osmeh na licu nekim novim generacijama. Naravno, važno je i što radiš sa mahom fakultetski obrazovanim ljudima od kojih može puno da se nauči,  pričamo dosta o poslu,  životu i ostalim temama za razbibrigu. Spuštanje kriterijuma uticalo na ukupan kvalitet IT-ja I Aleksandar Marković, Senior Software Developer in Test u kompaniji Snap One, saglasan je da u srpskoj IT industriji postoje finansijska stabilnost, zdravo radno okruženje i mogućnosti neprekidnog učenja. Loše je, kaže, što je tržište u jednom u trenutku, zbog velike potražnje, dosta spustilo kriterijume, pa je to uticalo na kvalitet isporuke, radnu etiku i poslovnu atmosferu, ali dodaje da deluje kako se i to polako koriguje u poslednjih godinu, dve. Poslovi u ovoj industriji menjaju se često, svaka nova kompanija donosi i malo veću platu, ali prema Aleksandrovom mišljenju, treba dobro promisliti o svakoj promeni. - Mlade kolege treba što više da uče. Mislim da je stav većine koji uglavnom misle samo o tome da zarade veliki novac potpuno pogrešan i promašen. Velika je zabluda da svako može da se ostvari i pronađe u ovoj profesiji – kaže Aleksandar i dodaje: - Do promene posla valjda dovodi splet različitih okolnosti - od nezadovoljstva platom, preko prezasićenja projektom i stagnacije u učenju, nekih strateških odluka višeg menadžmenta, pa do međuljudskih odnosa. Promena je donekle postala i trend, jer se danas mnogo lakše menjaju poslovi nego ranije. Ne mislim da je promena nužno dobra i da dugoročno uvek donese korist. Pretpostavljam da je u pitanju stvar izbora, afiniteta i apetita. Ja se nadam da ću u Snap One-u dočekati penziju - kaže Aleksandar. Aleksandar je u IT sektoru počeo da radi nakon studija na Elektrotehničkom fakultetu. Za devet godina rada promenio je pet kompanija, uglavnom radeći na pozicijama koje se bave automatizacijom testova, definisanjem testnih procesa u okviru tima, testiranjem performansi sistema i manuelnim testiranjem. On dodaje i da su uslovi za rad u srpskoj IT industriji dobri, da se poslodavci trude da omoguće sve što je potrebno za rad i više od toga. Pored adekvatne opreme i plate, kaže, tu su tri vrste kafe, voće, privatno zdravstveno, fleksibilno radno vreme, tim bildinzi… - Ne verujem da tu nešto mnogo može da se zameri. Možda zvuči čudno, ali mislim da su uslovi u IT sektoru kod nas možda i bolji nego u Americi, bar što se tiče benefita, odmora i radnog okruženja. Što se plate tiče, verujem da je to stvar tržišta, da ne kažem - plata je stvar ukusa - ocenjuje Aleksandar. Oprezno sa „golubom na grani“ Kada je reč o istinama i zabludama o platama, Nikola Novković dodaje da postoje firme koje svoje uslove rada usklađuju sa tržištima sa kojima sarađuju, dok neke firme to ne rade. - Sa finansijskim uslovima koje IT firme pružaju u Srbiji, životni standard može da bude jako visok, u odnosu na ostale industrije. U Srbiji IT inženjeri nemaju previše razloga za brigu. Posla ima, a uslovi su više nego dobri - zaključuje Nikola. Na srpskom IT tržištu posluju mnoge kompanije sa odličnom reputacijom, ali ima i drugačijih primera - poslodavaca koji se hvale odličnim uslovima, iako je realnost drugačija. Da bi na vreme prepoznali šta je istina, a šta ne, kandidati za posao treba dobro da se raspitaju. Nikola Novković im savetuje da više veruju ljudima koji tamo rade. - Najbolje je da vam neko izunutra ispriča kako se stvarno negde radi. Verujte, to nema zamenu. Promena pozicije i posla je individualna stvar, ali ne treba posezati za „golubom na grani", ako niste sigurni da donosi veliki boljitak. Svaka promena firme iziskuje period prilagođavanja, upoznavanja i postavljanja pravila. Zvuči teško, ali pronađite firmu iz koje nećete želeti da odete - zaključuje Nikola.

HelloWorld
2
09.01.2024. ·
1 min

Zašto merge-ovanje pull requestova traje dugo

Svi (ili bar većina 😀) programera želi da piše čitak i jasan kod koji se lako održava i svi želimo da naš dobro napisan (i istestiran) kod brzo stigne na main granu. Problem nastaje u tome što, koliko god da vi to želite da bude brzo, vrlo često zavisite od vaših kolega (što samih programera, što od strane QA) koji moraju da pregledaju i testiraju kod koji ste vi napisali. PR-ovi su preveliki U ovih nekoliko meseci, primetio sam veličinu samog PR-a kao veliki problem, jer vreme potrebno za odobravanje PR-a dosta zavisi i od njegove veličine. Od skoro smo u timu počeli da praktikujemo tokom sprint planning-a raščlanjivanje većih feature-a (koji i ovako pripadaju jednom epicu), na još sitnije celine, koje bi mogle da stanu u više manjih PR-ova. Nemanje vremena za pregledanje Bez obzira na veličinu PR-a, postoji velika šansa da će vas neko zamoliti da pregledate PR koji niste lično kreirali. U takvim situacijama može se pojaviti izazov, posebno ako ste u tom trenutku potpuno posvećeni svom radu, kucajući neke od najboljih linija koda u svojoj karijeri, ili ste zauzeti sastankom. U tim okolnostima, može biti teško odmah se posvetiti recenziranju zadatog PR-a. Jedno od rešenja koja je moj tim nedavno počeo da primenjuje, a koje se u protekle dve nedelje pokazalo kao efikasno, uključuje rezervisanje oko deset minuta u poslovnom kalendaru svakog člana tima, u najpogodnijem delu dana (idealno na početku i kraju radnog vremena), za pregled PR-ova koje su kreirale druge kolege. Dakle, svaki član tima posvećuje ukupno oko dvadeset minuta dnevno za ovu aktivnost. Razume se, potrebno je naglasiti da je ovo prilično specifičan scenario za moj tim, s obzirom da nas ima samo pet. Ipak, bio bih veoma zainteresovan da u komentarima pročitam mišljenja i iskustva kolega iz većih timova.

11.12.2023. ·
4 min

Ključne osobine (soft skills) starijih inženjera i tehničkih lidera

U engleskom jeziku postoji klasifikacija veština na „hard skills“ i „soft skills“.  Prvu grupu  obuhvataju znanja i profesionalne veštine stečene obrazovanjem, merljive diplomom i zvanjem, pa se može reći da su to tehničke veštine. Druga grupa nas trenutno više zanima, a u nju spada sve ono što predstavlja naš odnos prema ljudima, poslu i životu uopšte. U pitanju su, dakle,  „ljudske“ veštine. Bil Kofran, softverski inženjer i nekadašnji Senior Vice President (SVP) u Guglu, je jednom prilikom izjavio da je „osnovni posao inženjera lak, a da je rad sa ljudima težak“. U toj njegovoj rečenici se krije suština i razlog zbog koga pišemo ovaj tekst, jer se vrhunski inženjeri i tehnički lideri, sa podjednako dobrim „mekim“ osobinama, ne nalaze baš na svakom koraku. Ostvarenje izuzetnih rezultata u inženjerskim ulogama ne zavisi samo od tehničke stručnosti, već i od niza veština koje čine ključnu razliku između prosečnog i izvanrednog starijeg inženjera ili tehničkog lidera. Jasno je da niko nije savršen, ali savršenstvu treba težiti, pa ćemo u nastavku pokušati da otkrijemo na koje bi to veštine, ovi „tehnički genijalci“, trebali da obrate posebnu pažnju kako bi bili korak bliže savršenstvu. Liderske sposobnosti i komunikacija: temelji uspeha u tehničkim liderstvima Pošto ovakve pozicije, podrazumevaju timove i pojedince za koje ste nadležni, na prvo mesto ćemo staviti liderske sposobnosti.  Sposobnost vođenja i inspirisanja tima uključuje i postavljanje vizije, donošenje strateških odluka i konstantno održavanje članova tima motivisanim i fokusiranim na zajednički cilj. Kada vođa projekta poseduje dobre liderske osobine, sa izraženom empatijom prema članovima tima, izazovi se znatno lakše prevazilaze. Komunikacija je veština koju ćemo postaviti na mesto broj dva. Ona mora da bude jasna i efikasna, jer ovi ljudi treba da prenesu veoma kompleksne tehničke informacije kako tehnički pismenim, tako i tehnički slabije pismenim kolegama ili zainteresovanim stranama. Pored usmene, ovde mislimo i na pisanu komunikaciju, kao i na veštinu prezentovanja. Konstruktivna i precizna komunikacija podstiče saradnju, pomaže u upravljanju projektima i osigurava da svi budu na istoj strani u vezi očekivanja i ciljeva. Prilagođavanje, inovacije i mentorstvo: izgradnja dugoročnog uspeha S obzirom na to da se tehnološki pejzaž neprestano menja, i stariji inženjeri moraju biti sposobni da se brzo prilagode novim tehnologijama i trendovima. Veština prilagođavanja omogućava im da ostanu relevantni i inovativni u svom radu. „Točak vremena“ je neumoljiv, nipošto ne smete dozvoliti da vas pregazi. Razmišljanje van okvira i sposobnost donošenja kreativnih rešenja su prepoznatljive veštine starijih inženjera. Inovacije često proizlaze iz njihove sposobnosti razmišljanja o problemima na nekonvencionalan način, te su oni u stanju da svojim idejama naprave ključnu prednost u odnosu na konkurenciju. Mentorstvo je veoma korisna veština koja donosi dvostruki benefit, jer predstavlja odličan način učenja putem podučavanja. Mentorstvo podstiče kulturu kontinuiranog učenja, prenosa znanja i profesionalnog razvoja unutar inženjerskog tima. Napredovaćete i dobićete jasniju sliku o svojim tehnikama i filozofijama, doprinoseći razvoju drugih inženjera. Uobičajena je situacija da radite sa jednim ili maksimalno dva talentovana juniora, kojima treba da poklonite pažnju i da se povežete sa njima „jedan na jedan“ , kako biste ih što bolje upoznali i saznali više o njihovim ciljevima, a zatim pronašli adekvatan način da im pomognete u razvoju i podržite u njihovim projektima. Kao kada vaspitavate decu, i u ovom slučaju je lični primer najvažniji, tako da treba da se trudite da prikazujete ponašanje i rezultate koje želite da vidite kod njih. Za optimalno iskorišćenje resursa tima, efikasno delegiranje zadataka je veoma važna veština. Stariji inženjeri i kolege na liderskim pozicijama, moraju razviti sposobnost pravilnog delegiranja zadataka na osnovu „jačine“ članova tima. Na taj način oni su u mogućnosti da postignu idealnu ravnotežu odgovornosti u timu,  a istovremeno i da „osnaže“ članove svog tima. Imajte na umu da su u složenim inženjerskim projektima, konflikti neizbežni!  Stoga, stariji inženjeri moraju imati razvijene veštine rešavanja konflikata kako bi očuvali atmosferu u timu i samu produktivnost tima. Otvoren dijalog, slušanje i razumevanje različitih perspektiva su najvažniji elementi ovih veština. Uspešno uticanje i pregovaranje doprinose saradnji i saglasnosti u donošenju odluka. Sve navedene veštine, dopunjuju tehničku stručnost starijih inženjera i tehničkih lidera, omogućavajući im da uspešno vode projekte, inspirišu svoje timove i pojedince u njima, te na taj način doprinose ukupnom uspehu svojih kompanija.

HelloWorld
5
07.12.2023. ·
4 min

Karakteristične navike efikasnih softverskih inženjera

Posao softverskog inženjera počinje analizom potreba korisnika i definisanjem funkcija koje će implementirati. Na osnovu analize, inženjer dizajnira arhitekturu softvera, pa tek onda prelazi na implementaciju, koja podrazumeva pisanje koda, testiranje i debug. Nakon što je softver pušten u upotrebu, inženjer prati njegovo ponašanje, rešava eventualne probleme i ispravlja nedostatke pravovremenim ažuriranjem. Sve vreme je uključen u komunikaciju sa timom, menadžmentom i klijentom, te je neophodno da se stalno usavršava i prati nove tehnologije, kako bi ostao relevantan u širokom polju svog delovanja. Uspešni ljudi dele neke osobine i navike, a mi ćemo pokušati da se osvrnemo na navike i veštine koje su zajedničke za visokoefikasne softverske inženjere. Pošto je u pitanju veoma složeno zanimanje, potrebna je određena kombinacija stavova i navika, kako bi efikasnost vašeg rada bila na najvišem nivou. Uvođenje ovih praksi u radnu rutinu može potrajati, ali su povećanje efikasnosti i produktivnosti zagarantovane. Prioriteti i disciplina Prioritizacija zadataka prema važnosti, a ne samo prema hitnosti je ključna stvar. Kako bi mogli na zadovoljavajući način da balansirate između važnosti i hitnosti, neophodni su vam znanje i iskustvo koje se stiče vremenom. U svakom trenutku rada na projektu morate da znate na čemu je trenutni fokus i šta je to što prvo mora da se završi, bez obzira na sve faktore koji će vam odvlačiti pažnju. Disciplina će vam obezbediti da ostanete usredsređeni na cilj u svakom trenutku i to je jedini način da produktivnost ne opadne. Efikasna procena uloženog vremena S obzirom na to da je procena vremena koje će biti potrebno za razvoj softvera jako teška, a predstavlja nešto sa čime ćete se stalno suočavati, bitno je pratiti razliku između sopstvene procene i stvarnog vremena koje je potrebno. Timovi sa inženjerima koji imaju preciznu procenu su sigurniji i opušteniji, nasuprot onima koji često probijaju rokove, u kojima dominiraju nesigurnost, nepoverenje i stres. Proaktivno dokumentujte kod, dizajn i procese Na dokumentaciju je najbolje gledati kao na deo proizvoda koji isporučujete. Projekat je završen tek kada su kod i dokumentacija kompletni. Uspešni inženjeri se trude da ostave snažne temelje i nasleđe kvalitetnim dokumentovanjem svog rada, što će kasnije biti od velike pomoći „naslednicima“, kako bi nastavili dalji rad. Jedan od glavnih razloga za odbacivanje nekog postojećeg sistema je taj što niko u blizini ne zna kako funkcioniše, a to je nešto što ne želimo da se desi. I za kod i za dokumentaciju je neophodno da budu jasno napisani, između ostalog i zato što je čitanje tuđeg koda ubedljivo najbolji način da se napreduje u programiranju. Konstantna komunikacija i doprinos u „opuštanju atmosfere“ Za ogromnu većinu velikih i uspešnih projekata zajedničko je to da su nastali u opuštenoj radnoj atmosferi u kojoj primarnu ulogu ima kvalitetna i redovna komunikacija. Atmosfera u timu treba da bude otvorena i iskrena i da kao takva podstiče članove tima da „glasno razmišljaju“, bez straha da će postaviti „glupo pitanje“. Uvek treba sebi postavljati pitanje da li postoji još bolji način da se nešto reši, a to je nešto što ne važi samo u razvoju softvera, već u životu uopšte. Konstruktivno prihvatanje povratnih informacija Jednu od najuočljivijih navika uspešnih ljudi koji se bave razvojem softvera predstavlja način na koji oni prihvataju povratne informacije. Oni zaista cene svaku povratnu informaciju i trude se da je prihvate na konstruktivan način. Ne osećaju se loše ukoliko je povratna informacija od korisnika, menadžmenta ili kolege programera negativna, već je analiziraju sa pažnjom i pokušavaju da izvuku maksimum iz nje, kako bi rešili problem na najbolji način. Vrlo često iz ovakvih slučajeva oni izlaze bogatiji za nešto novo što su naučili, tako da su ovo dragoceni momenti za sticanje „zlata vrednog“ iskustva. Završite posao Posao je završen tek kada ga pošaljete u produkciju i to je jedini način da ostvarite rezultat. Opadanje energije u trenutku kada se projekat približava kraju i dok vam vreme ističe je nešto što svi u ovom poslu dožive pre ili kasnije. Dovršavanje posla je veština koju vrhunski inženjeri nose u sebi, te će oni lakše nego drugi, u datom trenutku, izoštriti svoj fokus, održati intenzitet i „izgurati“ projekat do kraja. Ostanite radoznali Uspešni inženjeri uglavnom imaju prirodno usađen osećaj radoznalosti. Zainteresovani su za nove tehnologije i nove tehničke pristupe u rešavanju nekih dugotrajnih problema, ali njihova radoznalost nije ograničena samo na tehnička pitanja, već često idu korak dalje, kako bi što bolje razumeli klijenta i svoj rad prilagodili poslovnom kontekstu klijenta.  

HelloWorld
0
05.12.2023. ·
2 min

Šta se to, zaboga, događa sa najpopularnijim Game Engine-om na svetu

Unity Technologies, kompanija koja stoji iza istoimenog engine-a, u poslednjih nekoliko godina je donela zaista vrlo upitne poslovne poteze, od svojih akvizicijskih “avantura” - kada su kupili ironSource koji je (bio) vrlo ozloglašen ad provajder kao i akvizicija  kompanije Wet Digital, čija tehnologija dosta podseća na Unreal-ov MetaHuman (razvijen od strane novosadskog 3Laterala), do donošenja vrlo kontroverznog  poslovnog modela koji bi od developera tražio nekoliko centi po instalaciji (deo odluke, su, ruku na srce, brzo povukli), o čemu smo već i pisali ranije. Po mom mišljenju, postoji nekoliko razloga za ovakve poteze. Prvi, i najbitniji, jeste da se ovim akvizicijama donesu veći prihodi samoj firmi. Činjenica je da je Unity Technologies već više od 3 godine na berzi, i da u te 3 godine nijednu godinu nisu završili u plusu (naravno da se C-level ljudima morao isplatiti višemilionski bonus i povrh toga). Akvizicijom ironSource-a, Unity je želeo da postane lider u medijaciji reklama, gde je trenutno firma AppLovin i dalje neprikosnoveni lider. Unity želi da im postane ozbiljan konkurent time što će installation fee spomenut gore, drastično smanjiti, ili potpuno ukinuti, pod uslovom da koriste Unity-jev sistem za medijaciju reklama, što mogu reći da je pomalo nekonkurentski potez, ali samo vreme će pokazati da li je ovo dovoljno da Unity-u donese dugoočekivanu profitabilnost. Drugi razlog leži u tome da Unity želi da se takmiči sa Unreal Engine-om u polju u kom, po mom mišljenju, Unity apsolutno nema šta da traži. To je kao da se porodični SUV takmiči sa nekim trkačkim autom. Jer ti taj svoj porodični SUV možeš da “budžiš” i unapređuješ koliko god želiš, ali nikad neće biti brz i okretan kao auto koji je od starta napravljen da bude brz i okretan. Pored toga, ekipa iz Unity-ja jako voli da izbacuje polugotove funkcionalnosti i da ih predstavlja kao gotove proizvode, dok sa druge strane, stara funkcionalnost koja stoji tu godinama, i dalje ima ogromnog prostora za napredak. (Rendering pipelines, UI…). Jedino svetlo na kraju ovog tunela vidim u imenovanju novog direktora, koji je ranije bio CEO RedHat-a, popularne linux distribucije koja je uglavnom namenjena enterprise korisnicima. Iako je Linux sam po sebi besplatan i otvorenog je koda, RedHat košta. Ja čvrsto verujem da će u narednih godinu ili dve, uz pomoć znanja i iskustva ovog CEO-a,ekipa iz Unity-ja uspeti da otvori svoj izvorni kod (i C++ i C# deo) za javnost i da će cela Unity zajednica uspeti da pomogne svom game engine-u da bude stabilan i prosperitetan, i da će sama kompanija napokon postati profitabilna.  

04.12.2023. ·
4 min

Da li je JavaScript zaista nastao za samo 10 dana?

JavaScript je programski, skriptni jezik koji ne može samostalno da se koristi, već je za njegovo izvršavanje potrebno posebno okruženje, tzv. runtime environment. Najčešće, takvo okruženje je web browser u koji je ugrađen JavaScript kompajler, a sve to zajedno omogućava programerima da dinamički menjaju web sadržaj, bez pozivanja servera, već se sva „magija“ dešava na lokalnom računaru. Postoji i serverska JavaScript platforma Node.js, ali o tome neki drugi put. U 2023. godini, JavaScript  gotovo da nema konkurenciju, jer ga koristi čak 98,6% web sajtova (W3Techs.com). StackOverflow je 2022. godine sproveo anketu među programerima i ispostavilo se da JavaScript koristi više nego bilo koji drugi programski jezik, čak 67,9%  profesionalnih developera. Kada je nešto toliko popularno i uspešno, normalno je da krenu neke glasine i priče od kojih mogu da nastanu i legende, a legenda u ovom slučaju kaže : „JavaScript je nastao za 10 dana!“ Da bismo proverili istinitost ove tvrdnje, moramo da se vratimo u 1995. godinu, april mesec i trenutak kada Netscape angažuje Brendana Ajka i pred njega zaista postavlja rok od 10 dana, kako bi napravio prototip programskog jezika koji se izvršava u Netscape pretraživaču. Važno je napomenuti da su u tom trenutku suštinski postojala samo dva pretraživača - Netscape Navigator i Internet Explorer - koji su se borili za dominaciju na vebu. Svaki od njih je uvodio različite funkcije u pokušaju da pomeri tržišni udeo u svoju korist, te je Ajk predstavljao neku vrstu „tajnog oružja“ u ovom digitalnom ratu. Netscape je, u najvećoj meri, privukao pažnju Microsofta, jer je Netscape smatrao da su web pretraživač i server nova forma operativnog sistema, a ne samo jedna aplikacija. Odgovor Majkrosofta ogledao se u vidu iznenadne promene fokusa na internet, u okviru izdanja OS Windows 95. Rok od famoznih 10 dana I dok su „ljudi u odelima“ smišljali strategiju i naredne korake, kako bi svoje kompanije što bolje pozicionirali pred „internet bum“ koji je očekivao planetu, Ajk je stvarao novi jezik. Iako je imao samo 24 godine, iza sebe je već imao bogato iskustvo u kreiranju novih programskih jezika, jer je još kao student Univerziteta u Ilionisu osmislio jedan „samo za sebe“, kako bi eksperimentisao sa sintaksama. Takođe, kod prethodnog poslodavca, Silicon Graphics, osmislio je programski jezik koji je služio za kreiranje ekstenzija za alatke za nadgledanje mrežnog saobraćaja. Dakle, sam programski jezik za Ajka nije bio nikakav problem, njemu je najveći izazov predstavljao drugi deo zadatka, a to je da novonastali programski jezik „treba da liči na Javu, ali ne sme da joj predstavlja konkurenciju, treba da bude jednostavniji i da mogu da ga koriste i programeri amateri“, nešto slično kao Microsoft Visual Basic. Naravno, najvažnija stvar je bila da može lako da se „ugnezdi“ u Netscape browser. Rok od famoznih 10 dana je, u stvari, bio povezan sa planiranim objavljivanjem verzije Netscape 2.0 Beta. Ono što je Ajk zamislio bilo je to da „ugradi“ napredne funkcije u JavaScript, a da pritom ne koristi jezičku sintaksu, kako bi jezik na prvi pogled izgledao jednostavno i lagano, ali bi iskusni programeri mogli iskoristiti njegovu stvarnu moć. Osnovnu sintaksu je uzeo iz C programskog jezika. Čitav proces se dešavao u periodu od 6. do 15. maja 1995. godine, kada je „svetlost dana“ ugledao, programski jezik, prvobitno nazvan Mocha. Do septembra, naziv jezika promenjen je u LiveScript, da bi konačno u decembru Netscape i Sun Microsystems (njihova je Java) u zajedničkom saopštenju objavili nov naziv koji i danas poznajemo - JavaScript. E, sad, da li je tačna tvrdnja da je JavaScript nastao za 10 dana? Odgovor je i da i ne. Ono što je bila verzija Mocha i ovo što danas imamo, nema veze jedno sa drugim. JavaScript koji danas poznajemo je nastajao godinama, menjao se i prilagođavao vremenu. I sam Ajk je jednom izjavio da je inicijalna Mocha bila daleko od savršenog programskog jezika. U početku je „imala posla“ sa veoma jednostavnim web aplikacijama i to je razvojnom timu i samom Ajku dalo dosta vremena, da, praktično, u hodu i „iza kulisa“ doteruju ovaj projekat i ispravljaju nedostatke. JavaScript kao veliki pobednik u „ratovima pretraživača“ Ovu „bitku“ web browsera iz 1995.godine  Netscape je lagano dobio, ponajviše zahvaljujući Ajku, međutim, Microsoft se nije predavao tako lako. Stvorili su klon i nazvali ga „JScript“, što je dalje navelo Netscape da podnese zahtev da se JavaScript standarizuje u okviru ECMA (European Computer Manufacturers Association). Posle ovog događaja postalo je jasno da je JavaScript veliki pobednik u „ratovima pretraživača“.  Što se Ajka tiče, on je dalje nastavio svoj fantastični karijerni put tako što je 1998. godine, kao jedan od osnivača, osnovao Mozilu, čiji se Firefox pretraživač, praktično, smatra za naslednika Netscape-a. Mozilu je napustio 2014. godine, a nagradno pitanje za kraj bi moglo da bude, šta mislite, koja osoba stoji iza besplatnog i privatnosti korisnika okrenutog pretraživača Brave, koji je u ponudi od 2015. godine?

HelloWorld
3
Da ti ništa ne promakne

Ako želiš da ti stvarno ništa ne promakne, prijavi se jer šaljemo newsletter svake dve nedelje.