3.0Kпросмотров
8 июля 2025 г.
question📷 ФотоScore: 3.3K
Go как первый язык программирования? Golang долгое время считался исключительно языком свитчеров, т.е. людей которые уже имеют опыт в программировании и хотят изменить стек. На мой взгляд это было актуально несколько лет назад и сейчас ситуация меняется. Сегодня попробую порассуждать на тему того имеет ли смысл изучать Golang первым языком программирования. Начнем с исследований:
1️⃣ devcrowd проводили опрос Golang разработчиков в 2024 году. Советую ознакомиться, по моему довольно интересное исследование. В данном контексте нас интересует ответ на вопрос "Кем вы работали непосредственно перед тем как стать Go-разработчиком?".
Только 66% опрошенных уже работали разработчиком до перехода на Go. При этом для ~30% опрошенных работа Go-разработчиком было либо первой работой, либо до этого они работали кем-то другим (не разработчиком, не QA, не DevOps). Выходит что для трети текущих гошников - это первый язык программирования. Много это или мало - вопрос дискуссионный. На мой взгляд это достаточная цифра, чтобы рассматривать этот язык для начала своей карьеры в IT.
2️⃣ Теперь рассмотрим данные с парсера вакансий на hh. На графике показана отношение между вакансиями и резюме Go разработчиков на hh в сравнении с другими стеками бэкенда. Мы видим что, несмотря на то что в Go конкуренция стремительно выросла за последний год - она все еще заметно ниже чем в Java, PHP, Python и C# (не говоря о фронтенде). По некоторым стекам конкуренция выше в 2 раза. Я считаю это делает Go хорошим кандидатом для первого языка за счет более простого поиска работы, даже учитывая текущую ситуацию на рынке труда. Теперь поговорим о популярных тезисах которые отговаривают учить Go первым языком:
🔸 Go это про хайлоад, бигтехи, микросервисную архитектуру, многопоточность - это всё явно будет перегруз по информации для новичка.
С одной стороны это так - большинство вакансий в сфере связаны с микросервисами, высокими нагрузками, брокерами сообщений. Но при этом все равно существуют вакансии в которых на Go пишут типичные REST API круды, хоть их и меньше. Так же по сути этот тезис говорит о том что "нужно больше знаний для работы, чем для типичного джангиста на Python". Думаю это действительно так, но на практике это означает что нужно просто закладывать на обучение несколько дополнительных месяцев. 🔸 Вакансий на Go в несколько раз меньше чем на других языках, а меньше доступных вакансий - меньше собесов.
Это тоже правда, вакансий меньше - но и конкуренция меньше. По моему опыту, когда я перекатывался в Go - получить N собесов было проще чем такое же количество собесов на фронтендера, следовательно, легче научиться проходить эти собеседования. 🔸 Пройти собеседование на Go разработчика сложнее - нужно знать много чего кроме самого Go, базы данных, кафку, систем дизайн.
По моему опыту - подготовится к собеседованию на Go оказалось проще чем на собеседование на фронтендера. Я для подготовки к собеседованиям использовал подход со шпаргалкой и записью в конспект самых популярных вопросов с собеседований. Для переката в Go в моей шпаргалке накопилось около 100 вопросов, при этом ~80% из них - это вопросы по базе Golang, многопоточности и сетям. Остальные 20% это вопросы по БД, микросервисам, кафке и тд. Иногда таких вопросов вообще не было. При этом в шпаргалке для собесов на фронтендера - собралось около 250 вопросов. С одной стороны эти вопросы могут быть сложнее, особенно учитывая многопоточность - но самих вариаций вопросов меньше, в итоге подготовится к собеседованиям занимает меньше времени. Систем дизайн меня спрашивали только на вакансии с грейдом Senior. Учитывая эти факторы и потребность компаний в Go разработчиках - Я считаю что Golang постепенно перестанет быть языком свитчеров и еще через пару лет станет в один ряд с типичными для новичков языками как JS, Python, Java, PHP и прочие. Если вы сейчас на этапе выбора своего первого языка - я рекомендую не проходить мимо Go и рассмотреть его как кандидата на изучение.