На выходных я посетил Global Day of Code Retreat. Мы провели один в нашем офисе в Олдгейт и приветствовали 11 участников.⁰ Мы писали около 45 минут за сеанс, и на каждом сеансе были свои ограничения. Цель дня состояла в том, чтобы попрактиковаться в написании кода вдумчиво, с помощью тестов и небольшими шагами. Решением, которое мы искали, было программное обеспечение для запуска Игры Жизни, игры с нулевым игроком, которая демонстрирует эмерджентные свойства.
(То есть, как и жизнь среди нас, людей, она начинается с семени и иногда растет, иногда умирает, иногда остается прежним, но — вот в чем дело — ее нельзя торопить. Единственный способ выяснить, как шаблон будет выглядеть на шаге 4,255, 903, чтобы пройти все эти шаги.
Как и в жизни, единственный способ узнать, что произойдет, это подождать)
Мы также удаляли весь наш код в конце каждого сеанса, что освобождало, но и очень раздражало. Одним из конкретных примеров был случай, когда мы с напарником работали двухминутными очередями, возвращаясь к последней рабочей точке, если нам не удавалось пройти тест за эти 120 секунд. Это разочарование и восторг определенно усилились, когда нам пришлось избавиться от всей этой тяжелой работы.
Мне это очень понравилось, и я получил возможность рассказать о нашей работе и проповедовать о работе с нами. сообщения, которые становились тем страннее, чем позже:
Это было действительно интересное напоминание о том, как я изначально учился кодированию, то есть бесплодно колотил по клавиатуре, как объединенная в профсоюз обезьяна в бесконечной клетке. Я понятия не имел, что делаю, и когда все получилось, я получил огромный прилив эндорфинов, который подстегнул меня. Интенсивные занятия, подобные этим, ставят меня рядом с людьми, которые находятся в этом пространстве, которые просто хотят работать и писать код, а не торчать без дела, ожидая, пока этот чудак из правительства объяснит то, что они уже знают.
Я думаю, что стал немного старше, даже не осознавая этого.
Думаю, так у всех бывает.
Если вы просмотрите коммиты, вы увидите моментальный снимок того, о чем я думал в тот момент. Я действительно предпочитаю эти длинные истории коммитов искусственно сжатым и переписанным — по крайней мере, в качестве учебного пособия. Например, мой класс Cell начинался так:
class Cell: def __init__(self, alive: bool = False): self.alive = alive def die(self): self.alive = False def resurrect(self): self.alive = True
и закончилось так:
class Cell: def __init__(self, alive: bool = False): self.alive = alive def black_or_white_square(self): return u"\u25A0" if self.alive else u"\u25A1"
потому что по пути я понял, что класс Cell не должен умирать. На самом деле, я мог бы даже полностью свести его к значению True или False и вообще не беспокоиться о создании объектов.
Некоторые люди не восприняли этот подход. У некоторых были Ячейки, которые были очень весомыми и могли рассчитать свою судьбу, уменьшая потребность в мире и помещая каждую ячейку в свой собственный пузырь. Огромная ценность подобных мероприятий, на мой взгляд, заключается в том, что они раскрывают совершенно разные способы осмысления проблемы.
Итак, теперь вы подверглись воздействию моего. Что вы думаете?
⁰ 24 человека зарегистрировались, поэтому мне любопытно узнать, как этот процент отказов сравнивается со средним показателем
¹ Если вы попали на этот блог, потому что посетили его, вам следует проверить вакансии, которые у нас есть что мы предлагаем и навыки, которые мы ожидаем от вас в качестве младшего специалиста по данным или младшего разработчика программного обеспечения.