Что я понял, изучив 50 книг про IT?

За прошедшие 3-4 года я прочитал в общей сложности более 25 000 страниц технической литературы и стал замечать, как сильно изменились подходы к выбору книг и их изучению. В этой заметке хочу поделиться наблюдениями и выводами, которые помогут читателю сэкономить время, сохранить мотивацию к чтению и выбрать действительно полезную книгу.

Привет! Меня зовут Евгений, так или иначе я связан с IT уже порядка пяти лет, из которых последний год провёл в должности инженера SRE. К этой позиции я пришёл во многом благодаря изучению технической литературы, которая, как я верю, заменила мне пару лет упорной работы и позволила сразу получить желаемую роль в команде. Книгам я уделяю значительную часть свободного времени, поэтому и к их выбору отношусь внимательно. Некоторыми критериями выбора и хочу поделиться в этой статье.

Зачем я начал читать?

Первое знакомство с "человеческой" литературой, посвящённой IT, началось на летних каникулах в 2020 году. Старшие товарищи-студенты посоветовали прочитать книгу "Advanced Programming in the UNIX Environment" за авторством Уильяма Стивенса, мотивируя выбор подготовкой к следующему учебному году. Ребята настаивали на оригинальном издании книги, а не на переводе. Сухое перечисление различных стандартов, да ещё и на непривычном языке, быстро отбило желание изучать дальше сотой страницы.

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

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

Если можете, выбирайте английские книги

Это предложение всегда принимают в штыки, и затем разводят войны мнений в комментариях под подобными статьями. Главным препятствием для чтения английских текстов русскоязычные разработчики называют недостаточное владение английским языком и остаются правы: бесконечные сверки со словарём выматывают. В то же время техническая литература отличается от художественной, бизнес- и учащей личностному росту тем, что она пишется на относительно скромную аудиторию "айтишников" теми же айтишниками, которые сами далеко не всегда с лёгкостью лепечут по-английски. Хитросплетения времён, витиеватые конструкции и обилие эпитетов, иными словами, всё то, за что ценят художественную литературу — считается скорее моветоном в руководствах и документации. Чем выше ваш уровень владения английским, тем быстрее пойдёт чтение, и в то же время для начала изучения уже достаточно базовых знаний языка.

Чтобы не быть голословным, попробуем сравнить, насколько скупы на синонимы учебники в сравнении с классическими произведениями. Посчитаем долю уникальных слов:

#!/usr/bin/env python3 import sys import re from collections import Counter from PyPDF2 import PdfReader words_all = Counter() alphanum = re.compile(r'\W') books = sys.argv[1:] for i, f in enumerate(books, 1): reader = PdfReader(f) for j, page in enumerate(reader.pages): words = [ alphanum.sub('', w) for w in page.extract_text().split() ] words = [w.lower() for w in words if len(w) > 3] words_all.update(words) print(f'done book {i} of {len(books)}') words_total = words_all.total() words_unique = len(words_all) print(f'Words total: {words_total}, words unique: {words_unique}') print(f'Unique ratio: {words_unique / words_total}')

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

Натравим скрипт на два списка книг. Конечно, на такой небогатой выборке трудно делать статистически значимые выводы, однако общие тенденции сохранятся:
1. IT-литература:
— Kubernetes: Up and Running, 3rd Edition (ISBN: 9781098110208)
— Elasticsearch in Action, 2nd Edition (ISBN: 9781617299858)
— Kafka: The Definitive Guide, 2nd Edition (ISBN: 9781492043089)
— Prometheus: Up and Running (ISBN: 9781492034094)
— Terraform: Up and Running, 3rd Edition (ISBN: 9781098116743)
— Ruby Programming for Beginners (ISBN: 9798648692756)
— NGINX Unit Cookbook (ISBN: 9781492078562)
— Learning HTTP/2 (ISBN: 9781491962442)

2. Классическая проза:
— Ulysses, James Joyce
— Don Quixote, Miguel de Cervantes (перевод с испанского: John Ormsby)
— The Great Gatsby, F. Scott Fitzgerald

Список составлен совершенно случайно из подходящих файлов, найденных на моём компьютере. Результаты оказались довольно внушительными:

$ ./count_words.py it_books/* ... Words total: 426005, words unique: 27618 Unique ratio: 0.06483022499735919 $ ./count_words.py classic/* ... Words total: 410612, words unique: 46587 Unique ratio: 0.1134574732350735

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

Теперь, "доказав" возможность чтения английских изданий, объясню, наконец, почему я являюсь их сторонником. Русские издания выходят с задержкой порядка года. Они часто используют странные и неудачные переводы специализированных терминов, которые в обсуждениях непременно приведут коллег в замешательство и к постоянным переспрашиваниям. В особо тяжёлых случаях даже изначальная мысль автора передаётся неточно. Всех этих недостатков можно избежать, если сразу обратиться к оригиналу.

Да, безусловно есть и замечательные контрпримеры, позволившие сообществу изъясняться на одном русском языке, вышедшие в свет своевременно и без смысловых ошибок. И при всём при этом инвестировать время в переход на оригинальные версии книг кажется удачным решением.

Для меня остаётся загадкой, правда, как использовать новые иностранные термины в речи. Конечно, деплоить на берметал в докере может быть проще, чем бутстрапить инфра кубер, но так тоже нельзя, коллеги :)

Книги устаревают, но это не повод их не читать

Только что я сетовал на годовую задержку в появлении переводов книг, а теперь заявляю, что старые книги не теряют значимости — где же правда?

Мой читательский опыт позволяет разделить IT-литературу на два класса: одни книги рассказывают о продуктах, другие — об идеях. Продукты развиваются, зато идеи подвержены старению гораздо меньше. Принципы именования переменных мало поменялись за прошедшие двадцать лет, глубокие вложенные конструкции по-прежнему неудобны, память компьютеров всё ещё быстрее диска, а приложения давно полезно прятать за балансировщиком. С новейшими технологиями всё наоборот: задержка в два года может заметно сказаться на актуальности и применимости материала книги.

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

Выберите свой темп

Замечательная особенность книг: их можно читать в привычном темпе, по необходимости останавливаясь и повторяя головоломные темы. Этого нельзя сказать о курсах, которые ценны взаимодействием с преподавателями, оперативной обратной связью. В то же время огорчаться из-за невысокой скорости продвижения по книге не стоит, поглощённые десятками страницы не задерживаются в памяти. Оптимальной для меня скорость оказалась порядка 15 страниц в день. Запутанные главы иногда заставляют притормозить, на уже знакомых разделах можно отыграться, однако изучение свыше 30 страниц за сутки лишено смысла: о чём читал утром, к вечеру я даже не вспомню.

Медленно — не значит плохо, быстро — не значит хорошо. Главное — просто сохранять темп.

Что я понял, изучив 50 книг про IT?

Книга покрывает всю тему полностью

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

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

Конспектируйте

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

Прочитайте введение

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

Тезисы без категории

Осталось ещё несколько кратких мыслей и хитростей, заслуживающих внимания:

  • Изучить книгу длиной в тысячу страниц, не потеряв на полпути интереса к ней, сложно. Поэтому, если время не поджимает и выбор литературы не ограничен, выбирайте книгу "под настроение", нежели наиболее полезную. Так легче сохранить мотивацию продолжать чтение.
  • В современном мире найти время на новую привычку трудно. К счастью, книги, особенно электронные, хороши тем, что их можно читать в дороге, за обедом, стоя в очереди или принимая ванну. Пара минут тут, пять минут там — и вот запланированный десяток страниц позади.
  • Очень спорный совет: прокрастинируйте, читая. Очень часто от нагоняющего скуку дела хочется сбежать, и тут на помощь приходит смартфон с его многообразием игр, социальных сетей и прочих убийц времени. Что ж, если отвлечение неизбежно, его можно хотя бы провести с пользой :)
  • Я большой сторонник электронных книг. В кармане мы носим целую библиотеку — это здорово! PDF длиной в 1300 страниц (спасибо за труды, Бьярн!) не только ничего не весит, но ещё и не навевает страх и тоску в отличие от бумажного издания.
  • Одно из популярных мнений, касающееся изучения технической литературы, заключается в чтении только нужных глав по мере возникновения вопросов. Я же сторонник последовательного прохождения тем в порядке, как они были изложены автором. Этот путь займёт больше времени, однако он ответит на вопросы, которые читатель ещё даже не догадался задать.

Пара слов об издательствах

"Не судите книгу по обложке" — однако именно это я предлагаю теперь сделать. Оставлю пару слов об издательствах, книги которых попадали мне в руки за последние годы.

Что я понял, изучив 50 книг про IT?

Addison Wisley (Professional Computing Series)
Издательство богато разнообразной литературой. Здесь же я говорю о серии “Professional Computing Series”. На мой взгляд, это наиболее авторитетные источники книг, посвящённых "идеям". Текст издания точно выверен, вёрстка радует глаз. Среди авторов можно найти Брайана Кернигана, Брендана Грегга, Уильяма Стивенса, Скотта Мейерса и других признанных инженеров. Если книга попадёт к вам в руки, разочарования вы не испытаете.

O'Reilly
Смею предположить, самое популярное IT-издательство, которое изначально специализировалось на распространении документации к Unix-системам. Сейчас в большинстве своём литература описывает технологии, продукты. Я знаком с двумя сериями книг: "Up and Running", которая освещает нюансы использования продуктов, и "In a Nutshell", где найдёте список всех ключевых слов языка программирования и ценные замечания по их применению. Книги обычно точны, не содержат пространных рассуждений и позволяют быстро начать использовать продукт, о котором мы только что прочитали.

Издательство выпускает также литературу, не укладывающуюся в приведённое описание, однако и стричь под одну гребёнку её нет смысла. Это могут быть как "Книга с кабанчиком" от Мартина Кеппмана или "Effective Modern C++" Скотта Мейерса, каждая из которых заслуживает отдельного разбора, так и "Blockchain Blueprint for a New Economy", посыл автора которой я, признаюсь, совершенно не понял.

No Starch Press
Книги этого издательства охватывают великое множество тем, и все они оставили приятное послевкусие после прочтения. Сайт издательства честно признаётся, что учебники "No Starch Press" будут интересны гикам: авторы фокусируются на узкой теме, которую тщательно разбирают. Уровень подготовки читателя тоже варьируется от новичка до опытного инженера, поэтому нелишним будет внимательно изучить введение и оглавление выбранного издания. Такие книги отлично подойдут для внеклассного чтения и расширения кругозора.

Manning
С издательством я познакомился благодаря серии книг "In Action". На мой взгляд, она очень близка по духу с серией "Up and Running" от O'Reilly, и в действительности я затрудняюсь назвать какие-либо существенные отличия между ними. Единственное, можно заметить, как отличается формат подачи материала. Если книги Manning напоминают диалог с читателем, то авторы "Up and Running" скорее читают ему лекцию. Текст книг O'Reilly кажется простым, чётким и выверенным в сравнении с "живым" содержимым литературы Manning.

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

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

Springer
Книги этого издательства посвящены скорее научной литературе, чем привычной инженерам литературе об IT. Маловероятно, что многим с ним придётся столкнуться. Его книги похожи на выжимки из стандартов и спецификаций, а авторы своей целью ставят подготовку читателя к чтению тех же спецификаций.

Wiley
Обсуждая техническую литературу, трудно пройти мимо серии книг "For Dummies". Было бы кощунством предъявлять особые требования книгам с таким говорящим названием, и они замечательно справляются со своей целью: ввести читателя в курс дела. Раскрываемые авторами темы действительно раскладываются по полочкам, несущественные на первых порах детали очерчиваются, однако не обсуждаются в деталях. Благодаря лёгкой манере подачи и обилию иллюстраций книги послужат комфортным первым знакомством с темой.

Подробные отзывы о прочитанных книгах я держу на страничке в GitLab и с недавних пор в Телеграме. Заметки из книг, собранные за долгое время, я также планирую оформить в понятном виде там же.

Вместо заключения

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

11
Начать дискуссию