7.3 KiB
Великая (Последняя) теорема Ферма: a^n + b^n = c^n не имеет решений в целых числах для n > 2.
Малая теорема Ферма: Если p — простое число, то для любого целого a: a^p \equiv a \pmod p.
Это отличный вопрос. В IT "математика" — понятие растяжимое. Кому-то нужно считать интегралы, а кому-то достаточно понимать, как работает остаток от деления.
Вот "дорожная карта" математических тем, отфильтрованная по реальным задачам, а не университетской программе.
1. Embedded-разработчик (Rust/C)
Здесь математика очень "железная". Вам нужно понимать, как числа живут в памяти и как физика переходит в цифру.
Must Have (Обязательно):
- Булева алгебра и Битовая магия:
- Операции
AND,OR,XOR,NOT, сдвиги (<<,>>). - Маскирование битов (установка/сброс конкретных флагов в регистрах).
- Понимание Little-endian vs Big-endian.
- Операции
- Системы счисления:
- Свободное чтение Hex (0xFF) и Bin (0b1010).
- Представление отрицательных чисел (Two's complement).
- Арифметика с фиксированной точкой (Fixed-point arithmetic):
- Как считать дробные числа на процессорах без FPU (например,
Q15,Q31форматы).
- Как считать дробные числа на процессорах без FPU (например,
Advanced (Для серьезных задач):
- Цифровая обработка сигналов (DSP):
- Преобразование Фурье (FFT) — если работаете со звуком или радио.
- Цифровые фильтры (Калмана, PID-регуляторы) — если управляете дронами, моторами или температурой.
2. ML-инженер (Python — архитектура, Rust — инференс/оптимизация)
Тут математика — это основной рабочий инструмент. Без неё вы просто "импортер библиотек".
Must Have (Фундамент):
- Линейная алгебра (Царица ML):
- Матричное умножение, векторы, тензоры.
- Размерности пространств (понимание, почему
[3, 512] * [512, 10]работает, а наоборот — нет). - Собственные векторы и значения (Eigenvectors) — для PCA и сжатия данных.
- Мат. анализ (Calculus):
- Градиенты и частные производные (суть Backpropagation).
- Цепное правило (Chain rule).
- Понимание того, что такое локальный минимум и седловая точка.
- Теория вероятностей и Статистика:
- Распределения (Нормальное, Бернулли, Пуассона).
- Байесовская теорема.
- Метрики (Precision, Recall, F1-score, ROC-AUC).
Rust Specific (Для оптимизации):
- Численные методы: Как хранить
f32/f16так, чтобы не потерять точность при миллионе сложений (проблемы float point arithmetic). - SIMD-математика: Параллельные вычисления векторов на CPU.
3. Backend-разработчик
Здесь математика нужна для оценки нагрузки, защиты данных и правильной работы с деньгами.
Must Have (Повседневность):
- Асимптотический анализ (Big O):
- Понимать разницу между
O(N),O(N \log N)иO(N^2). - Понимать Cost Model (почему чтение из RAM быстрее чтения с SSD в математических порядках).
- Понимать разницу между
- Дискретная математика (Графы и Множества):
- Теория множеств (Set theory) — это база SQL (
JOIN,UNION,INTERSECT). - Деревья (B-Tree, LSM-Tree) — чтобы понимать, как работают индексы в PostgreSQL.
- Графы — если пишете социальные сети, карты или системы зависимостей.
- Теория множеств (Set theory) — это база SQL (
- Модульная арифметика и Теория чисел:
- То, что мы обсуждали выше (простые числа, остатки от деления).
- Основы криптографии (Хэширование, RSA, Эллиптические кривые).
Ops/Highload:
- Статистика для мониторинга:
- Перцентили (p50, p95, p99) — почему "среднее время ответа" лжет.
- Гистограммы распределения запросов.
4. Frontend (SSR) разработчик
Обычно математики тут меньше всего, если вы не делаете WebGL-игры или сложные дашборды.
Must Have:
- Базовая геометрия:
- Координаты (x, y), ширины, высоты.
- Box Model (сложение отступов).
- Пропорции и проценты:
- Aspect Ratio, расчет резиновой верстки (
flex-grow).
- Aspect Ratio, расчет резиновой верстки (
Advanced (Анимации и Графика):
- Тригонометрия:
Sin,Cos,Atan2— если нужно вращать элементы или рисовать на<canvas>.
- Интерполяция:
- Кривые Безье (как работают
ease-in-outанимации). - Линейная интерполяция (Lerp) для плавных переходов цветов или позиций.
- Кривые Безье (как работают
- Матрицы трансформаций (CSS transform):
- Понимание, как работает
matrix3d()для 3D-эффектов в браузере.
- Понимание, как работает
Итог: Что учить в первую очередь?
Учитывая твой профиль (Rust, Backend, Systems):
- Bitwise operations (для низкоуровневых оптимизаций).
- Big O & Data Structures (деревья, хэш-мапы — база бэкенда).
- Модульная арифметика (для понимания криптографии и алгоритмов типа того же Миллера-Рабина).
- Статистика (перцентили) — чтобы грамотно делать дашборды мониторинга для своих сервисов.