Предыстория, мотивация и толчок (поездка в НЙ)
Есть вещи, от которых никуда не денешься, например английский. Если не выучила английский в школе, придется учить в универе, если не выучила в универе, придется после работы ходить на частные занятия. C книгой Designing Data-Intensive Applications (aka DDIA, aka "книга с кабанчиком") в мире программирования точно так же. Ты либо прочитаешь ее, либо все время будешь думать "да, да, я открыла, пролистала пару глав, надо как-нибудь дочитать".
Когда ты дорастаешь до уровня Senior, на собеседованиях спрашивают не только алгоритмические задачи, но и System Design. Книга DDIA считается библией в подготовке к System Design собеседованиям. В ней рассказывается, как работают базы данных: индексы, репликация, партиции, как из многих ненадежных компонент собирать одну надежную систему.
В мае этого года у меня появилась волшебная возможность (точнее, я зубами вырвала у жизни эту возможность) -- три месяца отпуска, который я провела в Нью-Йорке на ретрите для программистов, чтобы программировать, то, что ✨хочу✨.
И тогда я поняла, что книгу читать я собираюсь, и не собираюсь делать это одна. Написала вот такой пост и запостила в свой телеграм канал и твиттер
Как работает книжный клуб, логистика
Идея была проста: каждую неделю мы читаем по главе в своем темпе, раз в неделю собираемся на звонок и обсуждаем, что прочитали. Один человек делает презентацию и повторяет основные тезисы главы, но так как все главу прочитали (по идее!), то презентация не должна покрывать весь материал, а только дать толчок для обсуждения.
Ожидания у меня были не высоки. Я думала, что если будет хотя бы 3 человека, кто будет регулярно приходить на звонки, будет здорово. Все-таки книга сложная, а у людей есть еще дела.
Я создала отдельный чат в телеграме для обсуждения книги и назначила первый созвон. К моему удивлению, на первый звонок пришло 30 человек, а сразу после него люди сами скоординировались и составили расписание, кто когда будет делать презентацию. Нагрузка на меня сильно облегчилась!
Клуб держится на усилиях волонтеров, но зачем это нужно им?
В итоге мы прочитали DDIA за 18 недель (некоторые главы разбивали на 2 недели), 10 человек посетили >75% звонков и 13 разных человек делали презентации!
Честно говоря, это был не первый мой опыт создания книжного клуба. Таким же образом я до этого прочитала книгу Database Internals, только тогда книжный клуб был внутри компании. Для меня мир распределенных систем был нов, в то время когда многие мои коллеги уже сами написали свою распределенную файловую систему или протокол распределенных транзакций, так что мне это было сильно нужнее и интереснее, чем коллегам. В итоге почти все презентации готовила я. Тем более неожиданно и приятно для меня стал факт, что в этом клубе мне пришлось делать презентацию только 4 раза из 18, когда не находились другие желающие.
Я верю, что есть два уровня знаний:
- что-то где-то слышал
- я это знаю и могу объяснить другому
Знания на первом уровне часто висят в сознании и напоминают о себе "надо все-таки до конца разобраться", а знания второго уровня дают уверенность, что даже если сейчас информация не в кэше, ты можешь ее достать из сознания, когда захочешь.
Те, кто только слушает обсуждение, получают знание на первом уровне, те, кто презентует тему, задают вопросы, делятся своим опытом и мыслями -- получают знания на втором уровне.
Ключевые решения дизайна
Нет анонимусов
На входе в клуб стоит бот, который просит представиться и кикает тех, кто этого не делает. Бот проверяет, чтобы в описании было хотя бы 60 символов. Регулярно появляются те, кто вставляет что-то несодержательное, чтобы набрать 60 символов. Тех кикаю уже я.
В клубе нет какой-то закрытой информации или других ресурсов, единственная ценность клуба -- это вера в то, что остальные участники готовы вкладывать усилия в то, чтобы стать лучше как программисты и помочь в этом другим. Содержательное интро на входе -- это дар сообществу в виде усилий и открытости. Без этого контракт между участниками клуба нарушается.
Звонки не записываются
Много раз были запросы записывать звонки на видео, потому что кому-то не удобно время звонка, но они хотят получить пользу от обсуждения. Я считаю, что это убило бы идею клуба.
tl;dr: я не хочу делить участников клуба на "создателей контента" и "потребителей контента". Чтобы получить пользу, надо вложить усилия = (прочитать главу вовремя + прийти на созвон) + быть открытым = (прийти и задать свой "глупый вопрос" самому)
мои аргументы, почему я не хочу записывать:
- если кто-то хочет послушать пересказ, лучше сделать это на ютьюбе, потому что там созданный контент + автор постарался структурировать
- часто мы что-то не поняли или неправильно поняли, мы как раз для того и встречаемся, чтобы задавать "глупые" вопросы, хочется чтобы люди не стеснялись это делать
- большая ценность встреч в том, что мы делимся историями из опыта и прода. Часто люди не захотят рассказывать под запись историю, как в компании X у нас была вот такая корявая архитектура/такой инцидент
Что в итоге?
Сейчас в клубе 200+ участников, многие из них senior+, много кто работает в FAANG, и все мы собрались чтобы что-то понять и быть полезными другим. Я могу задать вопрос примерно по любой области программирования и получить ответ от человека с опытом в этой области.
DDIA -- второй поток
Новые люди не перестали приходить в группу, когда мы начали читать книгу, а когда мы уже достаточно продвинулись, кто-то пришел и прямо сказал, что не будет нас догонять, а подождет "следующего потока". Так я узнала, что следующий поток будет.
Когда мы (первый поток) дочитали книгу, я поняла, что мне не интересно обсуждать эту книгу во второй раз. Поэтому нашла желающую курировать второй поток, расписала задачки по курированию я радостно доверила ей вести поток)
Что с литкодом?
Я слишком часто слышала этот вопрос и очень долго специально игнорировала эту тему. Я считаю, что leetcode привлекает людей, которые готовятся к собеседованию, а не тех, кто хочет разобраться, как работают системы. Но реальность нашей жизни такова, что leetcode навыки надо держать наготове всем вне зависимости от уровня. В итоге я нашла, кто готов курировать поток по leetcode и отдала бразды правления в отдельно взятом топике. Желающие прорешивают задачи из списка 75 blind, так же по теме в неделю и собираются на обсуждение раз в неделю.
Random coffee для горизонтальных связей
Для меня важно, чтобы я не была bottleneck-ом в клубе для получения пользы. Поэтому я хочу, чтобы в клубе были горизонтальные связи, чтобы люди знали друг друга, а не только знали меня. Поэтому я добавила в клуб random coffee бота. Каждую неделю он случайно матчит желающих познакомиться и поболтать.
Лично я через random coffee нашла кураторку второго потока чтения книги с кабанчиком и кураторку потока leetcode, кто-то нашел с кем сходить на концерт в другом городе. Но по большей части я не знаю, что люди обсуждают на этих звонках, но в этом и идея)
P.S. а да, клуб бесплатный, вот ссылка https://t.me/lenka_ne_club
P.S.S. я могу подготовить тебя к System Design собеседованию, это уже за деньги, писать сюда https://t.me/lenka_colenka
P.S.S.S а если не хочется сейчас ни книжку обсуждать, ни leetcode прорешивать, но хочется быть в курсе новостей от меня, то вам сюда https://t.me/lenka_ne_work
Очень интересная идея, я не подозревал, что существуют практики подобного рода. Действительно, грядущее обсуждение прочитанной главы фактически вынуждает тебя в ней разобраться, особенно, если ты хочешь быть не хуже и реально въехать, а порой и задать наиболее релевантный вопрос, который будет интересен многим.
Рекомендую ознакомиться с брошюрой русского философа Сергея Поварнина - "Как читать книги для самообразования". Это помогло мне лучше понимать смысл прочитанного (для тех у кого нет клуба и хочется повысить скылл) :)
Такой подход крайне недооценён, как мне кажется. Я тоже устраивал пару таких «марафонов» для книг по прикладной рациональности. Было долго, но интересно, поэтому информация усваивалась лучше. Хочется давно повторить это с Хаскелем.
Главный для меня вопрос: как называть этот формат?
«Книжный клуб» — кажется, что это чаще про итеративное чтение разных книг, а не про углублённое чтение одной. «Марафон» — хоть так и называл сам, но меня уже тошнит от сомнительных коннотаций. «Коллективное обучение» — хрен знает, кажется слишком общее название и не то.
Точно по такой же схеме с коллегами читали DDIA, но забросили на половине(
Кстати, нет в планах запуска потоков по другим книгам?
Мы так делали в клубе тоже, на моём опыте это самый эффективный и интересный способ изучать техлитературу.
Только очень долго
Я пробовал так сделать здесь на Вастрике с книжками по информационному дизайну. Но, насколько понял, количество дизайнеров в этом профиле пока не достигло критического значения в здешней тусовке. А на идею выйти во внешние интернеты тогда забил, а зря)
😱 Комментарий удален его автором...