Как правильно изучать / конспектировать книги по программированию?
====================================================================

 Здравствуйте.  
  

Как правильно изучать / конспектировать книги по программированию?  

Как вы изучаете книги?  

Записываете ли где-то самое важное из книги, пример кода и т.п.? 

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

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

Читаю абзац, выделяю с него основную суть в виде вопроса, и ответа. Например абзац из Лутца  

> Теоретически классы (и экземпляры классов) относятся к категории  
> 
> изменяемых объектов. Подобно таким встроенным типам, как списки  
> 
> и словари, они могут изменяться непосредственно, путем присваива  
> 
> ния значений атрибутам и, как и в случае со списками и словарями,  
> 
> это означает, что изменение класса или экземпляра может оказывать  
> 
> влияние на множественные ссылки на них

  

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

Для этого абзаца создаю карточку в анки, в вопрос забиваю следующее  
  

> Относятся ли классы и и экземпляры классов, к категории изменяемых объектов?

  
  

ответ  
  

> да (сюда можно добавить - почему, или же дополнительную памятку типа - да, также как и встроенные типы, списки и словари).

  
  

И так каждый раз, когда встречаете неизвестную (или плохо известную) вам информацию.   

И каждый день, вы должны открывать Анки, и повторять все карточки. Занимает около 10-15 минут, я делаю это в метро, раньше делал строго после обеда (когда есть строгое время или точка события, легче не пропускать).  

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

Также раньше применял Mind map для конспектирования, но это сложная тема, к которой я пока привыкнуть не смог, поэтому больше не применяю. 

 Лично я делаю так: изучаю главу, практикую, делаю простые записи, чтобы не забыть самое важное. Вот например сегодня я начала изучать ООП и классы на пайтоне. В итоге, записей у меня, по сути, один лист, на котором: объявление классов (родительские - дочерние) в двух словах, конструктор класса и аргумент self также в паре слов, и немного про наследование, полиморфизм и инкапсуляцию. Все остальное - практика, практика и практика.  
  

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

<https://www.coursera.org/learn/learning-how-to-learn> 

 Не трать время на конспектирование. В обучении главное это понимание и практика. 

 Лучше всего делать это в первой половине дня - когда голова лучше варит.  

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

Когда она будет полностью заполнена - считай, ты постиг программирование. 

 Здравствуйте.  
  

Вот недавно осваивал Python по книжке, писал небольшие фрагменты кода на заданную тему (ну как в книгах: отдельно функции, отдельно ООП, отдельно обработка исключений...) и сохранял их, чтобы потом использовать как пример. Там, в файлах, сохранял как примитивные вещи, так и языковые приемы. Все снабжал комментариями. Получился вот такой набор:  
  
![5c44695bbd6ef561041011.png](https://habrastorage.org/webt/5c/44/69/5c44695bbd6ef561041011.png)  
  

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

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