Сборка

Научись программировать, собирая настоящие вещи

Курс Go для тех, кто никогда не писал код. Восемь проектов: от первой строчки до своего веб-сервера. Наставник Гоша подсказывает, но решать будешь сам.

Ничего не нужно устанавливать15 минут в деньПолностью на русском
Глава 3 · Список дел шаг 4 из 12
main.go Запустить Проверить
func add(todos []string, item string) []string {
todos = append(todos, "item")
return todos
}
func main() {
todos := []string{"купить хлеб"}
todos = add(todos, "выучить Go")
Список длиннее на один — прошёл
Новое дело — последнее — не прошёл Почему?
ГошаAI-наставник
Почему последним стало «item»?
Посмотри на строку 6 — я её подсветил. Что ты передаёшь вторым аргументом: переменную item или слово в кавычках?
Спроси Гошу…
Исправил сам — тест прошёл

Что ты соберёшь

Каждая глава заканчивается работающей программой, которую написал ты. Не «прошёл тему», а «собрал бота». Вот все восемь.

  1. 1

    Генератор паролей

    Первая программа: печатает надёжный пароль нужной длины.

    $ go run main.go -len 16
    Готово: x7#Lq9!vT2mR@pZ4
    переменные строки fmt
  2. 2

    Калькулятор чаевых

    Делит счёт на компанию и не обижает официанта.

    Сумма счёта: 2 340
    Человек: 3
    С каждого: 858 ₽
    типы функции if / else
  3. 3

    Список дел в терминале

    Хранит дела, добавляет и вычёркивает.

    $ todo add "выучить Go"
    1. купить хлеб
    2. выучить Go
    срезы циклы map
  4. 4

    Дневник привычек

    Сохраняет отметки в файл и считает серию.

    $ habit done "бег"
    бег — 12 дней подряд
    сохранено в habits.json
    структуры JSON файлы
  1. 5

    Погодный бот для Telegram

    Спрашиваешь город — отвечает прогнозом из настоящего API.

    Ты: Казань
    Бот: +24°, ясно, ветер 3 м/с
    HTTP JSON ошибки
  2. 6

    Сокращатель ссылок

    Свой веб-сервер: короткие ссылки и счётчик переходов.

    POST /shorten
    201 {"short": "/s/k7Qx"}
    net/http обработчики тесты
  3. 7

    Параллельный загрузчик

    Десять файлов одновременно — зачем вообще нужен Go.

    [1/10] 1.2 МБ 0.3 с
    [2/10] 0.8 МБ 0.3 с
    … все 10 за 0.4 с
    горутины каналы
  4. 8

    Финал: сервис заметок с API

    Сервер, база, тесты — и ссылка, которую не стыдно показать.

    $ deploy
    Живёт: notes-ivan.sborka.app
    проект целиком деплой

Как проходит один шаг

Шаг занимает 5–10 минут. Короткое объяснение, немного кода и проверка, которая говорит, что именно не так. Ни лекций на час, ни «посмотрите видео».

1Читаешь две минуты

Одна идея за шаг, без воды. Непонятное слово? Выдели его и попроси Гошу объяснить проще.

Срез умеет растиВ Go есть функция append. Она не меняет срез на месте, а возвращает новый — его нужно сохранить в переменную.
Задание: допиши функцию add

2Пишешь код сам

Редактор прямо в браузере. Без автодополнения, которое пишет за тебя: руки должны запомнить.

func add(todos []string, item string) []string {
	todos = append(todos, item)
	return todos
}

3Тесты проверяют

Не «правильно / неправильно», а что именно ожидалось и что получилось. Прошло, значит шаг засчитан.

Список длиннее на один — прошёл
Старые дела на местах — прошёл
Новое дело — последнее — прошёл
Шаг 4 из 12 собран · +1 к серии

Гоша — наставник, который не даёт ответов

Это AI, и он честно об этом говорит. Его задача в том, чтобы ты дошёл до решения сам: он задаёт вопросы, переводит ошибки на человеческий и разбирает код после того, как тесты прошли.

Говорит первым, когда тема новая

Одна фраза в начале шага: что изменилось и где подвох. На проверочных задачах молчит.

Отвечает вопросом и показывает строку

Подсвечивает место в твоём коде и спрашивает, что там происходит. Готовое решение не пишет, даже если очень попросить.

Подсказки по лестнице

Ориентир → похожий пример → разбор твоих строк. Следующая ступень открывается после попытки, а не по клику.

Ревью после зелёных тестов

Когда всё прошло, Гоша показывает, как это написал бы опытный Go-разработчик — и почему.

Почему так строго. В эксперименте с ~1 000 школьников свободный доступ к ChatGPT поднял результаты на практике, но на контрольной без AI они оказались на 17 % ниже, чем у группы без помощи. Версия «только подсказки» подняла практику и не навредила контрольной. Bastani и др., PNAS, 2025
Напиши за меня эту функцию, я устал
AIГоша
Понимаю, уже третья попытка. Но если напишу я, завтра ты опять будешь на этом же месте. Давай короче: тест говорит, что последним стало «item». В твоей строке 7 item стоит в кавычках. Что Go делает с текстом в кавычках?
Если хочешь, открою вторую ступень — разберём такую же ошибку на другом примере.
  • Ориентир Куда смотреть
  • Похожий пример Та же ошибка, другая задача
  • Разбор твоих строк После ещё одной попытки

Почему первый язык — Go

Маленький язык

25 ключевых слов. Через месяц ты прочитаешь любой Go-код, а не только свой.

Один способ сделать правильно

Форматирование, ошибки, структура проекта: Go решил это за тебя. Меньше споров, больше сборки.

Сразу настоящие вещи

Веб-сервер на Go занимает десять строк стандартной библиотеки. Боты, сервисы, утилиты для терминала — всё, на чём работает бэкенд.

package main

import (
	"fmt"
	"net/http"
)

func main() {
	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		fmt.Fprintln(w, "Привет! Это мой сервер.")
	})
	http.ListenAndServe(":8080", nil)
}
// глава 6: сокращатель ссылок начинается отсюда

Вопросы

Нужно что-то устанавливать?

Нет. Код пишется и запускается в браузере. В седьмой главе покажем, как поставить Go на свой компьютер — к тому моменту ты будешь к этому готов.

Я гуманитарий и не дружу с математикой. Подойдёт?

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

Сколько времени займёт весь курс?

96 шагов по 5–10 минут. При 15 минутах в день это около двух месяцев, при 30 минутах примерно месяц. Карта курса показывает оценку исходя из твоего темпа.

Гоша может решить задачу за меня?

Нет, и это принципиально. Он подсказывает, задаёт вопросы и объясняет ошибки. Готовый ответ в нём не предусмотрен: ни за искры, ни за просьбы.

Что будет после курса?

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

Первая программа через минуту

Без установки, без регистрации карты. Напиши «Привет, мир!» и реши, нравится ли тебе это.

Начать курс Go с нуля · 8 проектов · 96 шагов · на русском