Вскоре после переезда в Перт я решил основать местное Code Dojo. Это отличный способ совершенствоваться как программист, учиться, делиться с другими и быть частью сообщества (что вызывает у вас теплые чувства).

Раньше я был членом London Code Dojo и руководил додзё как способ обучения TDD и практики программирования для клиентов. В этом посте я поделюсь своим опытом посещения додзе по коду и некоторыми советами о том, как проводить свои собственные.

Code Dojos ориентированы на профессиональных программистов и выпускников колледжей/университетов. Это не похоже на инициативы CoderDojo, которые приобрели популярность и направлены на обучение молодежи программированию. Приятно видеть, что это развитие концепции используется некоммерческой группой, созданной для помощи следующему поколению. Это, безусловно, то, в чем мне понравилось участвовать с моей собственной дочерью.

ОПРЕДЕЛЕНИЕ КОДА ДОДЗЁ

Coding Dojo – это собрание, на котором группа программистов собирается вместе, чтобы решить задачу по программированию. Они здесь, чтобы развлекаться и участвовать в осознанной практике, чтобы улучшить свои навыки.

ЧТО Я ЛИЧНО ПОЛУЧИЛ ОТ ПОСЕЩЕНИЯ ДОДЗЁ?

Мне нравится видеть, как другие подходят к проблеме. Сопряжение с новым; разработчиков-единомышленников и посмотреть, как они работают. В разных Code Dojo, которые я посещал, я познакомился с разными языками программирования и наборами инструментов. Часто участники более чем счастливы показать людям свои способы работы, поделиться советами из своей области. Как профессиональный программист, вы можете усовершенствовать свои навыки и получить возможность наставлять других.

Вы можете практиковать ката, используемые в Code Dojo, самостоятельно, но я рекомендую найти местное Dojo (или открыть его) и принять участие.

ПЕРТСКОЕ ДОДЗЁ

Perth Code Dojo был запущен в 2014 году и ориентирован на мастерство разработки программного обеспечения и практики XP (TDD, сопряжение и небольшой рефакторинг). Процесс создания додзё был довольно простым, хотя он требует некоторого времени и пару раз выводил меня из зоны комфорта, что само по себе было формой преднамеренной практики. Мне пришлось продвигать и искать спонсоров, а также научиться выступать как специалист по практике программирования перед толпой незнакомцев (большинство из которых были приличными программистами). Я получил большой опыт в логистике для проведения мероприятий, публичных выступлений, группового фасилитации и познакомился с некоторыми из лучших разработчиков в городе, а также улучшил свои собственные навыки программирования — что может не нравиться!

НЕКОТОРЫЕ СОВЕТЫ ПО ЗАПУСКУ КОДА ДОДЗЁ

БЕЗОПАСНОСТЬ

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

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

ГОСТЬЯ

Вам нужно хорошо разбираться в TDD и общей практике программирования. Но вам не нужно быть лучшим программистом в комнате, чтобы организовать успешный додзё. Я нашел, что это отличный способ улучшить свои собственные навыки, помогая и принимая участие.

Я рекомендую вам сделать ката самостоятельно заранее, чтобы вы могли испытать вызов и дать людям руководство. Выполняя ката в свободное время, вы также можете немного продвинуться вперед, поскольку вы не ограничены во времени. Это означает, что вы можете попробовать новые языки или техники. У вас также есть больше времени для исследования и анализа вашего собственного подхода с тем, что другие, возможно, сделали в Интернете.

НЕ ПРИНИМАЙТЕ НАБОР НАВЫКОВ ЛЮДЕЙ

Опытные программисты часто не любят признаваться, что застряли или чего-то не понимают. Я рекомендую время от времени быть немного навязчивым, просить людей показать код и особенно модульные тесты; если практикуете TDD. Я обнаружил, что иногда самые громкие члены додзё могут упустить важный момент, и это может привести к тому, что они не получат столько, сколько могли бы получить от упражнения. Громкий человек, подобный этому, может также увести своего партнера по паре по ложному пути и привить неправильные методы. Не бойтесь бросать вызов людям в правильном направлении. Ключ в том, чтобы проявлять уважение и следить за тем, чтобы ваши намерения были верными — вы здесь, чтобы помогать, а не критиковать.

ПРОЙДИТЕ ПО КОМНАТЕ

Хороший способ сделать это — посетить каждую пару вскоре после начала ката и попросить показать их тесты. Задавайте такие вопросы, как;

Вы сначала тест написали? — Программистам, которые не привыкли к TDD, может быть очень сложно сначала написать тест, и они сразу перейдут к коду.

Это самый простой тест, который вы можете написать? — Умение разбивать проблему имеет решающее значение для хорошего потока TDD. Людям может понадобиться руководство.

Этот тест слишком простой? Что проверяет? — Часто даже программисты с хорошим пониманием TDD могут писать тесты, проверяющие, что возвращается нуль. Я сам был виновен в этом в прошлом, но это не очень хороший начальный тест, поскольку он на самом деле не проверяет ничего, кроме того, что существует метод с выбранным вами именем.

ТАМ МНОГО КАТА

Вам не нужно изобретать велосипед, когда вы управляете собственным додзё. Может быть приятно придумать свои собственные ката, а также поделиться новыми идеями с сообществом, но есть множество уже существующих, из которых вы можете выбирать. Это сохраняет вниз сложность как организатор.

Некоторые замечательные ресурсы включают в себя:

Веб-сайт Code Kata Дэйва Томаса — codekata.com

TDD Kata от Garora на Github — github.com/garora/TDD-Katas

Кибер-додзё Джона Джаггера — еще один отличный источник Ката и довольно интересный инструмент сам по себе — cyber-dojo.org

Коллекция примеров лондонского додзё SleepyFox на Github — github.com/sleepyfox

РЕШАТЬ АНТИСОЦИАЛЬНЫЕ ПРОБЛЕМЫ

Сексизм, расизм, гомофобия и травля токсичны для любой учебной среды. Немедленно пресекайте подобное в зародыше. Я рекомендую поощрять более широкое участие представителей разных демографических групп, поскольку наличие людей из разных слоев общества создает правильную атмосферу для обучения. Шипящая колбаса альфа-самца не способствует хорошему обучению. Поощряйте людей узнавать друг друга и обмениваться парами.

ФОРМАТ

Для Perth Codo Dojo я использовал формат, используемый в London Code Dojo, и SleepyFox любезно помог мне с некоторыми советами по настройке. Подробности ниже;

  • Дайте людям 15 минут, чтобы прийти, выпить и поздороваться с коллегами по программированию.
  • Начните с кругового опроса, попросив людей представиться в качестве ледокола. Интересный факт о себе или что-то, чем они занимались на выходных. Это очень важно, так как помогает другим участникам узнать друг друга, а то, что люди говорят заранее, поощряет участие — почти так же, как на любом семинаре или ретроспективе.
  • Начните с краткого вступления, объясняющего концепцию додзё и формат для новичков, а также в качестве напоминания для старых мастеров. Объясните правила и попросите людей уважать стремление каждого учиться и выключать телефоны.
  • Расскажите о выбранной ката, затем попросите участников объединиться в пары. Дайте им 15 минут на обсуждение и настройку своей среды: язык по выбору, IDE, тестовая среда и т. д. Если число нечетное, то подойдет группа из трех человек.
  • Используйте технику Помодоро с 25-минутным сосредоточением на ката и 5-минутным отдыхом — я считаю, что это отлично подходит для парного программирования, а не только для кодо-ката. Как правило, три Помидора — это хорошее время, чтобы провести ката, прежде чем люди начнут терять интерес или вы можете обнаружить, что некоторые люди заканчивают простые задачи. В идеале вы хотите, чтобы задача осталась незавершенной для всех; они всегда могут закончить или отполировать его после.
  • Оставьте время в конце для мини-ретро и обмена упражнениями. Попросите пары добровольно подключить свою машину к большому экрану, чтобы показать их подход. Люди часто готовы поделиться, и это обсуждение в конце очень ценно для общения в группе.
  • Возьми пиццу — если у тебя есть спонсорство. Совместное использование еды — еще один отличный способ создать групповую атмосферу, в которой поощряется обучение. А люди любят пиццу. Кроме того, это удобная еда, когда вы пытаетесь работать.
  • Приз — приятный штрих, если позволяет спонсорство. Не должно быть ничего супер дорогого

КОНТРОЛЬНЫЙ СПИСОК ДЛЯ МЕСТА

  • Большой экран или проектор для представления формата, ката и кода обмена в конце.
  • Много места на рабочем столе для людей, которые могут соединиться с подходящими розетками для ноутбуков.
  • Знак на двери и направления, чтобы люди могли найти вас!

ССЫЛКИ НА GITHUB/СЛАЙДЫ

Мои примеры кода можно найти на GitHub

Слайды можно найти на SpeakerDeck и повторно использовать в Creative Commons.

Спасибо @sleepyfox и нашим спонсорам — Kiandra IT, Ajilon, Robert Walters и Spacecubed.