PHP kódminőség fenntartás
php, qa, static code checking, phpunit, phpcs, phpmd, phpstan, churn, phpdd, psalm, phplint, phan
2024-10-17
Failed: bson encoding error: BSON element key cannot contain null bytes
mongo, mongodb, bson, null, key
2024-08-24
Nem bízol a kollégáidban? Akkor valamit rosszul csinálsz!
bizalom vezetokent
2023-05-03
Dolgok, amikről a programozók azt hiszik, hogy tudják, de tévednek
programozoi-tevhitek-falsehoods
2023-04-08
A programozóktól meg kell szabadulni
chatgpt no-code low-code
2023-01-22
Miért fontosak a személyes adatok egyáltalán?
privacyaware, privacy
2023-01-07
Egy tanmese a szerény, de tehetséges informatikusról, akit én csak Gézának hívok
privacyaware, privacy
2023-01-02
Beskatulyáznád magad egy termékkel? Gondold át még egyszer!
learning, vendorlockin, risky
2022-12-11
Rekrúterekről és állásajánlatokról
bérsáv, recruiter, relevancia
2022-10-30
"A hídon akkor kell átmenni, amikor odaérünk."​ - YAGNI
yagni, pagni
2022-10-17
"A lényeg, hogy a munka készen legyen!"
agile, estimation, becsles, scrum, home office
2022-08-20
Munka vs. hivatás, a klasszikus dilemma
hr, hobbi, munka, egyensuly, hivatas
2022-07-18
Miért nem fogok nálatok technikai interjún részt venni?
technikai interju, hr, recruit, leet code, coding challenge, take home challenge
2022-07-04
"Hogyan építsek kapcsolati tőkét, ha karriert szeretnék váltani?"
linkedin, tippek, trukkok
2022-06-10
Junior/Medior/Senior, hogyan mérjük?
junior, medior, senior, hr, grade, level, experience
2022-05-09
11 tipp frontendeseknek, hogyan tegyék hatékonyabbá a munkájukat
frondend, vscode, angular
2021-10-31
Motion zoom - mozgás alapú képrekonstrukció
#52het
2021-06-01
Gesture Launcher
#52het
2021-05-31
CellEvent, első Android alkalmazásom
#52het
2021-05-19
Notebookcheck, azaz hogyan válasszuk ki a legjobb ár-érték arányú eszközt
#52het
2021-05-18
Torrent multiplexer
#52het
2021-05-17
Process watcher, logger
#52het
2021-05-05
Lazy loading material dialog content
lazy loading, angular, material, dialog
2020-12-28
Runtime configuration loading in Angular
angular, runtime, configuration, settings, environment, production
2020-03-29
How to start an Angular project?
angular
2020-03-11
Az 52 hét projekt
#52het
2020-01-01
Akkutöltöttség-jelző
#52het
2020-01-01
NetClub - Kollégiumi internetszolgáltató
#52het
2019-12-31
DeeJayy - Lost Terminal
#52het
2019-12-31
Counter Strike monitor
#52het
2019-12-31
Kollégiumi CS bajnokság 2005
#52het
2019-12-31
Mozgásérzékelős képrögzítő, Camera Capture
#52het
2019-12-30
Többszörös host pingelő
#52het
2019-12-30
Sávszélesség mérő, tesztelő
#52het
2019-12-30
Generáljunk hamis adatokat
#52het
2019-12-30
SQL lekérdezések parancssorból, odbc-vel
#52het
2019-12-30
Nonogram generátor (aka. "Fesse feketére")
#52het
2019-12-30
Egyedi chat alkalmazás, kliens és szerver
#52het
2019-12-29
FontSelector - betűtípusválasztó / font preview
#52het
2019-12-28
Saját hálózati kommunikációs segédszoftver - sox
#52het
2019-12-28
Csoportos e-mail küldő szoftver Delphiben
#52het
2019-12-28
Universal Api caller module for Angular 7-9 With NGRX state management
Ngrx, API, Effects, HttpClient
2019-07-02
A leghosszabb projekt
#52het
2019-04-19
Legelső kioszk projektem: Stari Sör Jukebox
#52het
2019-02-28
BPM számláló
#52het
2018-11-01
Assembly féléves beadandók
#52het
2018-11-01
Chatbot before it was cool
#52het
2018-10-30
StartX - Cseréljük ki a windows tálcáját és a Start menüt
#52het
2018-10-28
What? - fájltípus azonosító
#52het
2018-10-27
Transport Tycoon DirectX
#52het
2018-10-26
Diff - fájlösszehasonlító
#52het
2018-10-26
De Facto - Szoftverfelügyelet
#52het
2018-10-25
CD és DVD katalogizáló
#52het
2018-09-24
MP3 segédeszközök
#52het
2018-09-24
Keylogger - azaz billentyűleütés-figyelő és naplózó alkalmazás
#52het
2018-08-29
Az örök projekt: személyes weboldal és blog
#52het
2018-08-14
Szógyakorló nyelvtanuláshoz
#52het
2018-08-13
Warzone 2100 mentett játék szerkesztő
#52het
2018-08-13
Rejtett Windows-beállításokat konfiguráló program: TweakMaster
#52het
2018-08-13
A DrótPostaGalamb levelezőprogram adatfájljainak dekódolása
#52het
2018-08-13
Privacy jegyzet
2018-07-30
Egy éve ilyenkor
2018-07-25
The Matrix - konzol szimuláció
#52het
2018-07-13
Kakaóreceptkönyv
kakaó
2018-06-29
Crackelés!
#52het
2018-06-22
A K.I.T.T. challenge
#52het
2018-06-18
Doom 2 botokkal
#52het
2018-06-16
Römi játék Delphiben
#52het
2018-06-09
MeetsCow & DeeJayy - Intro
#52het
2018-06-09
Direct viewer - bitmap megjelenítő
#52het
2018-06-09
bazMAG
#52het
2018-06-09
Console Vision - Konzolos ablakkezelő Delphiben
#52het
2018-05-01
Quake 2 egy floppyn
#52het
2018-04-20
Játék-kitömörítők
#52het
2018-04-12
Tetszőleges program elrejtése Windows tálcáról
#52het
2018-04-05
Személyre szabás
#52het
2018-03-28
A year with Angular 5, 6 - Angular 2018
#angular5 #angular #resources #articles
2018-03-16
Az ikon evolúciója
#52het
2018-03-14
Betűtípusok
#52het
2018-03-04
Billentyűzet-gyakorló
#52het
2018-02-28
Zenél is a DeeJayy?
#52het
2018-02-22
Térképrajzoló az Ascii 3D labirintushoz
#52het
2018-02-19
Ascii 3D labyrinth
#52het
2018-02-14
52 hét - 52 projekt, avagy #eletem
#52het
2018-02-14
Dockerezzünk virtualizált környezetben!
docker, xen, ubuntu
2017-11-12
A cloud-initramfs-copymods hatásai paravirtualizált környezetben
ubuntu, xen, copymods, docker, docker-ce, docker.io
2017-11-11
Virtualizáljunk Xen 4.6-tal Ubuntu 16-on (Xenial)
ubuntu, xen, virtualizálás, hypervisor, debootstrap
2017-11-04
Álláskeresésem története
álláskeresés, it, fejvadászok, linkedin, job
2017-10-24
FAR Manager competitors
far manager, file managers
2010-01-01
Blog
blog
2001-01-02

Miért nem fogok nálatok technikai interjún részt venni?

Ez a poszt eredetileg úgy készült volna, hogy felépítem, hogy miről van szó, mik az előnyök és hátrányok, némi konklúzió és tanácsok a végén. De néha csak szeretem bedobni a petárdát a szoba közepére és figyelni a reakciókat (és direkt várom is az ellenérveket, mert abból tudok építkezni, tanulni). Véleménycikk.

Mivel meglehetősen ritkán interjúzom, ez az írás nem lesz mindenre kiterjedő viszont sok esetben személyes, mert a saját tapasztalataim és mások véleményéből alakult ki.

Mégiscsak bevezetem: a technikai interjú az, amikor a jelöltnek meg kell oldani egy programozási feladatot. Ez lehet valami algoritmus (legtöbbször), valami projekt-szerű dolog elvárt kimenetekkel, stb. A megoldás történhet az interjún (képernyőmegosztással) önállóan vagy pair-coding szerűen, lehet take-home-challenge (azaz házifeladat jellegű, aszinkron megoldható, némiképp nyugodtabb környezetben).

Tehát mi a cél?

Nem kizárt, hogy a technikai interjúztatást lehet hatékonyan is csinálni, én még sajnos nem találkoztam ezzel az esettel. Az ilyen jellegű interjúztatók egyébként az első kritikára felteszik a kezüket és mondják, hogy "de én csak arra vagyok kíváncsi, hogy hogyan gondolkodsz". Már ez a kijelentés is kontraproduktív: ha megoldom a feladatot, de nem tetszik, ahogy gondolkodom, akkor nem tartasz alkalmasnak? A manapság sokszor hagsúlyozott diverzitásnak pedig pont ez az esszenciája: a különféle kultúrák, szociális környezetből érkezők, nemek, korok máshogyan gondolkodnak, ebből kovácsolnak előnyt.

Elmond valamit az interjúztatóról is: csökkenti a saját felelősségét a kiválasztási folyamatban. Hiszen alkalmazott egy eszközt, aminek a kimenetét a jelölt szabályozta, a kiértékelését néha bináris konklúzióra szorította (sikerült? akkor alkalmas. nem sikerült? viszontlátásra) - probléma letudva, "itt van feketén-fehéren, nem az én döntésem". Ez lehet az interjúztató saját preferenciája vagy a cég elvárása (ami pedig a cégről mondja el, hogy mennyire bízik abban, hogy a kiválasztásért felelős kollégák meg tudják hozni a döntést technikai feladat alkalmazása nélkül). Ha pedig az lenne az érv, hogy "van lehetőség figyelmen kívül hagyni/felülbírálni az eredményt", akkor játsszunk el a gondolattal, hogy egy rosszul sikerült eredmény után egyéb okok miatt felvett kolléga mégis rosszul teljesít.

Meg kell említenem, hogy ha egy pozícióra van 100 jelölt, akkor nyilván valamilyen effektívebb szűrőt kell alkalmazni, mint az egyenkénti interjúztatás és egy ilyen technikai teszt erre elégséges, a ténylegesen fogalmatlanokat ki fogja szépen szórni. Amit interjúztatóként itt fontos mérlegelni: van 100 jelölt? Tehát mondjuk gyakornok/junior pozíciót akarunk betölteni? Annyira népszerű a cégünk, hogy ömlenek be a jelöltek? Ha bármelyikre nemleges a válasz, akkor ez a módszer haszontalan.

Sajnos én sem vagyok ártatlan: egyszer éltem ezzel az eszközzel, hogy megbizonyosodjak arról, hogy a jelölt valóban fitt lesz-e a csapatunkba. Nekem még elég sokat kell fejlődnöm az emberek pontos megítélésének képességéhez, tehát nem bíztam magamban és ezt áthárítottam a jelöltre. Fel kell tennem a kérdést: mennyire hangzik ez fairnek?

A feladat egyébként egy take-home volt, fogtam egy valódinak tűnő feladatot, amivel mi naponta foglalkozunk, megadtam és előkészítettem azokat a technikai és üzleti előfeltételeket, amikkel mi naponta dolgozunk (kész alap framework, követelmények, design, elvárt eredmény) és megkérdeztem, hogy megvalósítaná-e. Nem elírás: megkérdeztem (sűrű elnézéskérések közepette), hogy pazarolhatom-e a szabadidejét (családos ember) arra, hogy én dönteni tudjak. Mérsékelten megalázónak éreztem egyébként, de igyekezett lelkesedéssel és pozitív üzenetekkel csökkenteni ezt bennem, innen is köszönöm!

Mennyire hasznos?

Ahogy utaltam rá, a legtöbb esetben csak egy "logikai" problémát kell megoldani, ami magával hordoz beépített részrehajlásokat. Az egyik ilyen, hogy aki az utóbbi két hétben (esetleg két hónapban!) az interjúra készülve naponta 1-1 népszerű feladványt megoldott vagy a megoldást megkereste (1 óra általában elég rá) az mit árul el az interjún lehozott eredményről?

  • Kétség kívül motivált abban, hogy az interjún jó teljesítményt nyújtson.
  • Volt ideje felkészülni a szabadidejében. Ennek a ténynek - reméletőleg - semmi hatása nem lesz a napi munkára (work-life balansz, dereng valami?).
  • Volt ideje felkészülni a munkaidejében. Ez amúgy bármit jelenthet, lehet, hogy nincs kihasználva 100%-ban, de azt is, hogy nem érdekli a mostani munkateljesítménye - nem fogod megtudni, hacsak el nem szólja magát.

Levonható-e a fentiek bármelyikéből olyan következtetés, hogy a napi munkában hogyan fog teljesíteni? Elhanyagolható százalékban. És van, akik erre az elhanyagolható százalékra alapozzák a szelekció egyik (ha nem a végső) döntését.

A take-home-challenge-nek is vannak hátulütői. Azokat számon kell tartani, ki kell értékelni. Szerencsére lehet aszinkron módon, illetve sok esetben a kiértékelés hasonlít a code review processzre, ami nagy eséllyel az értékelő napi munkájának része is. Viszont, ha sok a jelölt, az eredményt nem igazán van lehetőség megbeszélni (néha még a HR-től sem kapunk visszajelzést, nemhogy egy technikai embertől), pedig nagyon sokat adna hozzá a következő feladatra felkészüléshez. Arra alapoz, hogy van időm a munka mellett megcsinálni: családos emberek ismét hátrányban. Mennyi időt kellene beletenni? Ha hanyag vagyok és minimális megoldást hozok össze, az tényleg megvan 2 óra alatt, amennyit az interjúztató becsült. Ha alapos akarok lenni, akkor belerakok 10 órát, hogy rendesen leteszteljem, letisztítsam, átgondoljam, stb. Előny vagy időpazarlás, ha TDD-zek? Milyen gyakran commitoljak? Ezek olyan kérdések, amik amúgy a napi munka során evidensek, egy THC-nél viszont egyáltalán nem, ellenben nagyban befolyásolják az eredményt és a befektetett időt.

Az egész procedúra egy kérdésre nem fog tudni választ adni soha: azok az emberek, akiket ezek alapján elutasított a cég, mennyire dolgoztak volna jól a napi munkájuk során?

Az interjú jellegzetességei

Az interjúzás maga általában egy stresszel teli esemény, a legtöbben idegesek, próbálják magukból a legjobbat mutatni, olyan dolgokra koncentrálnak, amik távol esnek a logikus gondolkodási képességeiktől. Adjunk hozzá egy kis lámpalázat és azt, hogy különböző emberek annyiféleképpen gondolkodnak. A saját példámat hozom: amikor egy feladatot meg akarok oldani, az jellemzően 75% gondolkodás, 25% megvalósítás. Nehezemre esik hangosan gondolkodni, parancsszóra, stresszes környezetben, közönség előtt. Általában szendvicskészítés, boltba menés, zuhanyzás, pihenés közben szoktak eszembe jutni kulcsgondolatok vagy összeállni rendszerek, amiket azután fel tudok használni. Ha úgy tetszik: érlelnem kell a megoldást. Még ha képes is lennék egy interjúszituációban a napi rutinomat eljátszani, 45 percig ülnénk csöndben, majd 15 perc alatt leírnám a megoldást. Részt vett már valaki ilyen interjún? :) És persze vannak olyanok is, akik simán leblokkolnak, nem tudnak egyik gondolattól a másikig eljutni, ez milyen utalást ad a napi munkában való megfelelésről?

Olvastam olyan véleményeket, hogy "ez jól teszteli, hogy milyen az, amikor éles rendszerben kritikus hibát kell rövid határidővel megoldani". Elnézést, ha ez a napi rutin része, akkor én ott nem akarok dolgozni. Ha pedig nem, akkor milyen gyakori eseményről beszélünk? Érdemes erre szűrni a jelölteket? Lesz hozzáférésük egyáltalán az éles rendszerhez? Illetve az érvelés is rossz: az éles rendszert ismerem, mert azzal dolgozom naponta, tudom, mire lehet számítani vagy legalábbis mihez kell nyúlni, ha el akarom hárítani a problémát. Mi a tétje? Függ a jövőm attól, hogy meg tudom-e oldani a problémát? Lesznek csapattársaim, akik segítenek? Olyannyira más helyzetek ezek, hogy csak nagyon távolról lehet őket összevetni.

Az interjúztató hatása

A fenti esetek egyébként azt feltételezik, hogy a legjobban képzett, leginkább támogató, felkészült interjúztatók bonyolítják le. Szuper dolog, ha a cég tele van ilyen emberekkel és ők viszik a kiválasztást, azonban, ahogy említettem, nagyon sokfélék vagyunk. Nekem például az emberismeretem nem elég jó, másnak az empátia hiányzik, harmadik nem motivált abban, hogy új embereket vegyen fel a cég, csak ő lett odaállítva a feladathoz, a negyedik korlátolt gondolkodású, stb.

Tegyük fel például, hogy egy logikai feladványra két jó megoldás is van, de a jelölt nem azt adja elő, amit az interjúztató ismer. Mennyire lesz hatékony a kiválasztás egy vaskalapos kollégával?

Mi történik, ha az interjúztató direkt részinformációkat ad először, azután folyamatosan megpróbálja kikezdeni a megoldást a szélső esetek mentén? Nem szükséges feltétlenül gonosznak lennie ehhez, egyszerűen csak igyekezetében megpróbálja a lehető legalaposabban felmérni a jelölt tudását (és egyben el is riasztja az együttműködéstől a folyamatos megkérdőjelezéssel - szintén nem egy olyan munkakörnyezet, amiben naponta dolgozni szeretnék).

Hogy csináld jól?

Sehogy, ha lehet. A legjobb, ha a jelöltnek van egy létező projekje, amiről lehet beszélni. Készen van: ha büszke rá, ha nem, lesz téma. Mit csinált jól, mit nem, mutassa meg, magyarázza el. Sokkal kevésbé tűnik élet-halál harcnak, ha az utóbbi pár év eredményét kell előadni (nem mellesleg más fontos skillekre is fény derül ezzel). Ha van hobbiprojektje, szintén príma alap implementációs részletek kivesézésére. Ha abban a kevésbé optimális helyzetben van, hogy nincs semmi, amiről konkrétumokban beszélni lehetne (mert titkos projekt, nem ez a hobbija, stb.): nem az ő hibája, és ne is súlyosbítsd.