102 lines
No EOL
7.3 KiB
Markdown
102 lines
No EOL
7.3 KiB
Markdown
**Великая (Последняя) теорема Ферма:** $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` форматы).
|
||
|
||
**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.
|
||
* Графы — если пишете социальные сети, карты или системы зависимостей.
|
||
* **Модульная арифметика и Теория чисел:**
|
||
* То, что мы обсуждали выше (простые числа, остатки от деления).
|
||
* Основы криптографии (Хэширование, RSA, Эллиптические кривые).
|
||
|
||
**Ops/Highload:**
|
||
* **Статистика для мониторинга:**
|
||
* Перцентили (p50, p95, p99) — почему "среднее время ответа" лжет.
|
||
* Гистограммы распределения запросов.
|
||
|
||
***
|
||
|
||
### 4. Frontend (SSR) разработчик
|
||
Обычно математики тут меньше всего, если вы не делаете WebGL-игры или сложные дашборды.
|
||
|
||
**Must Have:**
|
||
* **Базовая геометрия:**
|
||
* Координаты (x, y), ширины, высоты.
|
||
* Box Model (сложение отступов).
|
||
* **Пропорции и проценты:**
|
||
* Aspect Ratio, расчет резиновой верстки (`flex-grow`).
|
||
|
||
**Advanced (Анимации и Графика):**
|
||
* **Тригонометрия:**
|
||
* `Sin`, `Cos`, `Atan2` — если нужно вращать элементы или рисовать на `<canvas>`.
|
||
* **Интерполяция:**
|
||
* Кривые Безье (как работают `ease-in-out` анимации).
|
||
* Линейная интерполяция (Lerp) для плавных переходов цветов или позиций.
|
||
* **Матрицы трансформаций (CSS transform):**
|
||
* Понимание, как работает `matrix3d()` для 3D-эффектов в браузере.
|
||
|
||
### Итог: Что учить в первую очередь?
|
||
|
||
Учитывая твой профиль (Rust, Backend, Systems):
|
||
1. **Bitwise operations** (для низкоуровневых оптимизаций).
|
||
2. **Big O & Data Structures** (деревья, хэш-мапы — база бэкенда).
|
||
3. **Модульная арифметика** (для понимания криптографии и алгоритмов типа того же Миллера-Рабина).
|
||
4. **Статистика (перцентили)** — чтобы грамотно делать дашборды мониторинга для своих сервисов. |