Неща, които научих от интервюта по програмиране по двойки

Някои компании предпочитат да сдвояват програма с кандидати, за да получат усещане за работа с тях, докато измерват уменията си. Бил съм в няколко от тези компании и по-често една от задачите ми беше да бъда двойката в тези интервюта.

В предишната ми работа в консултантска компания имахме екипи за всеки проект. Някои проекти имаха NDA и като такива всеки, който се присъедини към този екип, трябваше да влезе. Това доведе до трудности при използването на тези кодови бази при сдвояване с потенциални служители. В резултат на това се сдвоявахме предимно с вътрешни проекти или с проекти, при които клиентът се съгласяваше да показва код на кандидати.

Обикновено бях в отборите без NDA, така че винаги, когато имахме кандидати, аз бях основната двойка. Като сте в тази компания пет години, можете само да си представите колко кандидати имаше. Имаше моменти, когато по време на работната ми седмица се сдвоявах с различен човек всеки ден!

Ние също правим програмиране по двойки в настоящата ми компания. Тъй като практикувам програмиране по двойки от 2010 г., това ми стана естествено.

Но едно нещо, което трябва да запомните за тези интервюта, е, че то върви и в двете посоки : интервюиращият научава за уменията и личността на интервюирания, докато интервюираният научава за това с кого ще работи и как изглежда типичният работен ден.

И така, ето уроците, които научих от интервютата по програмиране по двойки, както като интервюиран, така и като интервюиращ. Надяваме се, че това ще ви помогне да имате по-добра идея за следващото си интервю.

Бъди подготвен

Ако има нещо, което можете да отнемете от това, моля, оставете го да бъде това. Може да изглежда очевидно, че както във всяко интервю, И ТРЯБВА да сте подготвени - но аз просто почувствах, че трябва да подчертая този въпрос.

Като интервюиращ разгледайте автобиографията, резюмето или изходния код на кандидата си, ако те са го подали. Това ще ви помогне да зададете вашите собствени очаквания за нивото на уменията и личността им, което ще ви помогне при общуването с тях. Знаейки, че имате едни и същи хобита, може да бъде добър ледоразбивач!

Като интервюиран отидете на уебсайта на компанията и прочетете / кликнете. Бях в ситуация, в която кандидатствах като уеб разработчик и първият въпрос, който ми беше зададен, беше: „И така, виждали ли сте нашия уебсайт? Какво мислите, че можете да направите, за да го подобрите? “ Достатъчно е да се каже, аз се развалих с това интервю. Така че, моля, поне разгледайте уебсайта им. Прегледайте кода си, ако сте го изпратили, и проверете отново всичко.

Отпуснете се и бъдете себе си.

Това може да звучи като общ съвет, но е много по-важно за сесия по програмиране по двойки в сравнение с общо или техническо интервю. Защо? Просто защото в някои общи интервюта човек с човешки ресурси говори с вас и преценява вашата личност за времето. Докато бихте били в същата компания като тях, няма да работите директно с тях всеки ден.

В сесия по програмиране на двойки, ако компанията така или иначе прави програмиране на двойки през повечето време, вероятно ще работите в тясно сътрудничество с вашия интервюиращ като част от вашата работа. Това е основната разлика.

Това работи както за интервюиращия, така и за интервюирания. Както във всяка връзка, трудно е да имате дългосрочна връзка, ако я изграждате въз основа на само част от картината. Вашата основа ще бъде разклатена основа на несигурност и рано или късно ще излезе и може да доведе до някои проблеми.

Задавайте въпроси!

Като интервюиращ , имайте предвид, че през повечето време кандидатът ще бъде нервен. Въпреки че задаването на твърде много въпроси може потенциално да ги изплаши, ако не задавате никакви въпроси, това ви поставя в тъмнина и губи деня ви на сдвояване.

Научих се да изброявам набор от въпроси, които получавам да задавам през деня на сдвояване. Не е задължително списъкът да е подреден и не е нужно да ги питате наведнъж. Повечето въпроси ще се появят, докато се сдвоявате, но най-добре е те да бъдат записани за всеки случай.

Като интервюиран , не забравяйте, че някои интервюиращи ОЧАКВАТ да задавате въпроси. Не питането означава, че не се интересувате (защо все пак кандидатствате?) Или знаете всичко (което не знаете).

Винаги, когато се сдвоявам с някого, отбелязвам кога той задава въпрос и колко често. Въпросите могат да варират от прости въпроси за синтаксис като „За какво отново беше първият аргумент each_with_index?“ към въпроси, свързани с работата като „Обикновено ли сдвоявате всеки ден?“

Няма правилни или грешни решения

За мен това е просто въпрос да свърша работата. Въпреки че очаквам кандидатите да са в най-добрия си вид, разбирам, че те ще бъдат нервни, което може леко да повлияе на мисленето им.

Искам да кажа, че психическите блокове по време на интервю са доста често срещани (поне за мен). Сдвоявал съм се с редица хора от нови студенти до младежи, разработчици на средно ниво и дори възрастни хора, а аз самият понякога затъмнявам.

Случай в случая: когато бях интервюиран за настоящата си работа (към този момент вече имах повече от шест години опит в Руби), аз се клатах заедно с просто упражнение и напълно забравих как да създам Hash. Току-що казах: „Хм. Изчакайте как да го направя отново? Хм, мога ли да потърся нещо в Google? " Доста смущаващо, но когато попитах, моят чифт също просто изчезна, така че и двамата го погледнахме заедно. Забавни времена.

Като интервюиращ , не се придържайте към идеята за собственото си решение на проблем. Има 11287398173 начина да напишете FizzBuzz и вашето решение (вероятно) не е най-доброто от съществуващите. Вместо това бъдете по-отворени към други решения и ги преценявайте, доколкото можете.

Когато правя интервюта за сдвояване, обикновено имам предвид отговор, когато задавам въпрос, но слушам и виждам какъв е отговорът на интервюирания, защото той почти никога не е същият отговор като моя. Ще се изненадате колко креативни хора могат да получат!

Като интервюиран , бъдете наясно с този факт и просто направете своето. Не се забивайте да се притеснявате, че няма да бъдете ефективни (освен ако това не беше въпросът за интервюто!), Но в същото време не бъдете небрежни. Ако влезете в сесия за сдвояване за компания, която прави TDD / BDD, заради вас започнете първо с тестове! Те ще го търсят (аз го правя!) И може да се окажете на дъното на купчината, ако просто разбиете нещата.

Отнасяйте се към това като към нормален ден за сдвояване

Въз основа на първоначалния си опит се отнасях към него като към техническо интервю. Седях до кандидата и си водех бележки, докато те пишеха мислите си.

Но това НЕ е начинът, по който обикновено се сдвоявам и когато разбрах това, промених начина си. Когато някой остана, щях да го бутам, без да давам точно отговор. Бих задал някои сондиращи въпроси като „Какво е съобщението за грешка?“ или „Какъв според вас е проблемът?“ или „Какво бихте могли да направите, за да го поправите?“

Като интервюиращ , оставете вашия кандидат да кара 90% от времето, но никога 100%. Това създава впечатлението, че става въпрос за по-строго техническо интервю (вие просто сте до тях и гледате всяко тяхно движение - което всъщност затруднява концентрацията). Опитайте се малко с клавиатурата и ги оставете да ви говорят чрез своето решение. Това ще ги успокои.

Като интервюиран не започвайте просто да пишете в момента, в който ви бъде дадена клавиатурата. Започнете първо да обсъждате решението си. Попитайте партньора си дали иска да има клавиатурата, докато вие ги уведомявате за вашите мисли. Напомнете си, че това е по-скоро сдвояване на „тест драйв“, вместо на техническо интервю. Което ме води до следващата точка ...

Говорете с партньора си

Това е първото нещо, което проверявам, когато правя интервюта за сдвояване. В предишната си компания обикновено започвах деня, като обяснявах какво прави приложението, върху което работим, каква е функцията, по която работя, и какво трябва да направим. След това започнах да пиша своите спецификации и оставих кандидата да управлява.

Бих обърнал внимание, за да видя какво са направили: понякога просто продължават напред и започват да пишат, други първо мислят мълчаливо, а трети направо задават въпроси за проблема или ми казват техните решения.

В настоящата ми компания сесията на двойки обикновено се фокусира върху даден проблем. Давам на кандидата да прочете проблема и след това изчаквам. Ако започнат да пишат, без да казват нищо, това вече е червен флаг за мен. Давам точки на хора, които получават химикал и хартия и започват да ми обясняват своето решение със схеми.

Като интервюиращ е важно да поддържате разговора, за да може кандидатът да почувства, че това е сесия за сдвояване. В този момент от време вие ​​двамата сте една единица. И двамата трябва да можете да общувате добре помежду си и да отскачате идеи напред-назад.

Разбира се, ще има моменти, в които вашият кандидат ще трябва да мисли сам, така че нека и те го имат. Намерете баланса между поддържането на разговора и оставянето им да се съсредоточат и да разрешат проблема.

Като интервюиран винаги уведомявайте партньора си какво планирате да направите и какво е вашето решение. Това им дава да разберат, че разпознавате факта, че това е сесия за сдвояване и че можете да комуникирате идеите си добре. Това също им създава усещането, че планирате нещата внимателно, вместо да отидете на YOLO.

Добре е да отделите малко време за размисъл

За разлика от горното твърдение, вие също трябва да имате време да мислите мълчаливо. Абсолютно добре е да имате мъртъв въздух. Все пак не сте в радиостанция.

Като интервюиращ рядко ще ви се налага да правите това. Но ако сте в моята ситуация, където се сдвоявате с кандидат за функция, която всъщност изпълнявате, тогава и вие ще имате нужда от време да помислите. Просто уведомете партньора си за това и трябва да се оправи.

Като интервюиран , можете да уведомите партньора си, че ще ви трябва малко време, за да помислите и че след това ще можете да ги уведомите за вашето решение. Това показва, че вие ​​признавате присъствието им и че ще предавате мислите си, след като ги обработите. Комуникацията е ключова!

Финални мисли

Това са само някои неща, които научих. Надяваме се, че те могат да ви помогнат в следващото ви интервю. Въпреки че това не е изчерпателен списък за това как да се направи интервю за сдвояване, мисля, че то може да помогне на кандидатите (и интервюиращите за първи път също!) В техните интервюта.

Късмет! И също така не забравяйте, че каквото и да се случи, ще излезете от това интервю, като сте научили нещо - и това е важно.