Home BIZNIS I ZABAVAPut od juniora do mediora: Koje veštine i projekti prave razliku?

Put od juniora do mediora: Koje veštine i projekti prave razliku?

od itn
napredovanje u programiranju

U svetu programiranja, tranzicija od juniora do mediora predstavlja jednu od najvažnijih prekretnica u karijeri svakog developera. To je put koji prevazilazi puko gomilanje meseci ili godina iskustva; to je transformacija u načinu razmišljanja, pristupu problemima i preuzimanju odgovornosti. Dok juniori poseduju osnovno tehničko znanje i sposobnost da izvršavaju dodeljene zadatke uz mentorstvo, medior developer je samostalan, proaktivan i poseduje dublje razumevanje ne samo koda, već i šireg poslovnog konteksta u kojem taj kod živi.

Da bismo demistifikovali ovaj ključni korak u razvoju karijere, razgovarali smo sa iskusnim senior programerima i tehničkim liderima iz domaćih IT kompanija. Kroz njihove savete i iskustva, pokušaćemo da pružimo konkretne odgovore na pitanje koje muči mnoge mlade programere: Šta je zaista potrebno da se pređe put od juniora do mediora i koje su to veštine i projekti koji prave suštinsku razliku?

Naši sagovornici su:

  • Marko Petrović, Senior Backend Developer u velikoj internacionalnoj kompaniji sa predstavništvom u Beogradu.
  • Jelena Jovanović, Technical Lead u brzorastućem domaćem startapu iz Novog Sada koji razvija sopstveni proizvod.
  • Ivan Kovačević, Full-Stack Team Lead u niškoj softverskoj agenciji koja radi na raznovrsnim projektima za klijente.

Kroz njihove različite perspektive – rad u korporaciji, startapu i agenciji – dobićemo sveobuhvatnu sliku o tome šta se danas u Srbiji očekuje od developera koji želi da iskorači iz juniorskih „cipela“.

napredovanje u programiranjuViše od koda: fundamentalna razlika između juniora i mediora

Svi naši sagovornici se slažu u jednom: ključna razlika nije u broju naučenih programskih jezika ili frejmvorka. Ona leži u nivou samostalnosti i odgovornosti.

„Najveća i najočiglednija razlika je u autonomiji,“ započinje Marko Petrović. „Od juniora očekujem da može da reši jasno definisan zadatak, da prati postojeće paterne u kodu i da ne okleva da postavi pitanje kada naiđe na problem. Od mediora, s druge strane, očekujem da samostalno uzme jedan ‘feature’ od početka do kraja. To ne znači samo pisanje koda. To znači da razume zašto se taj ‘feature’ pravi, da postavlja pitanja o zahtevima pre nego što počne da kuca, da predvidi potencijalne probleme i ‘edge case-ove’, da napiše testove i na kraju, da bude siguran u to što je isporučio.“

Jelena Jovanović iz novosadskog startapa dodaje još jedan važan sloj – razumevanje biznisa. „U startap okruženju, resursi su ograničeni i brzina je ključna. Medior developer mora da razume širu sliku. Nije dovoljno da zadatak bude tehnički korektno urađen; on mora da donosi vrednost korisniku i kompaniji. Junior će se fokusirati na ‘kako’, dok će medior početi da razmišlja i o ‘zašto’. Kada mi developer dođe sa pitanjem: ‘Razumem šta treba da uradim, ali da li smo razmotrili ovu alternativu koja bi bila brža za implementaciju i donela 80% vrednosti?’, znam da razgovaram sa mediorom.“

Ovaj prelazak sa reaktivnog na proaktivno rešavanje problema je, po mišljenju Ivana Kovačevića, presudan. „U agencijskom poslu, gde se često žonglira sa više projekata i klijenata, medior je stub tima. To je osoba kojoj mogu da poverim deo aplikacije i da budem miran. On neće samo slepo pratiti specifikaciju, već će uočiti nelogičnosti, predložiti poboljšanja i komunicirati sa klijentom ili projekt menadžerom na konstruktivan način. Junior čeka zadatke, medior ih traži i definiše.“

programeriTehničke veštine koje otključavaju sledeći nivo

Iako je način razmišljanja ključan, on mora biti potkovan konkretnim tehničkim znanjem. Nije reč o tome da medior zna napamet svaku funkciju nekog jezika, već o dubljem razumevanju principa na kojima softver počiva.

1. Dublje poznavanje osnovnog „steka“

„Vidim mnogo juniora koji skaču sa tehnologije na tehnologiju,“ primećuje Marko. „Jedan dan uče React, sledeći Vue, pa malo Node.js. To je odlično za širinu, ali za prelazak na medior nivo potrebna je dubina. Izaberite svoj primarni jezik i frejmvork i zagrebite ispod površine. Ako radite sa Java-om i Spring Boot-om, nemojte samo koristiti anotacije. Istražite kako Spring radi ‘ispod haube’. Šta je dependency injection? Kako funkcioniše bean lifecycle? Razumevanje ovih koncepata vam omogućava da rešavate kompleksnije probleme i pišete efikasniji i održiviji kod.“

2. Pisanje čistog i održivog koda (Clean Code)

Ovo je tema koju su svi naši sagovornici istakli kao apsolutno neophodnu. Junior kod često „radi“, ali je težak za čitanje, testiranje i nadogradnju. Medior kod je elegantan i jasan.

„Uvek kažem svojim mlađim kolegama: ‘Pišite kod kao da će ga sutra održavati psihopata koji zna gde živite’,“ šali se Ivan. „To znači smislena imena promenljivih i funkcija, kratke funkcije koje rade samo jednu stvar (Single Responsibility Principle), izbegavanje nepotrebnih komentara jer je kod sam po sebi dokumentovan. Knjiga ‘Clean Code’ od Roberta C. Martina je obavezna lektira. Kada vidim da je junior počeo da primenjuje te principe bez da ga ja stalno podsećam na ‘code review-u’, to je jasan znak napretka.“

3. Testiranje nije tuđi posao

Jedna od najoštrijih linija razdvajanja između juniora i mediora je odnos prema testiranju. Juniori ga često vide kao dosadan zadatak koji im oduzima vreme od „pravog“ programiranja. Mediori, sa druge strane, shvataju da je testiranje sastavni deo razvoja i garancija kvaliteta.

„Ako mi developer kaže da je završio zadatak, a nije napisao ni jedan unit test, za mene taj zadatak nije ni blizu gotov,“ kategorična je Jelena. „Medior ne samo da piše unit testove, već razmišlja o pokrivenosti koda (code coverage), piše integracione testove i razume razliku između različitih vrsta testova. Sposobnost da se napiše dobar test je jednako važna kao i sposobnost da se napiše dobar kod. To pokazuje zrelost i profesionalizam.“

4. Debugging kao veština, a ne nagađanje

Kada se pojavi bag, junior će često krenuti sa „console.log“ ili „print“ izjavama na sve strane, nadajući se da će nabasati na problem. Medior ima sistematičan pristup.

„Medior developer zna kako da koristi debager,“ objašnjava Marko. „On postavlja breakpoint-e, prati tok izvršavanja programa, analizira stanje memorije i logički sužava potragu za uzrokom problema. Takođe, ume da čita i razume logove aplikacije, što je neprocenjiva veština, pogotovo u kompleksnim sistemima. Efikasan debugging štedi sate, a ponekad i dane.“

5. Rad sa bazama podataka i osnovni DevOps

Razumevanje kako aplikacija komunicira sa bazom podataka je od suštinskog značaja. Medior developer ne bi trebalo da se plaši SQL-a.

„Ne morate biti DBA (Database Administrator), ali morate razumeti kako da napišete efikasan upit, šta su indeksi i kako oni utiču na performanse, i šta su transakcije,“ kaže Ivan. „Slepo oslanjanje na ORM (Object-Relational Mapping) bez razumevanja SQL-a koji se generiše može dovesti do katastrofalnih performansi.“

Pored toga, osnovno poznavanje DevOps kulture i alata postaje sve važnije. „Ne očekujemo da medior sam podesi ceo CI/CD pajplajn,“ dodaje Jelena, „ali očekujemo da razume šta se dešava kada ‘push-uje’ kod. Da zna osnove Gita bolje od ‘pull’ i ‘push’ komandi – da razume branching strategije, rebase, cherry-pick. Da se ne plaši Docker-a i da može da pokrene aplikaciju lokalno u kontejneru. To pokazuje da vidi širu sliku od svog editora koda.“

Projekti koji vas „guraju“ u medior vode

Teorijsko znanje je važno, ali ono se cementira kroz praktičan rad. Ne prave svi projekti jednaku razliku u vašem portfoliju i iskustvu.

Primer projekta koji demonstrira medior potencijal

Pitali smo naše sagovornike da opišu primer projekta ili zadatka koji bi im jasno signalizirao da je junior spreman za sledeći korak.

Marko Petrović se priseća jednog slučaja: „Imali smo juniora koji je dobio zadatak da implementira jednostavan ‘caching’ mehanizam za podatke koje često povlačimo sa eksternog servisa. On nije samo napisao kod koji kešira podatke. Prvo je istražio različite strategije keširanja (npr. ‘cache-aside’, ‘read-through’), analizirao je koliko dugo ti podaci treba da ostanu u kešu i predložio mehanizam za invalidaciju keša. Zatim je napisao čist, generički servis koji smo mogli da iskoristimo i na drugim mestima u aplikaciji. Na kraju, dodao je metrike koje prate ‘cache hit’ i ‘cache miss’ rate. On je od jednog jednostavnog zadatka napravio robusno i promišljeno rešenje. To je bio trenutak kada smo znali da je spreman.“

Jelena Jovanović navodi drugačiji primer, fokusiran na korisničko iskustvo: „Radili smo na redizajnu jednog dela naše platforme. Junior developerka je dobila zadatak da implementira novi korisnički interfejs prema dizajnu. Tokom implementacije, primetila je da jedan korak u korisničkom putovanju nije intuitivan i da bi mogao da zbuni korisnike. Umesto da samo iskodira kako joj je rečeno, ona je napravila dva brza prototipa – jedan po dizajnu, i jedan sa njenim predlogom za poboljšanje. Prišla je produkt menadžeru i meni, i jasno argumentovala zašto misli da je njeno rešenje bolje za korisnika. Njena inicijativa i fokus na krajnjem korisniku, a ne samo na tehničkoj implementaciji, pokazali su medior zrelost.“

Kakve projekte birati za lični portfolio?

Za one koji nemaju priliku da na poslu rade na ovakvim zadacima, lični projekti su idealan poligon za vežbu.

„Zaboravite na ‘to-do’ liste i proste ‘blog’ aplikacije, osim ako nećete da ih podignete na viši nivo,“ savetuje Ivan. „Napravite nešto što rešava stvarni problem, pa makar bio i vaš lični. Na primer, umesto još jednog ‘weather’ API klijenta, napravite aplikaciju koja povlači podatke o zagađenju vazduha za vaš grad i šalje vam notifikaciju kada pređe određeni nivo. To pokazuje da umete da radite sa eksternim API-jima, bekgraund procesima, notifikacijama.“

Marko predlaže da se fokusirate na projekte koji zahtevaju malo više arhitekturalnog razmišljanja. „Pokušajte da napravite aplikaciju koja ima jasnu podelu na servise (mikroservise, ako ste ambiciozni). Neka komuniciraju međusobno. Dodajte autentifikaciju i autorizaciju sa JWT-om. Pokrenite sve to u Docker kontejnerima. Dokumentujte svoj API. To su sve stvari sa kojima se srećemo u svakodnevnom poslu i takav projekat na GitHub-u vredi više od deset jednostavnih CRUD aplikacija.“

napredovanje u programiranju„Meke“ veštine (Soft Skills): lepak koji drži sve zajedno

Tehnička potkovanost je samo pola jednačine. Bez razvijenih „mekih“ veština, i najbolji programer može biti „teg“ za tim. Medior developer mora biti efikasan komunikator i pouzdan član tima.

1. Komunikacija, komunikacija, komunikacija

„Ovo ne mogu dovoljno da naglasim,“ kaže Jelena. „Junior često ćuti i muči se sa problemom danima, iz straha da ne ispadne glup. Medior zna da je najgluplje pitanje ono koje nije postavljeno. Ali, postoji i razlika u načinu postavljanja pitanja. Junior će reći: ‘Ovo mi ne radi.’ Medior će reći: ‘Pokušavam da rešim ovaj problem. Probao sam A, B i C. Moj zaključak je da problem leži ovde, ali nisam siguran kako da pristupim rešenju. Da li imate neki savet?’ Vidite razliku? To je proaktivna i informisana komunikacija.“

2. Davanje i primanje konstruktivnog feedback-a

„Code review je ključan proces u svakom timu,“ objašnjava Ivan. „Junior je često uplašen od feedback-a i doživljava ga lično. Medior ceni feedback jer zna da je to najbolji način da napreduje. Još važnije, medior počinje da daje konstruktivan feedback drugima. On ne piše samo ‘ovo je loše’, već ‘možda bi bilo bolje da ovo uradimo na ovaj način, zbog X i Y razloga’. Sposobnost da se na fin i argumentovan način ukaže na potencijalna poboljšanja u tuđem kodu je odlika zrelog developera.“

3. Upravljanje vremenom i očekivanjima

Medior mora biti u stanju da realno proceni koliko je vremena potrebno za neki zadatak.

„Junior je često previše optimističan,“ primećuje Marko. „Reći će ‘ovo je gotovo za dva sata’, a onda se to pretvori u dva dana. Medior je naučio da u svoju procenu uključi i vreme za testiranje, neočekivane probleme i komunikaciju. I što je još važnije, ako vidi da će kasniti, on će to javiti na vreme, a ne pet minuta pre isteka roka. To je profesionalna odgovornost.“

4. Mentorske veštine u povoju

Prelazak na medior poziciju često podrazumeva i preuzimanje dela odgovornosti za mlađe kolege.

„Ne očekujem od mediora da bude punopravni mentor, ali očekujem da može da pomogne junioru koji je zapeo,“ kaže Jelena. „Da može da mu objasni deo koda, da ga uputi u pravom smeru. To ne samo da pomaže junioru, već i cementira znanje samog mediora. Najbolji način da nešto naučite je da probate to nekome da objasnite.“

Crvene zastavice: znaci da još niste spremni

Naši sagovornici su takođe podelili nekoliko „crvenih zastavica“ u ponašanju i radu juniora koje im signaliziraju da osoba još uvek nije spremna za veće odgovornosti.

  • Ponavljanje istih grešaka: „Ako na ‘code review-u’ stalno ukazujem na iste probleme, a junior ih uporno ponavlja, to je znak da ne uči iz feedback-a.“ (Ivan Kovačević)
  • Sindrom ‘ne zanima me’: „Kada developer isporuči kod i smatra da je njegov posao tu završen, ne interesujući se za to kako se taj kod ponaša na ‘staging’ ili produkcionom okruženju, to je jasan znak nedostatka vlasništva nad svojim radom.“ (Jelena Jovanović)
  • ‘Copy-paste’ programiranje bez razumevanja: „Svi mi koristimo Stack Overflow, ali je ogromna razlika između kopiranja rešenja i razumevanja zašto to rešenje radi. Ako junior ne može da objasni kod koji je napisao, to je velika crvena zastavica.“ (Marko Petrović)
  • Izbegavanje teških zadataka: „Prirodno je da se ljudi plaše nepoznatog, ali ako junior konstantno bira samo lake i poznate zadatke i izbegava izazove, on sam sebi usporava napredak.“ (Jelena Jovanović)

napredovanje u programiranjuPut napretka: konkretni saveti za juniore

Za kraj, zamolili smo naše seniore da daju najvažniji savet mlađim kolegama koji žele da što efikasnije pređu put do mediora.

Marko Petrović: „Budite radoznali. Ne zadovoljavajte se time što nešto ‘samo radi’. Pitajte se zašto radi. Kako radi? Može li bolje? Čitajte dokumentaciju, blogove, knjige. Gledajte predavanja sa konferencija. IT se menja neverovatnom brzinom, i jedini način da ostanete relevantni i da napredujete je konstantno učenje.“

Jelena Jovanović: „Pronađite mentora. To ne mora biti formalni odnos. To može biti stariji kolega kojem verujete i čiji rad cenite. Postavljajte mu pitanja, tražite savet, učite od njega. I drugo, ne plašite se da preuzmete odgovornost. Javite se za zadatak koji vam deluje malo strašno. To je jedini način da rastete.“

Ivan Kovačević: „Fokusirajte se na osnove. Lako je zaneti se novim, sjajnim frejmvorkom koji se pojavio juče. Ali fundamentalni principi – SOLID, Design Patterns, arhitektura softvera, baze podataka – su ono što ostaje. Tehnologije se menjaju, principi traju. I naravno, pišite kod. Svaki dan. Vežba, vežba i samo vežba.“

Put od juniora do mediora nije sprint, već maraton. To je proces koji zahteva strpljenje, upornost, radoznalost i pre svega, promenu u načinu razmišljanja. Prelazak sa izvršioca zadataka na proaktivnog, samostalnog i odgovornog člana tima je ono što zaista pravi razliku. Tehničke veštine su alat, ali način na koji koristite taj alat, razumevanje šire slike i efikasna saradnja sa drugima su ono što će vas definisati kao medior developera i otvoriti vam vrata ka daljem napretku u uzbudljivom svetu softverskog inženjeringa.

Banner

Banner

Možda će vam se svideti i