Thursday, 31 July 2025

যারা নতুন Go শিখতে শুরু করেছেন, তারা চাইলে এই লিস্ট অনুসারে ধাপে ধাপে শিখতে পারেন।

 অনেক নতুন প্রোগ্রামার 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

Go ভাষার String: অন্য ভাষার তুলনায় কেন এত আলাদা?

অন্যান্য প্রোগ্রামিং ভাষার তুলনায় Go-তে string টাইপ একটু আলাদা। কেন আলাদা, সেটা একটু পরে ব্যাখ্যা করব। তবে এটুকু নিঃসন্দেহে বলা যায়, য...