Архив по категории ‘книги’.

Книга Станисласа Деана «Как мы учимся»

В прошлый раз я писал о книге Скотта Янга «Суперобучение», в которой хорошо структурированы советы по самостоятельному обучению. После этого я у меня на очереди на чтение стояла книга на близкую тему, но объясняющая, как происходит обучение на уровне «железа», то есть мозга. Именно про эту книгу, которую написал французский нейробиолог и доктор наук Станислас Деан, и пойдет речь в этом посте. Как вы уже поняли из заголовка, книга называется «Как мы учимся». Особенно мне понравилось второе название (кстати, как оно правильно называется с точки зрения издательского дела?): «Почему мозг учится лучше, чем любая машина… пока».

Эта книга состоит из трех частей. Первая часть называется «Что такое научение?» и она посвящена двум вопросам. Во-первых, тому самому вопросу, который вынесен в заголовок части, то есть что такое «научение» в различных смыслах этого слова. И вторая тема этой части — чем биологический мозг отличается от компьютерных нейронных сетей, и каким образом мы должны модифицировать алгоритмы, чтобы машинное обучение приблизилось по эффективности к мозгу.

«Учиться — значит последовательно формировать как в искусственных, так и в естественных нейронных сетях внутреннюю модель внешнего мира.»

Главная проблема имеющихся алгоритмов обучения искусственных нейронных сетей (ИНС) по мнению автора заключается в нескольких вещах. Во-первых, эти алгоритмы очень не эффективны, они требуют огромного количества данных для обучения, в то время как естественный мозг может учиться на одном-двух примерах объектов, которые предъявлены человеку. И, во-вторых, имеющиеся в данный момент ИНС выполняют только лишь ту обработку данных, которую мозг выполняет в течение первых 200-300 миллисекунд, то есть то, что мы (или наш мозг) делаем бессознательно. По сути речь идет о распознавании, но самое интересное и сложное в происходит после этой стадии обработки входящей информации, и дальнейшая обработка происходит значительно медленнее. Именно дальнейшая обработка связана с обдумыванием распознанной информации и решением того, что с ней нужно делать дальше.

Читать далее ‘Книга Станисласа Деана «Как мы учимся»’ »

Книга Скотта Янга «Суперобучение»

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

В последнее время у меня дошли руки до кучки книг, посвященных различным аспектам обучения. Для меня эти книги полезны вдвойне: во-первых, чтобы самому учиться более эффективно (а в современном мире учиться нужно непрерывно), а, во-вторых, раз уж я веду пару предметов у студентов, хочется, чтобы время и силы, потраченные (или лучше сказать использованные) на преподавание, приносили наибольшую пользу, в том числе и для студентов. Если вас тоже интересует эта тема, то можете почитать еще обзор другой книги — «Безграничный разум» за авторством Джо Боулер.

В этом посте речь пойдет о книге Скотта Янга «Суперобучение», в которой автор описывает принципы, позволяющие более эффективно самостоятельно изучать новые для себя области, причем сделать это в короткие сроки. Здесь надо сразу сделать оговорку, что короткое время — не значит, что вы получите новые знания и навыки просто так без усилий. Как раз наоборот, книга посвящена тому, как сократить время обучения максимально (в разумных пределах), наращивая интенсивность.

Читать далее ‘Книга Скотта Янга «Суперобучение»’ »

С.И. Поварнин «Как читать книги»

В позапрошлом посте о книге Зонке Аренс «Как делать полезные заметки» я упомянул другую книгу, которую написал С И. Поварнин и называется она «Как читать книги». В комментариях попросили про нее рассказать поподробнее. Ну что ж, рассказываю :). Для этого я ее еще раз перечитал.

Сергей Иннокентьевич Поварнин (1870 — 1952) — философ и специалист по логике. Книгу, о которой в этом посте пойдет речь, он написал в 1924 году, но при этом у нее было огромное количество переизданий. Например, сейчас в интернет-магазинах можно купить издание 2019 года, в котором указано, что текст соответствует изданию 1962 года (уже после смерти автора). В интернете в основном лежат электронные версии книги на основе издания 1972 года, в основе которого лежит все тот же текст от 1962 года. Строго говоря, в выходных данных этого издания написано, что это даже не книга, а брошюра, потому что в ней всего около 80 страниц, но для определенности я ее все-таки буду называть книгой.

Такой почтенный возраст текста заметен при чтении благодаря характерной манере и словам, которые иногда используются. На самом деле эта книга рассчитана на школьников, поэтому стиль изложения местами поучительно-морализаторский. Скорее всего она писалась для учеников старших классов. Манера текста, конечно, сильно отличается от современных книг про обучение и образование. Если сейчас принято делать отсылки на психологические исследования, то в книге Поварнина встречаются умозрительные предложения и термины вроде «сила воли», «лень» и т.п., которые, как я понимаю, сейчас с точки зрения психологии считаются уже не корректными.

Читать далее ‘С.И. Поварнин «Как читать книги»’ »

Книга Скотта Оукса «Эффективный Java»

Всем привет! Я продолжаю прокачивать свои знания про Java, и чем больше я читаю про внутреннее устройство его виртуальной машины (JVM), тем больше проникаюсь уважением к этой технологии. Сегодня хочу рассказать про книжку Скотта Оукса «Эффективный Java. Тюнинг кода на Java 8, 11 и дальше», которую дочитал на днях. Это уже второе издание книги, которая на русском языке вышла в 2021 году, а английская версия была написана в 2020 году, поэтому несмотря на то, что на обложке упоминается лишь Java 11 (с не очень убедительной припиской «и дальше»), книга достаточно актуальна. Просто на момент ее издания, долгоподдерживаемой версией (LTS) была Java 11, вышедшая в 2018 году.

Это очень подробная книга о том, что происходит «под капотом» среды выполнения Java, и как это можно использовать для написания более продуктивного кода. Или даже скорее о том, каких ситуаций лучше избегать. Это не учебник про язык Java, и кода там не так уж и много. В основном код здесь — это небольшие тестовые примеры, по которым измеряется производительность виртуальной машины в различных ситуациях и с различными настройками. Поскольку сейчас Java во многих случаях используется для написания серверных приложений, то и примеры часто делают упор на такое применение. Ничего про Java на Android в этой книге не сказано — там своя виртуальная машина Java, для которой надо писать свою отдельную книгу. В этой книге речь идет про виртуальную машину от Oracle и OpenJDK. Также надо сказать, что эта книга не про байт-код, который создается компилятором Java (хотя про него изредка речь заходила), а про то, как виртуальная машина и сборщики мусора работают в процессе выполнения приложения.

Коротко пробегусь по основным темам, которые затрагиваются в этой книге.

Читать далее ‘Книга Скотта Оукса «Эффективный Java»’ »

Книга Дэвида Вуттона «Изобретение науки»

Наука — это изобретенное нами занятие, в котором действуют согласованные правила

Есть две категории книг, от которых меня надо держать подальше, потому что книжные полки дома внезапно оказываются не резиновыми — это книги про IT и про историю науки. Этим летом мне попалась монументальная книга Дэвида Вуттона «Изобретение науки», проигнорировать которую я не мог. И вот на днях я ее, наконец, дочитал. Это увесистая книга на 650 страниц, 130 из которых это только перечисление использованных источников.

Несмотря на свой значительный объем, она охватывает не такой большой по историческим меркам временной интервал. Если не считать множества отсылок к более древним философам и натурфилософам, то основной фокус сосредоточен на XVI — XVIII веках, когда по мнению автора сформировалась та наука, которую мы имеем до сих пор. Именно в это время были заложены и приняты научным сообществом основные исследовательские принципы, такие как проверка экспериментом, а не только доверие авторитетам и древним философам, доказательство теорий, в это же время формируется научный язык и научная этика. Здесь, правда, надо сделать уточнение, что в книге речь идет только о Европейской науке.

Читать далее ‘Книга Дэвида Вуттона «Изобретение науки»’ »

Книга Джульена Вехена «Безопасный DevOps»

В последнее время я больше стал заниматься разработкой для серверной части веб-приложений, короче говоря, бэкендом. И хотя я не особо люблю заниматься админскими делами (самый страшный сон для меня — это искать проблему, почему что-то не работает в сети), но иногда приходится заниматься настройкой серверов, планированием структуры микросервисов и тому подобными делами. Ну и куда ж сегодня без DevOps-а? Грань между программистами и админами размывается, и по крайней мере нужно разбираться, как аккуратно должно развертываться приложение на серверах, каким образом взаимодействуют микросервисы и т.п. И в этом деле меня всегда беспокоит безопасность. Как делать это правильно? На какие грабли наступали другие разработчики, чтобы не повторять хотя бы элементарные ошибки? Держа в голове эту цель я начинал читать книгу Джульена Вехена «Безопасный DevOps».

Автор этой книги c 2013 года работает в Mozilla и занимается безопасностью облачных сервисов. Собственно безопасности и облакам посвящена книга. Конкретно про DevOps в ней сказано не так много (в основном в первой половине книги), зато рассматривается безопасность на различных уровнях, начиная с того, какие типичные ошибки допускают разработчики приложений, что позволяет злоумышленнику провести атаку, и до безопасности на уровне предприятия.

Читать далее ‘Книга Джульена Вехена «Безопасный DevOps»’ »

Про книгу «Современный язык Java»

Обложка "Современный язык Java"В последнее время помимо языка Python (которому, кстати, на днях исполнилось 30 лет) я активно стал использовать Java, поэтому решил углубить свои знания в этом языке и почитать более специализированные книги, которые поподробнее рассказывают об отдельных элементах языка или библиотек. Этот пост будет посвящен одной из таких книг, которую в целом можно охарактеризовать словами «как нам из Java сделать функциональный язык программирования». Речь пойдет о книге трех авторов Рауля-Габриэля Урма, Марио Фуско и Алана Майкрофта «Современный язык Java», в оригинале она называется «Modern Java in Action». Англоязычная версия книги была издана в 2018 году, и на тот момент были актуальные версии Java 8 и 9, а Java 10, который только-только вышел.

Большая часть книги основана на использовании лямбда-выражений (они же анонимные функции), о которых очень подробно рассказывается в первых главах книги. На мой взгляд даже чересчур подробно, так что возникает ощущение, что авторы повторяют одно и то же чуть под разными углами зрения. В Java 8 помимо анонимных функций появилась возможность создавать ссылки на методы классов, о том, как это работает, и как ссылки на методы связаны с лямбда-выражениями и функциональными интерфейсами (интерфейсами, у которых есть только один абстрактный метод) и рассказывается в первых главах на множестве небольших примеров. А для самых любопытных и продвинутых в приложении даже приводится анализ байт-кода, который создается компилятором для создания анонимных функций.

Читать далее ‘Про книгу «Современный язык Java»’ »

Книга Брайана Кернигана «Время Unix. A History and a Memoir»

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

Пару месяцев назад, просматривая книжные новинки, я обратил внимание на книгу под названием «Время Unix. A History and a Memoir». Одно то, что это книга по истории софтостроения, было бы достаточно, чтобы я ее купил, а тут еще и автор книги — Брайан Керниган. У нас в России он известен как один из авторов учебника по языку Си, написанного в соавторстве с Деннисом Ритчи — автором языка языка Си. Но помимо этого достижения Керниган является одним из программистов, работавших в Bell Labs в том числе и над операционной системой Unix в 1970-х годах. Правда, не над ядром этой операционной системы, но, например, он был соавтором языка AWK, предназначенного для обработки текста (AWK — это сокращение из первых букв фамилий авторов, «K» обозначает «Kernighan»). Разумеется, проигнорировать книгу, в которой рассказывается о легендарной операционной системе от лица непосредственного участника тех событий, я не мог. Кстати, на тему истории Unix-подобных операционных систем я когда-то давно писал пост История UNIX-систем.

Читать далее ‘Книга Брайана Кернигана «Время Unix. A History and a Memoir»’ »

Книга Дэвида Кушнера «Повелители DOOM»

Всем привет! IDDQD! Когда-то я писал о книге Кровь, пот и пиксели, в которой рассказывается про историю создания некоторых видеоигр, а недавно дочитал еще одну книгу из той же серии. В книге Дэвида Кушнера «Повелители DOOM» очень подробно рассказывается история двух Джонов — Кармака и Ромеро, а также некоторых других разработчиков, которые создали такие игры как Wolfenstein 3D, Doom, Quake и другие может быть чуть менее известные игры.

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

Читать далее ‘Книга Дэвида Кушнера «Повелители DOOM»’ »

Книга Джейсона Шрейера «Кровь, пот и пиксели»

Если вы думаете, что разработчики игр только и делают, что развлекаются, играя в игры, которые создают, и мечтаете пойти работать в какую-нибудь геймдев-компанию, то обязательно почитайте книгу Джейсона Шрейера «Кровь, пот и пиксели. Обратная сторона индустрии видеоигр». Главный вопрос, который так или иначе проходит сквозь все главы книги звучит так: возможно ли создать игру без многомесячных авралов, работы по 12-14 часов в сутки и по выходным? Может быть кому-то это и удается, но только не тем компаниям, о которых идет речь в этой книге, а этот список, между прочим, включает в себя таких монстров индустрии как Blizzard, BioWare, CD Projekt Red и уже не существующая Lucas Arts.

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

Книга «Кровь, пот и пиксели» основана на интервью, взятых автором у создателей (программистов, дизайнеров, сценаристов) игр «Pillars of Eternity», «Uncharted 4», «Stardew Valley», «Diablo III», «Halo Wars» (не путать с «Halo»), «Dragon Age: Inquisition», «Shovel Knight», «Destiny», «The Witcher 3», «Star Wars 1313» (так и не вышедшая игра). До того, как мне попала в руки эта книга, я слышал только о нескольких играх из этого списка, поэтому перед чтением очередной главы шел на Youtube и смотрел ролик-другой, чтобы понять, что это за игра, о которой идет речь. Это очень сильно помогало в понимании того, о чем идет речь в книге. Если же вы фанат каких-то из перечисленных игр, то получите еще большее удовольствие, читая, в каких муках они рождались.

Читать далее ‘Книга Джейсона Шрейера «Кровь, пот и пиксели»’ »