Archive for the ‘razvoj sotware’ Category

Intervju za programere

Studeni 19, 2014

Ovaj članak će opisati moje viđenje svih bedastoća u razgovoru za posao kod programera.
Te opisati sam proces.

Pošto sam u zadnjih par mjeseci bi na par, dosta mi je svježe.

Ukratko, većina procesa za intervju programera je glupa.

Moje iskustvo

    Ja sam osobno bio na oba dvije strane:
  • onaj koga se ispituje
  • onaj koji mora ispitivati (i sastavljati ispite) za potencijale kandidate
  • Također sam bio na ukupno možda 30 intervju, od toga 70% za poslove van Hrvatske.

      Usput bi svakome preporučio da ako će već programirati sljedeće:
  • neka se pokupi van HR; bolji poslovi i bolja para
  • ili neka radi od doma za strance direktno, to je isto bolje plaćeno
  • ako odete u neku firmu, gledajte da stvorite dojam da ste bitni, to je važnije od rada
  • Važnost faksa za programiranje

    Već nakon jedne godine profesionalnog radnog iskustva, bilo mi je jasno da većinu onoga sto sam učio na faksu nije baš ni potrebno u radu.
    Nažalost to je tako.
    Također, ono što i naučite na faksu (ipak se nešto korisno i nauči), možete i samostalno naučiti u puno kraćem vremenskom roku i jeftinije.

    Tako da kada se sve zbroji, jedina koristi od faksa je što da papir, imate napismeno da ste npr. “magistar inženjer računarstva”, ali u praksi to se ne gleda puno.
    Osobno još nisam bio na intervju gdje su me pitali što sam završio.

    Ako želite programirati, faks vam nije bitan.
    Znam ih dosta što programirjau za pare, a nemaju faks.

    Povezanost intervjua i posla koji čete raditi

    Nakon jedne godine, jasno mi je bilo da povezanost između što se uči na faksu i što se radi u praski nije 100%.
    Postoji više razloga zašto je tako, ali ne bih sada o tome.

    Ali ono što mi je bilo začuđujuće je da i ono što vas se ispituje na intervju, obično nema veža sa onim što ćete poslije raditi.

    Evo par primjera.

    Primjer 1
    Jednom sam dobio pitanje:
    Napravi funkciju koja provjerava koliko je bitova postavljeno u broju.
    Npr. 5 je binarno 0101, pa je odgovor 2.
    Za one kojima treba odgovor StakOverflow je tu.
    Ja osobno volim to riješiti sa dijeljenjem sa 2, jer je najlakše razumjeti.

      Zašto je ovo glupo pitanje ?
  • već je poznato svugdje
  • ne treba u praksi
  • da mi zatreba prvo ću googlati
  • To je zapravo i programiranje postalo u praksi, kada nešto trebaš napraviti, prvo googlaj pa onda razmišljaj.

    Primjer 2
    Dosta je često na intervjuima dobije pitanja u vezi binarnih stabala.
    Pitanju su tipa: binary search, visina stabla, normalizacija stabla, itd.
    Obično se dobije po 20 minuti za riješenje.

      Ovo je isto primjer idiotizma i to iz više razloga:
  • svi programski jezici imaju ovo implementirano, u praksi ovo ne treba
  • ako netko nikada nije prije ovo implementirao, nema šanse da uradi u 20 minuti, još na papiru
  • jedino tko ovo zna napraviti u 20 minuti, je onaj tko je prije to već napravio
  • I to se onda u praksi svodi da postoji set pitanja, koje morate naučiti rješavati radi intervjua ali ne zato što to treba u praksi.

    Ovakvih primjera ima još mnogo.

      Uglavnom se svode na pitanja
      koja nisu potreban u praksi
      pitanja koja možete riješiti samo ako ste ih prije riješili

    Što otprilike znači da se morate unaprijed pripremiti, čak bih rekao i naučiti napamet.

    Faze intervjua

    Sam proces intervju je obično podijeljen u nekoliko faza.
    Zna to i vremenski trajati jako dugo.

    U Skypu u mome slučaju je trajalo 6 mjeseci, istina 6 mjeseci.
    Da je još 3 mjeseca duže, mogao sam i roditi 🙂

    Bilo da se vi javite na oglas ili vas neki recruiter pronađe (ja imam više iskustva sa ovim), to obično izgleda ovako:

    1. Gledaju vaš CV i prema tome ocijenuju da li ste im zanimljivi
    Zato je bitno imati dobar CV, ne bih nikome savjetova da laže na njemu, ali morate se prikazati u dobrom svijetlu.
    Ja osobno imam napisane firme i pozicije na kojima sam radio, u kojem vremenskom roku, koje tehnologije i opis od 1-2 rečenice o projektu.
    Kako imate više iskustva CV Vam raste, a ne želite da bude prevelik, jer nitko neće čitati 10 strana.
    Moj je trenutno na 3 strane i mislim da mi je to max.
    CV Vam je najbitniji, jer ako on nije dobar, neće Vas ni zvati dalje.

    2. Poslje toga krenu telefonski / Skype interviju
    Tu sam svašta vidio. Obično budu bar 2 pa naviše.
    Uglavnom s developerima i menagmentom.
    Ponekad bude i sa više različitih developera, ali ne u isto vrijeme.
    Imao sam iskustva da me 3 developera, svaki u svom intervju, pitaju isto pitanje npr. “Što su generatori u Pythonu”.
    Uglavnom im je 40% pitanja bilo isto, i to znam biti dosadno, jer se misliš “Pa zadnjim put me je to onaj drugi isto pitao”.
    Prema mom iskustvu, ti intervju nisu da se nastavljaju jedan na drugi, već više ljudi Vas želi upoznati i vidjeti tko ste.
    Nekada sam trebao i kodirati online a oni bi gledali.

    3. Offline zadatak
    Nekada bih dobio i zadatak koji je trebalo riješit.
    To mi je OK ako je potrebno do 2h ili mi je barem zanimljivo.
    Neki su bili i po par dan kodiranja.

    4. Onsite intervju
    To je kada dođete do njih na njihovu lokaciju.
    Ovo treba plaćati poslodavac, iako sam jednom doživio da su tražili do mene da dođem o svom trošku.
    To bi bilo znalo biti samo radi upoznavanja, ali je bilo i kodiranja.

    5. Jave Rezultat (više puti)
    Ako ste prošli sve faze do sada i imali uspješan onsite intervju, i dalje ne morate dobiti posao.
    I osobno do sada imam 3 iskustva gdje sam prošao sve faze, a poslije bi mi javljeno da se to mjesto ipak zatvara radi reorganizacije.
    I sve se radilo o firmam izvan HR.
    Tako da i van naše države ima svega.
    Neki misle da su ljudi u nas neorganizirani, a da je vanka to bolje, ali ja sam i za vanka vidio svega.

    Zaključak

    Većina intervju za programere su glupi, nemaju veze sa onim što što vam treba za to radno mjesto u praksi.

    Ako želite negdje dobiti posao, prvo morate pobijediti njihov intervju.
    Savjetovao bih googlanje njihovog procesa, ako ste sretni naći ćete i pitanja.
    Ako Vas je našao nekakav head-hunter, recruiter, i on će Vam ih sam dati, što čini cijeli intervju jako smiješnima, pogotovo kada vam 80% pitanja ispadne pitanja koja ste već čuli.

    Trošak nepisanja Unit Test-a

    Siječanj 11, 2013

    Pronađeno na:
    http://www.codeguru.com/blog/category/programming/the-cost-of-bugs.html

    Za buduće informatičare, programere, sistemce

    Prosinac 8, 2012

    Sljedeća dva linka bi preporučio pročitati svakome tko misli biti “informatičar”.
    Ako planirate upisati ili studirate računarstvo onda vam je obavezno 🙂 .

    Pogled od Radoslava Dejanovića.
    Zanimljivo štivo, iako se ne bavi problematikom razvoja software, za to je bolji drugi link.
    http://www.monitor.hr/clanci/sindikat-trudbenika-informatickih/161919/

    Ovaj link bi preporučio svima koji se misle baviti razvojem software tj. programiranjem.
    Pogotovo prvu poantu “Temporary nature of knowledge capital”
    http://www.halfsigma.com/2007/03/why_a_career_in.html

    P.S. u industriji sam profesionalno preko 7 godina

    Instalacija g++ na Ubuntu

    Siječanj 25, 2011

    Ako neznate što je g++, onda se nemojte ni zamarati sa ovim postom 🙂 .

    instlaciju g++ treba obaviti sa:

    sudo apt-get install build-essential

    Ovo sam obavio nad Ubuntu 10.10