Содержание:
Универсального «компьютера для программиста» не существует. Фронтендеру и ML-инженеру нужны принципиально разные машины. Ниже три уровня по типу задач, чтобы не переплачивать за ненужное и не упираться в нехватку ресурсов.
Уровень 1. Веб, скрипты, бэкенд без тяжёлых окружений
Типичные задачи: JavaScript и TypeScript, Python, PHP, несколько вкладок с документацией, локальный сервер, пара контейнеров.
Что важно:
- процессор с 6-8 производительными ядрами;
- 32 ГБ оперативной памяти: браузер, IDE и Docker вместе быстро съедают 16 ГБ;
- NVMe SSD на 1 ТБ;
- встроенной графики или простой видеокарты хватает, если не нужно больше двух мониторов.
Уровень 2. Мобильная разработка, крупные проекты, виртуализация
Типичные задачи: Android Studio с эмулятором, Java и Kotlin, C++ и C#, большие монорепозитории, несколько виртуальных машин, Kubernetes на локальной машине.
Что важно:
- 12-16 ядер: компиляция хорошо распараллеливается, и время ожидания сокращается заметно;
- 64 ГБ памяти, чтобы эмуляторы и виртуалки не вытесняли друг друга;
- быстрый SSD на 2 ТБ, потому что зависимости, кэши и образы контейнеров занимают много места;
- видеокарта среднего уровня, если планируется разработка игр.
Уровень 3. Машинное обучение, данные, геймдев на движках
Типичные задачи: обучение и дообучение моделей, локальные LLM, обработка больших датасетов, Unreal Engine 5.
Что важно:
- видеокарта NVIDIA с максимальным объёмом видеопамяти, который позволяет бюджет: CUDA остаётся стандартом для большинства ML-фреймворков;
- 64-128 ГБ оперативной памяти;
- несколько NVMe: отдельно система, отдельно датасеты;
- для серьёзных нагрузок платформа уровня Threadripper с большим числом линий PCIe.
Пара деталей, о которых вспоминают поздно
Тишина важна: программист проводит за компьютером весь день, и шум вентиляторов под компиляцией утомляет. Второй момент это мониторы: два экрана или один широкоформатный дают больше пользы, чем лишние ядра.
Готовые конфигурации под эти сценарии собраны в разделе компьютеров для программирования.
