Несколько лет назад открыл папку Мои Книги, а там 340 PDF. Названия типа книга_1_final(2).pdf и unnamed.pdf. Половину даже опознать не мог — начинал я их читать или нет.
За 9 лет в разработке я собрал больше 300 технических книг. И поймал себя на мысли: если я их все прочитаю — буду просто топовым разработчиком в мире. После этого потихоньку взялся за дело. Сейчас знаю, где каждая, на каком этапе и есть ли по ней конспект. Без приложений и подписок. Обычная таблица и папка с файлами.
Скачать книгу легко. Через три месяца ты не помнишь ни названия, ни начинал ли читать. 300 книг свалены в кучу, ни таблицы, ни структуры. Нужна конкретная книга — а найти её не можешь.
Зачем вообще каталог
Была идея собрать классические эталонные книги как справочники. Чтобы потом, когда нужно углубиться в тему, открыть нужную книгу, найти главу и почитать. Плюс иногда надо дать пару книг студентам по теме, как доп чтиво. То есть нужна была своя библиотека — с доступными книгами и более-менее удобным управлением.
Ещё надо было всё систематизировать и держать в чистоте: убрать дубликаты. А самое главное — конспекты. Привязать их к книгам и тоже быстро находить.
За эти годы я несколько раз собирал библиотеку и успешно её сносил — потому что не было метода, как её грамотно вести. Именно в том виде, как я хотел.
Из чего система
В итоге получилась простая система. Таблица в Google Sheets, папка Library/ с книгами и папка с конспектами. Всё. Никаких приложений, сервисов, синхронизации. А закинешь всё на Google Drive — библиотека доступна с любого устройства. Таблица даёт поиск и фильтры, папка — хранение. Каждый под свою задачу.
Таблица
- ID — номер, ставится один раз при добавлении и больше не меняется; на нём держится вся система.
- Priority — High/Medium/Low; High ставлю только если книга нужна под текущий проект, иначе всё подряд становится High и приоритет теряет смысл.
- Type — Go, System Design, Productivity, Database, Algorithms.
- Status — Finished / в процессе / пусто.
- Name — название.
- Author — автор.
- Notes — есть конспект или нет.
Имена файлов
Все PDF лежат в одной папке Library/, без подпапок. Это правило надо ввести сразу, иначе через год получишь хаос из вложенных папок.
Warning
Шаблон: [ID]. [Автор] - [Название].pdf
Примеры:
12. Steve McConnell - Code Complete.pdf
233. Scott H. Young - Ultralearning.pdf
289. Alex Petrov - Database Internals.pdf
312. Авутжан Даутов - конспект Go runtime.pdf
ID в начале — и файлы сами сортируются по порядку добавления. Найти книгу по номеру — пара секунд.
Сам процесс простой. Добавить книгу — минуты две: скачал, внёс в таблицу, посмотрел ID, переименовал, переложил в Library/. Один раз — и книга в системе навсегда. Выбрать что читать — фильтр Priority=High, Status=пусто, выбрал, поставил «в процессе». Закончил — Status=Finished и пометка в Notes.
Конспекты
Конспекты держу отдельно, в Library/Summaries/, разбито по темам: Go/, System Design/, Productivity/, Algorithms/. Конспект сохраняю с тем же ID, что и книга, в реестре ставлю пометку. Это и есть та самая личная библиотека. Когда через год возвращаешься к теме, не надо перечитывать всю книгу — открываешь конспект и за десять минут поднимаешь то, на что когда-то потратил неделю.
Короче. Таблица плюс папка, у каждой книги свой ID, конспекты с тем же ID. 9 лет, 300+ книг, и я знаю, где каждая и что из неё вынес. Начни с малого. Заведи таблицу, папку Library/, добавь пять книг, которые уже есть. Дальше само пойдёт.