Книжный куб
11.1K subscribers
2.67K photos
6 videos
3 files
1.97K links
Рекомендации интересных книг, статей и выступлений от Александра Поломодова (@apolomodov), технического директора и эксперта в архитектуре
Download Telegram
Продолжу вчерашнюю тему, посвященную обсуждению тому, как правильно учиться книгой "Спираль обучения" Митчела Резника про подходы к развитию креативности. В оригинале книга называется “Lifelong Kindergarten: Cultivating Creativity through Projects, Passion, Peers, and Play”.
Автор руководит группой исследователей в MIT, которые подарили миру язык Scratch и участвовала в создании Lego Mindstorms.

Начинается книга с главы "Креативное обучение", в которой автор излагает мнение, что величайшее изобретение человечества — это детский сад, в котором используется подход обучения через творчество. Интересно, что первый детский сад был придуман в 1837 году Фридрихом Фрёбелем, который ввел новый формат обучения. До это был распространен вещательный формат с декламирующим учителем и учениками, ведущими конспекты. Вот как выглядит эта спираль: вообрази, сделай, испытай, поделись, обдумай, вообрази …

Подробнее в обзоре на Medium - bit.ly/lifeLongKIndergarten

#PopularScience #Learning #ExternalReview
👍7
How You Learn is How You Live

Недавно я прочел книгу “How You Learn is How You Live” за авторством Кей Петерсон и Дэвида Колба, знаменитого ученого в сфере обучения. Правда, на русский эту книгу перевели “Век живи — век учись”, что вводит в заблуждение читателей:) В любом случае, книга мне понравилась и я решил написать небольшой обзор.
Для тех, кто больше любит видео, может быть интересно посмотреть запись с Кей Петерсон, где она рассказывает про эту книгу в часовом интервью.

#Learning #SelfDevelopment #ExternalReview
🔥9👍3
Teaching Kids to Program with Hedy: A Gradual Programming Language • Felienne Hermans • GOTO 2022

Очередное интересное видео с goto конференции в Амстердаме. На этот раз про обучение детей программированию при помощи нового языка Hedy.
Автор доклада так объяснила потребность в новом языке:
- Для обучения малышей есть Sketch, который отлично закрывает запросы маленькой аудитории (подробнее про то, как он появился и в чем концепция можно почитать в книге его автора, Митчела Резника “Спираль обучения” (“Lifelong kindergarten”), про которую я уже писал на Medium)
- Но по мере взросления детей они хотят переходить к "взрослому" программированию вместо визуального. Обычно на этом этапе детям предлагают Python как дефолтный язык для обучения, но переход не для всех проходит безболезненно - некоторым детям сложно понять сложность синтаксиса языка, которая отвлекает их от семантики создания программ и написания алгоритмов. В итоге, часть детей на этом этапе отваливается и перестает эффективно обучаться.

В итоге, автор разработала исследовательский проект, в котором язык программирования Hedy имеет 18 уровней сложности и если первый уровень позволяет почти все, то 18 уровень уже является синтаксически верным подмножеством Python. А дальше этот исследовательский проект за 2 года стал достаточно популярным, в какое-то время про него написал даже Гвидо ван Россум, что удвоило счета Heroku, за которые пришлось платить автору языка. Сам язык является open source, доступен на gihub и достаточно интересен как технический проект, так как вопросы создания языков, их трансляторов и так далее являются наукоемкой областью (помню как в университете ботал курс теория и реализация языков программирования и там было много интересного). В конце выступления автор рассказала о том, что проект ждеть контрибьюторов и если кто-то хочет поучаствовать, то "you are welcome".

#Software #PopularScience #Learning #Study #ComputerScience
👍9
The Amazing AI Super Tutor for Students and Teachers | Sal Khan | TED

Крутое выступление Sal Khan, основателя Khan Academy, про будущеее образование в свете текущих достижений AI. В нем автор говорит про то, что LLM модели и GPT-4 конкретно - это не опасность для образования, а возможность. Возможность наделить каждого ученика и учителя своим персональным помощником, который сможет выступать персональным тьютором для учеников, а для учитилей быть ассистентом, который помогает формировать программу обучения и осободившееся время тратить непосредственно на общение с учениками.
Часть своих мыслей автор иллюстрируем примерами из Khanmigo, который работает как чатбот:)

P.S.
Этот vision выглядит хорошо, но кажется, что дальше нам светит трансформация всей системы образования, которая сейчас просто пытается запретить использование LLM для генерации тектовых работ учениками.

#Learning #ForKids #ML #AI
👍9
Антология машинного обучения (The Deep Learning Revolution)

На первых майских праздниках я прочитал эту книгу 2018 года за авторством Терренса Сейновски и она мне действительно понравилась. Автор попытался рассказать про свое восприятие того, как наступила революция deep learning. Причем его рассказ воспринимается личной историей очевидца и активного участника, а не журналиста, который собирает материалы по крупицам. Книга не содержит и крупицы кода, но в ней активно упоминаются такие области как нейробиология, теория информации, теория игр и так далее.

В итоге, я написал маленькую статью где поделился больше не содержанием книги, а своими впечатлениями от нее.

#ML #Data #Software #Learning
7👍2
How to Read Complex Code • Felienne Hermans • YOW! 2021

Это выступление Felienne Hermans посвящено той же теме, что книга "Code Reading", про которую я рассказывал вчера. Забавно, что разработчики большую часть времени читают код (~ 60%), а не пишут его, но редко кого учат читать код, а не писать его:) Поэтому автор и решила исправить эту ситацию и выступить с темой про чтение кода, а также написать книгу "The Programmer's Brain", в которой эти же идеи изложены гораздо подробнее.

Если переходить к самому выступлению, то Felienne строит свои размышления на том, что мы знаем о мышлении людей сегодня. Она рассказывает про то, как работают Short Term Memory (STM), Long Term Memory (LTM) и Working Memory в общем, а потом приземляет это на разработку. Она приводит примеры кода и показывает как в разных ситуациях проявляются проблемы с чтением кода в APL, Java, Basic:) Потом она рассказывает как можно прокачать свои навыки чтения и объясняет какую это пользу принесет.

Отдельно отмечу, что Felienne является практикующим преподавателем CS для детей, одновременно исследователем, а также создателем языка программирования Hedy, который помогает ей обучать детей программированию:) Подробнее можно посмотреть в выступлении "Teaching Kids to Program with Hedy: A Gradual Programming Language", про которое я уже рассказывал раньше.

Кроме того, в конце автор рекомендовала несколько книг, одна из которых мне очень нравится - это книга Джона Остерхута "A Philosophy of Software Design", на которую я написал обзор в двух частях: 1 и 2.

#Software #PopularScience #Learning #Study #ComputerScience #SelfDevelopment
👍14🔥4👏2
The Programmer's Brain: What every programmer needs to know about cognition

Вчера дочитал эту очень интересную книгу Felienne Hermans, в которой она рассказывает о том, как работает наш мозг и объясняет как это может помочь нам стать лучше в разработке программного обеспечения и не только:)
В книге четыре части:
1) On reading code better - читать код нам призодится чаще, чем писать его, а учат этому мало, поэтому автор начинает с исправления этой несправедливости. Именно здесь автор рассказывает про модель работы мозга с STM (short term memory), LTM (long term memory) и working memory. Если позволить себе метафору, то STM похож на оперативную память и вмещает порядка 2-6 элементов, LTM похож на долговренную память типа SSD и не сильно лимитирован по времени, а working memory напоминает процессор и используется для cpu intensive операций:) Дальше эта модель используется по всей книге и обрастает подробностями.
2) On thinking about code - тут уделяется много внимания ментальным моделям и полезным абстракциям, их нарабатыванию, использованию и обновлению:)
3) On writing better code - здесь говорится про вопросы наименования, как снижать когнитивную нагрузку и улучшать свои навыки решения проблем
4) On collaborating on code - тут автор рассказывает про разные активности во время работы с кодом (searching, comprehension, transciption, incrementation, exploration), как эти активности нагружают наши STM, LTM и working memeory. А дальше про то, как дизайнить и работать с большими системами и анализировать их качество с точки зрения cognitive dimensions. Ну и заканчивает автор рассказом про то, как онбордить новых разработчиков.

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

P.S.
Доклады автора на схожую тему
- "The Programmer's Brain" на QCon Plus November 2021
- Про язык Hedy для обучения детей программированию
- "How to Read Complex Code"

#Learning #Software #Brain
👍17🍾4🔥1
Deep Learning от MIT Press

Эта книга John D. Kelleher вышла в серии Essential Knowledge Series и содержит интересное введение в deep learning. Я уже рассказывал про другую книгу "Data Science" из этой же серии, в которой он выступал в качестве соавтора. В этой книге автор рассказывает про нейронные сети на пальцах и только в одной главе (про backpropagation) он погружается немного в математику. И хоть с издания книги в 2019 году утекло много воды, но она мне кажется до сих пор неплохим обзором deep learning для людей далеких от ml. Сама книга состоит из 7 глав
1. Introduction to deep learning - введение начинается с того, что deep learning помогает принимать решения на основе данных. Автор вспоминает про тройку терминов AI (artificial intelligence), ML (machine learning), deep learning и показывает их вложенность друг в друга: deep learning ⊂ ML ⊂ AI. Дальше приводится пример с простым dataset, функцией как детерминированным маппингом входных значений в выходные, а дальше перехода от детерминизма к угадыванию функции по доступным в датасете inputs и outputs (объяснение ml на пальцах). Конечно угадать точно можно не всегда и многое зависит от доступного датасета. Дальше на пальцах разбирается обучение с учителем, без него, а также reinforcement learning. А к концу главы автор рассказывает про причины успешности deep learning: что нам не приходится самим заниматься выделением значимых фич (feature engineering), также это хорошо работает в домене с большим количеством фич (размерность задачи) и большим объемом данных (добавлю от себя про важность большого количества GPU). Кстати, в этом тексте упоминается AlphaGo, про которая есть крутая документалка.
2. Conceptual foundations - здесь рассказывается про то, что такое модель, как можно подобрать параметры модели с использованием доступных данных, как комбинируя простые модели можно получить комплексную модель
3. Neural networks: the building blocks of deep learning - краткое объяснение нейронных сетей, того как они работают и откуда появилось название глубоких нейронных сетей (от наличия hidden layers, которые расположены между input и output layers)
4. A Brief history of deep learning - здесь автор дает выжимку из истории развития нейронных сетей, причем фокус здесь как на концептуальных, так и на практических прорывах. Это описание истории показалось мне меньше biased, чем в книге "Антология машинного обучения" ("The Deep Learning Revolution"), про которую я писал раньше. Отдельно автор рассказывает почему deep learning стало так развивается в последнее время - тут работает цикл из трех элементов, что усиливают друг друга: big data, улучшение алгоритмов, улучшение железа
5. Convolutional and recurrent neural networks - здесь описывается работы сверточных и рекуррентных нейронных сетей, где первые отлично подходят для работы с изображениями, а вторые лучше для работы с текстом. Причем описание нейронных сетей дается буквально на пальцах (мне кажется, что его поймут и люди, что далеки от математики)
6. Learning functions - эта глава самая математическая из всех и здесь идет речь про градиентный спуск и backpropagation algorithm. Первый алгоритм абсолютно стандартен для задач поиска минимума/максимума функции, а вот алгоритм обратного распространения ошибки в 80х годах сильно продвинул глубокие нейронные сети в популярности, так как этот способ позволял определять как менять веса hidden layers в нейронной сети при обучении. Собственно, именно при рассмотрении backpropagation надо немного знать про частные производные
7. The future of deep learning - здесь автор описывает светлое будущее deep learning, которое за 4 прошедших года кажется наступило в виде пришествия LLM (large language models)

В общем, книга достаточно легко читается и классно подойдет для первоначального знакомства с этой областью на уровне научпоп литературы:)

#ML #Data #Learning #DataScience #Software #PopularScience
8👍4🔥3
One Rule to Rule Them All • Pragmatic Dave Thomas • GOTO 2023

Интересное выступление от Dave Thomas, который участвовал в принятии "Manifesto for Agile Software Development" много лет назад. В этом выступлении Дейв использует много цитат Йоги Берра, который славился своими «йогизмами» - остротами, который часто имеют форму очевидной тавтологии или парадоксального противоречия вида "We're lost, but we're making good time". Кстати, эта фраза про наши процессы разработки:) Дальше автор идет по шагам
- И рассказывает про классический waterfall и почему его все перевирают, когда показывают картинку без обратных связей
- Вспоминает про type systems и theorem proving как подход к улучшению качества кода
- Высказывает неканоническое мнение про test coverage (правда, автор доводит все до абсурда с 100% coverage)
- Вспоминает научные истории для того, чтобы обсудить корректность кода и начинает с отсылки к Лапласу, который был приверженцем абсолютного детерминизмаи утверждал, что
Если бы какое-нибудь разумное существо смогло узнать положения и скорости всех частиц в мире в некий момент, оно могло бы совершенно точно предсказать все мировые события

Дальше Дейв вспоминает про квантовую физику с принципом неопределённости Гейзенбе‌рга, который в простом варианте можно описать так
Невозможно одновременно с точностью определить координаты и скорость квантовой частицы

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

Отсюда Дейв выводит свой первый постулат
Thomas's Postulate #1 - There is no such thing as correct code

И после этого Дейв предлагает стремиться не к корректному коду, а к коду, который готов к изменениям. А изменения бывают по куче причин.
Дальше Дейв вспоминает про старые времена, когда множество уважаемых людей съехалось на горнолыжный курорт и написали свой манифест, который Дейв назвает не Agile Manifesto, а именно "Manifesto for Agile Software Development".
Дальше Дейв вспоминает свое популярное выступление "Agile is Dead • Pragmatic Dave Thomas • GOTO 2015", где для того, чтобы быть agile предлагают не проходить кучу тренингов или приглашать коучей, а просто понимать ценности и применять их
Understand the Agile values and then apply them

В итоге, Дейв приходит к тому, что сегодня надо делать те вещи, которые будут готовы к завтрашним изменениям. И дальше он рассказывает про то, как это делать, показывая конкретные принципы на примерах, но потом он предлагает не запоминать их, а быть готовым вывести из common sense того, что мы делаем вещи, которые можем просто менять и дорабатывать в будущем. Так появляется второй постулят Дейва
Thomas's Postulate #2 - Make it easier to change

Дальше автор разбирается с вопросом, а как научиться предсказывать будущее для того, чтобы быть готовым к изменениям. По-факту, он предлагает прокачивать нашу интуицию и много размышляет про сознательное и бессознательное, про выработку правильных паттернов и реакций. Дальше он рекомендует книгу Даниэля Канемана "Thinking fast and slow". Потом он рассказывает про то, как работает опыт и вспоминает про книгу "The inner game of tennis", про которую я тоже слышал лет 10 назад.
Ну и напоследок автор говорит про то, как вести дневник и записывать, когда вы сталкиваетесь с изменениями
- What is the change?
- Likely effort
- Actual effort
- Observations
причем Дейв настаивает на том, чтобы писать это рукой, а не печатать, чтобы использовать мультимодальность нашего мозга:)
В итоге, это упражнение поможет прокачать вам свою интуицию, с помощью которой вы сможете принимать решения лучше.

Ну и напоследок Дейв опять вспоминает про заглавие доклада "One Rule to Rule Them All" и говорит, что это не совсем правило, но оно в том, чтобы
Makе it easier to change


#Management #SelfDevelopment #Processes #Leadership #Learning #Agile #Philosophy #Brain
👍11🔥62
Бакалавриат "Гейм-дизайна" в Институте Бизнеса и Дизайна (Рубрика #Kids)

Паша, мой старший сын, в этом году закончил школу и этим летом поступал в университет и это была та еще история. Всю дорогу ему все говорили, что надо идти технарем, сдавать математику и физику и поступать на программиста. Кажется, что это план-капкан, но Паше всю школу было на программирование вообще фиолетово. Помню, как я купил ему где-то в 10 лет Lego Mindstorm, где можно было собирать и программировать роботов. Роботов Паша собирал с удовольствием, но программировать предлагал папе:)

В 10 классе Паша переехал ко мне (до этого он жил с моей бывшей женой) и дальше давление про то, что надо быть программистом ослабло - смысл идти в профессию, когда она тебе совсем не нравится. Но появился вопрос, а кем же Паша хочет быть. Моя жена, Настя, предложила Паше походить по дням открытых дверей разных университетов и Паше очень понравился день открытых дверей Школы дизайна в Высшей Школе Экономики, после которой Паша преисполнился решимости стать гейм-дизайнером. Еще Паша сходил в "Институт Бизнеса и Дизайна", где тоже было направление геймдизайна. Собственно Паша решил пробоваться в два этих университета после 11 класса. Причем решение он принял ближе к концу 10 класса.

Весь 11 класс Паша ботал литературу и русский для того, чтобы сдать ЕГЭ на проходные баллы, так как до этого у него русский и литература в планах особо не значились, а также он готовился к творческому проекту, что был нужен для ВШЭ. Паша сдал ЕГЭ нормально, но для ВШЭ этого было недостаточно - дальше оостался только Институт Бизнеса и Дизайна, где он сдал успешно творческое испытание на этой неделе. Дальше осталось принести все документы, подписать договор, оплатить обучение и дождаться приказа о зачислении. Вот так мой сын пивотнулся из программиста в дизайнеры за последний год своего обучения в школе. Надеюсь, что ему понравится учится в этом бакалавриате ведь гейм-дизайн - это интересная штука, а программа обучения выглядит многообещающе:)

P.S.
Ретроспективно, это решение Паши кажется логичным - в младших классах мы с ним постоянно рубились в разные настольные игры, а к старшим классам он полюбил рисование. Но сложно было преодолеть мантру про необходимость стать программистом, которая шла от значимых взрослых. Кстати, я к старшим классам уже понял, что это не для Паши и наоборот отговаривал его от этого выбора:)

#Kids #Learning #ForParents
👍3010🔥4👏3
Strategic Learning: How to be smarter than your competition and turn key insights into competitive advantage (Стратегическое обучение) (Рубрика #Management)

Это книга 2010 года была написана Вилли Питерсеном, профессором менеджмента в Колумбийской школе бизнеса и бывший генеральный директор нескольких крупных компаний, включая Seagram USA и Tropicana. Он учился в Оксфордском университете как стипендиат программы Родса, прежде чем развить свою экспертизу в стратегическом управлении.
Собственно, в этой книге автор представляет свой подход к стратегии через четырехэтапныйы цикл, который должен помогать компаниям во внедрении эффективных стратегий для долгосрочного конкурентного преимущества. Суть в том, что создание и реализация стратегии должны быть интегрированы в непрерывный цикл, а не рассматриваться как разовое событие.
1) Learn (обучение) - проведение situation analysis для получения превосходных знаний о клиентах, конкурентах, внутренних реалиях, динамике отрасли и более широкой внешней среде
2) Focus (фокусировка) - принятие стратегических решений, которые определяют winning proposition и выявляют five key priorities.
3) Align (выравнивание) - мобилизация всей организации в соответствии со стратегическим фокусом через культуру, структуру, процессы, людей и системы вознаграждения.
4) Execute (выполнение) - реализация стратегии с одновременным экспериментированием с новыми идеями, а затем обратная связь результатов в цикл обучения.

В этих 4 шагах есть интересныые моменты, что стоит разобрать отдельно. И начнем с первого шага, а точнее с ситуационного анализа (situation analysis), который представляет собой систематическое упражнение в диагностическом обучении и считается "машинным отделением" создания стратегии. Его конкретная цель — разработать превосходные инсайты, которые станут основой для стратегических выборов компании. Все прорывные стратегии базируются на уникальном инсайте. Для проведения этого анализа надо фокусироваться на пяти областях исследований
- Customers
- Competitors
- The firm's own realities
- Industry dynamics
- The broader environment
Важно отметить, что процесс стратегического планирования не начинается с формулирования видения, как рекомендуют многие эксперты по стратегии. Питерсен считает, что попытка изобрести видение в вакууме подобна стрельбе в темноте. Проведение Situation Analysis в первую очередь гарантирует, что видение основано не на прихоти, а на инсайтах, что придут, если задавать и отвечать на правильные вопросы.

Во втором шаге речь идет про фокусировку и winning proposition, что должна отвечать на вопрос "Что мы будем делать иначе или лучше, чем наши конкуренты, чтобы достичь большей ценности для наших клиентов и превосходной прибыли для нашей компании?" Это основа стратегии, определяющая уникальное конкурентное преимущество организации. Интересно, что Вилли говорит о том, что надо составить список из пяти главных приоритетов, которые компания будет преследовать для реализации своего Winning Proposition. Причем приоритетов только пять, так как если приоритетов больше, то фокус размывается. Эти приоритеты отвечают на вопрос: "Какие немногие вещи принесут наибольшую разницу?" Процесс определения приоритетов должен каскадно распространяться по всей организации, чтобы каждое подразделение, отдел и отдельный сотрудник разработали согласованные приоритеты. В итоге, хорошее winning proposition должно включать
- Возможности - что вы можете сделать для клиента
- Влияние - как это поможет клиенту добиться успеха
- Стоимость - что клиент должен "заплатить" за привилегию, включая риски
- Доказательство - свидетельство того, что предоставить ценность получится

Данный подход был широко принят корпорациями, стал основой программ обучения руководителей в Колумбийской школе бизнеса, а также помог "перейти от ритуалов планирования к стратегии как обучению" как говорил Ханс Вестберг, бывший президент и генеральный директор Ericsson, где использовали эту методологию.

#Management #Leadership #Processes #Learning #Processes
👍73🔥1🤔1