Анализирали смо хиљаде интервјуа за кодирање. Ево шта смо научили.

Напомена: Већину речи написао сам у овом посту, али легендарни Даве Холтз је дигао тешке податке на страну података. Погледајте више његових радова на његовом блогу.

Ако читате овај пост, постоји пристојна шанса да ћете поново ући у луди и застрашујући свет техничког интервјуа.

Можда сте студент или студент који први пут пролази кроз процес разговора. Можда сте искусни софтверски инжењер који неколико година није ни размишљао о интервјуима.

У сваком случају, први корак у процесу интервјуисања је обично читање гомиле водича за интервјуе на мрежи (посебно ако су их написале компаније које вас занимају) и разговор са пријатељима о њиховим искуствима са процесом интервјуисања (и као анкетар и интервјуисани).

Вероватније него не, оно што прочитате и научите у овој првој, „истраживачкој“ фази процеса интервјуа обавестиће вас како сте се одлучили да се припремите за напредак.

Постоји неколико проблема са овим типичним приступом припреми интервјуа:

  • Већина водича за интервјуе написани су из перспективе једне компаније. Иако компанија А заиста вреднује ефикасан код, компанија Б може више нагласити вештине решавања проблема на високом нивоу. Ако ваше срце није постављено на компанију А, вероватно не желите да дајете превелику тежину ономе што цене.
  • Људи понекад лажу, чак и ако то не мисле. У писменом облику компаније могу рећи да су агностички на језику или да вреди објаснити свој процес размишљања, чак и ако одговор није сасвим тачан. Међутим, није јасно да ли тако заправо поступају! Не кажемо да су технолошке компаније гадни лажови који покушавају да заваре своје подносиоце захтева. Само кажемо да се понекад прикрадају имплицитне пристрасности, а људи их нису ни свесни.
  • Много „народног знања“ које чујете од пријатеља и познаника можда се уопште и не заснива. Многи људи претпостављају да кратки интервјуи доносе пропаст. Слично томе, свако се може сетити једног дугог интервјуа након којег је помислио у себи: „Заиста сам погодио тог интервјуера, сигурно ћу прећи на следећу фазу.“ У прошлости смо видели да људи заиста лоше процењују како су то радили у интервјуима. Овај пут смо желели да директно погледамо индикаторе попут дужине интервјуа и видимо да ли су они заправо важни.

У мојој компанији, интервиевинг.ио, јединствено смо у позицији да приступамо техничким интервјуима и њиховим исходима на начин вођен подацима. Имамо платформу на којој људи могу анонимно да вежбају техничке разговоре. А ако ствари крену добро, могу откључати могућност анонимног интервјуисања, кад год желе, са водећим компанијама попут Убера, Лифта и Твитцха.

Цоол ствар је што се и интервјуи за праксу и стварни интервјуи са компанијама одвијају у оквиру екосистема интервиевинг.ио. Као резултат, у могућности смо прикупити прилично података о интервјуу и анализирати их како бисмо боље разумјели техничке интервјуе, сигнал који они преносе, шта функционише, а шта не и који би аспекти интервјуа могли заправо бити важни за исход .

Сваки интервју, било да је практичан или стваран, започиње састанком анкетара и испитаника у заједничком окружењу за кодирање гласом, текстуалним ћаскањем и белом таблом, у ком тренутку прелазе право у техничко питање.

Питања за интервју често спадају у категорију онога што бисте наишли на екрану телефона за улогу позадинског софтверског инжењеринга.

Током ових интервјуа прикупљамо све што се догађа, укључујући аудио транскрипте, податке и метаподатке који описују код који је испитаник написао и покушао да покрене, као и детаљне повратне информације анкетара и испитаника о томе како мисле да је интервју прошао и на шта су мислили један другог.

Ако сте знатижељни, у наставку можете видети како изгледају обрасци за повратне информације анкетара и испитаника - поред једног директног питања да / не, тражимо и неколико различитих аспеката извођења интервјуа помоћу скале 1–4.

Такође постављамо саговорницима нека додатна питања која не делимо са њиховим испитивачима, а једна од ствари које постављамо је да ли је саговорник претходно видео питање на којем су управо радили.

Резултати

Пре него што кренемо у дебљину, ваља напоменути да су закључци у наставку засновани на подацима посматрања, што значи да не можемо давати јаке узрочно-последичне тврдње ... али ипак можемо поделити изненађујуће везе које смо приметили и објаснити шта смо пронашли можете сами извући закључке.

Већ видевши питање за интервју

"Говоримо о пракси!" -Аллен Иверсон

Идемо редом. Не треба ракетни научник да сугерише да је један од најбољих начина за постизање бољег резултата у интервјуима… вежбање интервјуа. Постоји читав низ ресурса који ће вам помоћи да вежбате, међу којима је и наш. Једна од главних благодати решавања проблема у пракси је та што смањујете вероватноћу да се од вас затражи да решите нешто што никада раније нисте видели. Балансирање тог бинарног стабла претраживања биће много мање застрашујуће ако сте то већ урадили једном или двапут.

Погледали смо узорак од око 3000 интервјуа и упоредили смо исход са тим да ли је испитаник раније видео питање за интервју. Резултате можете видети на заплету испод.

Није изненађујуће што је за испитанике који су видели питање 16,6% вероватније да ће их анкетар сматрати потребним. Ова разлика је статистички значајна - све траке грешака у овом посту представљају интервал поверења од 95%.

Да ли је важно на ком језику кодирате?

„Ко не воли језик свог рођења нижи је од звери и рибе смрдљивог мириса.“ - Јосе Ризал

Можете замислити да различити језици доводе до бољих интервјуа. На пример, можда вам читљивост Питхона даје предност у интервјуима. Или можда чињеница да се одређени језици обрађују са подацима на посебно чист начин олакшава уобичајена питања у интервјуу. Желели смо да видимо да ли постоје или не статистички значајне разлике у извођењу интервјуа на различитим језицима интервјуа.

Да бисмо истражили, групирали смо интервјуе на нашој платформи према језику интервјуа и филтрирали све језике који су коришћени у мање од 5 интервјуа (ово је избацило само неколико интервјуа). Након што смо то урадили, могли смо сагледати исход интервјуа и како је варирао у функцији језика интервјуа.

Резултати те анализе налазе се на доњем графикону. Сви интервали поверења који се не преклапају представљају статистички значајну разлику у томе колико је вероватно да ће испитаник „проћи“ на интервјуу, у функцији језика интервјуа.

Иако не радимо упоредно упоређивање за сваки могући пар језика, подаци у наставку сугеришу да генерално говорећи, не постоје статистички значајне разлике између успешности када се интервјуи воде на различитим језицима. (На нашој платформи је било више језика од ових, али што је језик више нејасан, то мање података имамо. На пример, сви интервјуи у Браинф ***-у су очигледно били успешни. Шалим се.)

Међутим, једна од најчешћих грешака коју смо квалитативно уочили је да људи бирају језике у којима им није пријатно, а затим забрљају основне ствари попут претраживања дужине низа, превлачења преко низа, инстанцирања хеш табеле итд.

Ово је посебно застрашујуће када саговорници намерно одаберу језик необичног звука како би импресионирали свог испитивача. Верујте нам, уживање у одабраном језику сваки пут удобно се покаже показујући на модном језику који не знате добро.

Чак и ако језик није важан ... да ли је корисно кодирати на одабрани језик компаније?

„Бог ми помогао, ја сам се родио“ - Маргарет Блаине

Све је то у реду што генерално језик интервјуа не делује нарочито у корелацији са учинком. Међутим, можете претпоставити да би могло доћи до ефекта у зависности од језика који се користи у одређеној компанији. Можете замислити да Руби продавница каже „ангажујемо само програмере Руби-а, ако интервјуишете на Питхону, мања је вероватноћа да ћемо вас запослити“.

Са друге стране, могли сте да замислите да ће компанија која на Питхон-у напише сав свој код бити много критичнија према саговорнику на Питхону - они знају тачности и недостатке језика и могли би просуђивати кандидата за све врсте „непитонских“ ствари током њиховог интервјуа.

Доњи графикон је сличан графикону који је показао разлике у степену успешности интервјуа (мерено анкетарима који су вољни да ангажују испитаника) за Ц ++, Јава и Питхон. Међутим, овај графикон такође раздваја учинак на основу тога да ли је језик интервјуа у групи компанија или не.

Ограничавамо ову анализу на Ц ++, Јава и Питхон јер су то три језика у којима смо имали добру комбинацију интервјуа у којима је компанија радила, а није користила тај језик. Резултати овде су мешовити. Када је језик интервјуа Питхон или Ц ++, не постоји статистички значајна разлика између успешности интервјуа где је језик интервјуа или није језик компаније. Међутим, већа је вероватноћа да ће анкетари који су интервјуисали на Јави успети када су интервјуисали Јава продавницу (п = 0,037).

Па, зашто се чини да је кодирање на језику компаније корисно када је у питању Јава, али не и када је у питању Питхон или Ц ++? Једно од могућих објашњења је да заједнице које постоје око одређених програмских језика (као што је Јава) дају већу предност претходном искуству са језиком. У складу с тим линијама, такође је могуће да ће анкетари из компанија које користе Јаву вероватније постављати питања која фаворизују оне који већ постојеће знање о Јавиним идиосинкразијама.

Шта је са односом између језика на којем програмирате и колико је добар ваш комуникатор?

„Вешто руковати језиком значи вежбати неку врсту чаробног чарања.“ - Цхарлес Бодлер

Иако избор језика није толико важан за укупне перформансе (упркос компанијама које имају Јава), занимало нас је да ли су различити избори језика довели до различитих исхода у другим димензијама интервјуа.

На пример, изузетно читљив језик, попут Питхона, може довести до интервјуа са кандидатима за које се процењује да су боље комуницирали. С друге стране, језик ниског нивоа попут Ц ++ могао би довести до већих резултата за техничке способности.

Даље, врло читљиви језици или језици ниског нивоа могу довести до корелације између ове две оцене (на пример, можда су они кандидати за Ц ++ интервју који уопште не могу да објасне шта ради, али који пишу врло ефикасан код). Графикон у наставку сугерише да заправо не постоји уочљива разлика између начина на који се перципирају техничке и комуникацијске способности кандидата у различитим програмским језицима.

Штавише, без обзира на све, лоша техничка способност чини се у великој корелацији са лошом комуникацијском способношћу - без обзира на језик, релативно су ретки случајеви да кандидати добро раде технички, али не и ефикасно комуницирају оно што раде (или обрнуто) , углавном (и на срећу) разоткривајући мит о нескладном, брзоговорљивом, неспретном инжењеру.

(Најбољи инжењери које сам упознао такође су били легендарно добри у разбијању сложених концепата и објашњавању лаицима. Зашто огорчени мит о социјално неспретном, нескладном технолошком штреберу и даље постоји, апсолутно немам појма.)

Трајање интервјуа

„У реду је кад отклоните катастрофе и застрашујуће лоше критике и одбијања и све те ствари кад сте млади; ваша отпорност је сјајна. “ - Харолд Принце

Сви смо имали искуство остављања интервјуа и осећали смо се као да је прошло лоше. Често је тај осећај одређене неуспешности мотивисан основним правилима која смо или сами смислили или понављали изнова и изнова. Можда затекнете себе како мислите: „интервју није дуго трајао? То је вероватно лош знак ... “или„ Једва да сам нешто написао у том интервјуу! Дефинитивно нећу проћи “. Користећи наше податке, желели смо да видимо да ли ова основна правила за процену учинка вашег интервјуа имају неку предност.

Прво смо погледали дужину интервјуа. Да ли краћи анкетар значи да сте били таква олупина воза да је анкетар једноставно морао да прекине интервју раније? Или је можда био случај да је анкетар имао мање времена од уобичајеног или је у само кратко време видео да сте сјајан кандидат? Графикон испод приказује расподелу дужине интервјуа (мерено у минутима) и за успешне и за неуспешне кандидате.

Брзи поглед на овај графикон сугерише да нема разлике у расподели дужине интервјуа између интервјуа који су прошли добро и интервјуа који не иду - просечна дужина интервјуа у којима је анкетар желео да ангажује кандидата била је 51,00 минута, док је просечна дужина интервјуа где анкетар није био је 49,95 минута. Ова разлика није статистички значајна .

(За свако поређење дистрибуција у овом посту користимо Фисхер-Питман пермутацијски тест да бисмо упоредили разлику у срединама дистрибуција.)

Количина написаног кода

"Сажетост је душа духовитости." -Виллиам Схакеспеаре

Можда сте доживели интервју у коме сте били тотално запели. Интервјуиста вам поставља питање које једва разумете, понављате му „бинарно претраживање шта?“, А током интервјуа у основи не пишете никакав код. Можда се надате да бисте још увек могли проћи овакав интервју путем пуке духовитости, шарма и вештина решавања проблема на високом нивоу. Да бисмо процијенили да ли је то истина или не, погледали смо коначну дужину знакова коју је написао испитаник. Графикон испод приказује расподелу дужине знакова и за успешне и за неуспешне. Брзи поглед на овај графикон сугерише да постоји разлика између њих двоје - интервјуи који не иду добро имају тенденцију да имају мање кода. Два су феномена која могу томе допринети. Прво, неуспешни анкетари могу за почетак написати мање кода. Поред тога,можда су склонији брисању великих делова кода које су написали, или се не покрећу или не враћају очекивани резултат.

У просеку су успешни интервјуи имали коначни код интервјуа који је у просеку био дугачак 2045 знакова, док су неуспешни у просеку имали 1760 знакова. То је велика разлика! Ово откриће је статистички значајно и вероватно није баш изненађујуће.

Модуларност кода

„Ознака зрелог програмера је спремност да избаците код на који сте потрошили време кад схватите да је бесмислено.“ - Брам Цохен

Поред тога само погледајте коликокод који напишете, можемо размишљати и о типу кода који пишете. Уобичајена мудрост наговештава да добри програмери не рециклирају код - они пишу модуларни код који се може поново и поново користити. Желели смо да знамо да ли је таква врста понашања заиста награђена током процеса интервјуа. Да бисмо то урадили, прегледали смо интервјуе вођене у Питхон5-у и избројали колико се дефиниција функција појавило у коначној верзији интервјуа. Желели смо да знамо да ли су успешни саговорници дефинисали више функција - иако више обрађивача функција није дефиниција модуларности, према нашем искуству, то је прилично јак сигнал за то. Као и увек,немогуће је изнети снажне узрочне тврдње о овоме - може бити случај да одређени анкетари (који су мање или више попустљиви) постављају питања у интервјуу која имају више или мање функција. Ипак, занимљив је тренд истраге!

Графикон испод приказује расподелу броја Питхон функција дефинисаних како за кандидате за које је анкетар рекао да ће их запослити, тако и за кандидате за које је анкетар рекао да их неће запослити. Брз поглед на овој табели указују на то да постоји је разлика у дистрибуцији функција дефиниција између интервјуа који иду добро и интервјуа који немају. Чини се да успешни саговорници дефинишу више функција.

У просеку успешни кандидати који интервјуишу у Питхону дефинишу 3,29 функција, док неуспешни кандидати дефинишу 2,71 функције. Овај налаз је статистички значајан. Резултат је да анкетари заиста награђују ону врсту кода за који кажу да желе да напишете.

Да ли је важно да ли се код покреће?

„Крећите се брзо и ломите ствари. Ако не ломите ствари, не крећете се довољно брзо. “ - Марк Зуцкерберг „Најефикаснији алат за отклањање грешака и даље је пажљиво размишљање, заједно са разумно постављеним исписима.“ - Бриан Кернигхан

Уобичајени рефрен у техничким интервјуима је да анкетара заправо не занима да ли се код покреће - оно што их занима су вештине решавања проблема. Будући да прикупљамо податке о покренутом коду испитаника и да ли се тај код компајлира, желели смо да видимо има ли доказа за то у нашим подацима. Постоји ли разлика између процента кода који се без успјеха саставља у успјешним интервјуима у односу на неуспјешне интервјуе? Штавише, могу ли саговорници и даље бити ангажовани, чак и ако праве гомилу синтаксних грешака?

Да бисмо дошли до овог питања, погледали смо податке. Ограничили смо наш скуп података на интервјуе дуже од 10 минута са више од 5 јединствених случајева извршавања кода. Ово је помогло филтрирању интервјуа где анкетари заправо нису желели да испитаник користи шифру или где је интервју из неких разлога прекинут. Затим смо измерили проценат извршавања кода који су резултирали грешкама.5 Наравно, постоје нека ограничења овог приступа - на пример, кандидати могу извршити код који се компајлира, али даје помало нетачан одговор. Такође су могли добити тачан одговор и написати га стдерр-у! Ипак, ово би требало да нам да директан осећај да ли постоји разлика или не.

Графикон у наставку даје резиме ових података. Ос к приказује проценат извршавања кода без грешака у датом интервјуу. Дакле, интервју са 3 извршења кода и 1 поруком о грешци рачунао би се у скуп „30% -40%“. Ос и показује проценат свих интервјуа који спадају у тај сегмент, како за успешне тако и за неуспешне интервјуе. Само проматрајући доњи графикон, стиче се осећај да у просеку успешни кандидати покрећу више кода који се искључује без грешке. Али да ли је ова разлика статистички значајна?

У просеку се код успешних кандидата успешно изводио (није довео до грешака) 64% времена, док су се покушаји компајлирања кода неуспешно кандидовали успешно 60% случајева, и та разлика је заиста била значајна. Опет, иако не можемо изнијети било какве узрочне тврдње, главно одузимање је то што успјешни кандидати обично напишу код који функционише боље, упркос ономе што вам анкетари могу рећи на почетку интервјуа.

Да ли треба да сачекате и саберете мисли пре писања кода?

„Никада не заборавите на моћ тишине, на ону масовну узнемирујућу паузу која се непрекидно наставља и може напокон навести противника на нервозно блебетање и узмицање.“ - Ланце Морров

Такође нас је занимало да ли су успешни саговорници одвајали време у интервјуу или не. Питања за интервју су често сложена! Након што вам се постави питање, можда ћете донети неку корист ако направите корак уназад и израдите план, уместо да скочите право у ствари. Да бисмо стекли осећај да ли је то истина или не, мерили смо колико су у датом интервјуу кандидати прво извршили код. Испод је хистограм који показује колико су први пут водили код успешни и неуспешни саговорници. Гледајући брзо хистограм, можете рећи да успешни кандидати у ствари чекају мало дуже да покрену код, иако величина ефекта није велика.

Тачније, у просеку кандидати са успешним интервјуима прво прођу 27% пута кроз интервју, док кандидати са неуспешним интервјуима први пут прођу 23,9% пута у интервјуу, а ова разлика је значајна . Наравно, постоје алтернативна објашњења шта се овде догађа. На пример, можда успешни кандидати боље одвоје време за слатке разговоре са својим интервјуером. Даље, примењује се уобичајено упозорење да не можемо изнијети узрочне тврдње - ако само сједите у интервјуу додатних 5 минута у потпуној тишини, то вам неће помоћи. Ипак, чини се да постоји разлика између две кохорте.

Закључци

Све у свему, овај пост је био наш први покушај да схватимо шта обично и не доводи до тога да интервјуер каже „знате шта, заиста бих волео да запослим ову особу“. Будући да су сви наши подаци посматрачки, тешко је изнијети узрочне тврдње о ономе што видимо.

Иако успешни саговорници могу показивати одређено понашање, усвајање тих понашања не гарантује успех. Без обзира на то, омогућава нам да подржимо (или позовемо БС) пуно савета које ћете прочитати на Интернету о томе како постати успешан саговорник.

С тим у вези, има још много тога да се уради. Ово је био први, квантитативни пролазак преко наших података (који је на много начина ризница тајни интервјуа), али ми смо узбуђени што дубље, квалитативно зарањамо и заправо почињемо да категоризујемо различита питања како бисмо видели која носе већина сигнала, као и стварно се заобилазе понашања другог реда која не можете лако измерити ако покренете регуларни израз на узорку кода или мерите колико је трајао интервју.

Ако желите да нам помогнете у овоме и узбуђени сте што ћете слушати гомилу техничких интервјуа, јавите ми се!

Желите да постанете сјајни на техничким разговорима и да започнете свој следећи посао? Придружите се интервиевинг.ио!