Топ-5 переоценённых книг по программированию
У меня в библиотеке более сотни книг по программированию
Если в начале карьеры я очень любил и паттерны проектирования и чистый код, то сейчас мнение сильно поменялось.
Они не плохие, они переоценены.
1. Чистый код. Роберт Мартин
Если соблюдать все его советы, то код почему-то превращается в нечитаемую кашу. Многие критикует такой подход ещё и за убийство производительности. Но давайте будем честны, даже в рамках концепции Мартина не все практики удачно совмещаются.
Да есть хорошие советы, и про DRY и про классику ООП "Код не должен знать о внутренностях объекта, с которыми он работает". Но так ли слепо мы должны доверять всем что там написано?
2. Паттерны проектирования. GOF
Ни одно собеседование не проходит без расспросов про паттерны. Про отличие структурных от порождающих и деталей реализации Синглтона. Хотя раньше паттерны считались моветоном, а классический список от GoF вообще походил на корпоративный булщит.
Проводят ли они очевидный контракт? Да нет. Тот же Синглтон имеет десятки реализаций в десятках разных фреймворках с совершенно разным контрактами. Ну да, мы рассчитываем что он обеспечивает единственный экземпляр класса. Или статическую точку доступа к нему, или один экземпляр на поток... Да вообще-то везде по-разному.
Есть неплохие паттерны из DDD, есть паттерны TDD которые всё же практически полезней.
3. Алгоритмы: построение и анализ. CLRS
Книга мощная. Как и знаменитые томики Кнута. И как же любят отдельные выпускники МФТИ чморить все кто не помнит их по памяти. Или притворяться что помнят и брать опонента на блеф.
99% разработчиков, которых я знаю, заучивают подобные учебники перед собеседованием и через неделю забывают вообще всё. Непонятно в какой момент карьеры с этим всем нужном знакомиться? В начале? Так ничего не понятно. В середине? Так зачем если нужные алгоритмы и так понятны с практики.
4. Совершенный код. Стив Макконнелл
В какой-то момент мы решили что нам нужна наша собественная библия. И зачем-то упёрлись в совершенный код. В общем-то, многие вещи поделу и даже примеры на разных языках. Хорошо ли это? Кусочек кода на Visual Basic, кусочек на Java, кусочек на C++.
А правда чтоли что техники защитного программирования во все них одинаково реализацию и смысл? Или это нужно что бы можно было продать книгу любому программисту и охватить большую ЦА?
800 страниц про абстрактные банальности? 30 страниц на главу про самодокументирование с огромной цитатой пьесы?
5. Рефакторинг. Мартин Фаулер
Помните увлечение "запахами" кода и размышления как двигать неделями переменную по всему репозиторию?
Хорошая идея и про непрерывность рефакторинга и атомарные изменения. Но всё-таки большинство примерно слишком "локальные" и мелкие.
Половина книги про:
-Ооо, в метода можно добавить параметр
-Ооо, из метода его можно удалить
-Ооо, его можно переименовать
Ну да.
Мне эти книги больше нравятся чем нет. Они дают простые ответы на сложные вопросы и дают понятные рецепты и трюки которые можно просто делать. Но не даёт ли это иллюзию компетенции и понимания?
Пишу больше про IT, разработку игр и создание своего издательства в Steam у себя в телеграмме - https://t.me/+bU8GgJY66DUxNzAy