고로 프로그래밍 시작하기
초보자도 쉽게 따라할 수 있는 실습 중심의 고(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.