Знание должно быть доступно!

Путь /Программирование/Языки/Golang

1. Основы языка

  1. Установка и настройка окружения

    • Установка Go
    • Настройка GOPATH и GOROOT
  2. Синтаксис

    • Переменные и константы
    • Типы данных (int, float, string, bool и т.д.)
    • Операторы (арифметические, логические, побитовые)
  3. Управляющие конструкции

    • Условия (if, else, switch)
    • Циклы (for, break, continue)
    • Функции (определение, параметры, возвращаемые значения)

2. Углубленное изучение

  1. Структуры и методы

    • Определение структур (struct)
    • Методы структур
    • Встраивание (embedding)
  2. Интерфейсы

    • Определение интерфейсов (interface)
    • Реализация интерфейсов
    • Пустой интерфейс и приведение типов
  3. Ошибки

    • Обработка ошибок (error)
    • Пакет errors
    • Пользовательские ошибки

3. Пакеты и модули

  1. Работа с пакетами

    • Импорт пакетов
    • Создание собственных пакетов
  2. Модули

    • Создание модулей
    • Управление зависимостями (go.mod, go.sum)

4. Работа с данными

  1. Массивы, срезы и карты

    • Определение массивов и срезов
    • Работа с срезами (append, copy, len, cap)
    • Карты (map) и операции с ними
  2. Строки и руны

    • Работа со строками
    • Руны и UTF-8

5. Взаимодействие с ОС и файлами

  1. Ввод/вывод

    • Чтение и запись файлов
    • Работа с консолью (fmt, bufio)
  2. Пакет os

    • Файловая система (os.File, os.Open, os.Create)
    • Переменные окружения и команды

6. Сетевое программирование

  1. Основы сетевого программирования

    • Пакет net
    • Создание клиент-серверных приложений (TCP/UDP)
  2. HTTP

    • Пакет net/http
    • Создание HTTP-серверов и клиентов

7. Параллельное программирование

  1. Горутины и каналы

    • Запуск горутин
    • Синхронизация с помощью каналов (chan)
  2. Пакет sync

    • Mutex, WaitGroup, Once

8. Тестирование

  1. Пакет testing

    • Написание тестов
    • Запуск тестов (go test)
  2. Покрытие тестами

    • Генерация отчетов покрытия (go test -cover)

9. Работа с внешними библиотеками

  1. Подключение внешних библиотек
    • Управление зависимостями (go get)
    • Использование популярных библиотек (например, gin для веб-сервисов)

10. Оптимизация и отладка

  1. Профилирование

    • Инструменты профилирования (pprof)
  2. Отладка

    • Использование отладчиков (dlv - Delve)

11. Развёртывание и контейнеризация

  1. Сборка проекта

    • Компиляция и сборка бинарников
  2. Docker

    • Создание Docker-образов
    • Развёртывание приложений в контейнерах

Короче, хватай эту инфу и копайся по порядку. Тогда точно будешь шарить в Go и сможешь творить настоящие хакерские дела!