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

Моя библиотека росла все больше и больше за последние 15 лет. У меня большая книжная полка, но в какой-то момент мне пришлось выстроить книги в два ряда. Некоторые книги простояли во второй очереди много лет. Непрочитанный и непрочитанный.

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

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

  • Поваренная книга C# 3.0
  • Программирование баз данных на C# с помощью ADO.NET (2010 г.)
  • Оптимизация производительности SQL Server 2008
  • Разработка приложений для Android
  • Разработка рабочего стола Visual Basic 6.0

С каждой книгой, которую я держал в руках, я задавал себе следующий вопрос:

Смогу ли я когда-нибудь снова взглянуть на эту книгу?

Для книг там наверху ответ был: «Нет». Для многих других книг ответ был: «Может быть». А для некоторых книг ответ был: «Определенно да». На мой взгляд, они вечнозеленые.

Вот несколько примеров моих книг «Может быть»:

  • Угловой 4/5
  • Node.js в действии
  • Экскурсия по С++
  • Ускоренный курс Python

И последнее, но не менее важное: несколько примеров моих вечнозеленых растений:

  • Вечные законы разработки программного обеспечения
  • Шаблоны архитектуры корпоративных приложений
  • Красноречивый JavaScript
  • Алгоритмы на C++ (очень старая книга 1992 года)
  • Как работает Linux
  • Шаблоны проектирования программного обеспечения
  • Рефакторинг: Работа с унаследованным кодом

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

Книги, которые я выбросил, не учили понятиям.

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

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

Некоторые из моих, возможно, книг также содержат номера версий. Я храню их, потому что в настоящее время они такие же современные, как книга об Angular 4/5. Но в будущем я не буду тратить деньги, время и силы на такие книги. Когда-нибудь я, наверное, тоже выброшу эти книги и снова оставлю вечнозеленые растения.

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

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

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