Роман Поборчий

Жизнь прекрасна и удивительна


Previous Entry Поделиться Next Entry
Разбор рассказа об атомиках от Алексея Фёдорова
prs
Сегодня — первый выпуск "разбора полётов", и у нас в гостях — Алексей Фёдоров aka 23derevo с рассказом "Atomics, CAS, and Nonblocking Algorithms" с JEE Conf 2015 года. Всем напомню, что акция продолжается: присылайте ссылки на свои выступления, и я их прокомментирую.

Видео:


Слайды на SlideShare:
http://www.slideshare.net/23derevo/fyodorov-atomics/

Лёша, спасибо за храбрость и надеюсь, то, что я напишу, тебе пригодится. Итак, к делу!

Я на все выступления смотрю вот по такому списку:
• К чему призывают слушателей?
• Интересен ли сюжет?
• Нет ли чего-то неподобающего на слайдах?
• Как ведёт себя выступающий?

По этому списку и пойдём.

Мораль. Насколько я понял, ты призываешь слушателей учиться многопоточному программированию (в первую очередь — на Java). С этой целью они должны прочитать две книжки, статью, JavaDoc и исходники. Это нормальная мораль. Но почему нельзя выйти просто с одним 54-м слайдом, постоять минуту и на этом считать миссию выполненной? Точно ли всё остальное выступление именно к этой морали всех и ведёт?

Сюжет. Рассказ больше всего напомнил мне университетскую лекцию. Причём, не кривя душой, все бы там так лекции читали, было бы легче учиться. Материал хорошо структурирован и подаётся чётко от простого к более сложному. Содержание мне тоже было полностью понятно, но, правда, я его и раньше знал, так что, возможно, я нерепрезентативен. =) Но у презентации на конференции есть одно важное отличие от лекции в университете: здесь над студентами не довлеет сессия. Там, на лекции, они знают, что в материале придётся разбираться (это, как бы, в пользовательском соглашении ВУЗа прописано), и это заставляет их вникать и что-то даже записывать. Этого кнута у тебя здесь нет, а пряника ты им не даёшь. Рассказ получается скучный, в нём нет никакой интриги, все проблемы подаются одновременно с решениями, нет никаких героев, за примерами из жизни которых можно было бы следить. В результате люди постепенно засыпают. Отсутствие вопросов в конце — индикатор именно этого. Презентация была, судя по программе, сразу после обеда, а на послеобеденных лекциях спится особенно хорошо. Предлагаю действовать по-другому. Нужно их удивить, заинтересовать.

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

• Модели (слайд 6). Первая модель (с чтением/записью) является абстракцией реальности, выражаемой второй моделью (с посылкой сообщений). Абстракции, как отмечал товарищ Джоэл, протекают. Нет ли примера из жизни, где это стукнуло?

• Задача о читателях-писателях. Раз уж это такая классическая задача, да ещё с модификациями, наверняка у неё есть множество практических применений, правильно? А вот фиг. Я немного сломал мозг и даже сходил в википедию, но она подсказывает только что-то про списки комнат в онлайн-играх, а там мы читаем-пишем с разных компьютеров, а не ядер, и ровно эти джавовские конструкции не вдруг применишь. В общем, надо бы проблему читателей-писателей проиллюстрировать группой задач с разными настройками из реальной практики.

• Инверсия приоритетов. Про партийного босса на членовозе пример неплохой, но неужели нет какого-нибудь известного случая, когда инверсия приоритетов случилась в программировании? Если такого случая нет, то, может, опять же другой пример поискать?

• ABA problem. Ну ведь не случайно же её придумали, у кого-то когда-то это произошло и причинило ему какие-то неприятности, пока он разобрался. Вот об этом реальном случае и круто будет рассказать. Мне почему-то вспоминается переполнение байта, которое было у солдат в игре UFO: Enemy Unknown, хотя это совсем не о том. Там, если продолжать тренировать крутого солдата, он в какой-то момент опять превращался в новичка. Но долой лирику, речь о том, что нужны кровавые подробности из практики.

• Неатомарная запись двух половинок лонга. Ты даже рассказываешь, в каких обстоятельствах это может произойти (в облаке Амазона или Гугла), наверняка же есть практический опыт столкновения. Вот этот-то опыт и надо принести в народ.

При этом всегда лучше начинать с тайны (вот так всё делаем, и вот такие симптомы получаем), и постепенно раскрутить, откуда растут ноги: оказывается, из классической задачи и классического же бага. =) Приведу в пример Шипилёва, который этим приёмом овладел на все сто и регулярно его с большим успехом применяет. И ничего страшного, приём хороший, его на всех хватит. Зато у зрителей будет интрига, саспенс, все дела, а классический алгоритм/баг/задача окажется на эту интригу ответом. Так оно и запомнится в миллион раз лучше, и слушать интереснее.

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

1) Есть пункт о том, что всё это про бабло, можно было бы хоть раз отсылку вернуть, что где-то с помощью предлагаемых механизмов бабло спасли или, наоборот, потеряли. Ружьё-то повешено, чего бы ему не выстрелить?
2) Я понимаю, что врать нехорошо, но, показывая, что новые десктопы нет смысла покупать, зачем же самому руку поднимать, что покупал? Это же аргумент против твоей позиции, долой его.
3) На третьем слайде есть график про закон Мура, вот такой:



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

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

Подача. Говоришь ты громко, чётко, речь понятная, однозначная, это хорошо.

Значительную часть времени ты ходишь туда-сюда и не смотришь в аудиторию. Движение — стимул внимания, и жалко, когда этот стимул непрерывно работает вхолостую. Я очень верю, что непрерывное движение, которое происходит не для того, чтобы поддержать какую-то мысль, а само по себе, вносит в наше выступление шум. То есть просто снижает эффективность всех остальных действий, которые мы предпринимаем. А после обеда маятник ещё и убаюкивает. =)

Смотреть же людям в глаза нужно потому, что так кажешься более искренним. Многие люди верят, что можно распознать лжеца по глазам, соответственно, тому, кто охотно смотрит в глаза, скрывать якобы нечего. На эту тему интересно рассуждает Пол Экман в "Психологии лжи", но вкратце надо понимать, что смотреть в глаза — естественно.

Заметим, в большой аудитории это всё равно возможно. Хоть Карнеги с его советами и считается устаревшим, но его мысль о том, что надо выбрать в зале несколько колоритных персонажей в разных местах и периодически обращаться к каждому из них, кажется мне до сих пор вполне актуальной. Соседи этих людей, поскольку всё равно далеко и не очень видно, будут в каждом случае чувствовать, как будто ты обращаешься к ним тоже.


Вот, в основном, всё, что я заметил. Удачи и повышения эффективности евангелистской деятельности!

  • 1
Рома, спасибо!

Насчет "Разбора Полетов" — я бы сменил название проекта, потому что уже есть подкаст одноименный:
http://razbor-poletov.com/

Ага, ок, пока оставлю просто разбор, а потом какое-нибудь более оригинальное название придумаю.

  • 1
?

Log in

No account? Create an account