This repository is dedicated to learning and practicing Golang (Go programming language). It contains various examples, exercises, and projects to track my learning and progress.
🎯 Goal: Master Golang to excel in backend development, DevOps tools, and security tools!
learning-go/
├── README.md
├── go.work # Go workspace file
├── .gitignore
├── docs/ # Documentation and learning notes
│ ├── learning-notes/
│ ├── best-practices.md
│ └── resources.md
├── fundamentals/ # Basic Go concepts
│ ├── basics/
│ ├── data-structures/
│ ├── concurrency/
│ ├── interfaces/
│ └── error-handling/
├── projects/ # Practical projects
│ ├── cli-tools/
│ ├── web-servers/
│ ├── microservices/
│ ├── devops-tools/
│ └── security-tools/
├── exercises/ # Coding exercises and challenges
│ ├── leetcode/
│ ├── codewars/
│ └── interview-prep/
├── libraries/ # Popular Go libraries exploration
│ ├── gin-gonic/
│ ├── cobra/
│ ├── gorm/
│ └── testify/
├── algorithms/ # Algorithm implementations
│ ├── sorting/
│ ├── searching/
│ └── graph/
├── testing/ # Testing examples
│ ├── unit-tests/
│ ├── integration-tests/
│ └── benchmarks/
└── scripts/ # Helper scripts
├── setup.sh
└── build.sh
- Basic syntax and data types
- Control structures
- Functions and methods
- Structs and interfaces
- Error handling
- Goroutines and channels
- HTTP package
- JSON handling
- File I/O
- Testing framework
- Context package
- Building REST APIs
- Middleware
- Database integration
- Authentication/Authorization
- WebSocket connections
- CLI applications with Cobra
- Docker containerization
- Monitoring and logging
- Configuration management
- CI/CD pipelines
- Cryptography implementations
- Network security tools
- Vulnerability scanners
- Log analysis tools
- Authentication systems
- CLI Calculator - Basic arithmetic operations
- File Organizer - Organize files by type/date
- URL Shortener - Simple web service
- Todo API - REST API with CRUD operations
- Log Parser - Parse and analyze log files
- Chat Server - WebSocket-based chat application
- Container Monitor - Docker container monitoring tool
- Load Balancer - Simple HTTP load balancer
- Metrics Collector - System metrics collection tool
- Password Manager - Secure password storage
- Microservice Framework - Custom microservice toolkit
- Security Scanner - Network vulnerability scanner
- Distributed Cache - Redis-like caching system
- API Gateway - Request routing and authentication
- Container Orchestrator - Mini Kubernetes-like tool
- "The Go Programming Language" by Alan Donovan
- "Go in Action" by William Kennedy
- "Concurrency in Go" by Katherine Cox-Buday
- "Security with Go" by John Daniel Leon
- Go 1.21+ installed
- VS Code with Go extension
- Git configured
- Docker installed (for containerization projects)
# Clone the repository
git clone <your-repo-url>
cd learning-go
# Initialize Go workspace
go work init
# Add modules as you create them
go work use ./projects/project-name
# Run tests
go test ./...
# Build all projects
./scripts/build.sh
- Current Focus: [Update with current learning topic]
- Completed Projects: [List completed projects]
- Next Milestone: [Next goal or project]
- Learning Hours: [Track study time]
This is a personal learning repository, but feel free to:
- Suggest improvements
- Share learning resources
- Provide code reviews
- Report issues
- Each project should have its own
go.mod
file - Include comprehensive README files for each project
- Write tests for all code
- Document learnings and challenges
- Use conventional Go project structure