- PVSM.RU - https://www.pvsm.ru -
Я ориентируюсь на изучение, а не на результат, здесь быстро результатов не добьешься, главное — понимать, что нужно сделать.
Сейчас в IT есть четкое разделение:
«Программисты» — это те, кто считает, что достаточно изучить пару библиотек и закрыть задачи в Jira. Их аргументы таковы:
«Математика не нужна»
«Английский не нужен»
«Computer Science — для ученых»
и другая чушь
Инженеры — это те, кто годами разбирался в алгоритмах, аппаратном обеспечении и распределенных системах, потому что без этого невозможно создавать сложные решения.
А что насчет DDD? Может тоже стоит изучить?
Проблема в том, что первых стало больше, и они ухудшают ситуацию в отрасли. Их код — это костыли, их системы падают под нагрузкой, а их главный навык — поиск в Google Stack Overflow или в ИИ
Ложный общий доступ: Когда два потока записывают данные в разные переменные одной и той же строки кэша (64 байта), производительность падает в 10–100 раз.
NUMA: Доступ к «чужой» памяти в системах с несколькими сокетами может быть в 3–5 раз медленнее
Шаблоны предварительной выборки : Как написать код, чтобы аппаратная предварительная выборка работала на вас
RCU (Read‑Copy‑Update): Как ядро Linux обрабатывает синхронизацию на более чем 100 ядрах
Seqlocks: Оптимизация для сценариев с большим объемом чтения (и почему это не подходит для всех случаев)
Порядок расположения памяти на разных архитектурах: x86-TSO против ARM/POWER (почему ваш код без блокировки будет взломан)
Неопределенное поведение (UB): Как -O3 превращает «рабочий» код в нерабочий
Правило «как если бы»: Почему компилятор может изменять порядок операций
Подводные камни встроенного ассемблера : Почему «asm volatile» не всегда достаточно
TCP_NOTSENT_LOWAT: Как уменьшить задержки в 2–3 раза с помощью настроек сокета
eBPF/XDP: Обработка пакетов в ядре до того, как они попадут в пользовательское пространство
QUIC против TCP : почему HTTP/3 не является панацеей (и когда это хуже)
JIT‑распыление : Как движки JS используются с помощью тепловых схем
Rowhammer: Чтение/ запись в память без доступа с помощью физических воздействий
Атаки на спекулятивное выполнение : Почему защита снижает производительность на 30–50%
Счетчики PMU: Как правильно интерпретировать perf stat (не все показатели одинаково полезны)
Кэши VIPT : Почему выравнивание по‑разному важно в ARM и x86
MLP (параллелизм на уровне памяти) : Как измерить и улучшить
Когда вы изучаете:
Порядок памяти в C++ → начинаете замечать скрытые условия гонки в распределенных системах
Предварительная выборка шаблонов процессора → прогнозирование узких мест в алгоритмах перед профилированием
Внутренние компоненты QUIC → автоматически учитывают компромиссы при разработке API
Это не отдельные знания — это единая система, где каждая тема дополняет другие.
Криптография + оптимизация:
Знание AES‑NI → помогает оптимизировать завершение работы по протоколу SSL (в 5–8 раз быстрее)
Сети + безопасность:
Понимание Повторной сборки TCP→ позволяет находить уязвимости в IDS/IP‑адресах
Компиляторы + распределенные системы:
Знание Оптимизации LLVM→ поможет вам создавать эффективные сериализаторы для RPC
«Программист», который изучал только:
REST API → не увидит проблему с блокировкой заголовка строки в HTTP/2
Базовый SQL → не поймет, как слияние индексов снижает производительность
Примитивные блокировки → не распознает эффект конвоя в системах с высокой нагрузкой
Ситуация: Платежный сервис теряет транзакции при загрузке.
Обычный разработчик:
Добавит логи
Увеличит время ожидания
Инженер:
Проверьте RCU в ядре (конфликтует с приложением)
Проанализируйте потерю пакетов PCIe с помощью perf
Найдите проблемы TSO/GRO в сетевом стеке
Устраните их с помощью eBPF + барьеров памяти**
Когда вы инвестируете в:
Глубокое понимание аппаратного обеспечения → вы начинаете «чувствовать» производительность
Анализ атак → проектирование систем с учетом требований безопасности
Стандарты чтения → предвидеть крайние случаи до того, как они появятся
Речь идет не о «большем количестве знаний», а о качестве .
Я не хочу слишком растягивать пост, потому что, по‑моему, идея ясна. уж слишком все очевидно
и таких примеров много
Автор: dima853
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/425604
Ссылки в тексте:
[1] мышления: http://www.braintools.ru
[2] Источник: https://habr.com/ru/articles/929124/?utm_source=habrahabr&utm_medium=rss&utm_campaign=929124
Нажмите здесь для печати.