Освойте программирование на языке Go
Практическое введение для начинающих в язык программирования Go. Курс состоит из небольших, легко усваиваемых уроков с темой исследования космоса, охватывающих императивное программирование, типы, функции, методы, коллекции, состояние и параллелизм.
Обзор курса
📚 Краткое содержание
Начинающий, практико-ориентированный вводный курс по языку программирования Go. Курс структурирован в виде небольших, управляемых уроков с темой исследования космоса и охватывает императивное программирование, типы, функции, методы, коллекции, состояние и параллелизм.
Откройте для себя радость программирования на Go через короткие уроки и семь финальных проектов, посвящённых освоению космоса.
Автор: Натан Йонгман, Роджер Пеппе
Благодарности: Дженнифер Став, Марина Михайлович, Мэттью Мёркс, Джоэл Котарски, Александар Драгосавльевич, Рене Френч, Ольга Шалахина, Эрик Зелая, Эйприл Милн, Моника Камсваг.
🎯 Цели обучения
- Определить язык программирования Go и его основные области применения.
- Объяснить роль компилятора Go и его преимущества перед интерпретаторами.
- Освоить использование среды выполнения Go для написания, компиляции и запуска кода.
- Правильно структурировать код на Go, используя обязательный стиль «одной правильной фигурной скобки», чтобы избежать синтаксических ошибок.
- Управлять данными с помощью различных способов объявления переменных и операторов присваивания с арифметикой.
- Генерировать псевдослучайные числа и реализовывать условную логику с использованием ветвлений и логических операторов.
- Объявлять и форматировать переменные с плавающей точкой с помощью
float32иfloat64с заданной шириной и точностью. - Выявлять и устранять ошибки, вызванные неточностями при работе с числами с плавающей точкой и переполнением целых чисел.
- Использовать пакет
bigи неопределённые константы для работы с числами, превышающими стандартные размеры битов. - Определять и вызывать функции с параметрами, аргументами и синтаксисом переменного числа аргументов.
Уроки 共 8 课时 · 预计 24.0h
Уроки
Lesson
This lesson introduces Go as a high-performance, open-source language designed for cloud-native infrastructure and large-scale software engineering. Students will explore Go's core pillars of simplicity, efficiency, and reliability, and learn how its compiler facilitates error detection and maintainable code for complex distributed systems.
This lesson introduces the fundamentals of imperative programming in Go, focusing on the mandatory main package and func main() entry point. Students will also learn the importance of Go’s "One True Brace Style" and how the compiler's automatic semicolon insertion rules dictate specific syntax requirements.
This lesson explores the limitations of binary floating-point arithmetic in Go, explaining why decimal fractions like 0.1 cannot be represented precisely due to base-2 conversion errors. Students will learn to navigate the trade-offs between float32 and float64, emphasizing the importance of avoiding floating-point types for financial calculations and using appropriate precision for scientific data.
This lesson explores the principles of modularity in Go, focusing on how functions, abstraction, and the DRY (Don't Repeat Yourself) principle improve code maintainability and reduce complexity. Students will learn to define clear module boundaries and interfaces to build robust, scalable software systems.
This lesson introduces arrays in Go as fixed-length, type-specific collections used to manage bulk data efficiently. Students will learn how to use composite literals for initialization, navigate zero-based indices, and understand the importance of memory safety to avoid runtime panics.
This lesson introduces Go structures (structs) as a method for grouping disparate data types into cohesive, atomic units for better organization. Students will learn to define and manipulate these structures to manage complex telemetry data, such as Martian habitat coordinates and rover status, more effectively than with individual variables.
This lesson explores the concept of indirection in Go, focusing on how pointers store memory addresses to manage shared data efficiently. Students will learn to use the address operator (&) and dereference operator (*) to manipulate data, while applying these concepts to build performant, shared-state structures like a Sudoku validator.
This lesson explores concurrency in Go, focusing on using goroutines to manage independent tasks and synchronization tools like mutexes and select statements. Students will learn how to handle non-deterministic execution and implement robust worker patterns for multi-agent systems.