Ответ на вопрос
Коротко: если тебе действительно интересна низкоуровневая разработка — выбирай C++. Если цель — быстрее выйти на джун‑позицию в бэкенде/инфраструктуре с меньшим порогом входа — Go. Поскольку ты уже начал с Си/C++ и хочешь низкоуровневое — разумно фокусироваться на C++ и параллельно изучить Go как «быстрый» инструмент.
Почему так:
- C++ — сильные стороны: контроль памяти, производительность, системное/встроенное/игровое/финансовое ПО и много стажировок (Яндекс, Dr.Web и т.д.). Кривая обучения круче, но навык более «глубокий».
- Go — сильные стороны: простота, быстрый путь до продуктивности, высокая востребованность в облаке, инфраструктуре и стартапах. Меньше низкоуровневых деталей.
- Переучиваемость: освоив C++ и системные концепции, ты быстро возьмёшь любой другой язык. Обратно — знание Go даёт быстрые вакансии, но не даёт такого же глубокого понимания систем.
Практическая рекомендация (учитывая магистратуру и цель — сменить работу):
1. Основной фокус — C++: укрепи основы (системы сборки, указатели/память, RAII, шаблоны, многопоточность). Задай цель: подготовиться к стажировке за разумный срок — например полгода (\(6\) месяцев).
2. Параллельно изучи Go как вторичный инструмент: базовый синтаксис, горутины, каналы, стандартная сеть/контекст — достаточно, чтобы сделать проект и подать резюме в компании, где Go востребован.
3. Распределение времени (пример): если времени мало — \(70\%\) на C++, \(30\%\) на Go; если хочешь быстрее получить практический опыт — \(50\%/50\%\).
4. Конкретные шаги:
- Сделай 1–2 проекта на C++: небольшой сетевой сервис, парсер, или часть системы с многопоточностью.
- Сделай 1 проект на Go: простое веб‑API или микросервис с горутинами.
- Решай задачи на алгоритмы, готовь резюме, ищи стажировки/контакты в компаниях.
- Портфолио и интервью важнее языка: практический код и понимание принципов.
Итого: с твоими интересами — C++ в приоритете, Go как полезное дополнительное умение для быстрого трудоустройства и современных бэкенд/инфраструктурных задач.
Еще