Level |
Subtopic |
Topics (Grouped) |
Basic |
Language Fundamentals |
History & Features of Go, Go Toolchain (go run , go build , go mod ), Workspaces & Modules |
|
Data Types & Variables |
Primitive Types (int, float, string, bool), Constants (iota ), Type Inference (:= ) |
|
Control Structures |
if/else, switch, loops, break & continue , Labels |
|
Functions |
Function Declaration, Multiple Return Values, Named Returns, Variadic Functions |
|
Collections |
Arrays, Slices, Maps, Range Iteration |
|
Pointers & Structs |
Pointers Basics, Structs, Struct Embedding, Methods with Structs |
Intermediate |
Interfaces & Polymorphism |
Interface Basics, Empty Interface (interface{} ), Type Assertions, Duck Typing |
|
Error Handling |
error type, Custom Errors, Panic & Recover, Error Wrapping (errors.Is , errors.As ) |
|
Concurrency (Basics) |
Goroutines, Channels, Buffered vs Unbuffered, select statement |
|
Standard Library Essentials |
fmt , strings , strconv , time , math/rand , File I/O |
|
Testing |
testing package, Table-driven tests, Mocks & Stubs, Coverage |
|
Packages & Imports |
Creating Packages, Visibility (Exported vs Unexported), Dependency Management with go mod |
Advanced |
Concurrency (Advanced) |
Mutex & RWMutex, WaitGroups, Condition Variables, Atomic Operations, Worker Pools |
|
Context Management |
context.Background , context.WithCancel , Deadlines & Timeouts |
|
Reflection & Generics |
reflect package, Type Introspection, Generics in Go 1.18+ |
|
Networking |
net/http , TCP/UDP Servers, gRPC with Go, REST APIs |
|
JSON & Serialization |
encoding/json , Struct Tags, encoding/xml , protobuf |
|
Go Routines Patterns |
Fan-in, Fan-out, Pipeline Pattern, Cancellation Pattern |
|
Error Handling (Advanced) |
Sentinel Errors, Error Propagation, Error Wrapping Best Practices |
|
File & OS Interaction |
File Permissions, Directory Traversal, Environment Variables, OS Signals |
Expert |
Go Runtime & Memory |
Garbage Collection, Escape Analysis, Stack vs Heap Allocation, Memory Profiling |
|
Compiler & Internals |
SSA Form, Go Assembly, Optimizations, go build flags |
|
Advanced Concurrency |
Actor Model, CSP Model, Lock-Free Programming |
|
Performance Tuning |
Benchmarking with testing.B , Profiling with pprof , Reducing Allocations |
|
System Programming |
CGO Basics, Interfacing with C, Syscalls |
|
Design Patterns in Go |
Singleton, Factory, Observer, Strategy, Adapter in Go idioms |
|
Distributed Systems with Go |
Microservices, Message Queues (Kafka/NATS), Service Discovery |
|
Cloud & DevOps |
Dockerizing Go Apps, Kubernetes Operators in Go, CI/CD with Go, Observability (Prometheus, OpenTelemetry) |
|
Security in Go |
TLS/SSL, JWT Authentication, Secure Coding, Static Analysis (gosec ) |
|
Large Scale Go |
Monorepos, Code Organization, Package Design Principles, Best Practices for Maintainability |
|
No comments:
Post a Comment