Kako upasti na stažiranje u Silicijskoj dolini


Goran Gašić
FER, Zagreb, 2013

Kako dobiti intervju


  1. Priprema životopisa
  2. Traženje stažiranja
  3. Slanje životopisa

Priprema životopisa

Struktura

  • Jedna stranica

  • Pregledan template sa stupcima
  1. Kratke natuknice
      • Do dva retka
  2. Ključni dijelovi
      • Radno iskustvo
      • Obrazovanje
      • Projekti
      • Postignuća
      • Programski jezici i tehnologije

    Priprema životopisa

    Sadržaj

    • Kako ga ispuniti? Radite na sebi po Google-ovom vodiču
    • Postignuća, ne odgovornosti
      • Glagoli u aktivu (npr. added, improved, led)
      • Brojkama pokazati učinak (npr. improved speed by 30%) 
    • Projekti
      • Na fakultetu, na poslu, u slobodno vrijeme
    • Razumljiv recruiterima i inženjerima
      • program (BS/MS/PhD), smjer (SE/CE/CS), sveučilište, fakultet te očekivan datum diplomiranja
      • ako niste ispunili stranicu dodajte "relevant coursework", predmete na kojima ste naučili stvari kojima ćete se baviti na stažiranju
      • tehnologije korištene na projektima i interesi (ne nužno profesionalni)

    Traženje stažiranja

    Slanje životopisa

    Kako razvaliti intervju

    Proces intervjua

    • Intervju s recruiterom
      • Predstavljanje
        • Zapravo provjera "culture fit"
      • Tehničke pitalice o najdražem programskom jeziku
  3. 2 ili 3 intervjua s inženjerima, svaki ima 3 dijela
      • Ponašajni intervju
      • Tehnički intervju
      • Vaša pitanja
  4. [Startup] Intervju s ekipom inženjera
  5. [Startup] Intervju s founderom
      • Formalnost; founder vam prodaje viziju firme

    Ponašajni intervju

    • Inženjer se predstavlja
      • Koliko dugo i na čemu radi u firmi
    • Vi se predstavljate
      • Opušteno!
      • Što studirate
      • Čime se bavite u slobodno vrijeme
      • Motivacija za stažiranje u firmi
      • Spomenite nedavne projekte ili postignuća o kojima ste spremni pričati kako biste se pokazali
    • Inženjer vam postavlja pitanja o ponašanju u nekoj situaciji (ako ste dobro odigrali karte, to je situacija o kojoj želite pričati)
      • Koji dio projekta ti se najviše/najmanje svidio?
      • Što je bio najveći bug?
      • Što je bio najizazovniji dio projekta?

    Ponašajni intervju

    Strategije

    • Prije intervjua napravite tablicu s odgovorima na moguća pitanja za svaku stavku u životopisu
    • Odgovori trebaju biti specifični i kratki - otvorite sažetkom kojim inženjera uvodite u temu o kojoj ćete pričati više ako je potrebno
    • Odgovori trebaju biti strukturirani
      • Situacija
        • Projekt
        • Ljudi
        • Tehnologije
        • Problem
      • Akcija
        • Što ste vi poduzeli po tome pitanju?
      • Rezultat
        • Što ste time postigli?

    Tehnički intervju

    Priprema

    Tehnički intervju

    Potrebno znanje

    • Strukture podataka
      • hash tablice, vektori, grafovi, stabla, vezane liste, stogovi, redovi, hrpe, prefiks stabla
      • Vremenske i prostorne složenosti operacija
      • Prednosti i mane, tj. kada primijeniti svaku
  6. Algoritmi
      • Pretraživanje u širinu/dubinu, binarno pretraživanje, mergesort, quicksort
      • Vremenske i prostorne složenosti
  7. Koncepti
      • Veliko O notacija, rekurzija, dinamičko programiranje

    Tehnički intervju

    Tipovi zadataka

    • Algoritamski zadaci
      • Obrni vezanu listu
    • Objektno orijentiran dizajn
      • Dizajniraj lift
      • Razmotriti objekte, veze, interakcije i algoritme
      • Rijetko se pojavljuju u intervjuima za stažiranje
    • Dizajn skalabilnih sustava
      • Dizajniraj Dropbox
      • Problemi s kojima se susreo inženjer koji intervjuira
      • Identificirati zašto trivijalno rješenje nije dobro
      • Jako rijetko se pojavljuju u intervjuima za stažiranje

    Tehnički intervju

    Algoritamski zadaci - strategije

    • Poklapanje uzorka
      • Podsjeća li me ovo na već riješen zadatak?
    • Pojednostavni pa generaliziraj
      • Što ako umjesto stringova imam integere?
    • Indukcija od trivijalnih ili rubnih slučajeva
      • Znam li riješiti zadatak za jedan element? A za dva?
    • Analiza struktura podataka i algoritama
      • Otvaram bilježnicu s listom najčešće korištenih struktura podataka i algoritama te za svaku razmišljam kako je mogu primijeniti na zadatak pred sobom
    • [Teže] Analiza moguće vremenske i memorijske složenosti rješenja
      • uz pretpostavku složenosti znam koje alate smijem koristiti kao građevne blokove rješenja, npr. binary search za O(N log N)

    Tehnički intervju

    Poklapanje uzorka

    • Obrni redoslijed riječi u rečenici

    Input: obrni redoslijed rijeci u recenici
    Output: recenici u rijeci redoslijed obrni

    Pojednostavni pa generaliziraj

    • Ukloni duplikate znakova u stringu bez dodatne memorije

    Indukcija od trivijalnih ili rubnih slučajeva

    • Generiraj sve podskupove prvih N prirodnih brojeva

    Input: 2
    Output: {}, {1}, {2}, {1, 2}

    Tehnički intervju

    Pristup tehničkom intervjuu

    • Obavezno tražite video intervju zbog daleko manje komunikacijske barijere (Hangouts ili Skype)
    • Potpuno definirajte svaki zadatak postavljanjem pitanja
      • Zadaci su često namjerno dvosmisleni
      • Što su dozvoljeni tipovi ulaznih podataka?
      • Što su dozvoljeni intervali vrijednosti ulaznih podataka?
    • Počnite razmišljati od brute force rješenja
    • Obavezno razmišljajte na glas
      • Pokažite kako razmišljate
      • Usmjerit će vas ako vide da ste blizu točnoga rješenja
    • Kritički razmišljajte
      • Hoće li algoritam raditi za rubne slučajeve? Koja je njegova složenost?
    • Testirajte kod
      • Prije nego što kažete da ste gotovi, odvrtite kod za trivijalne i rubne primjere ulaznih podataka
      • Ne radi? Pažljivim čitanjem koda pronađite i popravite bug

    Vaša pitanja

    • Zašto imate priliku postavljati pitanja?
      • Intervju je dvosmjeran proces
    • Ako pratite firmu na Facebook-u, Twitter-u i ostalim socijalnim mrežama, lako ćete se sjetiti par pitanja o proizvodima ili tehnologiji za inženjera koji vas je intervjuirao
      • Ovime pokazujete interes za firmu
    • Predlažem pitanja kojima ćete saznati kako će izgledati vaše iskustvo na stažiranju
      • Hoću li dobiti mentora i kako će taj odnos funkcionirati?
      • Hoću li dobiti vlastiti projekt koji bih trebao dovršiti na stažiranju ili ću raditi na velikom projektu s ostatkom ekipe?
      • Kako će se evaluirati moj rad?
      • Dajete li ponude za posao najboljim stažistima? 

    Hvala na pažnji!

    • Sva pitanja, pohvale i pokude šaljite na LinkedIn
    • Q&A!

    Kako upasti na stažiranje u Silicijskoj dolini

    By Goran Gasic

    Kako upasti na stažiranje u Silicijskoj dolini

    • 1,227