Кря-кря на день программиста: вспоминаем универсальный метод решения проблемных задач

Привет, Хабр! Недавно мы проводили конкурс компьютерных историй на Пикабу, а также при поддержке Ростелекома дарили участникам мероприятия утят. В этом посте я хочу рассказать, как это было и поделиться историями участников, а также поговорить о том, насколько важен утенок в работе айтишника.

deb8632a27cfbfbfa9b7b9cfeafcb61f.png

Меня зовут Леонид Романовский, и моя команда занималась утиным проектом Ростелекома, который был запущен в честь дня программиста. Поскольку аудитория была максимально широкой, а формат требовал особого лендинга, для этой задачи все-таки был выбран Пикабу, а не Хабр. В результате про уточек и отличный метод решения проблем на Pikabu прочитали более 4 миллиона пользователей, а в самом конкурсе (о нем ниже) приняло участие почти 600 человек.

На этом можно было бы остановиться, но при таком резонансе конкурса и степени веселья, оставить без утиного удовольствия Хабр, который читаю каждый день, я просто не могу. :)

Начнем с того, что это была интересная идея самого Ростелекома, а точнее их HR-отдела и специалистов по взаимодействию с разработчиками. В наше непростое время людям нужна поддержка, особенно для решения сложных вопросов — как при выполнении непосредственных обязанностей, так и в личной жизни. Поэтому было решено запустить что-то мотивирующее и позитивное, что поможет отключиться и переключиться.

c7ccb0e1e358b180f953e58745bb418f.png

«Но почему утенок?», — спрашивали нас некоторые. Уверен, большинство из вас уже сами не раз общались с этим милым резиновым существом, но если нет — дело в том, что метод утенка применяют программисты по всему миру.

Возможно все это началось еще раньше, но доподлинно известно, что метод изложили в своей книге »Программист-прагматик: путь от подмастерья к мастерству» Дэвид Томас и Эндрю Хант еще в 1999 году. 

Авторы использовали жизненные истории, чтобы сделать текст понятнее, и один эпизод превратился в метод утёнка. Дэвид и Эндрю рассказывали о разработчике, который всё время носил с собой жёлтую резиновую утку. Когда написанная им программа или команда не работали, он принимался объяснять утке каждую строчку кода и в итоге находил ошибки.

b678ba536bc62c0e2573c8f392bcdb7e.png

На английском метод называется rubber duck debugging или rubber ducking, что имеет более глубокий смысл. Буквально можно перевести как «отладка с помощью резиновой уточки».

Метод гениален своей простотой:

Если не можешь решить какую-то задачу просто поставь перед собой резинового утенка и объясни ему, что именно ты делал, как пытался решить задачу и к чему пришел.

Когда что-то начинаешь объяснять другому человеку (или существу с иным мировоззрением), приходится погружаться в детали и смотреть на вопрос со стороны. Все это помогает быстро найти решение.

Утенок помогает, потому что компьютер «думает» иначе, и человеку, даже опытному программисту, бывает сложно понять, почему, казалось бы, правильный код не работает. Разберем пример отладки с утенком:

  1. Открываешь файл с кодом, еще раз проводишь ревизию, что должна делать программа.

  2. Начинаешь объяснять утке строчку за строчкой, что именно здесь происходит, почему именно эти переменные и т.д.

  3. Поясняешь все переходы и все параметры (утки очень любопытны, особенно резиновые).

  4. В процессе приходится объяснить самому себе ряд «очевидных» вещей, и часто ошибки синтаксиса, перепутанные названия переменных, ошибочные ссылки и т.д. всплывают на поверхность.

Вообще это не единственный пример подобного метода работы. Я как минимум, помню еще один пример, когда смена точки взгляда помогла спасти землю. Да не то, что землю — всю вселенную! Это было в третьей части фильма «Люди в Черном», когда главные герои ели яблочный пирог:

Таким образом, конечно, брать утку необязательно — можно вместо этого использовать любую фигурку или статуэтку, полуспящую бабушку, а также кота, собаку или кого-то похожего на Уилла Смитта, съедающего свежую выпечку… 

Но адепты метода чаще всего выбирают резинового утенка. Как мне рассказали участники проекта это происходит потому, что:

  • Ее позитивная желтизна завораживает.

  • Утенок — символ метода. И один взгляд на него убеждает в том, что все получится.

  • Утенок не отрывая глаз смотрит на вас (в отличие от кота или бабушки). Это помогает сосредоточиться и вести беседу серьезно.

05e436729a29f7579e565b6a9cd7a28a.png

Как выяснилось, утята и день программиста — вещи очень сочетающиеся. И поэтому для конкурса к важной дате были выбраны именно утиные ачивки, аксессуары и мерч. А всем желающим мы предложили рассказать свою историю о встрече с первым компом в своей жизни и сравнить эти эмоции с переживаниями от просмотренных фильмов.

Тупой и еще тупее, Франкенштейн, Гарри Поттер…

Вообще получилось интересно. Нашлось ни много ни мало, а шесть сотен человек, которые готовы были состязаться за стильного физического утенка (то есть реальную резиновую уточку —, а не только ачивки и картинки). Нам прислали массу неожиданных историй, и сегодня я поделюсь теми, которые лично мне показались самыми «вкусными».

93ab797f1033b066ad0574edc33ffa64.png36750289338aa90c24e0025689c1c164.pnga6ea2104f3c41bbaef7c8018fb013daf.png

Результаты

Я надеюсь, что утиная активация принесла массу позитива не только участникам, но и вам, раз уж вы дочитали до конца. :) Как результат, теперь у многих пользователей Пикабу есть красивые утиные ачивки, а те, кто не знал о существовании утиного метода начнут применять его в жизни и еще быстрее решать сложные и интересные задачи.

51050902c6e86218cca6ea43b8a4e197.png

Кстати, поделитесь в комментариях, а у вас действуют какие-нибудь программы поддержки со стороны работодателя? Используете ли вы свои методы перезагрузки и смены точки зрения для решения сложных задач?

© Habrahabr.ru