(Първо публикувано на May 24, 2025)
След около година почивка, реших отново да се върна към блога си. 😅
Откакто последно писах, имам известен прогрес в кариерата си… дори водих няколко технически интервюта за начални Java Developer позиции! Беше готино и поучително, та реших да споделя някои неща, които научих от това. Постът не е с цел коментиране на кандидатите, а по-скоро идеята е да е полезен на хора, на които им предстои да водят интервюта. 👀
Как започна всичко? На работа ми предложиха да се включа като интервюиращ и поех предизвикателството, защото знаех, че ще ми помогне да стигна следващото ниво в развитието ми като професионален софтуерен инженер.
Първо участвах само като присъстващ в 2–3 интервюта, които де факто бяха водени от по-опитен от мен колега, а аз само вмъквах тук-там някой въпрос, ако се сетя (“shadow interviewing”). В същото време си водих бележки (хем за кандидата, който интервюират, хем и за нещата, които научавам от колегата, който води интервюто). Беше полезно, защото ми помогна да свикна постепенно с напрежението от воденето на интервю, вместо да трябва от нулата да скоча в напълно неизвестното.
Между другото, когато аз самият ходех по интервюта в търсене на работа, също обикновено бяха 2-ма интервюиращи. Тогава си мислех, че по-тихият е по-опитният (и съответно просто наблюдава как протичат нещата, оставяйки по-неопитният да трупа опит), но май по-често е наобратно… 😆 Когато теб те интервюират, си мислиш, че на теб е хвърлена трудната част, а за интервюиращия е лесното, но всъщност не е точно така. Когато започнеш да интервюираш, осъзнаваш, че е тегаво и за двете страни.
След като минах тези подготвителни интервюта, вече най-накрая имах възможност и да водя самостоятелно интервю. Общо взето, като всяко друго умение, в началото беше трудно и притеснително.
Беше странно усещане да съм от другата страна в едно техническо интервю и изпитвах impostor syndrome (“Аз да водя интервюто? Та то и аз имам бая пропуски и не знам всички тези неща перфектно, къде съм тръгнал да определям кой става за програмист и кой не!?”). Страхувах се също, че ще срещна и някои кандидати, които са по-добри от мен самия. 😂
Като една странична бележка: воденето на интервюта е добра възможност да си припомниш основните принципи в софтуерното инженерство и технологиите, които ползваш, защото голяма част от тях се забравят (тъй като в ежедневието си се занимаваш с други неща и принципите или ги прилагаш на автопилот, или просто остават като блед спомен в главата ти).
Все пак това, което ме успокои малко, беше да осъзная, че моята роля тук не е аз самият да съм перфектния технически специалист (не е нужно аз самият да имам идеалния отговор на всеки технически въпрос в главата ми). По-скоро ролята ми е да използвам практическия си опит си до този момент (и интуицията, която съм изградил от него), за да преценя дали даден кандидат има потенциал и би се справил на позицията, за която кандидатства (а техническите въпроси, които задавам, са просто инструмент за постигане на тази цел). Ролята ми беше само и единствено да определя дали според мен този човек ще се впише добре в екипа (и ако има пропуски, да е ясно кои са отрано, за да може да бъдат изгладени максимално бързо, ако почне работа при нас).
Относно техническите въпроси: всъщност според мен основното им предназначение НЕ Е да определят дали кандидадът е наизустил перфектно отговорите… а по-скоро от тези отговори да се извлече информация относно как мисли по технически теми. Например ако питаш кандидата за някои принципи в софтуерното инженерство и той ти обясни само няколко от тях, обаче го е направил със свои думи и видимо разбира практическото им приложение, то не е голяма работа, че е забравил или дори не разбира други принципи — по-важното е, че се вижда, че човекът мисли и прилага, а това ще е доста полезно, когато работи. Аналогично, ако пък изрецитира описание по учебник на всеки един принцип, но се усеща, че му липсва истинско разбиране на темата, не оставя добро впечатление.
И така, започнах да водя самостоятелно интервюта. За да улесня малко процеса за себе си, започнах да си развивам един документ с технически въпроси и отговори по категории (в моя случай интервюирам за начални Java backend позиции, така че категориите бяха неща като “Java”, “OOP”, “Databases”, “Frameworks” и така нататък). В категориите слагах първо общи въпроси (“Ползвал ли си X?”, “За какво си го ползвал?”), за да добия обща представа за нивото на кандидата (и да не го мъча излишно с някакви конкретни въпроси, които са безсмислени, ако не е ползвал дадена технология). След това следваха и по-конкретни технически въпроси, за да видя доколко точно разбира дадената концепция кандидатът. Както споменах, гледах да имам и някакви отговори, за да не разчитам само на моите собствени несъвършени знания, а и за да мога да съм по-полезен, ако кандидатът иска да научи отговора на някой въпрос. Това ми помогна значително, за да се чувствам по-уверен.
Докато водех интервютата, наблюдавах всъщност и колко време ми отнема да задам въпросите си. Времето е ограничено (в моя случай интервютата бяха около час) и затова трябваше да внимавам да не стане така, че съм задал 100 въпроса за Java, но 0 за бази данни, Spring и т.н. Трябва предварително да си определил кои умения са важни за позицията и в края на интервюто да имаш добра представа за нивото на кандидата във всяка едно от тях. Това означава, че понякога се налагаше да пропусна някой въпрос, да прекъсна кандидата или да насоча въпросите към друга тема.
Според мен далеч по-важно е да зададеш въпрос за всяко важно за позицията умение, отколкото да дълбаеш в едно конкретно, докато не “затапиш” кандидата. Тоест ако човекът знае нещата ДОСТАТЪЧНО добре (например знае основите на Java, OOP, бази данни, Spring), то според мен няма нужда от допълнително мъчение с разни въпроси за конкретни дребни специфични технически неща, които няма да са му чак толкова важни в ежедневната практика, а и бързо може да научи на работа, ако толкова му е необходимо.
Все пак понякога кандидатът ще е притеснен и/или няма да знае какво да отговори, та затова гледах да казвам неща от рода на “Няма проблем, ако не знаеш отговора” (научих го от колегата, с който бях в първите подготвителни интервюта 😂) и просто разговорът да не е прекалено формален, сериозен и все едно е краят на света. Стараех се хем да свърша работата си адекватно и професионално, хем да съм ЧОВЕК и да вляза в положението на кандидата: да му дам feedback, да му дам реалистична представа какво би било на работа при нас и т.н.
След интервюто веднага подготвях писмено мнението ми за представянето на кандидата, защото исках да го направя, докато всичко ми е все още прясно в главата. В противен случай започвам да забравям детайлите и накрая оценката ми няма да е максимално точна и обективна.
И това е общо взето. Обобщено казано: в началото беше трудно и изпитвах тревожност (мисля, че е неизбежно), но след 2–3 интервюта почнах да се чувствам по-спокоен и уверен (освен самия опит, може би най-много ми помогна списъка с въпроси/отговори, който си доразвивах с всяко интервю). След всяко интервю си извличах по някой урок относно какво мога да подобря за следващия път.
Успех! 😎
Top comments (0)