Šta je novo?

Hoću da programiram, šta da koristim, odakle da počnem, šta je neophodno

Sta je lakse savladati, C# ili Javu? Imam neko predznanje iz C-a.
 
Pozdrav svima!

Polako samostalno učim programiranje, kodiranje, skriptovanje, šta li već.

Imam neke svoje projekte (ništa ekstra složeno), ali mi je dosadilo da radim "domaće zadatke" od kojih možda hoću a možda neću imati neke koristi. Cilj mi je da dosegnem entry level, i da se zaposlim negde kao junior programer. Konkretno polje rada mi i nije toliko bitno, kao ni jezik u kojem bih radio, mada mi je interesantniji rad na rešavanju algoritamskih problema nego npr front end development.


Na osnovu raznoraznih članaka koje sam pročitao, poslodavci imaju jasnu predstavu kako bi jedan dobar junior kandidat trebao da izgleda po pitanju tehničkog znanja i stepena sposobnosti za rešavanje problema. Često se pominje i da ljudi sa fakseva izađu sa nedovoljno znanja za real world posao. Buzzword su i neki "ozbiljniji projekti" koje bi kandidat trebao da ima za sobom, bilo lični bilo komercijalni.


Ono što me konkretno zanima jeste - kakvi se to projekti računaju u ozbiljnije? Šta to poslodavci zapravo žele da vide u portfoliju, a što bi demonstriralo odgovarajući nivo znanja?

Naravno, pri tome mislim na stvari koje bi odgovarale entry levelu/junioru.

Recimo za JS, python, C# - bilo za web nebilo, potpuno mi je svejedno. Ako neko ima predstavu o tipu projekta koji bi odgovarao gorenavedenom za bilo koje polje i bilo koji jezik, molim ga da napiše.

Unapred vam hvala na vremenu i odgovorima! cheers
 
Poslednja izmena:
Poslodavcima koji zaposljavaju juniora je (uglavnom, jer postoje izuzeci) najbitnije da oni vide da si ti nesto radio (sto zapravo pokazuje da tebe programiranje stvarno interesuje), a manje je bitno sta si konkretno radio (jer ipak si junior i ne ocekuje se da imas iza seve bog zna kakve projekte). Po mom misljenju dobar nacin da kvalitetno popunis CV pre nego sto se zaposlis kao junior je da potrazis neki open source projekat koji te zanima i da krenes da mu doprinosis. Za pocetak sa jednostavnijim stvarima pa kako vise i vise napredujes tako i doprinosis sa komplikovanijim stvarima :)

U nekim oblastima postoje drugi dobri nacini. Npr. ako te zanima mobile development, onda vremenom napises nekoliko aplikacija koje objavis na store-u. Prvo neku jednostavniju aplikaciju, pa malo komplikovaniju itd. Sa par aplikacija koje si sam napisao i objavio, svaki poslodavac ce te rado prihvatiti kao junior programera.

Postoje i drugi nacini, zavisno od onoga sto bi voleo da radis, ali ovo gore su samo neke smernice.
 
Poslednja izmena:
@Nothingman, hvala ti na odgovoru!

Za store varijantu - kako se kotiraju klasične igrice tipa tetris, asteroids, memory, blackjack itd? Možeš li mi dati neke primere jednostavnih / "malo komplikovanijih" aplikacija?

Nisam mobile dev, inače, mada sam razmišljao o pravljenju nečega za android čisto da se upoznam sa procesom. Pa ako to nešto istovremeno može da bude i zgodno za portfolio - super. Trenutno učim web development, treba da izaberem backend - tu sam u node vs ruby vs django trilemi, vrv ruby, mada ništa nije konačno.
 
Ja bih ti pre preporucio node nego ruby posto ce potraznja za node developerima rasti... Naravno, da ovladas node-om treba da ovladas i JS-om [emoji4]


Sent from my iPhone using Tapatalk
 
Znam, to mi je i jedan poznanik isto rekao. Međutim, iako mi je javascript sam po sebi veoma dobar, ekosistem mi masira živce. Na svakih 5 dana izađe neki novi framework koji radi potpuno iste stvari kao i svi drugi pre njega a očekuje se da ga znaš čisto da ne bi bio "van toka".

https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f#.eqnrjdeon

Ne znam dal je i sa Node takva situacija? Zbog toga bih pre uzeo Ruby ili Django - stabilniji su.
 
Poslednja izmena:
samo python bajo moj
 
Meni iskreno JS ide na zivce sam po sebi, ali za front-end ti nikako ne gine, a za back moze bilo sta da radi posao za manje projekte.

Poznavanje MEAN ti je najbolji nacin da dodjes do posla...


Sent from my iPhone using Tapatalk
 
U pravu si, ali je poenta sta sve mora da zna, a MEAN ne moze preko noci da se nauci (da nauci samo JS i Angular pa treba dosta vremena)....
 
Hehe, @n1tr0, to beše hiperbola / proizvod akumulirane jednogodišnje frustracije :) i nije se odnosilo konkretno na mean stack, već opštu JS džunglu. cheers
Lik koji je pisao taj članak je to odlično artikulisao.

Problem kod MEAN stacka je što da bi ga stvarno znao moram raditi na većim projektima. Da bih radio na većim projektima moram znati MEAN stack :D Ovako će mi proći život u teoriji i sklapanju frankenštajnovih čudovišta od raznih kurseva i parčića znanja koje mogu naći po netu.

Jednostavno: treba mi praksa i to je to, onda bi možda mogao. A samostalno naučiti MEAN bez šireg konteksta njegove primene, i to bez prethodnog znanja bilo programiranja bilo web arhitekture ... rekao bih veoma teško. Ne nemoguće, ali ko što reče warrior - Vreme. Čak i imam angular sajt, moj stari portfolio. Ali to nije dovoljno. Mada sad bih ga već i drugačije uradio.

U međuvremenu treba od nečega i živeti, nije da mogu samo sedeti i blejati u komp glumeći studenta.

@Dark Warrior, @Neky,

Python mi je strava jezik, to sam prvo i učio, ali na startitu se ne pominje bez prefiksa "senior".
Nešto nisam primetio ni da je community u srbiji ... pa postojeći, ako ništa drugo, bar nije bio pre godinu dana. Inače bih uzeo python bez razmišljanja, a ne bih ni pravio ovu tranziciju na JS.

I vas dvojica ste me prilično iznenadili :)

Za ruby imam resurse, za python imam dobru volju, za js imam frustraciju. Za python i ruby ne postoji tržište, bar ne ovde, i to još manje za python nego za ruby.

Na kraju ću raditi PHP :mad::exploder:
 
Mene je Python "odveo" u Amsterdam, a ako si iole dobar, piši PM pa da ti nađemo neki posao u NS.
 
Pazi - ako naucis neke osnove za mongo, naucis node, naucis malo express, i naucis angular onda ce te bez problema neko uzeti kao juniora na dalje obucavanje i rad kroz koji ces uciti slozenije i za to ces biti placen naravno (bar tako mi radimo). Mi smo cak php juniorce koji su znali jedan framework stavili da uce MEAN i eno sada to rade... Naravno ima jos i PHP poslova i iskreno da ti kazem meni je PHP drazi za kodiranje (nesto tipa Laravel i Lumen, pa mozda cak i Phalcon) od Node/Express... Da znam unapred koji ce Swift framework biti #1 prebacio bi ljude odmah na to.


Sent from my iPhone using Tapatalk
 
Sta je po vama krucijalno sto treba da zna jedan Java junior developer?

Imam god i po dana iskustva gde sam prvu godinu radio Spring, JPA, Hibernate, Maven, JUnit i JavaScript i 6 meseci gde sam radio sve sto mi kazu (necu da imenujem firmu) i regruter me iscima preko LinkedIn-a, gde sam obavio intervju preko skype-a, koji je bio krajnje surov pocev od nekih heavy pitanja iz spring-a, preko nekih skolskih primera iz uvoda u programiranje... malo sam zbunjen i poceo sam da se plasim da ja nemam blage veze sa programiranjem, jer odgovor koji sam dobio je krajnje razocaravajuc. Smorilo me to sto mi je uzasno palo samopouzdanje, a iza sebe imam preko 10 jakih web projekata (korporativne aplikacije, rest api) i ko zna koliko utility aplikacijica, developerskih alata i desktop resenja... Takodje i da napomenem, pre svakog razgovora ja im iskreno kazem sta ne znam, da ne bi dolazilo do ovakvih situacija, ali sam sad trenutno u totalnoj konfuziji i po ceo dan sedim i razbijam glavu gde gresim i gde sam zatajio.

Help meee
 
Vidi, to što si pomenuo je sasvim dovoljno za junior developer-a, po meni čak i manje je dovoljno. Mislim da bi na tim intervjuima i Seniori loše prolazili pa ti preporučujem da se mnogo ne uzbuđuješ. Za intervjue treba spremiti teoriju OOP, osnovne paterne i naravno ono što si naveo od tehnologija da poznaješ.
 
Da u kratkim crtama izdetaljisem sta su me sve pitali, Spring (Core, Security, AOP, IoC, Dependency Injection, Anotacije, XML config, MVC, JSP(rekao sam im da ne znam dobro), Beans) iz svakog dela po pitanje, podpitanje.. pa onda sta su REST servisi, sta su Microservisi, sta je Docker, AWS.. pa onda razlika izmedju JPA i Hibernate, nabroj osnovne anotacije, kako napraviti inner join, sta je sesija, a sta transakcija, da li moze custom query da se napise sa jpa repository interfejsom...pa onda razlika izmedju apstrakne klase i interfejsa, sta su immutable klase, sta je binary tree, pa je onda bio neki zadatak da se resi rekurzijom i nizovima u kome se nisam najbolje snasao...pa su me onda pitali koju bih ja anotaciju uveo u javu/spring, koje je optimalno vreme isticanja za json web token.. zasto je bolji @RestController od @Controller-a, zasto je lose da sam napravim ssl sertifikat za svoju aplikaciju, sta je POJO, DAO, DTO, observer, singleton, factory...

ako se setim jos necega, dopisacu.. jbt, kapiram i dalje sam pocetnik, sam smatram da ne znam dovoljno ili se previse trazi, ali sam 90% ovih pitanja odgovorio onako kako ih ja razumem i kapiram na sta sam dobio odobravanje od strane ispitivaca... nisam znao da objasnim binary tree i taj jedan zadatak sa nizovima..mislim se ako je to presudilo, onda odoh da promenim zanimanje...

+ napomenuo sam im da sam sam naucio spring i ceo taj stack tehnologija uz spring, jer na faxu od swinga nismo isli dalje... u prethodnoj firmi su mi dali 3 sata da napravim aplikaciju za parking u bilo kom jeziku i iq test i dobio sam posao iz prve..
 
Poslednja izmena:
Taj sto te testirao je moguce diplomirani Fonovac, pa te zato smara sa tim pitanjima sa prve godine kao taj zadatak sa rekurzijom ili sta je binarno stablo. Prvo pitanje je zadatak na ispitu iz OOP a drugi iz Struktura Podataka.

Iskreno, ne znam kako radis a da ne razumes rekurziju. To je ono, osnovni koncept u programiranju i gomila stvari se implementira pomocu rekurzije. Mogao je da te pita da napises program koji pretrazuje to binarno stablo, a to je najlakse pomocu rekurzije. On te je, koliko kapiram pitao kako da prodjes kroz niz pomocu rekurzije, jel da?


Hehe, nisam los. Bolji nego sto sam mislio da cu biti. Kada sam video link ocekivao sam neki bauk.

Ja sam se inace jednom davno izblamirao najstrasnije. Dosao na razgovor a lik mi tutnuo SQL i mrezni test. A ja bio jako, jako tanak sa tom oblascu. Katastrofa sam prosao, mada je test bio onako malo babaroga. U svakom slucaju gori od Gugletovog. Prva cetiri pitanju u Gugl testu su opste obrazovanje da tako kazem.
 
Poslednja izmena:
Razumem ja rekurziju, nego konkretno taj zadatak nisam mogao da resim, u fazonu "zamisli niz" pa je izdiktirao jedno 15 brojeva i onda je bila fora da nadjem neki broj...bla bla
 
Nema potrebe da gubis samopouzdanje nakon jednog ili nekoliko losih intervjua za posao. Intervju za posao je proces koji sam po sebi ima mnogo mana i kao takav ne garantuje da ce svi kandidati koji zapravo odgovaraju poziciji biti i primljeni. Previse je stvari koje mogu poci naopako. Velike firme iz tog razloga najcesce omogucavaju da se ponovo prijavis posle nekog vremena, jer su i same svesne da je proces pun rupa.

Takodje, u velikim firmama je najcesci slucaj da te o tehnologijama nista nece ni pitati, niti ih zanima da pises u nekom konkretnom jeziku, nego ces dobiti odredjen broj problema koje treba da resis koristeci jezik koji god zelis (moze i pseudokod).
A problemi su upravo tog tipa koji si pomenuo (nizovi, liste, stack, stabla, donekle grafovi, rekurzija).

Problem sa ovim tipom testa je taj sto su ovo nerealni uslovi za rad. Ljudi cesto osecaju pritisak kad im neko sedi iznad glave i ocekuje resenje problema. Zapravo ljudi generalno mogu potpuno da podbace zbog treme u ovakvim situacijama i to kompanije dobro znaju, ali jednostavno do boljeg a jeftinog mehanizma pri zaposljavanju jos nisu dosli (idealno bi bilo zaposliti svakog kandidata na 1-3 meseca pa onda odluciti da li je dovoljno dobar ili ne, ali naravno to je neizvodivo zbog troskova).

Po mom misljenju, nesto bolji proces intervjuisanja od ovog gore je da kandidatu das odredjeno vreme (npr jedan dan) da resi neki problem (u vidu aplikacije) kod kuce i da posalje resenje. Na taj nacin kandidat radi u realnim uslovima, gde ima sve resurse dostupne. Onda ako resenje koje je poslao ima smisla, taj kandidat se pozove na usmeni razgovor gde se detaljno prolazi kroz kod koji je napisao i od njega se trazi da objasni zasto je odabrao bas ta konkretna resenja, a usput mu se postavljaju i razna potpitanja. Mana ovakvog procesa u odnosu na prethodni je sto zahteva vise vremena po kandidatu.

Kod nas u praksi proces intervjua moze da izgleda kao jedan od ova dva gore navedena, ali je mnogo cesce da ti se desi intervju kakav si ti imao - da su izmiksana pitanja iz odredjenih srodnih tehnologija (koja zavise od pozicije na koju se prijavljujes) sa zadacima poput onih koje sam vec pomenuo. Problem sa ovakvim tipovima intervjua moze biti taj sto se od kandidata trazi nerealno mnogo. Covek koji intervjuise sastavi pitanja iz oblasti koje on odlicno poznaje i od problema na koje nailazi na dnevnoj bazi i onda krene da reseta kandidata koji je vrlo verovatno resavao nesto drugacije probleme na dnevnoj bazi i logicno je da im nisu iste stvari sveze u secanju. Kod ovakvog tipa intervjua takodje postoji opasnost da se ispolji kompleks vise vrednosti ispitivaca - da vise vremena provede demonstrirajuci svoje znanje nego ocenjujuci znanje kandidata.

Tako da, kao sto vidis, uopste ne mora biti problem do tebe. Ako nisi prosao neki intervju za posao moze biti mali milion razloga i nema potrebe da zbog toga gubis samopouzdanje. Moj savet ti je da obnovis malo znanje iz osnovnih stvari (nizovi, liste, stabla, grafovi) jer realno moras da znas da objasnis na intervjuu sta je to binarno stablo i osnovne stvari oko njega. Znaci ne treba da znas algoritme (tipa da napises quicksort za sortiranje niza ili da znas napamet algoritme za nalazenje najkraceg puta u grafu - to ako te pitaju onda je problem do njih. Mada konkretno za quicksort bi mozda bilo dobro da ga znas napamet kao i njegove performanse (sto je neko opste znanje), jer to cak i moze da se desi da te pitaju. :D), ali moras da znas sta su liste, stack, stabla, grafovi, kako se kroz njih prolazi i generalno osnovne stvari o tome (+ moras da budes spreman da uradis relativno jednostavne zadatke vezane za to). Sa znanjem koje trenutno imas o tehnologijama u kojima radis (pod pretpostavkom da je ovo gore sto si napisao tacno) to bi trebalo da bude i vise nego dovoljno za bilo kakav normalan intervju. A ako od tebe kao juniora budu trazili vise od toga onda znaj da je problem u tome sto oni previse traze, a ne u tebi.
 
Poslednja izmena:
Malo je nezahvalno objasnjavati strukture podataka samo koristeci reci. Mnogo je lakse kada je taj ko te intervjuise u prostoriji sa tobom i kada imas prazan list papira ispred sebe. U takvoj situaciji sansa da ne odgovoris tacno na pitanje sta je (sortirano) binarno stablo je jednaka nuli.

Edit: Ili bolje receno tezi nuli, posto vi matematicari preferirate tako :p
 
Poslednja izmena:
Поздрав свима,

Хтео бих поред мог факса да учим нешто у вези рачунара пошто ме доста интересује,оно што ми је привукло пажњу је програмирање нпр. пхп или линукс мрежна администрација.Шта би сте ми препоручили,шта је лакше,шта боље за посао,шта плаћеније и колико одприлике?Да напоменем да ми математика уопште није јача страна пошто је нисам имао од основне школе.Преко нета сам о програмирању налазио доста а о линукс администрацији не нешто пуно.Не знам ни колико би било ефикасно преко нета учити линукс администрацију.Оно што тренутно знам о рачунарима је да подигнем систем на виндовсу и линуксу и неко нормално свакодневно корисћење.
 
Ja imam pitanje za .NET C# developere, šta je to što budući junior treba da zna, koja pitanja mogu da se očekuju na razgovoru za posao. I koje tehnologije je još dobro poznavati/znati.

Sent from mTalk
 
To je teško definisati, ali sigurno je da znanje iz OOP pomaže, strukture podataka, opšta znanja iz programiranja su takođe poželjna, neko iskustvo sa bilo kojim savremenim IDE, html5/css/javascript.
 
Nazad
Vrh Dno