Ką turi žinoti kiekvienas programuotojas darbo pokalbio metu

No Comments

Prieš keletą metų, atėjus pirmai linkedin reqruiterių bangai, su pora kolegų turėjom gan keistą hobį – kolekcionavom darbo pokalbius 🙂 Naujo darbo kaip ir neieškojom, bet buvo atsiradęs azartas sužinot dar daugiau naujų klausimų, kurie pasitaiko darbo pokalbiuose.

Privalumas darbo pokalbių, kai iš tikrųjų darbo neieškai:

  • Susipažįsti su naujais įdomiais žmonėmis
  • Lavini iškalbą stresinėje situacijoje – daug laisviau kalbi, kai eini pasikalbėti su žmonėmis tik šiaip, netrokšdamas konkrečios pozicijos
  • Susirenki krūvą įdomių klausimų apie darbą, programavimą ir t.t., apie kuriuos šiaip nepagalvoji
  • Gali gauti sau ir dabartinei įmonei naudingos informacijos aktualiais klausimais, pvz:
    • O kaip jums sekasi naudoti agile?
    • Kokie ? technologijos pliusai ir minusai, ar lengva ją buvo pradėt naudoti?
    • Kaip sprendžiat problemas komandos lygyje?
  • Jei pokalbio metu pastebi, jog darbo skelbimas buvo perdėtai prisaldintas tokiais išsireiškimas „plačios galimybės mokytis“, „motyvacinė sistema sistema“ ir .t., galima tiesiog paklausti (čia iš realaus pokalbio) „kokios tos plačios galimybės mokytis paminėtos skelbime? Siunčiat į kažkokius kursus?“ Šitas klausimas tikrai buvo netikėtas, interviu dalyvavo du žmonės, po žvalgymosi vienas į kitą, kažkuris sugebėjo išspausti – „na čia tas ir tas labai daug skaito ir domisi, jo galima apie viską klausti, nereikia nei jokių kursų“. Na tiesą pasakius aš pats irgi moku skaityti 🙂

Trūkumai:

  • Kartais tokių pokalbių metu žolė kitur pasirodo žalesnė ir įneša šiokių tokių dvejonių dėl esamo darbo 🙂 Bet dažniausiai tik trumpam, kol visa gauta informacija susivirškina

1 dalis: programavimas (c#)

  • Kuo skiriasi klasė nuo objekto?
  • Kuo skiriasi static metodas nuo ne static?
  • Ar gali static klasė turėti konstruktorių?
  • Kuo skiriasi abstract tipo klasė nuo interface?
  • Kam naudojama sealed klasė?
  • Kas yra konstruktorius?
  • Kuo skiriasi gija(thread) tuo proceso?
  • Kam reikalingas virtual prierašas prie metodo?
  • Kuo skirasi value ir reference tipai?
  • Kuo skiriasi ref ir out žymės prie parametro metoduose?
  • WPF: Kam reikalingas INotifyPropertyChanged interface?
  • Kas yra IoC?
  • Kuo skiriasi konstanta (const) nuo readonly?
  • Paveldimumo, virtual, new suvokimas:
    class A {
        public virtual int Hello() {
            return 1;
        }
    }
    
    class B : A {
        new public int Hello() {
            return 2;
        }
    }
    
    class C : A {
        public override int Hello() {
            return 3;
        }
    }
    Turimos klasės:
    B objectB = new B();
    C objectC = new C();
    Console.WriteLine(objectB.Hello()); 
    Console.WriteLine(objectC.Hello()); 
    Kas atspausdinta šiuo atveju:

    A objectB = new B();
    A objectC = new C();
    Console.WriteLine(objectB.Hello()); 
    Console.WriteLine(objectC.Hello()); 
    O kas šiuo?

2 dalis: loginiai klausimai

Jei su techniniais klausimais susidoroti paprasta (žinai arba nežinai, jei nežinai – tai ir sakai jog nežinai, kad neprišnekėtum nesąmonių), tai su loginiais klausimais yra sudėtingiau – kartais paprastą klausimą sumaišius su truputėliu įtampos gali kilti panika, o tada nieko gero nelauk (irgi patirtis iš senų laikų, kai buvau jaunas ir kvailas junior’as). Patarimas – stenkitės nusiraminti ir galvokite apie sprendimą garsiai. Loginiais klausimai dažniausiai yra tam, kad stebėt kaip žmogus mąsto, todėl geriau netylėt, dėstyt mintis ir papuolę į aklagatvį, tikėtina kad gausite pagalbos. Pats šitą vietą dar laikau ganėtinai silpna, teks tuo užsiimti 🙂

  • Koks laipsnis tarp valandinės ir minutinės rodyklės, kai laikrodis rodo 12:30?
  • Turim 5 poras juodų ir 5 poras baltų kojinių. Kiek max traukimų reikės, kad užtikrintai turėtume vienos spalvos kojines?
  • Turim 5 poras juodų ir 5 poras baltų pirštuotų pirštinių. Kiek max traukimų reikės, kad užtikrintai turėtume vienos spalvos teisingą porą pirštinių?
  • Turim penkiaženklį skaičių. Kažkurį vieną skaitmenį išbraukiam ir tuos du skaičius (penkiaženklį ir gautą naują keturženklį) sudedam. Rezultate gaunamas skaičius 52713. Koks buvo pradinis skaičius?
  • Turite 8 monetas, kurių svoris vienodas, išskyrus vieną, kuri yra sunkesnė už kitas. Jūs taip pat turite senas pusiausvyrines svarstykles, kurios leidžia palyginti dvi krūveles monetų. Kiek mažiausiai svėrimų reikia, norit rasti sunkesnę monetą?

3 dalis: programavimas

Mokeisi KTU? Tuomet turbūt atsimeni programavimą pas Blonskį ant popieriaus 🙂 Kartais 100 klausimų atstoja vienas geras uždavinys. Jį gali tekti spręsti:

  • Ant popieriaus lapo, kur nėra daug vietos, tad undo galimybės gali ir nebūti
  • Ant baltos lentos
  • Jei nori darbintis pvz amazon’e – www.hackerrank.com puslapyje

Beje, www.hackerrank.com puslapis buvo vienas iš šauniausių atradimų, ir jei patinka spręsti programavimo uždavinius – ten gali praleisti tikrai daug laiko.

4 dalis: programavimo teorija

Per dažną pokalbį to neklaus, bet verta žinoti vardan bendro išsilavinimo, arba jau pradėti rimčiau šitą mokytis, jei ateityje norėtumėte dirbti pvz google, amazon ar facebook

5 dalis: patirtis

  • Su kokia sudėtingiausia užduotimi teko susidurti?
  • Kokių teko padaryt klaidų programuojant (nepudrinam kad dirbam idealiai, manau pas kiekvieną yra griaučių po lova, kurių nesinori prisiminti)? Čia reikėtų nepamiršti papasakoti ir kaip tą užduotį darytum dabar
  • Su kokiais patternais teko susidurti programuojant?
  • Kaip įsivaizduoji save po 5 metų(best klausimas ever)?  Visi kažką planuojam, kad ir kokia vizija dabar būtų nereali, apie ją verta papasakoti
  • Ką darytum, jei žinotum jog tau tikrai pasiseks? Manau klausimas iš tikrųjų galintis išmušti iš vėžių labiau nei prieš tai paminėtas, tad geriau pagalvoti iš anksto 🙂 O čia straipsnis linkedin’e, kur tą klausimą ir radau https://www.linkedin.com/pulse/interviu-klausimas-sprogdinantis-k%C5%ABrybi%C5%A1kumo-burbul%C4%85-simanauskaite

Pabaigai

Patiko klausimai? Tuomet pasidarykit kavos ar arbatos ir geros kelionės į google su šiomis dviem paieškom:

https://www.google.lt/search?q=Essential+.NET+Interview+Questions&gws_rd=ssl#q=+.NET+Interview+Questions&*

https://www.google.lt/search?q=Essential+.NET+Interview+Questions&gws_rd=ssl#q=google+interview+preparation+guide&*

Nuorodos, kurias rekomenduoju:

https://www.toptal.com/dot-net/interview-questions

http://a4academics.com/interview-questions/52-dot-net-interview-questions/417-c-oops-interview-questions-and-answers

http://bigocheatsheet.com/

https://github.com/andreis/interview#algorithms

https://courses.csail.mit.edu/iap/interview/materials.php

Komentarai

Komentarai

Categories: Programavimas

Parašykite komentarą

El. pašto adresas nebus skelbiamas. Būtini laukeliai pažymėti *