Как правильно усваивать техническую литературу: лайфхаки, курсы и книга
Пользователь dondraper36 спросил на форуме Hacker News, как лучше усваивать техническую литературу. «Чем больше читаю, тем чаще чувствую, что ничего не запоминаю — в голове беспорядок», — пишет он. Bubble собрал лучшие советы.
Совет 1
Не ограничивайтесь чтением, делайте больше упражнений.
Это самая популярная рекомендация у форумчан Hacker News. Практиковаться можно как на упражнениях из книг, которые вы читаете, так и в попытке ручками написать хотя бы небольшую программу, используя тот фреймворк или язык программирования, который изучаете.
«Не понимаю, как люди на форуме могут изучать математику только с помощью видео на Youtube или понимать функциональное программирование, прочитав [книгу] „Структура и интерпретация компьютерных программ“, но не делая ни одного упражнения», — пишет пользователь jeffwass.
Совет 2
Впишитесь в релевантный проект.
В этом случае, считает один из пользователей, неизбежно столкнетесь с задачей, когда для ее решения придется обращаться к технической литературе. Если что-то из прочитанного и забудется со временем, то будете знать, где искать.
самые полезные лайфхаки в мини-формате обитают в нашем telegram. постим раз в день, коротко и по делу
Совет 3
Выписывайте в блокнот или на лист бумаги ключевые моменты.
Это поможет лучше запомнить прочитанное. Вернитесь к записям через неделю, сократите их, оставив только самое важное. К таким «карточкам» можно возвращаться в любой момент, и ключевые поинты в них помогут вспомнить весь контекст, всю тему.
Можно делать и электронные карточки: в бесплатных версиях Remnote или Anki. Еще вариант: создавать презентации в PowerPoint.
Совет 4
Раньше, пишет simonblack, техлитература была единственной возможностью обучаться дома. Сейчас же «проще, быстрее и дешевле» использовать Google или другие поисковики.
Совет 5
Объясняйте материал знакомому. Часто лучше всего рассказывать выученную тему человеку, у которого нет технических знаний.
Совет 6
Пройдите курс «Научитесь учиться», советует пользователь nivertech.
Это один из самых популярных курсов на Coursera. Разработан профессором инженерных наук Оклендского университета Барбарой Оукли.
Подробно о его содержании написал один из авторов medium после прохождения курса.
курсы и книга по теме от Bubble
— «Как правильно учиться». Бесплатный курс на GeekBrains (рейтинг 4.8), который состоит из одного урока. Продолжительность: 2 часа.
— «Преодолеваем препятствия в обучении». Бесплатный курс (рейтинг 4.8) на английском языке от автора «Научитесь учиться». Займет примерно 11 часов.
— «Креативное мышление: техники и инструменты». Бесплатный курс (рейтинг 4.7) на английском с русскими субтитрами. Длительность: около 20 часов.
— «Как научиться учиться». Книга старшего научного сотрудника Центра американского прогресса Ульриха Бозера об осознанном усвоении знаний. Стоимость в твердом переплете: около $7,5. В электронном варианте: около $5.
Материал содержит партнерские ссылки. Это не отражается на стоимости сервисов или товаров. Партнеры не влияют на наши рекомендации и содержание текста.
Как читать техническую литературу: советы резидентов Quora, Reddit и Hacker News
Техническая литература бывает разная: от небольших тематических статей до серьезных справочников с подробным описанием функций и атрибутов. И каждый из этих типов решает разные задачи — развлекает, обучает, позволяет освежить какую-либо тему.
Сегодня мы расскажем, к каким источникам рекомендуют обращаться программисты, инженеры и резиденты тематических платформ (Stack Exchange, Stack Overflow и др.), если вам нужно изучить новый язык или углубить знания в какой-то отдельной области. Также приведем несколько их рекомендаций о том, как с такой литературой «работать».
/ Flickr / Devin Stein / CC
Какой бывает техническая литература
К технической литературе относятся не только книги о теории программирования или языках. Сюда можно включить новости по теме, треды на профильных площадках, документацию, хелпы и справочники, чужой код и даже корпоративные блоги (наш пример на сайте 1cloud).
Каждый из этих источников решает различные задачи: просто развлекает читателя или помогает найти ответ на конкретный вопрос. Например, книги о языках программирования, алгоритмах и так далее дают погрузиться в нужную область знаний. Рассылки и новости по теме помогают быть в курсе происходящего и фоном изучать новые технологии. Блоги и форумы позволяют узнать мнения людей о той или иной проблеме, перенять их опыт или просто развлечься. К этой же категории относятся треды на Hacker News, Stack Exchange, Reddit и др.
Еще один вид «технической литературы» — это программный код. Чтение и анализ чужого кода позволяет учиться на ошибках других людей. А справочники помогут узнать атрибуты функции, принципы её работы или быстро освежить в памяти подзабытые вещи.
Таким образом, разные типы источников подходят для разных задач. Но никто не читает литературу, код, треды «от корки до корки»: книги часто покупают в качестве настольного справочника, а на специализированных платформах вроде Stack Overflow и Stack Exchange люди пользуются поиском — нашел ответ на свой вопрос, решил проблему. Несомненный плюс интерактивных площадок в том, что вы не ограничиваетесь уже существующим контентом — если ответа на интересующий вопрос не оказалось, или вам не до конца понятно чье-то объяснение, можно задавать свои вопросы.
Например, в этом треде на SO топик-стартер спросил, почему сортировка массива делает его код в шесть раз быстрее. Члены сообщества рассказали ему об алгоритмах предсказания ветвлений, построили схемы, привели аналогии, порекомендовали книги для дальнейшего изучения. Этот вопрос стал самым популярным на платформе — тред собрал более миллиона просмотров, а один из ответов «плюсанули» больше 26 тыс. раз.
Таким образом, выбор конкретных источников зависит от целей и задач, которые вы планируете решить. О чем мы и поговорим далее.
Если хочется узнавать что-то новое в фоновом режиме
Для выполнения этой задачи подойдут рассылки и блоги. Их удобно просматривать с утра за чашкой кофе или во время перерыва на работе. Это не требует особых усилий и позволяет постоянно быть в теме последних событий. Например, на этом сайте собраны 50 лучших блогов по программированию на самые разные темы: от разработки под iOS до веб-дизайна, а здесь вы найдете 13 популярных рассылок. Как вариант — установить специализированное приложение на смартфон.
Дополнительно разработчик и математик Уэйн Уэхио (Wayne Uejio) советует добавить в свой фид интернет-объявления от потенциальных заказчиков, чтобы лучше понимать ситуацию на рынке труда и актуальные потребности работодателей.
Если нужно узнать атрибуты функции
Для того чтобы прояснить или освежить в памяти что-то конкретное, подойдут справочники, гайды и хелп. После ознакомления можно, например, выписать информацию на листок или создать GitHub-репозиторий, как это сделал веб-разработчик Джеймс Харрис. Так вам не придется обращаться к хелпу повторно и тратить на это время.
Если нужно выучить новый язык
В этом случае одним из вариантов становятся книги. При выборе книги важно читать аннотацию — есть мнение, что первая тысяча слов задает основу всей книги (и, как минимум, позволяет ознакомиться со стилем изложения автора). Поэтому аннотация и оглавление, как лакмусовая бумажка, помогут составить общее представление о том, подойдет ли вам эта книга сейчас (есть ли в ней ответы на нужные вопросы, много ли примеров, объясняет ли автор, зачем читать его книгу и какие знания вы получите в итоге), или, возможно, стоит отложить ее и переключиться на другие издания.
Также при выборе литературы для изучения новых технологий стоит обратить внимание на тематические подборки и дайджесты, составленные на основе рекомендаций экспертов отрасли — чаще всего в них собраны наиболее адекватные материалы, проверенные сообществом. Например, вот несколько подборок, которые подготовили мы в 1cloud: VPS-дайджест, DNS-дайджест, VPN-дайджест.
При этом пользователи Hacker News советуют читать несколько книг параллельно, чтобы можно было рассмотреть тему с «разных углов» и составить у себя в голове более полную картину. Причем это справедливо не только для книг, но и для статей и блогов. Например, можно читать статью автора блога Monday Morning Haskell Джеймса Боуэна (James Bowen) о типах монад в Haskell, одновременно изучая объяснение одного из пользователей GitHub о том, как монады «воспроизводятся».
Дополнительно резиденты HN предлагают писать конспекты, рисовать ментальные карты, а также фиксировать вопросы, возникающие по ходу чтения, чтобы потом искать ответы в других источниках. Когда мы пишем от руки, мы лучше понимаем и запоминаем важный материал.
Профессор лингвистики Наоми Барон (Naomi Baron) провела опрос среди 300 студентов США, Японии, Словакии и Германии. И 92% респондентов отметили, что фиксация ключевых моментов на бумаге помогает им достичь максимальной концентрации и оставить в памяти больше информации.
Дэмьен Роше (Damien Roche), пользователь Quora, разработчик ПО и предприниматель, отмечает, что ментальные карты помогают создать общее представление о каком-либо предмете и понять, как всё работает. Например, Дэмьен сделал схему для новичков, которая описывает все компоненты, необходимые для разработчика на Ruby on Rails. Он уверен, что карта будет хорошим подспорьем при обучении и поможет начинающим не упускать важные вещи.
Другие разработчики в этом треде Quora утверждают, что стоит попробовать даже написать код для своего сервиса создания ментальных карт, так как это позволит параллельно прокачать практические навыки.
Пример успешного развития проекта с ментальными картами — Learn Anything. Вначале он выглядел так. Авторы просто практиковались в написании кода. Один из разработчиков — Анджело Гадзола (Angelo Gazzola) даже спрашивал у пользователей Reddit совета, как можно улучшить карты.
Однако потом проект перерос в нечто большее и стал сервисом для поиска обучающего контента в интернете. Теперь этот открытый ресурс выглядит так и объединяет полторы тысячи интерактивных ментальных карт. Подробнее об этом можно прочитать в статье Никиты Волобоева, одного из кураторов проекта Learn Anything.
Также при изучении нового языка резиденты Quora рекомендуют гуглить примеры использования кода в реальных проектах и практиковаться на их реализации по ходу изучения материала. При этом Абхишек Чаухан (Abhishek Chauhan), инженер-программист из Amazon, советует экспериментировать с кодом, встречающимся в качестве примеров или туториалов.
Например, Даниэль фон Фандж (Daniel Von Fange), разработчик веб-приложений, десятилетиями пользуется следующим алгоритмом: читает книгу в один заход, а затем разрабатывает демопроект, применяя полученные знания. После уточняет детали, которые позабыл или упустил. По его словам, он открывает книгу всего пару-тройку раз, чтобы усвоить ключевые моменты.
Если нужно углубить знания по теме
Здесь также важно использовать как можно больше источников, чтобы оценить разные точки зрения. Для этого подойдут форумы, книги, статьи и примеры чужого кода. Если вы остановили свой выбор на книге, то, как советует один из резидентов Stack Exchange, стоит переходить сразу в конец главы, читать выводы, делать упражнения и сразу применять полученные знания на практике. Если заданий в книге нет — их нужно выдумать самостоятельно или попросить об этом друга.
Для расширения знаний в конкретной области, участники треда Software Engineering также рекомендуют делать короткие заходы на чтение. Главное — концентрация, она должна быть максимальной. Можно использовать следующий цикл: вдумчиво читать книгу 10 минут, затем спросить себя: «Мне скучно?». Если ответ «да» — отложить чтение, иначе — читать ещё 10 минут. Главное — не забывать о ваших целях и задачах, чтобы все-таки завершить изучение запланированного.
Еще стоит обратить внимание на тематические платформы: Хабрахабр, Тостер, Stack Overflow и Stack Exchange, а также тематические треды на форумах и в социальных сетях. Там можно найти ответы на многие вопросы — практически все проблемы, с которыми вы сталкиваетесь, уже кто-то решал. В крайнем случае можно задать вопрос самостоятельно.
Как эффективно читать профессиональную литературу

Когда мы подряд читаем тяжелые и требующие большой концентрации книги, мы больше устаем, и новая информация хуже запоминается. Я рекомендую планировать чтение на три-четыре книги вперед таким образом, чтобы тяжелые книги перемешивались с более простыми.
Например, после книги по операционным системам можно почитать подборку эссе Джоэла Спольски «О программировании». Не менее полезно разбавлять техническую литературу художественной.
Читайте книги нескольких авторов по одной теме
Я не пытаюсь вникнуть в новую книгу на 100% и делать заметки на полях до тех пор, пока не отрефлексировал предыдущую. Мозг гораздо лучше запоминает то, что мы делаем многократно и разными способами. Другими словами, я стараюсь читать книги не менее двух авторов по одной теме. Поэтому, открывая очередную книгу, я понимаю, что мне знакомо практически все ее содержание. Для меня это как сигнал, что эту тему я усвоил полностью, и что мне пора переходить к новой.
Перечитывайте книги и закрепляйте знания на практике
В начале своей карьеры я с жадностью читал много разных книг по программированию, но понимал далеко не всё. Потом, спустя годы, я возвращался к прочитанному, и обнаруживал, что понятного и полезного становилось все больше.
Я понял: чтобы понимать и усваивать информацию, ее нужно закреплять на практике, перечитывать или искать новые книги по этой же теме.
Как выбирать книги
Главный совет — не зацикливайтесь на очень узких темах. Например, книги по языкам программирования не научат вас кодить: они лишь описывают API, стандартные языковые библиотеки и практики.
Вот список тем, на которые я советую ориентироваться при выборе новой книги:
Еще вы всегда можете обращаться к списку книг Хекслета — я считаю их лучшими для начинающих разработчиков.
Продолжайте учиться: На Хекслете есть несколько больших профессий, интенсивов и треков для джуниоров, мидлов и даже сеньоров: они позволят не только узнать новые технологии, но и прокачать уже существующие навыки
Как правильно читать технические книги?
Добрый день, собственно вопрос, как можно извлечь больше пользы после прочтения, возможно конспектировать стоит или как-нибудь еще. Читаете вы книги по каким-либо технологиям или больше курсы предпочитаете?

Читаю книги. Конспектирую в тетрадь. Для каждой книги завожу свою тетрадь
Для аналоговых книжек лучше заметок на полях и стикеров в качестве закладок ничего больше не придумали.
Но, нормально структурированная гипертекстовая цифровая документация давно уже победила.
«Как читать книги» С.И. Поварнин

прям сидя за рабочим столом читаешь? тетрадь на 12 листов?
Как правильно читать технические книги?
Требуется всего-то использовать: стол, кресло, тетрадь на 48 листов в линейку, шариковую ручку, карандаш, ластик, 4 разноцветных маркера, линейку и небольшую стопку листов для рисования/черчения. Также следует раз в час-два проветривать используемое помещение.
Читаете вы книги по каким-либо технологиям или больше курсы предпочитаете?
Уже очень давно читаю только текст (справочную документацию, в основном).
Курсы задают свой темп обучения, этим мне они не нравятся. И да, при найме ментора, на самом деле, идёт найм дополнительного геморроя. Как же тогда учиться практике? Очень просто, выходить в поле, и пытаться собирать грабли.
Но, нормально структурированная гипертекстовая цифровая документация давно уже победила.
А толку, если в голове не отложится так, как это было бы с аналоговой книжкой? Наперёд, ответ «не нужно» принимается.
Глазами. Про себя.

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

Пытался конспектировать в тетрадку, да. Толку ноль, ибо многие книги грешат чем-то вроде «Итак, сейчас мы узнаем, как сложить 2+2. Научились? Круто! А теперь… *формула с интегралами на пять страниц». Причем это касается всех направлений.

Нравится когда есть связка «сертификация-курс», как например у шапки или суси. То есть цель, шаги и конечный результат. Очень удобно.
В твоём вопросе нет ни цели ни конечного результата. Непонятно, что ты там записывать собрался.

Надо запоминать что и где найти.
А толку, если в голове не отложится так, как это было бы с аналоговой книжкой?
Так, в этом и нет необходимости, если говорить о документации.
Если под технической книгой понимается справочник, то зачем его откладывать в голове — он же справочник. Если это узкоспециализированная беллетристика, то и чтение её не отличается от чтения художественной литературы.
Ну например освоение нового языка или фреймворка.
Ну например освоение нового языка или фреймворка.
Я не представляю, какие могут возникнуть трудности с чтением «Quick start | Get started», чтобы пришла мысль что-то конспектировать.
Необходимость переходить к «Advanced usage | API reference» вообще возникает время от времени, и не требует последовательного обязательного прочтения.
Ну вот, я не понимаю проблем затронутых в ОП.
как можно извлечь больше пользы после прочтения
практика прочитанного — лучшее средство
И копаешь потом в других источниках конкретно этот промежуток между 2+2 и интегралами. «Вижу цель, не вижу препятствий» 🙂 В этот момент иногда начинаешь понимать, что кто-то у кого-то передрал материал без понимания — бывает, у разных авторов одинаковые «пробелы» в материале, сразу возникают подозрения.
Да для примера, на работе например у меня один стек, PHP, Qt, c++, python. Какие-нибудь side project java+kotlin+flask. Тут уж что-то новое в голову впихнуть проблемно.
Элементарно. Составляешь многопараметрическую функцию пользы и решаешь задачу оптимизации. 🙂
у меня один стек, PHP, Qt, c++, python. Какие-нибудь side project java+kotlin+flask

Из последнего, что я пытался так читать — книга по Spring. Начало было вполне годным, написано четко. Дальше пошла какая-то дичь, которую чтобы понять надо быть либо автором, либо уже знать спринг.
А вообще мне попадались только пара годных книг, на самом деле. Большинство идет по описанному ранее алгоритмы, что сразу же сводит их ценность к нулю.
Ну вот надо был мне java осваивать, взял брюса эккеля (страниц 450), прочитал полкниги и чуть с тоски не взывал, ну и нудятина, как-то сел код писать и уже стало интересней, но приходится все время лазить, что-то смотреть и так происходит с 4/5 книг, которые читаю.

Я бы сказал, что лучше сразу садиться код писать, прочитав только введение. Потому что дальше ты без практического применения все равно мало что поймешь. А в процессе написания уже поймешь, чего не понятно, и что надо уточнить и прочитать. Как-то так.
как-то сел код писать и уже стало интересней, но приходится все время лазить, что-то смотреть
Это правильное чтение технической литературы.
Хотя есть разные «правила»: например, поставить статус вконтакте в резюме, то читал Д.Кнута.

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

приходится все время лазить, что-то смотреть
Я не знаю, как надо, всё зависит от личных особенностей. Сам читаю кусками. Иногда по нескольку штук. Там выхватываешь кусок, сям и в итоге получается целостная картина.
Конспектирую? Да, бывает. Покупаю блокнотик за три копейки к каждой новой книжке и вперёд. Польза от такого прочтения особенно ощутима, когда книга на английском. Выписываешь фразу, переводишь её и потом вертишь, чтобы по смыслу приспособить к уже понятому.
Курсы? Не особенно. Бывает, возникают больные идеи поучиться на курсе, но после недолгой борьбы разум берёт верх. Всё-таки посещение курсов плохой способ борьбы с одиночеством. 😀
Знаниями овладеваю больше для себя, для своего саморазвития. Ну, просто потому, что что-то цепляет и становится интересным. Курсы ориентированы на то, чтобы предоставить обучаемому некий сгусток знаний, чтобы он мог начать быстро их применять. Это не совсем то, что нужно мне, остаётся книга.
О! Брат по разуму. Дарова.
Курсы задают свой темп обучения, этим мне они не нравятся.
Когда я был студнем, у нас была высокая степень взаимоподдержки, взаимообмена знаниями и прочие прелести совместного проживания нескольких десятков молодых людей. Подобную школу проходили если не все, то многие, и если и были какие-то изоляционисты, то их было немного. Сущие единицы каких-то ботанов, букварей, папенькиных сынков и начинающих карьеристов.
Повторить это невозможно. А хочется. Поэтому от курсов ожидаешь чего-то подобного. Чтоб ты пришёл, погрузился, раззнакомился со всеми и раз! И вы уже команда. Решаете одну общую задачу. Но это невозможно. Слушатель курсов стремится отбить бабки, ему не до общения с себе подобными, тутор стремится заработать деньги меньшей кровью. Редкие курсы длятся больше двух недель. Что можно успеть за две недели? Немногое. В сухом остатке корка и конспект, исписанный торопливым почерком.

на 48, иногда на 96. Пишу размашисто

У аналоговых книжек нет вообще ни одного преимущества перед нормальными цифровыми. Для чтения нужен хороший ридер с возможностью выделения текста и комментирования. Я использую okular, например. Если в книге есть примеры кода и/или задачи, их можно проверить и тут же в коментарии приложить ссылку на коммит в гите. Так же можно помещать перекрёсные ссылки между разными книгами и/или страницами с документацией в сети. Заниматься переписыванием всего этого на бумаге — геморрой.

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

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

У аналоговых книжек нет вообще ни одного преимущества перед нормальными цифровыми.
Читать в ванной и с грязными руками. А, ну и страницами можно пытать, разрезая кожу между пальцев.
Как угодно, но стараться думать. А если автор вдруг начинает без объяснений впечатывать формулы или использовать термины из ниоткуда не объясняя и не давая сносок, то помечаешь его как дебилоида и книгу выкидываешь в мусорку 80% технического чтива мусор от мудаков которые просто описали то что смогли вспомнить и на пол книги разводят философию к делу отношения не имеющую, цель которых продать тираж и всё. Особенно то что публикует орелли со зверушками это ярчайший пример хероты позорной с игровой механикой что-бы продать, а именно «эффект коллекционера».
Просто читай и всё. Правильного способа нет и быть не может. Читаешь, пытаешься понять, запоминаешь важное. Читаешь далее. Периодически делая практические наброски того чего узнал в коде, когфигах или о чём там книга/ги. Некоторые любят делать своими словами описанные сноски в тетради. Но это если автор адекват.

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

Не прочёл ни одну техническую книгу по технологиям. Не досмотрел ни один курс по технологиям дальше 10, 15 минут, в том числе оплаченные. Один раз явился на вводную лекцию в онлайн школе и отменил подписку. Ничего не конспектирую, не «откладываю на потом» в закладки браузера.
Когда мне нужно ресёрчить, в 90% случаев заканчиваю на чтении научной статьи от китайцев если вопрос не решился «фильтром» Википедии/медиум-хабра.
При этом готов смотреть ролики на Ютубе про науку и научпоп.

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

Я наверное рукожоп, но полностью от корки до корки не прочитал ни одной технической книги. Обычно только интересующий раздел или разделы, потому что иногда автор хорошо пишет про что-то что он знает хорошо, но в другом разделе такая муть, что лучше идти к другому автору, да и не все разделы надо читать заранее, стараюсь читать по необходимости. Помню в шараге пытался осилить одну книжку по методам оптимизации и численным методам, но понял что гораздо профитнее было прочитать нужные разделы у 3 разных авторов (про численные методы, вторая про методы оптимизации и третья про применение их инженерами, кажется она на английском была и мне там потребовалось разобрать буквально пару глав, чтобы понять зачем оно вообще надо и какие методы базовые), что в принципе мне нехило сэкономило времени (вместо книжки на 300 страниц я читал 50+30+50 примерно, не считая лекций) и дало более глубокое понимание предмета, чем у одногруппников которые по одной книжке куда всё вместе впихнули пытались подготовиться и разобраться в сути вопроса. С тех пор не страдаю фигнёй.