HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p><strong>Разработчики давно разделились на два лагеря - одни ненавидят парное программирование, а другие его обожают. Обе стороны правы, и здесь нет никакого противоречия: парное программирование, как и любая другая инженерная практика, имеет свои сильные и слабые стороны. Мы подробно рассказываем вам о том, как устроено парное программирование и почему его часто применяют во время собеседований.</strong></p>
1 <p><strong>Разработчики давно разделились на два лагеря - одни ненавидят парное программирование, а другие его обожают. Обе стороны правы, и здесь нет никакого противоречия: парное программирование, как и любая другая инженерная практика, имеет свои сильные и слабые стороны. Мы подробно рассказываем вам о том, как устроено парное программирование и почему его часто применяют во время собеседований.</strong></p>
2 <p><em>Это адаптированный перевод статьи<a>Why Pair Programming Is the Best Interview Approach for Hiring</a>. Повествование ведется от имени автора.</em></p>
2 <p><em>Это адаптированный перевод статьи<a>Why Pair Programming Is the Best Interview Approach for Hiring</a>. Повествование ведется от имени автора.</em></p>
3 <p>У меня на работе часто программируют в парах, а еще используют парное программирование как формат для собеседований. Теперь это мой любимый формат, потому что он позволяет проверить способности кандидата с наименьшим количеством усилий.</p>
3 <p>У меня на работе часто программируют в парах, а еще используют парное программирование как формат для собеседований. Теперь это мой любимый формат, потому что он позволяет проверить способности кандидата с наименьшим количеством усилий.</p>
4 <p><strong>Мы получаем ответ сразу на три вопроса:</strong></p>
4 <p><strong>Мы получаем ответ сразу на три вопроса:</strong></p>
5 <ul><li>Как человек ведет себя в процессе написания кода?</li>
5 <ul><li>Как человек ведет себя в процессе написания кода?</li>
6 <li>Какие у него прикладные навыки?</li>
6 <li>Какие у него прикладные навыки?</li>
7 <li>Впишется ли он в коллектив?</li>
7 <li>Впишется ли он в коллектив?</li>
8 </ul><p>Я понимаю, что трудно поверить, что один подход решает так много проблем.</p>
8 </ul><p>Я понимаю, что трудно поверить, что один подход решает так много проблем.</p>
9 <h2>Содержание</h2>
9 <h2>Содержание</h2>
10 <ul><li><a>Большинство подходов к собеседованию ничего не говорят о кандидате</a></li>
10 <ul><li><a>Большинство подходов к собеседованию ничего не говорят о кандидате</a></li>
11 <li><a>Вопросы на доске</a></li>
11 <li><a>Вопросы на доске</a></li>
12 <li><a>Вопросы по языку и фреймворкам</a></li>
12 <li><a>Вопросы по языку и фреймворкам</a></li>
13 <li><a>Вопросы по софт-скиллам</a></li>
13 <li><a>Вопросы по софт-скиллам</a></li>
14 <li><a>Домашка и тестовое задание</a></li>
14 <li><a>Домашка и тестовое задание</a></li>
15 <li><a>Парное программирование</a></li>
15 <li><a>Парное программирование</a></li>
16 <li><a>Что происходит в голове у соискателя</a></li>
16 <li><a>Что происходит в голове у соискателя</a></li>
17 <li><a>А сможет ли он включиться работу?</a></li>
17 <li><a>А сможет ли он включиться работу?</a></li>
18 <li><a>Заключение</a></li>
18 <li><a>Заключение</a></li>
19 </ul><h2>Большинство подходов к собеседованию ничего не говорят о кандидате</h2>
19 </ul><h2>Большинство подходов к собеседованию ничего не говорят о кандидате</h2>
20 <p>Если человек прошел собеседование - это значит, что он умеет проходить собеседования. И все. Это не значит, что человек сможет написать фичу для сложного приложения, а именно это от него и потребуется.</p>
20 <p>Если человек прошел собеседование - это значит, что он умеет проходить собеседования. И все. Это не значит, что человек сможет написать фичу для сложного приложения, а именно это от него и потребуется.</p>
21 <h2>Вопросы на доске</h2>
21 <h2>Вопросы на доске</h2>
22 <p>То, как человек отвечает на вопросы по алгоритмам, написанным на доске, говорит о многом. Например о том, как кандидат работает под давлением или о том, каковы его интеллектуальные способности. Но вот только этот этап собеседования легко пройти, если ты хорошо подготовился.</p>
22 <p>То, как человек отвечает на вопросы по алгоритмам, написанным на доске, говорит о многом. Например о том, как кандидат работает под давлением или о том, каковы его интеллектуальные способности. Но вот только этот этап собеседования легко пройти, если ты хорошо подготовился.</p>
23 <p>Даже синьоры с трудом ответят на вопросы по алгоритмам, если не дать им время на подготовку.</p>
23 <p>Даже синьоры с трудом ответят на вопросы по алгоритмам, если не дать им время на подготовку.</p>
24 <p>У крупных компаний есть веская причина фильтровать соискателей через вопросы по алгоритмам. Они ведь ищут человека въедливого, эрудированного. Но это еще не значит, что такой подход оправдан в среднем и малом бизнесе - они, как правило, ищут человека, который способен написать рабочий код, и для них это важнее всего.</p>
24 <p>У крупных компаний есть веская причина фильтровать соискателей через вопросы по алгоритмам. Они ведь ищут человека въедливого, эрудированного. Но это еще не значит, что такой подход оправдан в среднем и малом бизнесе - они, как правило, ищут человека, который способен написать рабочий код, и для них это важнее всего.</p>
25 <p>К сожалению, глубокие познания соискателя в области алгоритмов и структур данных никак не помогут ему, если он не знает ни языка, ни фреймворка.</p>
25 <p>К сожалению, глубокие познания соискателя в области алгоритмов и структур данных никак не помогут ему, если он не знает ни языка, ни фреймворка.</p>
26 <h2>Вопросы по языку и фреймворкам</h2>
26 <h2>Вопросы по языку и фреймворкам</h2>
27 <p>Эти вопросы тоже бесполезны. Попросите джуна своими словами описать<a>промисы в JavaScript</a>или<a>декораторов в Python</a>, и он зависнет. Спросите синьора про какую-нибудь малюсенькую деталь вашего языка или фреймворка, и он тоже застрянет. Если только не почитал об этом накануне, конечно.</p>
27 <p>Эти вопросы тоже бесполезны. Попросите джуна своими словами описать<a>промисы в JavaScript</a>или<a>декораторов в Python</a>, и он зависнет. Спросите синьора про какую-нибудь малюсенькую деталь вашего языка или фреймворка, и он тоже застрянет. Если только не почитал об этом накануне, конечно.</p>
28 <p>А хуже всего то, что все эти вопросы никак не связаны с реальной разработкой. В реальности если ты забыл какую-то мелочь, ты пошел и почитал документацию - все, проблема решена.</p>
28 <p>А хуже всего то, что все эти вопросы никак не связаны с реальной разработкой. В реальности если ты забыл какую-то мелочь, ты пошел и почитал документацию - все, проблема решена.</p>
29 <h2>Вопросы по софт-скиллам</h2>
29 <h2>Вопросы по софт-скиллам</h2>
30 <p>Трудно проверить софт-скиллы кандидата, потому что ничего не мешает человеку просто выучить правильные ответы на ваши вопросы. Вы узнаете о слабых и сильных сторонах соискателя только то, что он хочет, чтобы вы знали.</p>
30 <p>Трудно проверить софт-скиллы кандидата, потому что ничего не мешает человеку просто выучить правильные ответы на ваши вопросы. Вы узнаете о слабых и сильных сторонах соискателя только то, что он хочет, чтобы вы знали.</p>
31 <h2>Домашка и тестовое задание</h2>
31 <h2>Домашка и тестовое задание</h2>
32 <p>Если вы даете<a>тестовое на дом</a>, человек может над ним сидеть часами. Я думаю, что это пустая трата драгоценного времени, которое он мог потратить на настоящую работу.</p>
32 <p>Если вы даете<a>тестовое на дом</a>, человек может над ним сидеть часами. Я думаю, что это пустая трата драгоценного времени, которое он мог потратить на настоящую работу.</p>
33 <p>А еще кандидат может сделать тестовое, попросив помощи друзей. Или делать его 20 часов, хотя задание рассчитано на час. И в том, и в другом случае вам не нужен такой работник, но о том, как он на самом деле делал тестовое, вы не узнаете.</p>
33 <p>А еще кандидат может сделать тестовое, попросив помощи друзей. Или делать его 20 часов, хотя задание рассчитано на час. И в том, и в другом случае вам не нужен такой работник, но о том, как он на самом деле делал тестовое, вы не узнаете.</p>
34 <h2>Парное программирование</h2>
34 <h2>Парное программирование</h2>
35 <p>Как я уже писал выше, парное программирование устраняет все перечисленные проблемы. В мире, где собеседования - это необходимое зло, парное программирование мне кажется наименее болезненным форматом.</p>
35 <p>Как я уже писал выше, парное программирование устраняет все перечисленные проблемы. В мире, где собеседования - это необходимое зло, парное программирование мне кажется наименее болезненным форматом.</p>
36 <h3>Особенности парного программирования, если вы нанимаете разработчика</h3>
36 <h3>Особенности парного программирования, если вы нанимаете разработчика</h3>
37 <p>Ни один другой формат интервью не дает мне так много информации о кандидате как парное программирование. И это важно, ведь здоровые отношения в команде - это основа компании, ее культуры и продуктивности.</p>
37 <p>Ни один другой формат интервью не дает мне так много информации о кандидате как парное программирование. И это важно, ведь здоровые отношения в команде - это основа компании, ее культуры и продуктивности.</p>
38 <p>Парное интервью это самая настоящая командная работа. Причем без разницы, кто из вас пилот, а кто - навигатор, ведь перед вами стоит задача написать новую фичу, и вы работаете как единое целое. И для кандидата парное собеседование проще - ведь это не викторина, к которой надо просто выучить правильные ответы.</p>
38 <p>Парное интервью это самая настоящая командная работа. Причем без разницы, кто из вас пилот, а кто - навигатор, ведь перед вами стоит задача написать новую фичу, и вы работаете как единое целое. И для кандидата парное собеседование проще - ведь это не викторина, к которой надо просто выучить правильные ответы.</p>
39 <p>Кроме того, парное программирование дает мне сразу понять, кто передо мной - скромняга или хвастун. Лично я предпочитаю работать со скромным разработчиком, который знает, что делает, чем с примадонной, которая постоянно закатывает сцены.</p>
39 <p>Кроме того, парное программирование дает мне сразу понять, кто передо мной - скромняга или хвастун. Лично я предпочитаю работать со скромным разработчиком, который знает, что делает, чем с примадонной, которая постоянно закатывает сцены.</p>
40 <p>Если с кандидатом неприятно программировать в паре, мы его не нанимаем, все просто. А как иначе? Если разработчики не могут работать в команде без конфликтов, то это конец.</p>
40 <p>Если с кандидатом неприятно программировать в паре, мы его не нанимаем, все просто. А как иначе? Если разработчики не могут работать в команде без конфликтов, то это конец.</p>
41 <p>Еще надо помнить о том, насколько дорого обходится весь процесс найма. Парное программирование это отличный способ избежать лишних трат и быстро отфильтровать людей, которые будут вредить команде.</p>
41 <p>Еще надо помнить о том, насколько дорого обходится весь процесс найма. Парное программирование это отличный способ избежать лишних трат и быстро отфильтровать людей, которые будут вредить команде.</p>
42 <h3>Особенности парного программирования для тех, кто ищет работу</h3>
42 <h3>Особенности парного программирования для тех, кто ищет работу</h3>
43 <p>Парное программирование - это возможность для кандидата прочувствовать на собственной шкуре, какой может быть работа с вами. И если ему не понравится этот опыт, ничего страшного, он имеет полное право отказаться от вашей вакансии.</p>
43 <p>Парное программирование - это возможность для кандидата прочувствовать на собственной шкуре, какой может быть работа с вами. И если ему не понравится этот опыт, ничего страшного, он имеет полное право отказаться от вашей вакансии.</p>
44 <p>Было бы хуже, если бы соискатель согласился на оффер, а потом страдал. Это нехорошо для обеих сторон.</p>
44 <p>Было бы хуже, если бы соискатель согласился на оффер, а потом страдал. Это нехорошо для обеих сторон.</p>
45 <p>Все было бы просто, если бы программист только обменивал свой код на зарплату. Но реальность намного сложнее. В реальности продуктивность упадет, если работник несчастен. Поэтому так важно дать соискателю опыт работы в компании - если ему не нравится эта работа, он это сразу поймет.</p>
45 <p>Все было бы просто, если бы программист только обменивал свой код на зарплату. Но реальность намного сложнее. В реальности продуктивность упадет, если работник несчастен. Поэтому так важно дать соискателю опыт работы в компании - если ему не нравится эта работа, он это сразу поймет.</p>
46 <p>Парное программирование даст кандидату больше информации о будущей работе, чем он получил бы сам, задавая вопросы. Поэтому я с уверенностью заявляю, что это лучший способ понять, впишется ли соискатель в коллектив.</p>
46 <p>Парное программирование даст кандидату больше информации о будущей работе, чем он получил бы сам, задавая вопросы. Поэтому я с уверенностью заявляю, что это лучший способ понять, впишется ли соискатель в коллектив.</p>
47 <p>А сейчас я скажу то, что может шокировать противников парного программирования. Многие соискатели говорили нам, что им проще программировать в паре, чем проходить стандартное собеседование. Мне кажется, что одного этого факта уже достаточно, чтобы все претензии к парному программированию на собеседовании отпали.</p>
47 <p>А сейчас я скажу то, что может шокировать противников парного программирования. Многие соискатели говорили нам, что им проще программировать в паре, чем проходить стандартное собеседование. Мне кажется, что одного этого факта уже достаточно, чтобы все претензии к парному программированию на собеседовании отпали.</p>
48 <h2>Что происходит в голове у соискателя</h2>
48 <h2>Что происходит в голове у соискателя</h2>
49 <p>Во время наших парных сессий я получаю море информации о том, как соискатель ведет себя в разных ситуациях.</p>
49 <p>Во время наших парных сессий я получаю море информации о том, как соискатель ведет себя в разных ситуациях.</p>
50 <ol><li>Медитирует он на код или просит помощи?</li>
50 <ol><li>Медитирует он на код или просит помощи?</li>
51 <li>Пользуется гуглом? (это, кстати, не криминал)</li>
51 <li>Пользуется гуглом? (это, кстати, не криминал)</li>
52 <li>Он реализует первую попавшуюся идею или взвешивает разные варианты?</li>
52 <li>Он реализует первую попавшуюся идею или взвешивает разные варианты?</li>
53 <li>Он думает о вычислительной сложности в процессе написания кода?</li>
53 <li>Он думает о вычислительной сложности в процессе написания кода?</li>
54 <li>Он может описать логику словами перед тем, как написать код?</li>
54 <li>Он может описать логику словами перед тем, как написать код?</li>
55 <li>Активно ли он общается с напарником или работает молча?</li>
55 <li>Активно ли он общается с напарником или работает молча?</li>
56 </ol><p>Всего час над написанием фичи и я уже понимаю, как человек ведет себя в самых разных ситуациях.</p>
56 </ol><p>Всего час над написанием фичи и я уже понимаю, как человек ведет себя в самых разных ситуациях.</p>
57 <p>Дисклеймер! Парное программирование имеет свои недостатки. Например человек не может писать код, когда за ними наблюдают, но в остальном это может быть хороший специалист.</p>
57 <p>Дисклеймер! Парное программирование имеет свои недостатки. Например человек не может писать код, когда за ними наблюдают, но в остальном это может быть хороший специалист.</p>
58 <p>Но даже с учетом этого, парное программирование - мой любимый формат собеседования.</p>
58 <p>Но даже с учетом этого, парное программирование - мой любимый формат собеседования.</p>
59 <h2>А сможет ли он включиться работу?</h2>
59 <h2>А сможет ли он включиться работу?</h2>
60 <p>Вопросы по алгоритмам заставляют соискателя рассматривать проблему в вакууме, а мне гораздо интереснее, сможет ли он работать над живым приложением. Приложением, которое постоянно меняется.</p>
60 <p>Вопросы по алгоритмам заставляют соискателя рассматривать проблему в вакууме, а мне гораздо интереснее, сможет ли он работать над живым приложением. Приложением, которое постоянно меняется.</p>
61 <p>Парное программирование отвечает на вопрос: "Сможет ли соискатель сразу включиться в работу?". Еще я избегаю риска обмануться эрудицией соискателя, пока он мне про алгоритмы рассказывает. Ведь на самом деле моя задача - проверить его практические навыки, а не знания алгоритмов.</p>
61 <p>Парное программирование отвечает на вопрос: "Сможет ли соискатель сразу включиться в работу?". Еще я избегаю риска обмануться эрудицией соискателя, пока он мне про алгоритмы рассказывает. Ведь на самом деле моя задача - проверить его практические навыки, а не знания алгоритмов.</p>
62 <p>А еще мне неважно, если соискатель не может по щелчку пальцев выдать решение. Ничего страшного, если он пойдет почитать документацию, это тоже важный навык. Как и навык просить помощь у более опытного коллеги. Когда команда маленькая (как у нас), очень важно уметь полагаться друг на друга.</p>
62 <p>А еще мне неважно, если соискатель не может по щелчку пальцев выдать решение. Ничего страшного, если он пойдет почитать документацию, это тоже важный навык. Как и навык просить помощь у более опытного коллеги. Когда команда маленькая (как у нас), очень важно уметь полагаться друг на друга.</p>
63 <p>Между собеседованиями и реальной работой лежит глубокая пропасть. Парное программирование закрывает эту пропасть так хорошо, как только это возможно.</p>
63 <p>Между собеседованиями и реальной работой лежит глубокая пропасть. Парное программирование закрывает эту пропасть так хорошо, как только это возможно.</p>
64 <h2>Заключение</h2>
64 <h2>Заключение</h2>
65 <p>Я понимаю всех, кто ненавидит парное программирование. Очень многим не нравится, когда другие наблюдают за их работой. От автора подобной статьи такое признание звучит странно, но я тоже когда-то был противником парного программирования.</p>
65 <p>Я понимаю всех, кто ненавидит парное программирование. Очень многим не нравится, когда другие наблюдают за их работой. От автора подобной статьи такое признание звучит странно, но я тоже когда-то был противником парного программирования.</p>
66 <p>Но я поменял свое мнение. Но если мне не удалось поменять ваше, ничего страшного. Вы можете избегать компаний, как наша, где часто программируют в парах, ведь иначе вам будет некомфортно. Несчастный работник - это плохой работник.</p>
66 <p>Но я поменял свое мнение. Но если мне не удалось поменять ваше, ничего страшного. Вы можете избегать компаний, как наша, где часто программируют в парах, ведь иначе вам будет некомфортно. Несчастный работник - это плохой работник.</p>
67 <p>Конечно, парное программирование подойдет не для всех типов разработки, однако для веба это отличный формат. Еще больше формат подходит, если команда маленькая и дружная, даже если вы создаете сложные продукты.</p>
67 <p>Конечно, парное программирование подойдет не для всех типов разработки, однако для веба это отличный формат. Еще больше формат подходит, если команда маленькая и дружная, даже если вы создаете сложные продукты.</p>