golang

Tôi đã tự học lập trình Golang như thế nào?

Sẵn có 1 bạn hỏi về cách học lập trình Golang, mình xin viết 1 post để lưu đây cho ai cần. Có thể đúng hay sai mong mọi người cùng góp ý. Kinh nghiệm tự học Golang trong 64 ngày(mỗi ngày 2 tiếng) của mình xem thế nào nhé:

1. Lên mạng đọc về Golang. Chính xác là mình gõ “Ngôn ngữ nào làm backend tốt nhất” thì được đưa ra suggestion là Golang. Lý do là nhanh và nhẹ, đồng thời lương cao. cái này sự thật luôn, nó phải top 2 gì đó thu nhập ở Mỹ tính đến thời điểm này. Nó cũng là 1 động lực to lớn để mình quyết tâm học Golang.

Bạn có thể xem ở đây:

https://insights.stackoverflow.com/survey/2020#technology-what-languages-are-associated-with-the-highest-salaries-worldwide-united-states

2. Tiếp theo, khi đã có động lực rồi, mình sẽ học như nào? Cách học của mình là đầu tiên phải nắm được kiến thức căn bản đã. Phải bắt đầu học từng cách khai báo, câu lệnh hay vòng lặp.. Vân vân mây mây thì đây là 2 trang mình nghĩ là ổn để bạn theo nếu bạn biết tiếng Anh:

https://go.dev/tour/

https://gobyexample.com/

Giả sử bạn kém tiếng Anh thì bạn có thể tìm tài liệu tiếng Việt như trang này:

https://zalopay-oss.github.io/go-advanced/

3. OK, vậy đâu đó bạn mất 1 tuần để nắm basic. Sau đó, việc tiếp theo khi đã có giáo mác để đi đánh trận rồi, bạn phải học cách bày binh bố trận. Mình có lên medium, dev.to tìm hiểu và thấy rằng, bạn có thể học theo nhiều loại kiến trúc phần mềm cho Go. Cuối cùng mình tâm đắc nhất là micro-service. Vậy là từ khóa tiếp theo là nó, bạn phải lượn trên google, gịthub, youtube… để tìm hiểu cách triển khai 1 micro-service như nào cho tốt. Mình tìm được 1 cái khung khá ổn ở đây:

https://github.com/golang-standards/project-layout

4. Framework nào là tốt? Có khá nhiều framework ổn để viết Golang. Mình là dân lập trình iOS, cho nên mình nghĩ chắc chắn bên Golang nó cũng phải có framework hỗ trợ bạn code nhanh hơn. Do vậy mình lên google tìm “top framework for Go”, sau đó bạn lên github tìm mã của nó. Mình tâm đắc nhất là go-kit. Khá xịn để viết theo mô hình micro-service. 5. Go chỉ là 1 công cụ, ngoài ra mình cần học thêm về database nữa. Mình phải học cách viết SQL(CRUD), và chọn framework xịn để làm.2 thằng đó có postgres và mongodb. Mỗi thằng cho 1 loại database khác nhau. Nhưng nếu là sql bạn nên chọn postgres, mình thấy khá ổn. Còn non-SQL thì thằng còn lại. Mình dùng Mac nên mình chọn thằng này để triển khai nhanh trên máy local: https://postgresapp.com/downloads.html

Cài xong cái chạy dc luôn không mất công cấu hình lằng nhằng.

6. Cách desploy: cái này mình đang học thôi nên chưa rõ. Bạn sẽ học cách sử dụng docker, viết CI/CD.

Hình ảnh là project mình tự học, tự làm cho cá nhân mình:

Bạn sẽ hỏi tại sao mình lại viết như vậy. Cách học ngôn ngữ của mình là tìm vài ba source code nào đó thật pro lắm sao trên github, sau đó mở ra coi xem người ta triển khai như nào, rồi viết lại mã y hệt. Mỗi mã sẽ có 1 đặc điểm hay dở khác nhau, sau đó cuối cùng mình đúc rút, lấy kinh nghiệm và tự dựng 1 base theo ý mình. Học qua code của người khác là cách học nhanh nhất để làm được việc. danh sách những source code mà mình tâm đắc:

https://github.com/AleksK1NG/Go-Clean-Architecture-REST-API

https://github.com/AleksK1NG/Go-GRPC-Auth-Microservice

https://github.com/sksmith/go-micro-example

https://github.com/qiangxue/go-rest-api

https://github.com/gbrayhan/microservices-go

https://github.com/sagikazarmark/modern-go-application.git

https://github.com/techschool/simplebank

https://github.com/aayushrangwala/watermark-service

Danh sách các video mà mình tâm đắc:

https://www.youtube.com/watch?v=rx6CPDK_5mU&list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE&index=2 https://www.youtube.com/c/MarioCarrion/playlists

Danh sách các bài viết mà mình tâm đắc:

7. Người thầy đắc lực

Ngoài ra bạn cần 1 công tụ khá tốt để giúp bạn viết những dòng code mà có lẽ bạn sẽ không ngờ nó hay vậy, đó là copilot:

https://github.com/features/copilot/

Nếu không có nó nhiều đoạn code mình rất mất thời gian tìm kiếm trên stack over flow. Cảm ơn trời đất, hiện tại nếu bạn là sinh viên bạn sẽ được dùng thử miễn phí. Còn mình thì cứ 1 năm là 200$.

Đấy là tất cả những gì mình đang biết. Thân ái.

Code Toàn Bug

Code nhiều bug nhiều!

Leave a Reply

Your email address will not be published.