Выпуск 11 · подкаст «Тысяча фичей»

#11: Горе-митап: опыт выступления, презентации

35:47
↓ скачать mp3

Эмоциональный выпуск про первый опыт Александра в роли докладчика на локальном IT-митапе: сорванные тайминги, слабая модерация и девять слушателей на докладе про GraalVM. Из этого — выводы: почему митапу нужна модерация докладов, сколько докладов выдерживает аудитория и когда «сделай сам» — единственный выход. Во второй части — как Александр готовит презентации: белые слайды, минимум текста, интерактивность, и связка iPad + Concepts + Google Slides. Полезняшка — доклад Вадима Макишвили «36».

Главное

  • Не все митапы стоят внимания докладчика: коммитьтесь, только если знаете организаторов лично или проверили их прошлые мероприятия — зритель может уйти, докладчик заложник до конца.
  • Митап без модерации докладов — ошибка: непросмотренные доклады съедают время зрителей и размывают качество всего мероприятия.
  • Три-четыре доклада — потолок: дальше аудитория устаёт и расходится (из ~50 человек до седьмого доклада дожили девять).
  • Попутное открытие: DI-фреймворки задизайнены под серверы — в CLI-приложении Micronaut утроил время старта (400 мс → 1,5 с); для command-line лучше обойтись без DI.
  • Хороший доклад начинается с вопроса «зачем и для кого» — если ценности для аудитории нет, идею доклада стоит отмести ещё до слайдов.
  • Слайды вторичны и дополняют речь: белый фон, крупный шрифт, минимум текста, выводы появляются по одному — это управление вниманием зрителя.
  • Тайминги — уважение к другим докладчикам: 30 минут — идеальная длина, и обязателен хотя бы один прогон живому человеку.
  • Связка iPad + Concepts + Google Slides: фиксированная зона экспорта в Concepts даёт «дорисовывающиеся» от слайда к слайду схемы без прыжков картинки.
Расшифровка

[00:20] Здарова! Меня зовут Саша Пахомов, и я инженер, который любит своё дело. Это одиннадцатый выпуск подкаста «Тысяча фичей», и сегодня он будет совсем необычный. Я поделюсь опытом участия в локальном IT-митапе в качестве докладчика, а потом расскажу, как, на мой взгляд, должна выглядеть презентация к докладу. Сразу предупрежу: выпуск будет эмоциональный, но от этого не менее интересный. Поехали!

[00:52] Итак, недавно я переехал в Ереван. Тут много русскоговорящих айтишников, и я подумал: было бы прикольно сходить на митап или организовать собственный. Поискал по чатикам, нашёл организатора, который недавно проводил митап, и написал ему, предложив себя в качестве докладчика. Тем предложил две — на выбор: софтовую и хардовую. Софтовая — про подкаст: зачем программисту подкаст, что он даёт, что забирает, про индустрию подкастинга; лайтовый доклад, который зашёл бы всем — программистам, аналитикам, тестировщикам. Вторая — достаточно хардовая, про AOT-компиляцию: по сути, про GraalVM и CLI-приложения, спин-офф моего восьмого выпуска в более лайтовой форме (я понимал, что аудитория там, судя по всему, не сплошь джависты). Мы решили, что хардовые темы интереснее — организатор сказал, они там заходят лучше, — и договорились про GraalVM. Я, как человек, который любит своё дело — а моё дело не только программирование, но и, например, выступить с докладом, — подошёл ответственно: на подготовку ушло два полных выходных дня, две субботы фулл-тайм. Рисовал диаграммы, писал сценарий, написал специальное маленькое CLI-приложение, понятное всем. Всего было восемь докладов, я был седьмым — мы так решили: хардовый доклад в начале «не зайдёт», пусть народ разогреется на софтовых. Митап начинался в 13:00, я должен был выступать в 17:00, тайминги обговорили — по 40 минут плюс-минус. Меня всё устраивало. Я позвал друзей — пятерых, все так или иначе знакомы с Java; никто из них близко не знал GraalVM, и тема казалась мне для них суперинтересной.

[03:45] Чуть подробнее про доклад. Я написал обычное command-line-приложение на Java 11 с Picocli и Micronaut в качестве dependency injection. Замерил старт — полторы секунды, полторы тысячи миллисекунд. Скомпилировал native image — получил порядка 30 миллисекунд: прирост на два порядка. Попутно рассказал, как работает класс-лоадинг, что происходит на старте, про JIT и разницу just-in-time и ahead-of-time компиляции. Всё подано мягко, без жести: картинки, схемы, наглядно. По моим внутренним меркам доклад получился интересным и в меру хардовым, без перегибов в упоротость. Кстати, небольшой спин-офф. Когда я писал это приложение — по сути Hello World, — я сначала написал его без Micronaut: старт был порядка 400 миллисекунд. Подключил Micronaut — стало полторы тысячи, в три раза дольше. Это навело на мысль: использование любого DI — Micronaut, Spring, Quarkus, неважно — не лучшая идея, если вы разрабатываете CLI и вам важна скорость отклика. DI-фреймворки так или иначе задизайнены под серверы, где время старта не критично. А когда ты выполняешь help в командной строке и две-три секунды ждёшь, чтобы напечатался help, — это странно; и всё это — работа dependency-injection-фреймворка: контекст билдится, сканируется, поднимается. Зачем это в CLI — непонятно. Подумываю повыпиливать DI из своих command-line-приложений: написать свой контейнер не так сложно — пусть без аннотаций, простенький, зато отвечающий главному критерию — скорости старта. Может, запишу про это выпуск.

[06:24] А теперь к самой мякотке: придём на митап и посмотрим, как всё происходило и почему я вообще решил записать про это целый, блин, выпуск. Друзья пришли вовремя, к 13:00, и рассчитывали посетить митап целиком — приходить только «на своего» докладчика и уходить как-то неуважительно к остальным. Первый доклад задержался минут на 30–40 из-за каких-то технических проблем с трансляцией — и все эти 40 минут люди просто сидели и ждали, никто ничего не объявил. Затем начались доклады — и все, кроме одного, вышли за свои тайминги, причём кардинально: не на пять минут, а по часу-полтора вместо сорока. Секундомером я не стоял, но каждый доклад, кроме единственного, вылез — и сильно. Для меня, седьмого номера, каждое превышение отодвигало моё выступление — оставалось сидеть и ждать. Будь доклады интересными и захватывающими — провести на митапе подольше не было бы проблемой… но о качестве сейчас расскажу. Суть: вместо запланированных 17:00 я выступил где-то без пятнадцати восемь — чтобы вы понимали масштаб сдвига. Ладно, за таймингами никто не следил, организаторам было всё равно — почему, поймёте позже. Один из докладов совсем не задался. На нём первые два ряда — человек 12–15 — просто встали и ушли: сидеть было тяжело; я сидел на последнем ряду — доходило и до меня. На мой взгляд, полная дичь: такого в принципе не должно быть на IT-митапе, формат которого не оговаривает, что это допустимо. А подача была в духе «я всё знаю, я дофига проектов наклепал, сейчас расскажу вам, как надо». Люди в слайдах просто офигели. Мне было очень неудобно перед друзьями, которых я позвал. Короче, жесть — во второй половине этого доклада я не выдержал и ушёл в заведение поесть. Потом был доклад «Postgres для всего»: можно писать на нём очереди, джобы, хранить JSON-ы и строить по ним индексы — зачем вам отдельные очереди, кэши и планировщики, если есть Postgres. Идея не новая и своеобразная, но ладно — там хотя бы была интересная техническая часть, было о чём порассуждать.

[10:09] Затем был единственный реально хороший доклад — про то, как небольшая компания выстроила процесс собеседований: им нужны люди уровня «условно пойдут в Яндекс», и они рассказывали, как таких хантят. Почему доклад хороший: в центре был риторический вопрос, на который докладчик отвечал весь доклад. Ситуация: меня не берут в какую-нибудь FAANG-компанию с большим сложным процессом, потому что я не прошёл один из этапов — не подготовился. Я ухожу, два месяца ботаю, прихожу в ту же компанию — и прохожу. Вопрос: чем я двухмесячной давности отличаюсь от себя сегодняшнего? Только тем, что заботал. Но нанимаем-то мы людей, а не «заботанность». Чем отличаются эти два человека? Да, в общем, ничем. И основной посыл: как выцепить человека, который через два месяца ботания пройдёт в условный Яндекс, — выцепить его сейчас? Маленьким компаниям нужны люди, а не заботанный процесс собеседования. Интересный, хороший доклад — и единственный, кстати, попавший в тайминги: вопросов было много, обсуждение бурное, и докладчик сам сказал: «Ребята, давайте в кулуары — за мной ещё люди, давайте соблюдать тайминги». Респект. Дальше по очереди должен был быть я, но восьмой докладчик попросился вперёд — видимо, не хватало времени. Я сказал, что против: у меня люди сидят и ждут именно моего доклада, всё и так задержалось — хочу выступить в свою очередь. Естественно, мой комментарий был абсолютно проигнорирован, и человек просто встал передо мной. Что тут сказать. Доклад был такой себе — на мой вкус, формат был больше похож на рекламную презентацию, чем на технический доклад.

[12:15] И потом был я. Чтобы вы понимали: в начале митапа пришло в общей сложности человек 50 — для локального митапа, мне кажется, отличное число, я был приятно удивлён. Я понимал, что до последнего доклада доживут не все, но рассчитывал на 25–30. В итоге на моём докладе присутствовало девять человек, пятеро из которых — мои друзья. То есть, по сути, четыре человека осталось на мой доклад. С этого я и начал: респектнул этим ребятам — досидеть с часу до восьми реально достойно уважения. Рассказал — всё прошло хорошо, доклад был интересный, и с теми, кто остался, мы в дружеской, непринуждённой форме всё обсудили. Сам доклад понравился и мне, и, вроде, всем, кто был.

[13:10] Теперь пара наблюдений — докинуть на вентилятор. Ни один из докладчиков не остался на доклады после своего. Включая меня — но мой был последним, а мы с друзьями собирались остаться на весь митап, в том числе на доклад влезшего без очереди: банальное уважение к организаторам, докладчикам и процессу. Если располагаешь временем, рассказать доклад и уйти — некрасиво; я бы себе такого не позволил. Хотя после того неудачного доклада уйти было, наверное, не так стрёмно — я и сам думал не выступать, но потраченной подготовки было жалко, и я принципиально решил досидеть и рассказать. Ещё факт: после половины докладов организации не было никакой — очерёдность, перерывы, что дальше — ничего, следить за процессом было некому. На мою личную просьбу помочь с соблюдением очерёдности (человек заявил, что выступит передо мной, хотя договаривались иначе) я получил отказ — что-то вроде «можешь сам за себя хоть что-то решить?». Это [censored]. Я считаю, такого не должно быть ни на мероприятиях, ни в разговоре двух незнакомых людей. Но что было, то было.

[14:59] Ладно, это всё фигня. Чтобы выпуск не был просто жалобами, — выводов и тем для размышлений я подчерпнул много, и считаю, что всё было не зря: мой коммитмент на это мероприятие дал огромную пищу для размышлений. Делюсь. Вывод номер один: не все митапы классные и стоят нашего внимания. На митапах, где я бывал раньше — зрителем, в основном в локальном Воронеже, где я начинал работать, — всё было лампово, прикольно и с качественной организацией; локальная IT-движуха Воронежа была классная. У меня сформировались ожидания — и они оказались неверны. Так что: не на все митапы нужно коммититься, тем более докладчиком. Зритель посмотрел пару докладов, увидел организацию — и ушёл: у него есть пути отступления. А докладчик — особенно если ему, как мне, «повезло» быть последним — заложник процесса: ты закоммитился, уйти не можешь, а зрители уже ушли. Поэтому, прежде чем коммититься докладчиком, реально посмотрите на организаторов: не сам факт, что они что-то проводили, а как — поспрашивайте тех, кто там был. Лучше всего — лично знать организаторов и понимать, что эти люди сделают хорошо. Я для себя решил: больше не вписываюсь в подобные движухи с незнакомыми людьми. Вывод номер два: митап без модерации докладов — это ошибка. Я больше никогда не приму участия как докладчик там, где нет хотя бы минимальной модерации. В этот раз её не было вовсе — я был удивлён: думал, будет хоть быстрый прогон или офлайн-просмотр сценария. Нет: доклады мы скинули только для трансляции, никто их до митапа не смотрел, фидбэка по слайдам я не получал. Это приводит к тому, что некачественные доклады съедают время зрителей (пришедших, возможно, на ваш доклад), ваше время — и размывают качество митапа. Вывод номер три: три-четыре доклада — потолок (можно восемь, но в две параллельные комнаты). У нас было семь (один не пришёл) — это очень много: после трёх-четырёх люди устают и начинают уходить; я сам после шести докладов уставший выступал с трудом. Дальше не вывод, а мысль: а зачем вообще подобное делать? В чём цель? «Занетворкаться» — с кем? Со всеми, кто изъявил желание прийти? Я бы подумал о качестве нетворкинга. Если собрать, скажем, Java-группу — это тематическое собрание с понятной целью: делимся опытом разработки. А когда собирают «всех из IT» — люди разные, и получается каша-малаша. Нужно иметь в голове рациональный ответ на вопрос «зачем всё это», а не просто «побухать». Моё личное мнение, без наездов. И самый главный, личный вывод: хочешь сделать что-то хорошо — сделай это сам. Да, не быть мне, наверное, эффективным менеджером — делегировать мне сложно (хотя людям, которых я знаю и в качестве работы которых уверен, — наверное, просто). У меня есть внутреннее понимание качества — кода, презентации, текста: «вот это сделано хорошо». Не идеально, не профессионально — просто хорошо: с душой и по банальным правилам оформления (ими я поделюсь дальше). Моё представление о митапе — уютный ламповый митапчик, где ребята собрались по интересам, общаются и делятся опытом, а доклад — скорее повод для разогрева дискуссии. И я думаю сделать собственный маленький ламповый митап в Ереване — может, даже назову его «Тысяча фичей». Площадка есть: после похода на митап у меня остались контакты людей, которые её предоставляют, — там можно показывать презентацию, есть еда, чай, кофе (а вечером в условный четверг можно и пиво — я не против, просто нужно знать меру). И два-три доклада. Если вы, мой слушатель, живёте в Ереване или планируете побывать — пишите мне в личку или в комментариях к посту в Telegram-канале «Тысячи фичей», что готовы прийти или даже выступить. Будет очень круто: хочу собрать нетворк людей, которые любят своё дело и хотят делиться знаниями. Думаю, раз вы слушаете этот подкаст — вы из таких. Пишите, не стесняйтесь — может, придумаем что-то прикольное.

[21:47] Ну и сколько можно рассуждать про мероприятие — давайте немного технических вещей: как лично мне видится хорошая презентация и хороший доклад. Это моё личное мнение, на экспертность не претендую — я не маркетолог и не профессиональный спикер; просто так делаю я. Первое: когда мысль о докладе только зарождается, я задаю себе вопрос — зачем я это делаю и для кого? Переношу себя на место слушателей: что они унесут с собой, какую ценность мой доклад им даст? Если ценности нет — или она только для узкой группы — нужно корректировать доклад, а чаще всего после таких вопросов я идею просто отметаю: «не, если собираются джависты — про подкаст рассказывать не то, нужно хардовее». Всегда: зачем и для кого. Дальше, по оформлению: только белые слайды. Исключительно белые — без оформления, подчёркиваний, цветовых изысков, без, не дай бог, анимаций и этих шторочек. Максимум, что я себе позволяю, — однотонные цвета: серый, чёрный, какой вам нравится; но в подавляющем большинстве случаев — просто белые слайды. Следующее — крупный шрифт: чтобы читалось с последних рядов. Мелкого шрифта на докладе быть не должно — кроме специальных заготовок: хотите показать, какие страшные стектрейсы у Java, — вот тогда кусок мелкого лога уместен, потому что важна не суть стектрейса, а его размер. Дальше: минимум текстовой информации на слайде. Слайд — не для того, чтобы писать на нём текст и читать его; слайд — продолжение вашей мысли, дополнение, визуализация. Текст должен подсвечивать ключевые мысли и выводы, но не раскрывать их — раскрывать должен я как докладчик; иначе зачем я вообще стою и говорю? Каждый раз ставлю себя на место зрителя: было бы мне интересно читать три предложения со слайда, пока человек одновременно что-то говорит? Я сразу напрягаюсь — читаю и слушаю одновременно, дискомфорт. Люди должны слушать, а на слайде — пара слов.

[25:02] Дальше — мне очень нравится, когда презентация интерактивная. Банально: слайд «Выводы» с шестью пунктами. Когда все шесть показываются сразу — человек рассказывает про первый, а зритель уже прочитал пятый и шестой и начал про них думать, хотя вы про них ещё не говорили. Поэтому я делаю так: вывод номер один — один слайд; на следующем добавляется второй; потом третий, четвёртый — по очереди, по мере того как я о них говорю. Пока я про вывод не сказал — его на слайде нет. Это всё про управление вниманием: зачем показывать список из десяти пунктов, когда вы две минуты говорите про первый? Ещё классно заходят гифки: перебивка между слайдами, гифка, раскрывающая мысль, — даёт живости и приковывает внимание к экрану: люди перестают смотреть в телефоны. Дальше: слайды — дополнение выступления, не основная часть. Первичны мысль и посыл, слайды вторичны. Если сначала делать слайды, а потом дополнять их словами — у меня так не работает: я сначала раскручиваю идею («о, прикольно написать приложение и наглядно, двумя гифками, показать, как я его собираю и какие результаты») — и в какой-то момент понимаю, что мне понадобится для подачи: вот тут две гифки, тут ключевые слова, тут схема. Тогда слайды обретают смысл и появляются как продолжение рассказа. Если сначала пишешь слайд, а потом думаешь, что бы на нём сказать, — что-то не то. Следующий поинт: соблюдайте тайминги. Это суперважно: не соблюдаете — отодвигаете тех, кто после вас (я, как человек номер семь, говорю: это очень неприятно, так делать не надо). Да и долгие доклады не заходят — люди устают; я лично устаю от докладов длиннее 45 минут, по мне 30 минут — идеальный тайминг, дальше начинается размусоливание. Бывают исключения — когда у человека талант говорить, его и два часа интересно слушать; но это, как правило, не про нас. И последнее: обязательно нужен прогон. Минимум один — стопроцентно, чтобы понять тайминги; лучше два-три, и один из них — живому человеку. Я постоянно прогоняю доклад жене: она даёт очень хороший фидбэк и понимает, о чём доклад, — потом вместе дорабатываем. А перед выступлением я ещё раз прогоняю всё в голове, шёпотом или молча, выстраиваю картинку «что за чем» — чтобы подача была адекватной, чтобы не мямлить и не тупить. Подготовка решает.

[29:17] Дальше — как я подошёл к подготовке самих слайдов и какой инструментарий использовал: связка мне дико зашла, было прямо творчески — почувствовал себя немного контент-мейкером, не было скучно. Итак: iPad и MacBook в связке. Слайды я делал в Google Slides — они сейчас более-менее научились синхронизации, так что открываются и на планшете, и на маке (только обязательно в Chrome: в Safari Google Slides работают отвратительно — у меня Chrome для гугловых продуктов и стоит). Накидываю что-то на маке; понимаю, что на слайде нужна визуализация, — переключаюсь на планшет и открываю приложение Concepts (все ссылки приложу). Concepts — приложение для рисования: серьёзные люди скетчат в нём концепты айфонов и машин, но там есть супер-удобный инструментарий и для нас. Например, настройка сглаживания: я пишу как курица лапой, а оно выравнивает штрихи и сглаживает углы — получается не красивый, но хотя бы не уродский текст. Удобно рисовать квадратики, стрелочки, диаграммы; всё копируется и вставляется; осваивается за вечер. Я в Concepts рисую вообще всё: диаграммы на работе, пометки для себя — а слайды рисовать в нём идеально. Воркфлоу такой. В Concepts бесконечная канва; можно включить сетку и рисовать ровненько, как в тетрадке. И можно выделить зону экспорта — кусок канвы, скажем прямоугольник 720p, равный размеру слайда, — и экспортировать только то, что внутри, в PNG, JPEG и кучу форматов. Я рисую по частям: нарисовал, условно, Java-классы — экспорт, скопировать; свайпом перехожу в Google Slides, вставляю в пустой слайд. Возвращаюсь в Concepts, дорисовываю: класс-лоадер, стрелочка, JVM загружает классы — снова экспорт, новый слайд, вставить. Получается два слайда: «вот классы» — бам — «вот их начинает загружать класс-лоадер». Интерактивный рисунок; я дико кайфую и от процесса, и от того, как это выглядит в подаче: будто рисуешь на слайде в реальном времени, пошаговая картинка. А если нужно показать сложную диаграмму — можно нарисовать её целиком, а потом ластиком стирать по элементу и экспортировать в обратном порядке: слайды расставляешь наоборот, и рисунок «обретает детали» шаг за шагом. Киллер-фича этой связки — позиционирование. Если рисовать где-то ещё и вставлять в слайды на глаз, следующая часть скетча чуть съезжает — и картинка «прыгает» между слайдами, выглядит супер-крипово. А фиксированная зона экспорта в Concepts плюс вставка as is в пустой слайд решают это: все элементы позиционированы один в один, новые просто «дорисовываются». И процесс простой — из потока не выходишь. В целом планшет меня порадовал: для подобных вещей он идеальный инструмент. Кстати, один из приколов митапа: обещали компьютер со слайдами — его не было, и я показывал слайды со своего планшета, шарил его на большой телевизор. Достаточно удобно: когда дело доходит до презентаций и контент-мейкинга, планшет — хорошая альтернатива маку.

[35:01] На этом немного эмоциональный выпуск подошёл к концу. Полезняшка на этот раз как нельзя кстати: доклад Вадима Макишвили под названием «36» — пример идеальной презентации и очень сильной мысли и подачи. Не забывайте писать отзывы и предлагать темы в Telegram-канале «Тысячи фичей», а также делиться подкастом с другими. Давайте прокачивать себя и людей вокруг. Ну а на этом всё. Услышимся!