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>