Khi mọi người hỏi làm thế nào để bắt đầu học một ngôn ngữ lập trình mới, tôi thường nói với họ điều tương tự: hãy bắt đầu với các tài liệu chính thức. Chúng được viết và duy trì bởi những người tạo ra ngôn ngữ đó, và chúng phản ánh không chỉ cú pháp mà còn cả triết lý đằng sau nó.
Trong bài viết này, tôi sẽ lấy việc học Go làm ví dụ về cách chúng ta thường tiếp cận để học một điều gì đó mới.
Đối với Go, có hai hướng dẫn chính thức mà mọi người mới bắt đầu nên xem qua:
- A Tour of Go – một hướng dẫn tương tác hướng dẫn bạn các cú pháp, kiểu dữ liệu và tính năng đồng thời cốt lõi trong Go. Nó ngắn gọn, thực tế và hoàn hảo để có được cảm nhận nhanh chóng về ngôn ngữ này.
- Effective Go – hướng dẫn này vượt ra ngoài cú pháp và tập trung vào việc viết mã theo quán ngữ, "giống Go". Nó giải thích cách cấu trúc chương trình, xử lý lỗi và sử dụng các mẫu thiết kế độc đáo của Go một cách hiệu quả.
Làm việc thông qua cả hai sẽ cung cấp cho bạn một nền tảng vững chắc — không chỉ về cách Go hoạt động mà còn về cách các lập trình viên Go suy nghĩ.
Bắt đầu từ những điều nhỏ, xây dựng mọi thứ
Khi bạn đã nắm vững những điều cơ bản, cách tốt nhất để thực sự hiểu Go là bắt đầu xây dựng mọi thứ với nó. Bạn không cần một dự án lớn. Trên thực tế, các dự án nhỏ, tập trung giúp bạn học nhanh hơn và có động lực hơn.
Dưới đây là một vài ý tưởng để bắt đầu:
- Một máy chủ web đơn giản – sử dụng gói
net/httptích hợp của Go để xử lý các yêu cầu và phản hồi. Bạn sẽ học được cách thư viện chuẩn của Go khuyến khích thiết kế tối giản, rõ ràng. - Một trình lập lịch tác vụ – thực hành sử dụng goroutine và channel để chạy các tác vụ nền hoặc các tác vụ hẹn giờ. Đó là một cách tuyệt vời để có được kinh nghiệm thực tế với mô hình đồng thời của Go.
- Một công cụ dòng lệnh – xây dựng một cái gì đó thiết thực, như một trình đổi tên tệp, trình ghi chú hoặc trình quản lý danh sách việc cần làm. Các gói flag và os của Go làm cho điều này trở nên dễ dàng đáng ngạc nhiên.
- Một JSON API client – kết nối với một API công khai, giải mã phản hồi JSON và hiển thị nó một cách đẹp mắt trong terminal.
- Một trình rút gọn URL – kết hợp xử lý web, lưu trữ dữ liệu và đồng thời trong một dự án.
Mỗi dự án này giới thiệu cho bạn một khía cạnh khác nhau của Go — mạng, đồng thời, xử lý tệp hoặc cấu trúc dữ liệu — đồng thời mang đến cho bạn một cái gì đó cụ thể để thể hiện sự tiến bộ của bạn.
Đọc và suy nghĩ một cách có hệ thống
Khi bạn đã thoải mái viết các chương trình nhỏ, bạn nên dành thời gian đọc một cuốn sách có cấu trúc tốt bao gồm Go từ đầu.
Một trong những cuốn sách hay nhất cho việc này là The Go Programming Language by Alan Donovan and Brian Kernighan. Nó được viết bởi những người hiểu sâu sắc cả thiết kế ngôn ngữ lập trình và các nguyên tắc của Go. Cuốn sách hướng dẫn bạn ngôn ngữ một cách có hệ thống, từ những điều cơ bản đến các khái niệm nâng cao như reflection, đồng thời và tổ chức gói.
Đó không phải là một cuốn sách dễ đọc, nhưng nếu bạn đọc chậm rãi và viết mã theo, nó sẽ cung cấp cho bạn một mô hình tinh thần vững chắc về cách Go phù hợp với nhau — điều mà chỉ các hướng dẫn không thể cung cấp.
Luôn cập nhật với cộng đồng Go
Để giữ cho các kỹ năng của bạn luôn sắc bén, hãy tạo thói quen đọc The Go Blog. Nó thường xuyên đăng tải những hiểu biết sâu sắc về các tính năng mới của Go, cải tiến hiệu suất và các quyết định thiết kế ngôn ngữ.
Khi bạn cảm thấy sẵn sàng, hãy bắt đầu duyệt qua các dự án Go mã nguồn mở. Đọc mã tốt là một trong những cách nhanh nhất để học cách viết mã tốt. Một vài dự án cổ điển để xem:
- Kubernetes – mã Go phức tạp, quy mô lớn trong thực tế
- Gin – một framework web nhanh, thanh lịch
- Prometheus – một ví dụ tuyệt vời về Go được sử dụng để giám sát và lập trình hệ thống
Cuối cùng, nếu bạn muốn theo dõi những gì đang thịnh hành trong cộng đồng Go, Go Feed là một nơi tốt để khám phá các bài đăng trên blog, hướng dẫn và thảo luận mới.
Tóm lại
Học Go không phải là lao nhanh qua cú pháp hoặc ghi nhớ các mẫu. Đó là về việc hiểu sự đơn giản — cách viết các chương trình rõ ràng, nhanh chóng và dễ bảo trì, thực hiện tốt một việc. Bắt đầu với các hướng dẫn chính thức, xây dựng những thứ nhỏ, đọc một hoặc hai cuốn sách hay và tiếp tục khám phá. Theo thời gian, bạn sẽ thấy rằng thiết kế của Go sẽ định hình không chỉ cách bạn viết mã mà còn cả cách bạn suy nghĩ về phần mềm.
No comment for this article.