| S.No |
Topic |
Sub-Topics |
| 1 | Introduction to Go | Overview of Go, History, Features, Go vs Other Languages, Use Cases |
| 2 | Environment Setup | Install Go, Configure GOPATH, Configure GOROOT, Setup IDE, Hello World program |
| 3 | Go Basics | Variables, Constants, Data Types, Operators, Input/Output |
| 4 | Control Structures | If-Else, Switch-Case, For Loop, Break/Continue, Nested Loops |
| 5 | Functions | Function Declaration, Parameters, Return Values, Multiple Returns, Variadic Functions |
| 6 | Packages & Modules | Package Declaration, Importing Packages, Creating Modules, go.mod, Standard Library Overview |
| 7 | Arrays & Slices | Array Declaration, Slice Creation, Append, Copy, Multi-dimensional Arrays |
| 8 | Maps | Map Declaration, Adding/Updating, Deleting Keys, Iterating Maps, Nested Maps |
| 9 | Structs | Struct Definition, Struct Literals, Nested Structs, Methods with Structs, Tags |
| 10 | Pointers | Pointer Basics, Dereferencing, Pointer to Struct, Pointer vs Value, Memory Allocation |
| 11 | Interfaces | Interface Definition, Implementing Interfaces, Type Assertion, Empty Interface, Polymorphism |
| 12 | Methods | Method Declaration, Receiver Types, Pointer vs Value Receiver, Method Sets, Struct Embedding |
| 13 | Error Handling | Error Type, Custom Errors, Panic & Recover, Logging, Best Practices |
| 14 | Goroutines | Concurrent Execution, Creating Goroutines, Goroutine Lifecycle, Synchronization, Examples |
| 15 | Channels | Channel Basics, Buffered vs Unbuffered, Send/Receive, Close Channel, Select Statement |
| 16 | Channel Patterns | Fan-in, Fan-out, Pipelines, Worker Pools, Timeout/Cancel |
| 17 | Concurrency Patterns | Mutex, WaitGroup, Atomic Operations, Context, Thread-Safe Data Structures |
| 18 | Go Concurrency Best Practices | Avoid Deadlocks, Avoid Race Conditions, Proper Channel Closing, Worker Pools, Context Cancellation |
| 19 | Go Standard Library | fmt, os, io, strings, strconv, time, math/rand, encoding/json |
| 20 | File Handling | Reading Files, Writing Files, File Modes, Buffered I/O, Error Handling |
| 21 | Testing in Go | Test Functions, go test Command, Table-Driven Tests, Benchmarking, Mocking |
| 22 | Go Modules & Dependency Management | go mod init, go get, go mod tidy, Versioning, Vendoring |
| 23 | JSON Handling | Marshal, Unmarshal, Struct Tags, Encoding/Decoding, Nested JSON |
| 24 | HTTP & Web Services | net/http Package, HTTP Server, HTTP Client, Routing, JSON API |
| 25 | REST API Development | Create REST Endpoints, GET/POST/PUT/DELETE, JSON Response, Query Parameters, Error Handling |
| 26 | Middleware in Go | Middleware Concept, Logging, Authentication, Error Handling, Chaining Handlers |
| 27 | Database Connectivity | database/sql Package, MySQL/PostgreSQL Driver, CRUD Operations, Connection Pooling, Transactions |
| 28 | Go Templates | text/template, html/template, Variables, Loops, Conditional Rendering |
| 29 | Go Project Structure | Folder Organization, main Package, internal Package, cmd Folder, Best Practices |
| 30 | Hands-on Project | Build CLI/REST API App, Use Goroutines, Connect DB, JSON Handling, Implement Tests |