Как максимизировать знания, которые вы получаете из книги по программированию? [закрыто]

26

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

Лично я придерживаюсь многоходового подхода (от ответа на исходный вопрос):

  1. Просмотрите содержимое, окунитесь и прочитайте что-нибудь с интересным заголовком и, наконец, взгляните на любые хорошие диаграммы и иллюстрации. На этом этапе я не буду сильно вдаваться в подробности, но это дает мне мысленное представление о книге (максимум час или около того)
  2. Сначала пройдитесь по книге, как правило, я внимательно прочитаю вводные главы для книги, которая либо очень напряженная, либо вводит что-то совершенно новое. Для книг, которые охватывают тему, о которой я уже знаю, я буду скучать или пропускать биты, которые кажутся тривиальными. Оставшуюся часть книги я пройду достаточно быстро, но не так быстро, чтобы просто перелистывать страницы. (около недели)
  3. Не все книги, которые я читаю, делают это далеко, но если я нахожу книгу интересной или достаточно полезной, я тогда изучу ее должным образом. Я буду читать книгу медленнее и делать некоторые или все примеры, пробовать код и т. Д. Я часто пропускаю целые главы, если только книга не очень хорошая (1-3 недели, в зависимости от книги).
  4. Наконец, когда я закончу читать и читаю другие книги, я буду снова и снова погружаться в них, чтобы делать перекрестные ссылки, сравнивать, искать вещи, просматривать и т. Д. - поэтому многие из моих любимых книг не просто заканчиваются сбором пыль на книжной полке.

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

Какие еще методы есть у людей? Насколько успешно вы их находите? Есть ли какие-либо общепринятые методы, которые вы считаете пустой тратой времени?

FinnNk
источник
Я лично пытаюсь доказать, что автор ошибался, или посмотреть, есть ли какие-то критические случаи, которые нарушаются, или я не понимаю. ИМО, любое знание, которое вы изучаете, но не проверяете на ошибочность, может быть обоюдоострым мечом.
Надеюсь, что это

Ответы:

30

Делать упражнения.

Если их нет, придумайте их.


источник
3
И после выполнения упражнений, заново реализуйте их в своем собственном коде по-своему. Примеры хороши и хороши, но ничего подобного реальной реализации, чтобы полностью понять концепцию.
Хьюго
+1: вы можете добавить это в начало этого ответа: «Практика».
Klaim
Все книги по программированию в наши дни подходят к концу, и у них есть небольшой проект. Это самый большой тест, который каждый может иметь для себя, чтобы отслеживать прогресс.
Venki
6

Удостоверьтесь, что вы применяете некоторые методы в своем повседневном программировании как можно скорее.

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

ChrisF
источник
1
Абсолютно. Также я думаю, что только когда вы применяете что-то в контексте, отличном от того, который представлен в книге, вы действительно переключаетесь с запоминания на понимание. К сожалению, это не всегда возможно ... несмотря на то, что я являюсь менеджером по разработке, где я работаю, никто не будет действительно спрашивать меня, могу ли я найти правдоподобную причину, почему мы должны делать то-то и то-то в Прологе или что-то еще, это иногда просто не уместно вносить вещи в повседневную работу. Я предполагаю, что это то, для чего нужны личные проекты, но тогда вы потеряете много преимуществ накопительного обучения.
FinnNk
@FinnNk - я не говорил, что это будет легко;) Это проблема, с которой я столкнулся в настоящее время в WPF. Я делаю проект дома, но мне не приходится тратить на это много времени, поэтому мне постоянно приходится пересматривать то, что я знаю.
ChrisF
6

Выделите все, что вас удивило. Это поможет найти его в будущем.

Напишите на полях подробно.

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

Энди Лестер
источник
2

Пройди через это с другом. Еще лучше подумать о том, чтобы прочитать книгу как упражнение «Парное программирование», где вы оба пытаетесь объяснить это друг другу. (И, конечно, делайте упражнения, как было сказано выше)

Захари К
источник
1

Воплощать в жизнь

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

Джей Биверс
источник
1

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

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

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

gr33kbo1
источник