Гайд по айтишному движу Петербурга. Часть 1: Хардкорные митапы

Магистрантка факультета безопасности информационных технологий Университета ИТМО Алиса Хорошавина написала в блог ITMO.NEWS о том, куда сходить айтишнику в Санкт-Петербурге.

Иногда у меня спрашивают разработчики из других городов и студенты, куда сходить айтишнику в культурной столице. За время организации митапов про Python и мир разработки вокруг в PiterPy Meetup я коллекционировала IT-ивенты, чтобы перенимать лучшие фишки и адаптировать их под целевую аудиторию. В этом обзоре систематизированы впечатления от регулярных митапов наиболее крупных IT-сообществ Петербурга: Golang Piter, Fprog, C++ User Group, SpbDotNet, PiterPy Meetup, PyLadies, Django Girls, Spb Python, Frontend Spb, PiterJS, ODS, SpBDSM, семинары в JetBrains Research, Университет ИТМО и его НИИ, CSC, РАН. Рассмотренные мероприятия бесплатны и открыты для всех, но почти везде требуется предварительная регистрация (для учета количества участников при бронировании помещения, организации кофе-брейка и закупки мерча). Почти у всех есть youtube-каналы, где можно посмотреть записи с прошлых митапов, и телеграм-чаты, где удобно отслеживать анонсы. Возможно, не менее интересно на митапах, до которых я пока не дошла. Может, кто-то захочет продолжить обзор и заполнит лакуны.

Краткое введение в IT-субкультуру

Специфика работы программиста подразумевает необходимость фокусироваться на решении узкоспециализированных задач. Но рынок меняется динамически, и экспертам по конкретным технологиям адаптироваться непросто.

К тому же, в последнее время наблюдается тенденция требовать от одного человека совмещать функционал разных специалистов. Например, от бекендеров и фронтендеров все чаще ожидают компетенций fullstack’ов, от data scientist’а требуют одновременно быть devops’ом или делать визуализации данных за программиста d3 и дизайнера. Если раньше можно было схематично выделить два пути развития разработчика: технический (senior developer, tech architect) и менеджерский (тимлид, менеджер проекта, продуктовый менеджер, CTO), то сейчас различают множество оттенков, от эксперта в определенной технологии до технического евангелиста, который должен мониторить тренды в разных областях IT, разбираться в IT-маркетинге и специфике построения коммьюнити (devrel). Появилась мода на T-shaped инженеров: вертикальный штрих в букве соответствует специализации, горизонтальный — кругозору (хотя термин «T-shaped person» был введен Дэвидом Гэстом почти 30 лет назад). Такие разработчики глубоко погружаются в свою специализацию, но периодически выныривают на поверхность и выхватывают поверхностные знания из разных областей.

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

Среди спикеров есть как гуру публичных выступлений, которые обкатывают доклады перед конференциями, так и неопытные спикеры. Хотя чаще всего есть что сказать именно тем занятым инженерам, которые мало ходят на митапы. Такие под заботливым присмотром организаторов на предпрогонах проходят путь Демосфена, а потом сами ловят драйв от ощущения связи с аудиторией единомышленников. Кстати, если в Москве митапы организовываются преимущественно при компаниях (хотя есть и IT-коммьюнити), то в Петербурге митапы поддерживаются сообществом на добровольных началах. В поисках общения с близкими по духу наиболее оптимально не привязываться к определенному коммьюнити, а «голосовать ногами», каждый раз выбирая митап с наиболее актуальными для вас темами докладов и самыми харизматичными спикерами.

Если на фесты и конференции в Петербурге вы раньше не заглядывали, можно посмотреть список из более чем 20 IT-сообществ на сайтах крупных фестов и meetup.com. Ради знаний более продуктивно не распыляться и сходить раз в год на крупную конференцию (желательно выбрать конференцию, организованную разработчиками для разработчиков и с логично выстроенной программой, без маркетинговых докладов и толп «эйчаров»). Если интересно, чем живут коллеги из других экосистем, можно посетить раз в год фест для разных IT-сообществ и компаний, вроде TechTrain и ITGM, которые также организуют разработчики. От околонаучных фестов от маркетологов с калейдоскопом софткорного контента (нейроинтерфейсы, лекции о полиамории, круглые столы о гендерных проблемах в IT или этике ИИ) у любителей хардкора остается впечатление, которое можно описать строчкой из песни: «и бродят в праздной суете разнообразные не те».

ХАРДКОРНЫЕ МИТАПЫ

Golang Piter

Если хочется докладов про внутренности технологий и хайлоад, общения с любителями писать функции на ассемблере и сетевые драйвера, «гоу» на митап Go. Также там любят обсуждать архитектуру приложений, серверов и БД (несмотря на то, что сервисы на Go небольшие). Для задач, вроде «вписать в большой проект прогресс-бар 16×30 с прокруткой» нужно понимать, как код будет выполняться в системе. Сообщество существует с 2013 года, раньше проводилось по два митапа в год, сейчас по четыре. Обычно на митапе 3−4 глубоких доклада (в отличие от многих других митапов, где два доклада и хардкорный из них только один). Иногда доклады проводятся в формате live-coding сессии. Спикеры выстраивают выступления, отталкиваясь от решения конкретной проблемы и почти не используют на слайдах рассеивающие внимание мемы, зато дают много кода. С целью собрать людей, говорящих на одном языке, отсекаются доклады про devrel и мир разработки за пределами Go. Подтверждение регистрации на митап производится вручную после проверки, хотя формальных критериев отказа нет и не пускают на митапы разве что эйчаров. Между толпами, собранными методами маркетинга, и качеством аудитории организаторы выбирают второе. В отличие от остальных сообществ, гоферы игнорируют телеграм-чаты, их коммьюнити консолидируется в не располагающих к многословию Slack и Google Groups. Несмотря на отсутствие SMM, сообщество активно растет. Сейчас их мероприятия собирают более ста участников, что нетипично для хардкорных митапов. Гоферы словно по жизни следуют принципу бритвы Оккама: «Отсекай неиспользуемые импорты и переменные, иначе программа не скомпилируется и конечная цель не будет достигнута». Goal.go организаторов -- продвижение Go там, где он оказывается эффективнее привычных инструментов, но не используется либо от недостатка мотивации учить новое у разработчиков, либо от недостатка способности принимать волевые решения у менеджмента. Целевая аудитория — инженеры, которые не смотрят на машину, как на черный ящик, и имеют опыт программирования на других языках и/или хорошую математическую подготовку. Несмотря на то, что синтаксис Go можно выучить за выходные, при решении задач приходится задумываться о вещах за пределами кода: о категории типов, масштабируемости, файловых системах, предикторе на CPU и пр.

JetBrains Research

Дизайнеры Go исходили из идеи ограничить разработчика по максимуму, чтобы даже самый плохой код можно было прочитать. Противоположный подход — привить хорошие паттерны — наиболее полно реализуют создатели IDE и линтеров. Линтер может дать больше полезных советов, чем иной спикер, который хочет оставаться на слуху, не создавая и не улучшая технологии. Если интересно, какие новые идеи зарождаются в этой области, стоит заглянуть на семинары разных исследовательских лабораторий в JetBrains, где разбирают публикации про компиляторы, LLVM, предметно-ориентированные языки (DSL), векторизацию кода для линтеров, автоматический фиксинг багов, возможности ревью кода и рефакторинга методами глубокого обучения и другие. Семинар обычно включает один длинный глубокий доклад и дискуссию. На слайдах много формул и нет кода, о практической применимости результатов говорить не любят, как истинные математики. Хотя на гитхабе можно посмотреть некоторые реализации подходов, например, плагины для IDE с DL под капотом. Семинары открыты для всех, основной контингент — студенты магистратуры Университета ИТМО при JetBrains и студенты матмеха СПбГУ. Иногда встреча проходит в формате обсуждения доклада приглашенного профессора. Из интересных работ студентов можно отметить обучения модели генерировать код на Python из английского и исследование возможностей создания удобного и безопасного DSL для смарт-контрактов. В целом DSL вписываются в тренд развития языков программирования по пути абстрагирования от низкоуровневых задач и предоставления разработчику большей возможности сфокусироваться на бизнес-задаче. С одной стороны, это связано с усложнением систем. С другой стороны, менеджеры часто оказываются недостаточно компетентны, чтобы грамотно декомпозировать задачу, и разработчику приходится прорабатывать концепцию самостоятельно. Кстати, если современные IDE вы не любите и предпочитаете строить свои велосипеды из githooks, ctags, BBedit и прочее, ищите единомышленников на PiterPy Meetup (даже уже был доклад на эту тему, можно посмотреть запись на youtube-канале).

Fprog Spb

Обсудить велосипеды и DSL можно также на митапах Fprog, в формате хардкорных рассказов «мы писали сначала на Haskell, но потом подумали, что получается слишком сложно, и легче написать свой DSL». В сообществе Fprog камерная атмосфера, участников немного и нет случайных. Возраст и опыт участников позволяет им с ностальгией вспомнить, в каком языке 20 лет назад была такая же концепция returner’a, как в Хаскеле. Все — инженеры с внушительным бэкграундом в разработке на разных языках и хорошим вкусом. Они относятся к программированию как к искусству, и в функциональном программировании их привлекает смесь изящества и академизма. Доклады и обсуждения тесно переплетены. Спикер по ходу выступления прерывается на вопросы или адаптирует подробность изложения материала соответственно комментариям из аудитории. Это очень интересный формат, и реализовать его возможно только для небольшой компании давно знакомых между собой людей. Обсуждаемые темы затрагивают профилирование кода на Haskell, рецепты изящного сокрытия обработки ошибок в монадах, теорию категорий, необычные практические приложения функционального программирования, вроде компьютерной лингвистики или разработки ОС. Несмотря на то, что презентации в основном посвящены Haskell, Elixir, Erlang, Lisp и его диалектам, в кулуарах участники митапа обсуждают Java, Kotlin, TypeScript и Python. Они спорят, есть ли языки, которые можно назвать функциональными, или же это просто образ мышления. Один из постоянных участников выступает также на сходках PiterPy Meetup. Функциональщина — это как фигура и фон в гештальт-терапии: кто-то видит велосипед, кто-то наслаждается красотой инженерных решений, но все закрывают свои гештальты от недостатка творческой самореализации при работе над типовыми задачами. Перед тем, как приходить, стоит посмотреть доклады с прошлых митапов и pet-project'ы сообщества на их коллективном гитхабе.

C++ User Group

Если хочется еще больше хардкора, вам на митапы про опыт и боль разработки на современном С++. Доклады достаточно точно характеризует слайд одного из спикеров: «Общие слова закончились. Надеюсь, было понятно». На митапах разработчиков С++ обычно один длинный доклад и общение. Сообщество придерживается Берлинского Code of Conduct. Темы в основном связаны с алгоритмами и структурами данных, шаблонами проектирования, управлением памятью, изменениями в языке (для обсуждения новостей приглашают членов Российской рабочей группы по стандартизации С++). В Петербурге встречи C++ User Group проходят примерно раз в квартал, поскольку сложно ежемесячно находить спикеров, которым действительно есть, что сказать. Разработчики, обладающие достаточной экспертизой, обычно очень загружены, а времени на подготовку длинного выступления по сложной теме уходит больше, чем на написание статьи. На слух технические детали воспринимаются сложно, поскольку аудитория не имеет возможности перечитывать или пропускать определенные абзацы.

SpbDotNet

У сишарпистов свой сишарм. Многие участники митапов DotNet пишут не только на C# и F#, но и на С/ С++ и др. языках не из стека .NET. Возраст и опыт позволяет им рассуждать о новых фреймворках по паттерну: «Все новое — хорошо забытое старое; думаю, <технология Х> повторит судьбу <технология Y>». Участникам выдают при входе «проприетарные пакеты» с полезным мерчем — хорошего качества кружки, блокноты, магниты с логотипом комьюнити. На других митапах участники обычно сами подходят к столу с мерчем и выбирают стикеры либо пытаются выиграть в розыгрыше лицензию на бесплатное пользование продуктами спонсоров. Разработчики .NET относятся к деньгам, как Microsoft, что заметно по оговоркам: «на входе любой задачи деньги», «пользователь оставляет на сайте деньги и данные». Тематика докладов охватывает широкий спектр тем от специфики Enterprise-приложений до CLR: модели памяти .NET, троллинг компилятора с помощью типа dynamic, внутренности Rider’a, статистический анализ кода, функциональный .NET, web-безопасность, CI/CD и даже Data Science средствами Azure ML или оберток на C# к библиотекам на С++. Иногда спикеры пишут небольшие приложения специально для демонстрации во время докладов. Не так давно митап проходил на английском языке, поскольку приезжал с докладом один из самых известных дотнетчиков Рихтер. У комьюнити есть совместные pet-project'ы на гитхабе, за участие в которых выдают толстовки.

В следующей части будет уделено внимание митапам с хардкорными и софткорными докладами