অনেক নতুন প্রোগ্রামার Go শিখতে গিয়ে প্রথমেই যে সমস্যায় পড়ে, সেটা হলো – এর ডকুমেন্টেশন খুব একটা গোছানো নয়। C বা Python-এর মত ধারাবাহিকভাবে টপিকগুলো সাজানো নেই। এজন্য আমি এখানে একটা step by step শেখার তালিকা দিচ্ছি, যেটা অনুসরণ করলে শেখাটা অনেকটা সহজ হয়ে উঠবে।
শেখার তালিকা:
১. বেসিক স্টেপস:
1. Hello World ও Go Setup (go run / go build / go install)
2. Variables (var, const, shorthand :=)
3. Data Types (int, float, bool, string, rune, byte)
4. If-else ও Control flow
5. Loops (for, range)
6. Switch statement
7. String vs Rune এবং UTF-8
8. Arrays
9. Slices (make, append, copy, slicing)
10. Maps (declare, assign, delete, exists)
11. Sets (map-based set implementation)
২. ফাংশন ও সংশ্লিষ্ট কনসেপ্ট:
12. Function declaration & return
13. Variadic functions
14. Named return values
15. Defer
16. Anonymous functions & Closures
17. Recursion
৩. Struct ও মেমোরি সম্পর্কিত বিষয়:
18. Struct
19. Struct Tags (json, db, etc.)
20. Pointers
21. Slice vs Array
22. Shallow Copy vs Deep Copy
23. Zero values
24. Garbage Collection overview
৪. Interface ও Abstraction:
25. Interfaces (basic to advanced)
26. Empty interface (interface{})
27. Type Assertion & Type Switch
28. Polymorphism with Interface
29. Custom error types (error interface)
৫. Concurrency ও Synchronization:
30. Goroutines
31. Channels (unbuffered, buffered, directional)
32. Select statement
33. WaitGroup
34. Mutex & sync package
35. Deadlocks ও Race conditions
36. Atomic operations (sync/atomic)
৬. Advanced Concepts:
37. Functional programming features (first-class functions, higher order functions)
38. Context package (cancellation, timeout, deadline)
39. Reflect package
40. Memory Concepts (string immutability, byte slice optimization)
41. Circular Dependency Handling
42. Testing (testing package, table-driven tests, benchmarks)
৭. Web & I/O:
43. fmt, log, errors package
44. File I/O (os, io, ioutil)
45. HTTP server (net/http)
46. Basic Routing
47. JSON Handling (encoding/json)
48. Serving Static Files
49. Middleware pattern
গুরুত্বপূর্ণ প্যাকেজসমূহ:
fmt, errors, log, net/http, context, sync,reflect, encoding/json, os, io, ioutil, testing, time
আপনি যদি একদম নতুন হন, তাহলে উপরের তালিকাটি ধাপে ধাপে অনুসরণ করলেই Golang শেখাটা সহজ হয়ে যাবে আশা করি।
No comments:
Post a Comment