– Вопрос с подвохом: можно ли изучать Go как первый язык программирования?
– На самом деле Go достаточно прост в изучении, так что осилить его смогут и новички. Опытные же разработчики переходят на Go, когда заинтересованы в более мощном инструменте, который используется для высоконагруженных и распределенных систем. Да и вообще, коэффициент сопротивления у «новеньких» будет меньше, т.к. прошаренные ребятки частенько пытаются перенести свой стиль программирования на Go. А здесь все не так просто, точнее слишком просто – все-таки мы говорим о компилируем языке + в Go статистическая типизация и жесткие правила (неиспользуемые константы и Ко).
Go держит разработчиков в определенных рамках, что позволяет коллегам из большой команды легко читать друг друга, потому что у всех один стиль и одни и те же правила написания. Это достаточно дисциплинирует. Так что в каком-то плане неопытным айтишникам будет проще вклиниться в рабочие процессы.
Единственный момент, который для новичков будет непростым – это concurrency модель, потому что любое параллельное программирование подразумевает сложности, тут всегда нужно лишний раз подумать, понять, как это работает и как это нужно использовать.
Если сравнивать с Java, то там больше аспектов, нужно больше внимания на различные синхронизации, взаимные блокировки и прочее – в Go этот момент реализован более просто и очевидно.
– Английский нужен?
– Английский нужен всегда. Хотя для Junior-разработчиков это не так критично. Во-первых, джуна без опыта никто не посадит общаться с заказчиком или партнером (основной удар в проекте на себя принимают проджект и тимлид). Во-вторых, можно инглиш прокачивать попутно. В-третьих, в Беларуси, да и в России очень много продуктовых компаний, где английский сильно не требуется.
– Теперь хотелось бы поговорить о программе курса «Go разработчик» в TeachMeSkills. Что она из себя представляет, и хватит ли ребятам полученной информации для трудоустройства?
– Да, более чем. Программа составлена лично мной с учетом многих потребностей различных компаний. В начале мы со студентами изучим синтаксис GO, основные алгоритмы, паттерны и подходы, а потом будем практиковаться, практиковаться и еще раз практиковаться. Скажу откровенно, в большинстве случаев любой язык программирования (особенно опытному спецу) можно освоить за несколько недель, а вот на закрепление навыков и выявление нюансов требуется гораздо больше времени.
Понятно, что когда ты идешь трудоустраиваться, основными критериями отбора будут: знание языка, алгоритмов и баз данных. В курсе по Go мы затронем даже больше, чем нужно джуну – в том числе доставку продукта от начала разработки до продакшена. Да и рассмотрим все аспекты, необходимые для повседневной работы вообще любого разработчика.