-
Section 1 - Getting Started
10 Lessons -
Section 2 - Language Basics
46 Lessons-
StartIntro to section 2
-
PreviewVariables
-
StartControl Structures - Intro
-
PreviewControl Structures 1 - if
-
StartControl Structures 2 - switch
-
StartControl Structures 3 - for
-
StartTime To Practice: if, switch, and for
-
StartA Quick Intro to Using Libraries
-
StartInput and Output 1 - Printing
-
StartInput and Output 2 - Scanning
-
StartTime To Practice: Printing and Scanning
-
StartInput and Output 3 - Command Line
-
StartInput and Output 4 - Flags
-
StartExercise: Build Your First Little Commandline Tool!
-
StartStrings 1 - Basics
-
PreviewStrings 2 - Unicode
-
StartStrings 3 - Literals
-
StartStrings 4 - Libraries
-
StartTime To Practice: strings
-
StartNumeric Data Types 1 - Integers and Booleans
-
StartNumeric Data Types 2 - Floating Point Numbers
-
StartNumeric Data Types 3 - Floating Point Tips
-
StartNumeric Data Types 4 - Complex Numbers
-
StartConstants
-
PreviewPointers
-
StartFunctions 1 - Declaring Functions
-
StartFunctions 2 - Function Behavior (recursion, deferred functions, scope)
-
StartTime To Practice: Function Behavior
-
StartFunctions 3 - Function Values and Closures
-
PreviewTime To Practice - Function Values and Closures
-
StartFunctions 4 - Functions and Pointers
-
StartError Handling
-
StartError Inspection
-
StartPackages and Libraries 1 - Using Third-Party Packages
-
StartPackages and Libraries 2 - Creating Custom Packages
-
StartPackages and Libraries 3 - Publish Your Package
-
StartPackages and Libraries 4 - Sub-Packages
-
StartModules 1 - Definition
-
StartModules 2 - Creating a Module
-
StartModules 3 - Add Version Information
-
StartModules 4 - Using Modules
-
StartModules 5 - Local Development
-
StartModules 6 - Dependency Maintenance
-
StartModules 7 - Semantic Versioning
-
StartModules 8 - How Go Selects a Module Version
-
StartExercise: Bank Account
-
-
Section 3 - Advanced Data Types
29 Lessons-
StartIntro to section 3
-
StartArrays
-
StartSlices
-
StartPass-By-Value Semantics seem to break! (Or do they?)
-
StartTime To Practice: Slices
-
StartByte Slices and Strings
-
StartMaps
-
StartTime To Practice: fun with maps
-
StartType Declarations
-
StartType Aliases
-
StartStruct Basics
-
StartTime To Practice: structures
-
StartStruct embedding and anonymous fields
-
StartStruct field tags and JSON
-
StartMethods
-
StartMethod Sets
-
StartInterfaces 1 - Representing Behavior
-
StartTime To Practice: a TerminalWriter
-
StartInterfaces 2 - Interfaces as Parameters
-
StartInterfaces 3 - Examples from the standard library
-
StartInterfaces 4 - Internals (and a gotcha)
-
StartGenerics 1 - Type Parameters
-
StartGenerics 2 - Type Constraints
-
StartGenerics 3 - Generic Interface Functions
-
StartGenerics 4 - A Tip And a Trick
-
StartExercise: write a Web service - part 1: the Web server
-
StartExercise: write a Web service - part 2: routing
-
StartExercise: write a Web service - part 3: handling requests
-
StartExercise: write a Web service - part 4: the data store
-
-
Section 4 - Go Development
14 Lessons-
StartIntro to section 4
-
StartCompiling with go run, go build, and go install
-
StartConditional compilation
-
StartThe Go Module Proxy and the Go Sum DB
-
StartConfiguring Proxy and Sum Servers
-
StartModule Proxy Tips & Tricks
-
StartFormatting your code with go fmt
-
StartTesting with go test
-
StartTesting - Good test design, and how to verify test coverage
-
StartTesting - Subtests, parallel tests, and table-driven tests
-
StartTesting - Fuzzing
-
StartTesting - Benchmarking with go test
-
StartDocumentation - Create documentation from code
-
StartDocumentation - godoc and go doc
-



