Найти в Дзене
Шаг программиста

Как изучение Computer Science изменило моё понимание программирования

Сейчас я читаю только техническую литературу. В работе параллельно идут две книги: Книга Блада Стоуна оказалась для меня скорее повторением пройденного. Полгода назад я углубился в основы Computer Science — прошёл 13-часовой курс (по 3 часа на урок), и это полностью перевернуло моё восприятие программирования. Раньше для меня многое было «магией»: как код превращается в исполняемые команды, почему одни операции быстрее других, как память распределяется между процессами. Теперь же я вижу «кухню»: Книга же оказалась слишком базовой — вероятно, потому, что курс уже дал мне этот фундамент. Но для новичков, думаю, она будет полезной. Вторую книгу — «Высоконагруженные приложения» — я только начал, но она сразу захватила. Там разбираются принципы масштабирования, распределённые системы, trade-off между согласованностью и доступностью. Поскольку тема объёмная и практичная, я решил разобрать её в отдельном посте. Расскажу про ключевые идеи, примеры архитектур и то, как это можно применить в ре
Оглавление
Compyter-Science
Compyter-Science


Сейчас я читаю только техническую литературу. В работе параллельно идут две книги:

  1. «Теоретический минимум по Computer Science» — Блад Стоун
  2. «Высоконагруженные приложения»

Теоретический минимум: почему книга не удивила

Книга Блада Стоуна оказалась для меня скорее повторением пройденного. Полгода назад я углубился в основы Computer Science — прошёл 13-часовой курс (по 3 часа на урок), и это полностью перевернуло моё восприятие программирования.

Раньше для меня многое было «магией»: как код превращается в исполняемые команды, почему одни операции быстрее других, как память распределяется между процессами. Теперь же я вижу «кухню»:

  • Понимаю, как языки программирования работают под капотом (байт-код, компиляция, интерпретация).
  • Вижу связь между алгоритмами и железом (кэши процессора, branch prediction, сложность операций).
  • Перестал бояться низкоуровневых концепций — например, теперь могу рассуждать о том, как на самом деле работают указатели или системные вызовы.

Книга же оказалась слишком базовой — вероятно, потому, что курс уже дал мне этот фундамент. Но для новичков, думаю, она будет полезной.

Высоконагруженные приложения: тема для отдельного разговора

Вторую книгу — «Высоконагруженные приложения» — я только начал, но она сразу захватила. Там разбираются принципы масштабирования, распределённые системы, trade-off между согласованностью и доступностью.

Поскольку тема объёмная и практичная, я решил разобрать её в отдельном посте. Расскажу про ключевые идеи, примеры архитектур и то, как это можно применить в реальных проектах.

Почему Computer Science — это важно

Раньше я просто писал код, но теперь понимаю, почему он работает именно так. Это как перейти от слепого набора команд к осознанному проектированию:

  • Меньше «хаков» — больше решений, основанных на знаниях.
  • Лучшая оптимизация — вижу узкие места ещё на этапе проектирования.
  • Чёткое представление о стеке технологий — от транзисторов до Kubernetes.

Если раньше я плавал в терминах вроде «виртуальная память» или «аллокация», то теперь могу объяснить это кому-то другому. И это круто!

А вы замечали, как теория меняет ваш подход к коду?