Ответ на пост «Computer Science | что читать/смотреть»1

Хороший материал — видно, что писал человек, который реально прошёл через CS, а не просто насмотрелся YouTube-«университетов».

Но если смотреть глазами 2025-го, часть подборки уже тянет на "золотую классику", а не на живую практику. Это неплохо — фундамент вечен, но сегодня CS уже не заканчивается на Петцольде и Таненбауме.

Хочется добавить пару «апгрейдов сознания»:
— после CS50 и «Кода» Петцольда стоит пройти Nand2Tetris — это как LEGO для мозга: из NAND-гейтов до своей ОС;
CS:APP (Computer Systems: A Programmer’s Perspective) заменяет три курса по системам сразу — C, память, ассемблер, ELF, потоки;
Crafting Interpreters — если хочется понять, как реально рождаются языки, а не просто выучить очередной синтаксис;
Kleppmann, "Designing Data-Intensive Applications" — это то, что отличает инженера XXI века от вечного студента;
— ну и без Linux Kernel Programming (6.x) и Distributed Systems сейчас ни один CS не считается «полным».

В целом, отличная база. Просто уже пора переходить от «читать и смотреть» к «строить и понимать». Потому что настоящий Computer Science начинается не в учебнике — а в тот момент, когда у тебя впервые падает собственный планировщик потоков, и ты такой: «ага, вот оно, счастье инженера».

1
Автор поста оценил этот комментарий

Никто не спорит: понимать принципы (регистры, стек, вызовы, память) — это маст-хэв

Я спорю. Нужно это лишь ддя 2-3% задач в индустрии. Для подавляющего большинства программистов это даже понимать не нужно

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Нужно это лишь для 2-3% задач в индустрии


Для каких задач?

показать ответы
2
Автор поста оценил этот комментарий

рассказал про системное программирование, а не про все 72 специализации CS сразу

Человек, если я не ошибаюсь, имел целью поста озвучить теоретическую базу CS, а не базу по системному программированию? Его пост назывался "Computer Science | что читать/смотреть". Зачем мне слушать человека, показавшего, что он не знает, где лежат границы доменов CS и специализаций разработчиков, и называющего книгу дракона "абсолютный мастрид", при том что она нужна лишь единицам разработчиков, выбравшим своей специализацией компиляторы? Драгонбук это must read, а про ту же многопоточку/concurrency ни слова, ну сюр просто.


А у нас под ним — классический жанр «комментарий-наставление» из серии «ты не упомянул мою любимую область, значит, ничего не понимаешь».

Автор сам выставил себя на суд общественности, написав пост, типа помогающий разобраться в базе по CS. Я считаю себя в полном праве писать критику из 1 коммента, а также судить об уровне знаний автора по мелким, но характерным деталям.

Кроме того за ad hominem в приличном обществе бьют в лицо.


ты не упомянул мою любимую область, значит, ничего не понимаешь

И где же в своём комменте я требовал упомянуть какую-то свою любимую область?


Просто автор выбрал то, где реально понимают, как всё работает, а не просто вызывают API и молятся, чтобы заработало.

у вас очень наивное чёрно-белое разделение на системщиков, которые понимают как всё работает, и всех остальных, которые "просто вызывают API". Пусть этот системщик придёт к разработчику, специализирующемся например на 3D графике или EDA и в жизни не открывавшему книгу дракона, и покажет ему своё "понимание как всё работает а то вы тут просто API вызываете", I fucking dare you.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Да, границы CS широки, и каждый выбирает свой горизонт. Просто кто-то копает вглубь — до памяти, планировщиков и шины данных, а кто-то вширь — по фреймворкам и SDK.

Я не делил людей на «умных» и «молящихся», я говорил о том, где начинаются принципы, а не инструкции по применению.

Кстати, про “I f*cking dare you” — это, пожалуй, лучшая иллюстрация, почему споры инженеров никогда не заканчиваются мирно: у всех своя боль, и все уверены, что их боль глубже 😅

4
Автор поста оценил этот комментарий

Шли годы, но клоуны постящие свои "Теоретический минимум для программиста" не исчезали

раскрыть ветку (1)
Автор поста оценил этот комментарий

О, классика жанра — «клоуны с теоретическим минимумом» против «просвещённых старцев», которым уже всё известно 😄

Но не совсем понятно: если вы такой закалённый сеньор, зачем вообще читаете посты, очевидно написанные для джунов? Ностальгия по временам, когда стек ещё помещался в голове?

И, кстати, про «теоретический минимум» — штука живая. Он постоянно меняется: сегодня без сетей, DevOps и базовой AI-грамотности вы уже не «инженер», а «музейный экспонат».

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

показать ответы
1
Автор поста оценил этот комментарий

Уж не хочешь ли ты сказать что и без знания ассемблера можно программистом работать? Да ну, бред какой то

раскрыть ветку (1)
Автор поста оценил этот комментарий

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

Ассемблер — это как рентген: видеть через слои полезно, но жить в режиме «просвечивания» 24/7 — опасно для психики и продуктивности.

Никто не спорит: понимать принципы (регистры, стек, вызовы, память) — это маст-хэв. Но писать руками MOV EAX, EBX для CRUD-сервиса или фронта — примерно как чинить микроволновку с помощью осциллографа: можно, но зачем.

Так что да, ассемблер — это как хорошее вино: знать вкус стоит, но пить ведрами — сомнительное удовольствие.

показать ответы
0
Автор поста оценил этот комментарий

Ты б прежде чем позориться, хотяб загуглил, про что речь. это раз


Твои советы для джинов не просто бесполезны, они тупа вредны. это два


Средний джун столкнется с хитрым запросом на sql гораздо-гораздо вероятнее, чем в необходимостью знать как там устроен исполняемый файл в линуксе.


Про написания своего языка эта ваще мем какой-то, в той книжке нету теории и сакрального знания который ты должен знать, прежде чем садиться писать язык программирования. Без этого ты быстро напишешь Perl, который невозможно парсить и читать. Я у ж молчу, что среднестатистическому программисту эта задача встречается только в универе.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Спокойно, боец 🙂

Я, собственно, нигде не предлагал джунам начинать карьеру с реверса ELF и написания компилятора на коленке. Речь шла о том, что CS — это не “как пройти собес на SQL”, а понимание, почему всё вообще работает.

Никто не заставляет джуна разбираться в секциях .bss или писать свой язык — но если он хочет стать инженером, а не только оператором фреймворков, без базовых CS-принципов он просто упрётся в потолок через год-два.

Кстати, насчёт “позориться” — спасибо за заботу, но я пока держусь 🙂

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

Пусть каждый сам решает, что ему ближе — понимать, что делает SQL-парсер, или просто наугад менять JOIN на LEFT JOIN, пока “работает”.

В конце концов, CS — это не религия. Это просто способ понимать, почему твоё чудо-фреймворк вообще запускается, а не считать это магией.

1
Автор поста оценил этот комментарий

писал человек, который реально прошёл через CS

Одна маленькая проблема - в процессе своего прохождения через CS он умудрился не узнать, что есть специализации помимо системного программирования

раскрыть ветку (1)
Автор поста оценил этот комментарий

Ну да, страшное дело — человек рассказал про системное программирование, а не про все 72 специализации CS сразу. Преступление против науки, не иначе 😄

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

Критиковать — вообще самое надёжное направление в IT: знаний минимум, уверенности максимум, фреймворков не нужно.

Так что давайте честно — написать живой, полезный пост про CS сложнее, чем оставлять «умные ремарки» под ним.
А заодно — да, CS шире системного программирования. Просто автор выбрал то, где реально понимают, как всё работает, а не просто вызывают API и молятся, чтобы заработало.

показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества