Читательские обзоры книг по IT-тематике

1
2010
views

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


Web Hacking 101

Автор — Peter Yaworski

Web Hacking 101

Эту книгу можно купить на LeanPub. Помимо прочего, она интересна тем, что ее рекомендуют Michiel Prins и Jobert Abma, основатели HackerOne.

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

Интересно, что издательство No Starch Press готовится издать книгу Real-World Bug Hunting того же автора. Пока не ясно, это та же самая книга, или немного другая.

Мне лично книга очень понравилась. Я считаю, ее нужно прочитать всем, кто пишет веб-приложения, или что-то напоминающее их.

Introducing ZFS on Linux

Автор — Damian Wojsław

Introducing ZFS on Linux

Эта книга посвящена файловой системе ZFS в контексте дистрибутивов Ubuntu и CentOS. Характерна тем, что имеет небольшое количество страниц и мало воды. Здесь вы прочитаете об использовании снапшотов, отличии quotas от reservations, о том, как добавлять и заменять диски в случае выхода дисков из строя или необходимости увеличить размер пула, а также как определить, под что и сколько места используется.

Книга понравилась. Если вам хочется быстро разобраться в основах работы с ZFS, самое то.

OpenSSL Cookbook

Автор — Ivan Ristić

OpenSSL Cookbook

Небольшая бесплатная книга, доступная для скачивания на сайте feistyduck.com. Насколько я смог разобраться, книга является краткой выжимкой из более объемной книги того же автора «Bulletproof SSL/TLS and PKI».

Написано все исключительно четко и по делу, никакой воды. Книга дает понимание, почему OpenSSL или LibreSSL не защищает от всего магическим образом, как полагают некоторые люди. Для желающих копнуть глубже приводится много ссылок на дополнительные материалы.

Книга произвела исключительно хорошее впечатление. Нужно будет не полениться ознакомиться с «Bulletproof SSL/TLS and PKI».

Hardware Hacker

Автор — Andrew Huang

Hardware Hacker

Книга от человека, стоявшего за разработкой Chumby и открытого ноутбука Novena, а также автора нашумевшей в свое время книги «Hacking Xbox» (см ниже). Из сей книги вы узнаете о тонкостях массового производства самопальной электроники в Китае, о том, как использовать обыкновенные SD-карты в качестве микроконтроллеров, об идеологии открытого железа, о создании хардварных стартапов, а также немного о биоинформатике.

Книга весьма интересная и крайне рекомендуется к прочтению. При этом читается она на удивление легко, словно роман, или даже какой-то дневник путешественника. Также рекомендую подписаться на блог автора.

Цифровая схемотехника и архитектура компьютера

Авторы — Дэвид Харрис, Сара Харрис

Цифровая схемотехника и архитектура компьютера

В оригинале «Digital Design and Computer Architecture». Данная книга представляет собой перевод последнего, второго издания, вышедшего в 2012-м году. Поскольку книга посвящена железу, материал ничуть не потерял актуальности.

Помимо прочего, книга рассказывает о физике CMOS-устройств (например, тех же логических вентилей), устройстве сумматоров и триггеров, программировании на SystemVerilog и VHDL, внутреннем устройстве FPGA, а также об архитектурах x86/x64 и MIPS. Последняя используется, например, в микроконтроллерах PIC32. Программированию микроконтроллеров, тех самых PIC32, книга тоже учит.

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

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

Database System Implementation

Авторы — Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom

Database System Implementation

Классическая книга о внутреннем устройстве РСУБД. В книге нигде явно об этом не упоминается, но PostgreSQL, например, внутри устроен именно так, как в ней и описано.

Помимо прочего, книга довольно подробно объясняет, как работают хэш-таблицы на диске, inverted indexes, B+-деревья, R-деревья и многие другие структуры, используемые в СУБД. Ну и, конечно же, вы узнаете все про MVCC, buffer manager, а также undo и redo логах.

Интересно, что Jeffrey Ullman также является и соавтором Dragon Book и многих других книг. У прочих авторов биография и библиография не менее интересные (Hector Garcia-MolinaJennifer Widom).

FreeBSD Device Drivers: A Guide for the Intrepid

Автор — Joseph Kong

FreeBSD Device Drivers: A Guide for the Intrepid

Книга о том, как писать драйверы для FreeBSD. С самых первых страниц все строго по делу, никакой воды. Все написано очень простым и понятным языком. Из книги вы узнаете, как создавать свои блочные устройства, как работать с USB и сетевым стеком, какие в ядре есть примитивы синхронизации, и много других интересных вещей.

Книга огонь. Всячески рекомендую ее даже тем, кто не очень-то хочет писать драйверы, но интересуется, как это хотя бы примерно делается в мире *nix систем.

Data Structures and Algorithms in Java, 6th Edition

Авторы — Michael Goodrich, Roberto Tamassia, Michael Goldwasser

Data Structures and Algorithms in Java, 6th Edition

Хотелось освежить свои знания алгоритмов и структур данных. Книга Алгоритмы: построение и анализ как-то не пошла, тяжеловата она. Но зато «Data Structures and Algorithms in Java» пошла просто отлично. Примерно 100 из 700 страниц книги посвящено быстрому введению в язык Java и ООП. Есть простое и понятное объяснение нотаций «о большое», «омега большое», «тета большое». «О малое» и «омега малые» не рассматриваются. Также книга описывает способы доказательства теорем — от противного, методом математической индукции, и подобные. Все это простым и понятным языком, с наглядными картинками. В конце каждой главы множество упражнений, а также интересные исторические и прочие справки. Читается на одном дыхании.

По сути, тут с нуля пишется часть стандартной библиотеки языка, отвечающая за коллекции. Списки, очереди, стеки, итераторы, хэш-таблицы, splay trees — вот это все. Получается довольно просто и красиво. B-деревья, к моему глубокому разочарованию, как-то совсем поверхностно рассматриваются. Немного не в тему описывается сжатие по Хаффману, других алгоритмов сжатия в книге нет. Еще нет алгоритмов шифрования, работы с большими числамиалгоритмов ИИ. Хотя, казалось бы, при таком объеме книги могли бы уместить. Можно было без кода на Java, только псевдокод. Мне кажется, книга была бы лучше.

В целом книга очень годная, на твердую пятерку. То, что нужно, если хочется вспомнить, например, что такое куча и как она помогает получить priority queue. Также имеется аналогичная книга с кодом на C++.

Learning Linux Binary Analysis

Автор — Ryan «elfmaster» O’Neill

Learning Linux Binary Analysis

Просто шикарная книга о ковырянии формата ELF, написании своего отладчика на ptrace, способах заражения и лечения исполняемых файлов, и всяком таком прочем. Последняя глава вкратце рассказывает про руткиты уровня ядра. Читается на одном дыхании. Куча полезных ссылок.

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

Advanced Programming in the UNIX Environment, 3rd Edition

Авторы — W. Richard Stevens, Stephen A. Rago

Advanced Programming in the UNIX Environment, 3rd Edition

Когда-то давно читал второе издание в русском переводе. Тогда прочитал на одном дыхании. Решил вот перечитать книгу в оригинале, тем более что это уже третье издание.

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

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

NumPy Beginner’s Guide, Third Edition

Автор — Ivan Idris

NumPy Beginner’s Guide

Быстрое введение в библиотеку NumPy. Также есть про использование Matplotlib, немного про SciPy, и интеграцию NumPy с PyGame. Плюс к этому, в книге вы найдете много ссылок на онлайн-курсы, например, по линейной алгебре и статистике. В конце глав приводятся списки вопросов для самопроверки. Ответы можно посмотреть в приложении.

Хорошая книжка, на твердую четыре с плюсом.

Изучаем Arduino: 65 проектов своими руками

Автор — Джон Бокселл

Изучаем Arduino: 65 проектов своими руками

Вся суть отражена в названии. Книга предполагает, что читатель абсолютно ничего не знает об электронике, микроконтроллерах и даже языке C. С одной стороны, это очень хорошо, так как книга является полностью самодостаточной. Перед ее прочтением не нужно читать ни Чарльза Платта, ни Джереми Блума. Для быстрого введения в электронику самое то. С другой стороны, из-за этой особенности мне лично первая половина книги была совершенно не интересна.

Помимо прочего, именно из этой книги я впервые узнал, что Arduio может принимать и отправлять SMS-сообщения, звонить на мобильные телефоны, а также хостить сайты и писать в Twitter. Если вы ищите хорошую книгу про Arduino, можете взять либо эту, либо книжку Блума. Они вполне взаимозаменяемы, и в том, чтобы читать их обе, довольно мало смысла.

Учебник по высоким нагрузкам

Учебник по высоким нагрузкам

Бесплатная PDF-книга, лежит на сайте books.ontico.ru. Хорошее введение в разработку высоконагруженных проектов. Объясняются типичные вещи вроде отличия горизонтального масштабирования от вертикального, какими способами делают балансировку нагрузки, что такое шардниг, репликация, chaos monkey, проблема инвалидации кэшей, и прочие такого рода вещи. В целом книжка полезная. С легким запашком пафосности конференции HL++, но полезная. Все коротко, по делу, объем небольшой. Можно, например, дать джуниору, чтобы быстро ввести его в курс дела. На том же сайте есть и другие книжки, но из них, похоже, я все интересное уже читал.

1 КОММЕНТАРИЙ

  1. можно статьи с книгами про программирование с переводами на русский язык

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here