Bài viết được dịch từ trang web Makeuseof

Học lập trình hiệu quả qua dự án thực tếNếu bạn đang tìm cách để tiếp thị bản thân là một lập trình viên có năng lực, không có lúc nào hoặc nơi nào tốt hơn để thể hiện kỹ năng của mình bằng cách đóng góp vào các dự án mã nguồn mở. Có nhiều lý do tại sao bạn nên đóng góp vào các dự án mã nguồn mở, nhưng lý do quan trọng nhất trong tất cả đó là bạn có thể "học bằng cách thực hành". Và một khi đã tham gia, bạn không những có thể nói về những kỹ năng lập trình của mình, mà bạn còn có thể chứng minh điều đó bằng cách cho người khác thấy công việc mà bạn đã làm.

Tại sao lại nên đóng góp vào dự án mã nguồn mở?

Các dự án mã nguồn mở là một nguồn tài nguyên quan trọng để nâng cao năng lực của một lập trình viên bởi vì chúng luôn luôn có ở đó, và bạn luôn có thể tiếp cận với nó. Việc đóng góp vào các dự án mã nguồn mở có thể có giá trị như một kỳ thực tập lập trình, nhưng bạn không cần phải trải qua quá trình tìm kiếm và phỏng vấn để có cơ hội nhận được một cơ hội mong manh. Ngược lại, bạn có thể tự do lựa chọn dự án để đóng góp cũng như mức độ đóng góp. Nó cũng cung cấp cho bạn sự linh hoạt về các kỹ năng bạn muốn học bằng cách tìm một dự án thích hợp.

Tìm kiếm những dự án nhỏ

Học lập trình hiệu quả qua dự án thực tế

Lúc mới bắt đầu là giai đoạn khó nhất của việc đóng góp vào các dự án mã nguồn mở. Lý tưởng và dễ nhất để bắt đầu là bằng cách tìm một dự án nhỏ để đóng góp, vì quá trình phát triển ở đó thường ít phức tạp và quan tâm nhiều hơn tới mỗi người đóng góp (contributor). Một dự án vẫn duy trì ở mức nhỏ nhằm mục đích giúp cho việc bắt đầu dễ dàng hơn là dự án ThinkUp của Gina Trapani.

Tìm kiếm những dự án "dễ tham gia"

Bạn cũng nên quan tâm đến những dự án lớn, nhưng ở đó họ luôn tạo điều kiện dễ dàng cho các contributor có thể tham gia bằng cách đưa cho bạn các bug nhỏ để làm việc và nâng mức độ khó dần lên. Một ví dụ tuyệt vời là dự án KDE.

Smit Mehta, một contributor cho phần mềm Digikam của KDE, đã từng trả lời một câu hỏi trên mạng xã hội Quora như sau -

"Ngoài ra họ có một phần có tên là "junior jobs", tập hợp các lỗi nhỏ và dễ dành cho những người mới tham gia. Họ giúp bạn hiểu về lỗi đó, và chỉ cho bạn đến vị trí tập tin chính xác cần phải sửa. Sau khi bạn bắt đầu gửi các bản vá lỗi những vấn đề nhỏ như vậy, người quản lý sản phẩm (product manager) của ứng dụng đó sẽ cung cấp cho bạn những lỗi nhiều thách thức hơn, và bạn có thể trao đổi với anh ta về cách làm thế nào để sửa nó, anh ta sẽ đích thân hướng dẫn bạn, và sửa lại phần code của bạn. Sau khi bạn đã sửa một số lượng lỗi kha khá (phụ thuộc vào từng ứng dụng và người quản lý), anh ta sẽ cung cấp cho bạn quyền truy cập git tới codebase. Sau đó bạn sẽ tự do cập nhật những thay đổi của mình mà không còn cần bất kỳ sự cho phép nào nữa."

Những địa chỉ để bạn tìm kiếm

Học lập trình hiệu quả qua dự án thực tế

Nếu không có dự án nào ở trên khiến bạn quan tâm, thì có một số nơi khác mà bạn có thể tìm kiếm. Hai địa chỉ tốt nhất để tìm kiếm các dự án mã nguồn mở là GitHubSourceForge. Bạn cũng nên kiểm tra trang "Help Needed" của SourceForge. Cá nhân tôi khuyên bạn nên tìm kiếm trên GitHub hơn, bởi vì dịch vụ này hiện nay đang được rất nhiều người sử dụng. 

Ngoài ra, bạn có thể kiểm tra trên trang Ohloh, đó là một danh mục của nhiều dự án mã nguồn mở có thể được chỉnh sửa bởi bất cứ ai, cũng như ở Code52 nơi một dự án mã nguồn mở khác nhau sẽ được làm nổi bật mỗi tuần để giúp người mới bắt đầu tìm hiểu về nó. Summer of Code của Google cũng là một nguồn tài nguyên tuyệt vời có tác động mạnh mẽ lên cộng đồng mã nguồn mở. 

Học những kỹ năng mới

Một khi bạn đã tìm thấy cho mình một dự án mã nguồn mở thích hợp mà bạn muốn đóng góp,  thì điều đó thật tuyệt vời! Hãy nói chuyện với những người phụ trách dự án đó, bắt đầu gửi các bản vá lỗi, và nếu không thì tìm hiểu về phần code đã có trong dự án đó. Mặc dù cách học tốt nhất là tự mình viết code, bạn vẫn có thể học được rất nhiều từ phần code mà người khác đã viết.

Tuy nhiên, đừng hy vọng rằng các contributor khác sẽ dạy bạn những kỹ năng mới. Mặc dù nhiều người trong số họ rất sẵn lòng để giúp bạn giải quyết các vấn đề, nhưng họ sẽ không dạy bạn toàn bộ kiến thức kiểu như các khóa học lập trình. Thay vào đó, học bằng cách đóng góp vào các dự án mã nguồn mở là một quá trình tự học rất hiệu quả. Bạn sẽ nhìn thấy một dự án và mã nguồn của nó, nhìn thấy một lỗi hoặc một tính năng mới mà bạn muốn thêm vào, và sau đó tìm ra cách để sửa hoặc thêm tính năng dựa theo ngôn ngữ lập trình và framework của dự án. Vì vậy, bạn sẽ cần phải tìm kiếm rất nhiều trên Internet để học về những kỹ thuật mới, và sau đó áp dụng chúng vào dự án mã nguồn mở của bạn.

Kết luận

Bằng cách này, bạn sẽ học được những kỹ năng mới, và bạn tự động có những bằng chứng để chứng minh cho tuyên bố của mình rằng bạn có nhiều kỹ năng. Các nhà tuyển dụng tương lai có thể biết được rất nhiều bằng cách nhìn vào những đóng góp vào các dự án mã nguồn mở của bạn, và thấy rằng bạn đã sẵn sàng cho công việc. Và đây là điều tốt nhất là bạn có thể làm, ngay cả khi bạn không thể xin được một vị trí thực tập, nhưng giá trị giữa việc đi thực tập và đóng góp vào dự án mã nguồn mở là tương đương.

Bạn đã từng đóng góp vào các dự án mã nguồn mở? Chúng giúp bạn phát triển kỹ năng lập trình như thế nào, và bạn có lời khuyên nào cho người mới bắt đầu? Hãy cho chúng tôi biết ý kiến của bạn trong phần bình luận phía dưới nhé!

Tham khảo:

Các khóa học lập trình tại TechMaster sẽ cung cấp cho bạn những kỹ năng thực tế nhất để có thể xin được việc làm. Với nhiều mô hình đào tạo như online, offline, và FlipLearning (kết hợp giữa online với offline). Bạn có thể xem thông tin chi tiết về các khóa học tại đây.