Привет! Меня зовут Александр Тетеркин, я Go-разработчик в VK. Раньше я писал на Python, потом перешел на Go — пишу на этом языке уже три года, а также являюсь наставником на курсе «Go-разработчик с нуля».

Я знаю, что новички в любой сфере задаются вопросами о том, с чего начать: какие инструменты самые актуальные, про что прочитать в первую очередь, о чём спросят на собеседовании на младшую позицию.

Эта статья поможет разобраться, какие навыки и инструменты необходимы начинающему разработчику на Go. Я поделюсь полезными ссылками на курсы, статьи и другие ресурсы, чтобы вы могли самостоятельно углубиться в разработку на этом языке. 


Go — язык программирования, который стал очень популярным благодаря своей простоте, эффективности и скорости выполнения. Он подходит для разработки высоконагруженных систем, веб-приложений и микросервисов. 

Помимо изучения основ языка начинающий специалист может сфокусироваться на базовых знаниях о веб-разработке, работе с базами данных и инструментах разработки:

  • Основы веб-разработки пригодятся, чтобы создавать веб-приложения на Go, работать с HTTP-запросами и REST API.

  • Знания баз данных помогут в работе с хранением и обработкой данных.

  • Инструменты разработки позволят эффективно управлять кодом, контейнеризировать приложения, оптимизировать процессы.

В этой статье мы рассмотрим не только эти пункты, но давайте пока не забегать вперед. Начнём с самых основ.

Основы программирования на Go

Первым шагом в вашем путешествии в мире разработки на Go будет изучение основ синтаксиса языка. 

Начните с изучения официальной документации, там вы найдёте все необходимые материалы для быстрого погружения в среду разработки на Go. Документация довольно обширная, но программа-минимум — прочитать раздел «Начало работы с Go». Продвигаться дальше вы можете по мере обучения.

Начало работы с Go

Если вы пока не готовы углубляться в документацию, начните с интерактивного тура по языку или бесплатного курса Практикума.

Интерактивный тур по языку

Бесплатный курс «Основы Go»

После теории нужно применить полученные знания на практике. В этом вам помогут различные платформы для программистов, их яркие представители — это Leetcode и Codewars. Они предлагают задачи по программированию для развития навыков алгоритмического мышления и практики кодирования.

На этих платформах пользователи решают задачи различной сложности, участвуют в соревнованиях и обмениваются знаниями с другими участниками. Обе платформы предлагают обучающие ресурсы и сообщество для общения с другими программистами. 

LeetCode

Codewars

Инструменты разработки

Свой код программисты пишут в специальных редакторах кода, которые также называются интегрированными средами разработки. Для написания программ на языке Go используют чаще всего GoLand или VS Code.

GoLand

Visual Studio Code

Ваша задача как программиста не только в том, чтобы написать код, — его ещё нужно правильно хранить и версионировать. С этим вам помогут системы контроля версий и платформы для управления.

Система контроля версий (VCS) — это инструмент, который позволяет отслеживать изменения в коде и управлять ими. С помощью VCS разработчики сохраняют различные версии файлов, откатываются к предыдущим версиям, управляют конфликтами изменений, работают с коллегами над одним проектом. Популярные системы контроля версий: Git, Subversion и Mercurial.

Платформы для управления проектами, такие как GitHub, GitLab и Bitbucket, предоставляют дополнительные инструменты для работы с кодом. Например, возможность создания задач, отслеживания ошибок, совместной работы и управления кодом на удалённых серверах.

Начинать изучение Git можно параллельно с изучением основ программирования на Go. Оба навыка будут взаимодополнять друг друга в процессе изучения.

Что такое Git и для чего он нужен программистам

Что такое GitHub и как он работает

Будет полезно узнать о контейнерах — разработчики пользуются ими практически всегда. Стандартом для создания, запуска и обслуживания контейнеров считается платформа Docker (она тоже написана на Go!).

Что разработчику нужно знать о контейнерах Docker

Веб-разработка

Go создавался, чтобы писать лёгкие микросервисы и запускать их в облаке, поэтому понимание основ веб-разработки — одно из самых важных умений начинающего программиста. 

Изучите основы создания веб-приложений на Go, освоив официальное руководство. Также вы можете прочитать статью на Хабре, где подробно описаны основные компоненты веб-сервера на языке Go.

Официальное руководство по созданию веб-сервера

Разработка веб-серверов на GoLang — от простого к сложному

Дока — документация на понятном языке

Базы данных

Любая информация хранится в базе данных — это актуально для всех языков программирования. Но если проанализировать вакансии на различных площадках, очевидно, что в большинстве компаний требуются знания SQL.

SQL — декларативный язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных. Если по-простому, это язык общения с базой данных.

Что такое база данных 

Как работают базы данных в IT: разбор на примерах 

Oracle: что такое база данных

Основы Computer Science 

Разберитесь, как устроены сети, как работать в консоли Linux, что такое виртуальная машина и как её запустить. Вы не только узнаете многие базовые вещи из мира компьютеров, но и поможете будущему себе успешно проходить собеседования.

Основы интернета

Туториал: что такое DNS

Основы Linux (обзор с практическим уклоном)

Знакомство с виртуальными машинами

Оптимизация и тестирование

Чтобы программа работала корректно и быстро, вы должны оптимизировать производительность кода и провести тестирование на работоспособность. Изучите методы оптимизации производительности кода на Go и освойте тестирование программного обеспечения на этом языке.

Профилирование и оптимизация программ на Go

Стратегия тестирования REST API: что именно вам нужно тестировать?

Основы тестирования Go: простые тесты, testify и визуализация покрытия

Продвинутые темы

После освоения основных навыков изучите возможности параллелизма и конкурентности, кодогенерации, дженериков. Если есть мотивация и желание, напишите тестовый проект, чтобы закрепить все темы. Например, вы можете написать сокращатель ссылок по типу Bitly.

Конкурентность в Go простым языком

Как писать кодогенераторы в Go

Дженерики в языке Go

Итак, эти ресурсы и рекомендации помогут вам освоить необходимые навыки и инструменты для старта в мире Go-разработки. 

Комментарии (0)