learning-guide
Learning Guide
Structured approach to learning new technologies through hands-on practice.
Learning Philosophy
- Start with why - Understand the problem before the solution
- Learn by doing - Hands-on projects over passive reading
- Build incrementally - Small steps, gradual complexity
- Connect to existing knowledge - Relate new concepts to familiar ones
- Experiment safely - Use sandboxes and local environments
Learning Path Template
When learning a new technology:
1. Orientation (30 min)
- What problem does this solve?
- When should I use it vs alternatives?
- What are the key concepts?
2. Hello World (1-2 hours)
- Minimal working example
- Understand the basic workflow
- Get something running
3. Guided Project (2-4 hours)
- Build something small but useful
- Follow a tutorial with modifications
- Document what you learn
4. Independent Project (4-8 hours)
- Apply to a real problem
- Make mistakes and debug
- Build muscle memory
5. Deep Dive (ongoing)
- Explore advanced features
- Read source code
- Contribute or share knowledge
Technology Learning Paths
Go Programming
Week 1: Foundations
Day 1-2: Syntax and Types
- Variables, functions, control flow
- Project: CLI calculator
Day 3-4: Data Structures
- Slices, maps, structs
- Project: Contact book CLI
Day 5-7: Packages and Testing
- Creating modules
- Writing tests
- Project: URL shortener library
Week 2: Concurrency
Day 1-2: Goroutines and Channels
- Project: Concurrent web scraper
Day 3-4: Sync Package
- Mutexes, WaitGroups
- Project: Rate-limited API client
Day 5-7: Real Application
- Project: Simple HTTP server with graceful shutdown
Terraform / IaC
Week 1: Core Concepts
Day 1-2: HCL Basics
- Resources, variables, outputs
- Project: Create S3 bucket + IAM policy
Day 3-4: State Management
- Remote state, locking
- Project: Multi-file infrastructure
Day 5-7: Modules
- Creating reusable modules
- Project: VPC module with subnets
Week 2: Real Infrastructure
Day 1-3: Complete Application
- Project: Deploy containerized app to ECS
Day 4-5: Environments
- Workspaces or directory structure
- Project: Dev/Staging/Prod setup
Day 6-7: CI/CD Integration
- Project: GitHub Actions for terraform plan/apply
Kubernetes
Week 1: Local Development
Day 1-2: Concepts
- Pods, Services, Deployments
- Project: Deploy nginx with minikube
Day 3-4: Configuration
- ConfigMaps, Secrets, Volumes
- Project: Stateful application with persistence
Day 5-7: Networking
- Services, Ingress
- Project: Multi-service application
Week 2: Production Patterns
Day 1-2: Scaling
- HPA, Resource limits
- Project: Auto-scaling deployment
Day 3-4: Observability
- Logs, metrics, health checks
- Project: Add monitoring to application
Day 5-7: Helm
- Charts and values
- Project: Create Helm chart for your app
Project Ideas by Skill Level
Beginner Projects
| Project | Technologies | Time |
|---|---|---|
| Personal CLI tool | Go or Python | 2-4 hrs |
| Static site generator | Any language | 4-6 hrs |
| API wrapper library | TypeScript | 3-5 hrs |
| Docker dev environment | Docker Compose | 2-3 hrs |
Intermediate Projects
| Project | Technologies | Time |
|---|---|---|
| REST API with DB | Go/Python + PostgreSQL | 8-12 hrs |
| CI/CD pipeline | GitHub Actions | 4-6 hrs |
| Infrastructure module | Terraform + AWS | 6-8 hrs |
| Monitoring stack | Prometheus + Grafana | 4-6 hrs |
Advanced Projects
| Project | Technologies | Time |
|---|---|---|
| Microservices app | K8s + multiple services | 20+ hrs |
| Custom Terraform provider | Go + Terraform SDK | 15+ hrs |
| Full GitOps setup | ArgoCD + Helm | 10-15 hrs |
| Observability platform | OTEL + various backends | 15+ hrs |
Learning Resources Strategy
Official Documentation First
- Most accurate and up-to-date
- Often has tutorials and examples
- Understand the source of truth
Interactive Learning
- Go: Go by Example, Tour of Go
- Terraform: HashiCorp Learn
- Kubernetes: Kubernetes.io tutorials
- AWS: AWS Skill Builder
When to Use Tutorials
- Getting started with new concepts
- Understanding common patterns
- Seeing best practices in action
When to Read Source Code
- Understanding implementation details
- Debugging unexpected behavior
- Learning advanced patterns
Effective Practice Techniques
Deliberate Practice
- Set specific goals for each session
- Focus on weak areas
- Get immediate feedback
- Reflect on what worked
Spaced Repetition
- Review concepts at increasing intervals
- Build projects that reinforce learning
- Revisit old projects with new knowledge
Teaching to Learn
- Write blog posts explaining concepts
- Create documentation for your projects
- Help others in communities
Homelab as Learning Lab
Your homelab is perfect for practicing:
| Technology | Homelab Application |
|---|---|
| Docker | Deploy new services |
| Terraform | Manage cloud resources |
| Kubernetes | Run k3s cluster |
| Go | Build automation tools |
| Monitoring | Set up observability |
Safe Experimentation
- Use separate VLANs for testing
- Snapshot VMs before changes
- Keep backups of working configs
- Document what you try
Progress Tracking
Learning Journal Format
# [Date] - [Technology] - [Topic]
## What I Learned
- Key concept 1
- Key concept 2
## What I Built
- Description of project/exercise
## Challenges
- Problem I encountered
- How I solved it
## Next Steps
- [ ] What to learn next
- [ ] Project to try
Skill Assessment
Rate yourself 1-5 on each technology:
- Aware - Know it exists
- Familiar - Understand basics
- Competent - Can build simple things
- Proficient - Can build complex things
- Expert - Can teach others
Track progress monthly to see growth.
More from arosenkranz/claude-code-config
homelab-helper
Expert guidance for homelab infrastructure, self-hosting, and Raspberry Pi optimization. Use when recommending self-hosted services, configuring Docker services, setting up reverse proxies, integrating Home Assistant, or troubleshooting homelab networking.
17continuous-learning-v2
Instinct-based learning system that observes sessions via hooks, creates atomic instincts with confidence scoring, and evolves them into skills/commands/agents.
6session-log
Document conversation accomplishments in Obsidian vault with frontmatter, code changes, learning notes, and next steps.
6evolve
Cluster related instincts into skills, commands, or agents
6reclaude
Refactor CLAUDE.md files to follow progressive disclosure principles. Use when a CLAUDE.md file is too long or needs organizational improvement.
5find-skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
5