Гайд по айтишному движу Петербурга +14


Иногда у меня спрашивают разработчики из других городов и студенты, куда сходить айтишнику в культурной столице. За время организации митапов для питонистов, я коллекционировала 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. Также там любят обсуждать архитектуру приложений, серверов и БД (несмотря на то, что сервисы на Go небольшие). Для задач, вроде “вписать в большой проект прогресс-бар 16х30 с прокруткой” нужно понимать, как код будет выполняться в системе. Сообщество существует с 2013 г., раньше проводилось по 2 митапа в год, сейчас по 4. Обычно на митапе 3-4 глубоких доклада (в отличие от многих других митапов, где 2 доклада и хардкорный из них только один). Иногда доклады проводятся в формате live-coding сессии. Спикеры выстраивают выступления, отталкиваясь от решения конкретной проблемы и почти не используют на слайдах рассеивающие внимание мемы, зато много кода. С целью собрать людей, говорящих на одном языке, отсекаются доклады про devrel и мир разработки за пределами Go. Подтверждение регистрации на митап производится вручную после проверки, хотя формальных критериев отказа нет и не пускают на митапы разве что эйчаров. Между толпами, собранными методами маркетинга, и качеством аудитории, организаторы выбирают второе. В отличие от остальных сообществ, гоферы игнорируют телеграм-чаты, из коммьюнити консолидируется в не располагающих к многословию Slack и Google Groups. Несмотря на отсутствие SMM, сообщество активно растет. Сейчас их мероприятия собирают более ста участников, что нетипично для хардкорных митапов.



Гоферы словно по жизни следуют принципу бритвы Оккама: ”отсекай неиспользуемые импорты и переменные, иначе программа не скомпилируется и конечная цель не будет достигнута”.

Goal.go организаторов — продвижение Go там, где он оказывается эффективнее привычных инструментов, но не используется либо от недостатка мотивации учить новое у разработчиков, либо от недостатка способности принимать волевые решения у менеджмента. Целевая аудитория — инженеры, которые не смотрят на машину, как на черный ящик, и имеют опыт программирования на других языках и / или хорошую математическую подготовку. Несмотря на то, что синтаксис Go можно выучить за выходные, при решении задач приходится задумываться о вещах за пределами кода: о категории типов, масштабируемости, файловых системах, предикторе на CPU и пр.




JetBrains Research


Дизайнеры Go исходили из идеи ограничить разработчика по максимуму, чтобы даже самый плохой код можно было прочитать. Противоположный подход — привить хорошие паттерны, наиболее полно реализуют создатели IDE и линтеров. Линтер может дать больше полезных советов, чем иной спикер, который хочет оставаться на слуху, не создавая и не улучшая технологии. Если интересно, какие новые идеи зарождаются в этой области, стоит заглянуть на семинары разных исследовательских лабораторий в JetBrains, где разбирают публикации про компиляторы, LLVM, предметно-ориентированные языки (DSL), векторизацию кода для линтеров, автоматический фиксинг багов, возможности ревью кода и рефакторинга методами глубокого обучения и др… Семинар обычно включает один длинный глубокий доклад и дискуссию. На слайдах много формул и нет кода, о практической применимости результатов говорить не любят, как истинные математики. Хотя на гитхабе можно посмотреть некоторые реализации подходов, например, плагины для IDE с DL под капотом. Семинары открыты для всех, основной контингент — студенты магистратуры ИТМО при JetBrains и студенты матмеха СПбГУ. Иногда встреча проходит в формате обсуждения доклада приглашенного профессора. Из интересных работ студентов можно отметить обучения модели генерировать код на Python из английского (как в соревновании на CodaLab) и исследование возможностей создания удобного и безопасного 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’ы на гитхабе, за участие в которых выдают толстовки.



Митапы с софткорными и хардкорными докладами


Экосистема сообществ вокруг Python


Питонисты по жизни словно следуют принципу Zen of Python ”Borrow ideas from elsewhere whenever it makes sense”, активно развивая кругозор.

Каждый месяц PiterPy Meetup организует ивенты разного формата с ламповой атмосферой и хорошими афтепати:


  • традиционные митапы раз в месяц с двумя получасовыми докладами формата “введение в технологию”
  • хардкорные митапы раз в квартал о функциональщине, типизации, компиляторе PyPy, GIL, асинхронщине в веб-разработке
  • митапы на английском раз в квартал
  • завтраки раз в 2 недели и дринкап в баре раз в месяц для общения
  • время от времени — хакатоны, дринкатоны (тоже выжигание глаз кодом, но в баре), совместное участие в опенсорс-спринтах и больших фестах
    Участники PiterPy Meetup любят традиции. Например, «каждый <день недели> делать <коллективное действие>». Например, митапы всегда организуются во вторник, а завтраки — в среду. Существует также традиция lightning talks. На каждом митапе любой желающий может вписать свое имя на доске с расписанием докладов и стать спикером на 5-15 минут после длинных докладов. Lightning talks — это короткие спонтанные истории обо всем, что связано с ИТ. Слайды не нужны, как-либо готовиться к ним не требуется. Лайтнинги и доклады охватывают широкий спектр тем. Среди участников можно встретить бекендеров, фронтендеров, фуллстеков, data scientist’ов, тестировщиков, технических менеджеров и даже джавистов. Единственное требование к участникам — не нарушать правил взаимоуважения, выраженных в Берлинском Code of Conduct, который организаторы перевели на русский. Хотя и так митапы собирают людей, легких и приятных в общении, как синтаксис Python. На митапы приходит 60-100 людей в зависимости от спикеров. Как-то на митапе выступал Пол Эверитт из американского JetBrains, стоявший у истоков создания Python. Гвидо ван Россум начал ностальгировать в твиттере, потому что Пол надел ту же футболку, в которой выступал на митапах в США еще в 1990-х гг. (кстати, всем остальным спикерам организаторы выдают футболки с логотипом PiterPy Meetup). В другой раз на дринкатон зашел менеджер из американского Amazon и ему так понравилась атмосфера, что он посещал мероприятия питонистов весь август, а с осени PiterPy Meetup стал регулярно проводить митапы на английском. Потом эту идею подхватили другие IT-сообщества: Frontend Spb, PyLadies. Также в Петербурге на английском проходит европейская конференция под брендом PiterPy и нерегулярные митапы разных коммьюнити с приглашенными спикерами.
    Вокруг Python в Петербурге сложилась целая экосистема. Сообщества с ивентами разного формата напоминают библиотеки под разные потребности.

Есть мероприятия для разработчиц: митапы и завтраки PyLadies, воркшопы Django Girls. Они организуются другими людьми и только для девушек. Раньше туда не пускали мужчин, сейчас мужчине можно прийти туда как “плюсодин” к какой-либо даме — для соблюдения гендерного баланса. Если какой-то мужчина придет один и скажет, что он идентифицирует себя как женщина, его не пропустят на мероприятие. Недавно к ним приезжала из Нью-Йорка основательница международной инициативы PyLadies Линн Рут. Подробнее об инициативе днвушек можно почитать в статье "Бумаги".


Есть также сообщество Spb Python, которое как Python 2.x: возникло раньше, не развивается и небезопасно (там не действует Coc, а для неюникодных выражений есть отдельный чат Rude Python). Зато есть “обратная совместимость” спикеров, которые выступают без привязки к конкретному коммьюнити.


Среди организаторов петербургских Python-сообществ почти все веб-разработчики (backend, fullstack), что отражается даже по идее выносить описание мероприятий и ссылки на отдельный сайт. Такую же идею используют только фронтендеры.


Сообщества фронтендеров


Фронтендерам митапы нужны больше всех, потому что отслеживать новые фреймворки приходится чаще, чем организуются конференции. Остальным стоит заглянуть на митапы питерских фронтенд-сообществ Piter JS и Frontend Spb ради того, чтобы перенимать best practices выступлений. Среди спикеров и участников много креативной молодежи, а специфика работы вынуждает делать эффектные презентации.



Иногда выступления фронтендеров напоминают стендап: например, как-то спикер на митапе начал выступление с фразы: «Я верстальщик, я не знаю JavaScript». После короткого рассказа о том, как решить одну задачу полностью на CSS, он шагнул назад и скрылся в темноте. Затем появился под светом прожектора в черных очках с заявлением: «Я программист JavaScript» — и рассказал, как решить ту же задачу на JavaScript. 

Основная часть докладов про веб-разработку, дизайн и верстку, но иногда темы связаны с кроссплатформенной мобильной разработкой, способами оптимизации бандла, разработкой компилятора на LLVM, возможностью импортировать в браузер модели TensorFlow / Keras (предобученные для оффлайн-обучения или с использованием GPU через NodeJS / WebGL для онлайн-дообучения). Помимо традиционных митапов, Frontend Spb проводит митапы на английском и наиболее многочисленные в Петербурге айти-завтраки, записывает одноименный подкаст. У них есть коллективный гитхаб и выложены в общий доступ гайды по организации митапов, чтобы сделать процесс более прозрачным и поощрить активность участников. PiterJS делают митапы про разработку на JavaScript, завтраки, запоминающиеся интерактивы на стендах на больших фестах, вроде Code in the Dark. Планируется сделать публичными все стороны процесса организации докладов, пока на их гитхаб выложены только правила для спикеров.


Мероприятия по Data Science


Основная сложность организации встреч по Data Science: аудитория разнородна в плане уровня подготовленности и специализации. В зале могут находиться как те, кто применяет готовые решения, так и те, кто разрабатывает методы и алгоритмы. Первые не любят трехэтажные формулы на слайдах, вторые боятся кода. Также стоит понимать, что глубокий доклад по компьютерной лингвистике может быть непонятен как новичку в анализе данных, так и гуру Computer Vision.


Исходя из подходов к решению этих проблем, можно выделить три вида мероприятий:


1) Калейдоскоп из разных фрагментов Data Science на митапах, завтраках и фестах Open Data Science, конференции PyData. Благоприятная среда для того, чтобы вдохновляться аналогами и заимствовать подходы из других областей. Доклады вводного формата затрагивают широкий спектр тематик: архитектура нейронных сетей, оптимизация моделей, сбор и препроцессинг данных, построение пайплайнов обработки данных. Кода на слайдах мало или нет, нерешенные проблемы математики не обсуждаются, акцент на трендах, успешных кейсах и подводных камнях применения ML/DL для решения бизнес-задач


2) Если вы обладаете serendepity в математике и хотите глубоких докладов по узким темам — следите за анонсами тем открытых лекций и семинаров в CSC и НИИ НКТ. В CSC много тех же преподавателей, что и в JetBrains Research. Туда приходят разбирать научные публикации по последним подходам в анализе данных. В Институт наукоемких технологий ИТМО приезжают делиться опытом исследователи из других математико-физических лабораторий при университетах. С этого месяца ИТМО совместно с исследовательским центром Huawei организуют семинары по NLP. Ну а если вы любите диффуры или хотите увидеть абсолютную хардкорность — сходите на семинар акустиков в РАН. Там обсуждают математические проблемы, которые понимает человек десять в мире. По три часа выводят формулы у доски и говорят претендентам на соискание кандидатской степени, что их результаты тривиальны.


3) Если по менталитету вы разработчик и не можете смириться с отношением математиков к программированию как к ремеслу — то вам на митап SpBDSM. Это жесткие по глубине подачи материала митапы, которые проходят примерно раз в полгода и тянут на конференцию по применению методов ML/DL в проектах крупных компаний. Встречи проходят в арт-баре Лендок с высокими потолками и ненавязчивыми саундтреками из кино. Сразу настраиваешься на рассказ об искусстве, а не ремесле.




Нечто похожее видела у гоферов, когда они сняли лофт, но обычно митапы проходят в офисах компаний-партнеров. Для компаний это выгодно из-за повышения узнаваемости среди разработчиков и формирования бренда. Для организаторов удобно, поскольку часто компании помогают организовать качественную трансляцию / видеозапись и кофе-брейк. При проведении в нестандартных местах приходится настраивать уровни на микшере микрофона или предоставлять спикерам петличный микрофон. Иначе потом может понадобиться делать шумоподавление через программы, вроде Adobe Audition. Среди спикеров SpBDSM есть как инженеры, могут пофиксить баг или имплементировать новую фичу в исходниках опенсорсной библиотеки, так и исследователи, ориентированные на практическую применимость результатов. Организаторы делают акцент на подборе спикеров, которые говорят о деле, а не о себе. Никаких стендапов и лишних эмоций, только немного мемов для разбавления кода на слайдах, а перед формулами — перерыв на кофе. На слайдах все-таки больше кода, причем математики извиняются за свой т.н. “академический код”, хотя им простительно. Доклады затрагивают темы от эмбеддингов и векторизации данных до создания поддерживаемых и масштабируемых решений в Data Science проектах. Встречаются темы на пике актуальности, вроде применения глубокого обучения на биометрических данных в кибербезопасности. В кулуарах можно обсудить последние изменения в Python, вроде опциональной типизации, и возможности других языков для более эффективной реализации алгоритмов, вроде мультипроцессинга Go для TSNE (что нетипично для data scientist’ов).


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




К сожалению, не доступен сервер mySQL