Посмотрим правде в глаза, книги по программированию — отстой. Эти общие книги по распределённым системам, науке о данных и так далее — их можно читать бесконечно. Но за редким исключением у практических руководств по языку/фреймворку/СУБД/кексопечке есть нечто общее. Зверюшка на обложке, примеры вычурных приложений, они так легко забываются, так банальны, настолько… ничему не учат.
Думаю, я наконец-то понял, почему они мне не нравятся. И не только потому что они учат навыкам, которые скоро станут устаревшими. Это их педагогический подход в целом. Алгоритм обучения как будто такой: напиши эти программы, где мы говорим всё, что нужно сделать, и теперь ты знаешь этот язык/фреймворк/базу данных/кексопечку. Главное в этих книгах — длинные листинги кода, которые читатель должен воспроизвести. Вот пример из
одной из лучших книг этой категории.
class User < ApplicationRecord
attr_accessor :remember_token
before_save { self.email = email.downcase }
validates :name, presence: true, length: { maximum: 50 }
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :email, presence: true, length: { maximum: 255 },
format: { with: VALID_EMAIL_REGEX },
uniqueness: { case_sensitive: false }
has_secure_password
validates :password, presence: true, length: { minimum: 6 }
# …далее ещё 30 строчек...
end
Традиционно есть два способа изучить такую страницу:
- Ввести каждую строку кода вручную.
- Скопипастить код с их сайта, возможно, поиграться и внести небольшие изменения.
В первом случае, как и в лекциях, код переходит со страницы книги на экран читателя, минуя мозг. Второй вариант — это как пытаться собирать автомобили, разбирая ремень безопасности и стереосистему: вы просто играетесь с маленькими кусочками. Оба варианта не подходят для обучения.