Skip to content

ntk148v/lets-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Let's Go

GitHub license GitHub stars

A comprehensive Go learning guide. From basics to advanced topics, covering Go 1.18+ features including generics, and the latest Go 1.24/1.25 updates.

Important

Checkout the previous one-page version here

Table of Contents:

1. Quick Start

package main

import "fmt"

func main() {
    fmt.Println("Hello, Gopher!")
}
go run hello.go

2. Documentation

Topic Description Level
Getting Started Installation, first program, essential commands Beginner
Basics Variables, types, control structures, arrays, slices, maps Beginner
Functions Functions, closures, defer, panic/recover Beginner
Packages Creating packages, testing, useful packages Beginner
Pointers Pointers, allocation, conversions Intermediate
Interfaces Duck typing, methods, reflection Intermediate
Concurrency Goroutines, channels, patterns Intermediate
Communication IO, networking, command line Intermediate
Modules Go modules, workspaces, dependency management Intermediate
Testing Unit tests, benchmarks, mocking Intermediate
Data IO Readers, writers, formatted IO Intermediate
Encoding JSON marshaling, encoding Intermediate
Web Programming HTTP servers, forms, middleware, websockets Intermediate
RPC and gRPC Remote procedures, Protocol Buffers Advanced
New Packages unique package and more Advanced

3. Repository Structure

golang/
├── README.md           # This file (documentation hub)
├── README_onepage.md   # Complete reference documentation (one-page version)
├── docs/               # Focused topic guides
│   ├── 01-getting-started.md
│   ├── 02-basics.md
│   ├── 03-functions.md
│   ├── ...
│   └── 15-new-packages.md
├── examples/           # Code examples by section (matches README_onepage numbering)
├── gobyexample/        # Examples by topic
└── tips-notes/         # Advanced tips and patterns

4. Advanced Topics (tips-notes)

Deep-dive guides for specific topics:

Topic Description
Concurrency Deep Dive Goroutines vs threads, patterns, best practices
Error Handling Error wrapping, custom errors, Go 1.13+ features
Context Usage Context best practices, propagation
Dependency Injection Testing and mocking patterns
Defer Patterns Defer mechanics and gotchas
Pipelines and Cancellation Pipeline patterns with context
Performance Debugging and optimization
Build for Multiple OS Cross-compilation
Shrink Binaries Reducing binary size
Container CPU Throttling GOMAXPROCS in containers

5. Learning Path

5.1. For Beginners

  1. Getting Started - Install Go and write your first program
  2. Basics - Learn variables, types, and control flow
  3. Functions - Understand functions and closures
  4. Packages - Organize code into packages

5.2. For Intermediate Developers

  1. Concurrency - Master goroutines and channels
  2. Testing - Write effective tests
  3. Web Programming - Build web applications
  4. Error Handling - Handle errors properly

5.3. For Advanced Users

  1. Concurrency Patterns - Advanced patterns
  2. Performance Tuning - Optimize your code
  3. gRPC and Protobuf - Build RPC services
  4. New Packages - Latest additions to standard library

6. Resources

7. Contributing

Contributions are welcome! Feel free to:

  • Fix typos or errors
  • Add new examples
  • Improve explanations
  • Add coverage for new Go features

8. License

Apache-2.0

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Languages