Introduction
Bạn đã bao giờ đặt cho bản thân những câu hỏi như thế này chưa?
"Ủa, sao các dự án như Linux được nhiều người làm không công, nhưng tại sao họ vẫn tập trung phát triển thêm cho dự án?
Trong bài blog (sharing) này, tớ sẽ cùng mọi người trả lời cho câu hỏi trên. Cũng như thay đổi tâm lý cho các bạn về việc đóng góp cho các dự án mã nguồn mở.
Ukielah, cùng bắt đầu thôi nè.
Tại sao nhiều người sẵn sàng contribute cho các dự án mã nguồn mở?
Mình sẽ trả lời câu hỏi này dựa trên quan điểm của mình nha, với tư cách là một người đã đóng góp cho nhiều dự án mã nguồn mở trong 3 năm vừa qua.
Mình nhận thấy rằng, khi đóng góp cho các dự án mã nguồn mở, các lợi ích bạn nhận được sẽ rất nhiều, nhưng mình sẽ liệt kê ra những lợi ích tiêu biểu nha.
- Nâng cao kỹ năng cho bản thân: Nhiều người vẫn quyết định cống hiến cho các mã nguồn mở, bởi bạn sẽ có được cơ hội để thể hiện bản thân, tự viết những đoạn code của mình để đóng góp cho những người khác sử dụng. Và để phần mã nguồn của bạn được duyệt vào trong dự án, chắc chắn sẽ phải qua một quy trình kiểm duyệt (như kiểm tra về formatting, kiểm tra tính xác thực). Từ đó, bạn sẽ nhận được các recommendation và feedback từ những người khác, cũng một phần để năng cao và cải thiện kỹ năng cho bản thân.
Nếu như bạn mới bắt đầu với việc đóng góp cho các dự án mã nguồn mở, đừng buồn nếu như mã nguồn của bạn không được merge ngay lập tức, hãy cố gắng đọc feedback của những người khác, rồi sau đó thực hiện thay đổi, bạn sẽ không chỉ nâng cao được kỹ năng cho bản thân, mà còn được ghi danh vào dự án, từ đó, bạn có thể cho những thông tin này vào CV, tạo thuận lợi cho việc xin apply job của chính bạn sau này.
Giúp đỡ người khác: Không chỉ những người nội bộ và chủ chốt dự án, mà chính bạn cũng có thể thảo luận, đưa ra những ý kiến và quan điểm riêng của mình về mã nguồn của người khác đã đóng góp. Từ đó, bạn sẽ có cơ hội được trải nghiệm được review source code, đưa ra, phản biện và chứng mình những quan điểm của mình.
Giúp đỡ người khác (phần 2): Ngoài hỗ trợ cho những người khác contribute vào mã nguồn, mọi hoạt động contribute của bạn (báo cáo lỗi, thay đổi code nhỏ, bổ sung tài liệu, v.v) cũng sẽ góp ích cho những người sử dụng sau này.
Lấy ví dụ như vị trí system admin, đa phần các công ty sẽ chỉ tuyển những người có đủ hiểu biết về cách duy trì một hệ thống, và họ (có thể) không hiểu gì về code cả. Việc bổ sung tài liệu cũng sẽ giúp ích cho họ trong tình huống này.
Nếu thấy lỗi, các bạn trong vị trí system admin đó cũng có thể mở issue trên các nền tảng quản lý source code, sẽ có người review và giải đáp giúp họ, và nếu như đã xác định được là bug, coi như, bạn cũng đã đứng vai trò là tester rồi.
Hãy nhớ nha, nếu muốn đóng góp cho bất kỳ dự án mã nguồn mở nào, tốt hơn hết, bạn nên có một cộng đồng những người cùng phát triển trên các platform (như Discord, Teams, Slack, v.v). Các nền tảng này cũng sẽ tạo cho bạn cơ hội để hỏi những người khác và gặp gỡ những contributor khác.
Quan trọng hơn hết, bạn nên thay đổi tư duy làm mọi thứ để mang lại lợi ích cho bản thân, hãy nghĩ đến cộng đồng, hãy nghĩ đến những framework mã nguồn mở mà bạn đang sử dụng để build up trên nó.
Làm sao để bắt đầu?
Nếu như đã có cảm hứng để bắt đầu đóng góp cho các dự án mã nguồn mở rồi, chúng ta sẽ tìm hiểu các cách để có thể đóng góp cho các dự án này nha.
Không nhất thiết phải biết code
Khi nói về việc đóng góp cho dự án mã nguồn mở, không hẳn là bạn sẽ phải biêt lập trinh cho các platform mà dự án này sử dụng. Đây sẽ là một vài cách bạn có thể contribute cho các dự án mã nguồn mở mà không cần biết code nè.
- Đóng góp cho các tài liệu
Hãy ngồi lại, và đọc qua tài liệu (ví dụ như
README.md
) và hãy xem bạn có cải tiến được gì hay không (làm cho dễ hiểu hơn, giải thích cặn kẽ hơn, etc…) Sửa những thứ nhỏ nhặt (gõ sai, link chết, etc..) Xem các issue, và xem bạn có giúp đỡ được gì trong khả năng của mình hay không
- Viết những hướng dẫn riêng của mình
Không bắt buộc bạn phải viết hướng dẫn trên trang tường của dự án, mà bạn hoàn toàn có thể viết những bài blog riêng, chia sẻ về hành trình cũng như cách sử dụng phần mềm mã nguồn mở này nọ… Và tất nhiên, thông qua SEO, sẽ có nhiều người sẽ tìm đến bài viết của bạn để nhận được sự trợ giúp.
- Apply làm phiên dịch cho dự án
Đối với công việc này, có lẽ bạn nên tìm các dự án cần tuyển người dịch qua các ngôn ngữ khác (nếu như chưa có, bạn có thể bắt đầu với chương trình của FreeCodeCamp
- Trả lời các câu hỏi và thắc mắc
Bạn có thể tham gia vào phần
Discussion
trên GitHub để có thể tham gia hỏi đáp cùng những người dùng. Tuy nhiên, bạn nên phân biệt cẩn thận giữa việc mở thảo luận và mở issue, để tránh gây hiểu nhầm nhé. Không chỉ discussion trên các platform kia, bạn hoàn toàn có thể tham gia các cộng đồng (official hoặc unofficial) trên Reddit, Facebook để có thể hỏi và đáp.
- Sử dụng các phiên bản beta
Thông thường, các dự án mã nguồn mở sẽ có những phiên bản được gọi là “Pre-release”, bạn có thể tham gia và sử dụng những tính năng mới có, và báo cáo những lỗi mình gặp phải, thậm chí là đề xuất cách sửa lỗi thông qua việc fix bug của bản thân./ :)
- Dọn dẹp và nâng cấp
Với các dự án hơi “abandoned”, bạn có thể review mã nguồn, để dọn dẹp những gì không cần thiết, và nếu hiểu được ý nghĩa của code, bạn có thể bổ sung thêm comment để làm công việc contribute dễ hơn cho những người đến sau.
Wrap-up
Qua bài viết trên, chắc bạn cũng sẽ hiểu được đôi phần về việc contribute cho các dự án mã nguồn mở.
Đây không chỉ là cách sẽ giúp bạn nâng cao kỹ năng, mà bạn cũng đã phần nào give back được cho cộng đồng các người dùng và lập trình viên trên toàn thế giới.
Tham gia các dự án mã nguồn mở, bạn có thể chứng mình được năng lực của bản thân, từ đó xây dựng được cho mình một chiếc portfolio hay CV đẹp hơn cho tương lai của mình.
Cảm ơn các bạn đã đọc qua bài blog này của mình nhiều nha. mãi yêu.
a b c x y z n m a s a d