На каком языке программирования вы бы писали новый проект с нуля
Что проверяют
Умеете ли вы выбирать инструмент под задачу и команду, а не по привычке. На позиции Go разработчика ждут, что вы назовёте Go, но ценят ответ, где сначала идут требования, и только потом язык.
Как отвечать
Начните с вопросов, которые определяют выбор: что за нагрузка (сетевой сервис, пакетная обработка, утилита), какие сроки, что уже умеет команда, кто будет это сопровождать, есть ли требования по задержкам и памяти, куда деплоим.
Дальше назовите Go и скажите, что именно он закрывает:
- один статический бинарник, образ без рантайма и зависимостей;
- дешёвая конкурентность через горутины и каналы, понятная модель работы с отменой через
context; - сборщик мусора с короткими паузами, предсказуемое поведение под нагрузкой;
- быстрая сборка и сильная стандартная библиотека для HTTP и работы с сетью;
- единый стиль благодаря
gofmtи статическим проверкам, что дешевле на больших командах.
Сильный ход, это назвать, когда бы вы Go не взяли. Тяжёлая аналитика и модели: Python. Жёсткие требования к задержкам без пауз сборщика: Rust или C++. Много бизнес-правил и корпоративных интеграций: JVM-стек с готовыми фреймворками. Интерфейс: выбор диктует платформа.
Где спотыкаются
Продают Go как универсальный ответ и не могут назвать ни одного минуса. Минусы называются спокойно: многословная обработка ошибок, дженерики появились позже языка, поэтому часть библиотек написана через пустой интерфейс, узкие ниши бедны готовыми решениями.
Уходят в перечисление любимых библиотек вместо критериев. Собеседник хочет услышать, как вы принимаете решение, а не список зависимостей из последнего проекта.
Забывают про людей и поддержку. Язык, который в компании знает один человек, это риск найма и риск дежурств. Упоминание команды, экспертизы и инфраструктуры отличает инженера от энтузиаста.