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

Học lập trình trực tuyến cơ bản đến nâng caoKhái niệm về phần mềm mã nguồn mở không phải là mới, và với những dự án thành công rất lớn như Ubuntu, Android, và rất nhiều các ứng dụng khác, tôi nghĩ chúng ta có thể nói nó là một mô hình đã được chứng minh cho việc tạo ra và duy trì phần mềm chất lượng cao. Nhưng nếu bạn là một lập trình viên chỉ mới bắt đầu vào nghề và đang suy nghĩ về việc liệu có nên tham gia vào các dự án nguồn mở, và nó sẽ mang lại giá trị gì để bù lại lượng thời gian và công sức mà bạn bỏ ra?

Tôi viết bài này để cho bạn thấy lý do tại sao bạn nên nghiêm túc xem xét việc cho đi thời gian và công sức của bạn miễn phí, vì bạn sẽ nhận lại được rất nhiều.

Học bằng cách làm

Học lập trình online cơ bản đến nâng cao

Chọn một dự án mã nguồn mở để đóng góp cho phép bạn có được cơ hội tham gia giải quyết những vấn đề cụ thể và thực tế. Việc này sẽ không hề dễ dàng lúc ban đầu, nhưng bạn sẽ biết về codebase và những phần bên trong của một sản phẩm nào đó mà bạn đã biết và yêu thích. Và thú vị nhất là hiện nay bạn có thể thực hiện được điều này mà không thực sự cần sự cho phép. Ảnh chụp màn hình ở trên xuất phát từ trang Github, đó là một trong những repository dự án mã nguồn mở tốt nhất hiện nay. 

Github sử dụng Git, một "hệ thống kiểm soát phiên bản phân tán". Trong thực tế, điều này có nghĩa là bạn có thể "fork" một repository - tạo ra một bản sao của nó - và làm việc trên bản sao của riêng bạn. Một khi bạn đã sẵn sàng, bạn có thể thông báo cho những người quản lý dự án gốc rằng bạn muốn gửi một bản vá (patch). Cách thức ở đây là đầu tiên bạn cứ làm việc, và sau đó bạn xem họ có chấp nhận nó không. Nếu họ chấp nhận phần code của bạn - thì thật tuyệt vời. Nếu không, hy vọng bạn đã học được một điều gì đó mới, và bây giờ bạn có thể sửa lại phần code của mình và thử lại.

Làm những việc quan trọng

Học lập trình trực tuyến cơ bản đến nâng cao

Ảnh chụp màn hình ở trên xuất phát từ Impress.js, một framework JavaScript ấn tượng để tạo những phần trình diễn (presentations) trong một trình duyệt. Hãy nghĩ nó có phần giống PowerPoint, ít nhất là về cái nhìn và cảm nhận ở sản phẩm cuối cùng. Impress.js là mã nguồn mở, và bạn có thể tìm thấy nó trên Github. Đây là một dự án có nhiều người tham gia, được follow bởi hơn 6.300 nhà phát triển và được fork gần 6000 lần. Việc đóng góp cho một cái gì đó như thế này sẽ rất có ý nghĩa, và là một công việc tuyệt vời.

Nếu bạn đang tìm kiếm một tác vụ cụ thể, bạn có thể kiểm tra trang liệt kê các Issues (những bug) của dự án này. Bạn có thể làm việc trên một vấn đề cụ thể, hoặc thậm chí tìm một vấn đề trong dự án này cho chính mình, sửa chữa nó, và submit phần chỉnh sửa của bạn, giống như bức hình ở dưới đây:

Học lập trình trực tuyến cơ bản đến nâng cao

Ảnh chụp màn hình ở trên có kích thước hơi nhỏ, nhưng bạn có thể thấy rằng lập trình viên này (dwiash) đã chia sẻ một ý tưởng, cùng với code để thực hiện nó. Điều này làm cho nó trở nên dễ dàng để các nhà phát triển chấp nhận phần code đó. Nhưng mà tại sao lại chỉ dừng lại ở đó? Bạn có thể đóng góp trực tiếp cho các dự án lớn hơn nhiều, ví dụ như dự án Ruby on Rails. Nên nhớ rằng, chỉ có bầu trời xanh kia là giới hạn của bạn mà thôi!

Củng cố thêm hồ sơ xin việc của bạn

Học lập trình trực tuyến cơ bản đến nâng cao

Ảnh chụp màn hình này là từ một quảng cáo công việc ngẫu nhiên tôi tìm thấy trên trang tuyển dụng 37signals. Nhiều quảng cáo cho các vị trí kỹ thuật hiện nay yêu cầu cho xem hồ sơ Github của bạn, và đó cũng là một lý do chính đáng. Trở lại năm 2010, Jeff Atwood đã viết một bài đăng trên blog Coding Horror với tiêu đề là "Lập trình viên không biết lập trình". Trong đó, anh nói với kinh nghiệm cá nhân của mình trong việc phỏng vấn ứng viên cho các vị trí lập trình viên... những người thực sự không biết lập trình. Tôi không nói về lập trình viên tồi - ý tôi là về những người chỉ đơn giản là không biết lập trình một chút nào cả.

Nhưng công nghiệp phần mềm là một ngành phát triển rất nhanh, để khắc phục xu hướng này và làm cho quá trình sàng lọc nhanh hơn và tốt hơn, nhiều nhà tuyển dụng yêu cầu xem những phần code thực tế và lịch sử đóng góp của bạn. Rõ ràng, nếu tất cả công việc bạn làm trước đây là mã nguồn đóng và bạn chỉ có thể nói rằng bạn đã làm việc tại công ty X trong bao nhiêu năm đó, hay một điều gì tương tự. Nhưng điều gì sẽ xảy ra nếu bạn cho phép nhà tuyển dụng nhìn vào profile Github của mình và xem tất cả các dự án bạn đã đóng góp, xem có bao nhiêu bản vá lỗi của bạn đã được chấp nhận, và họ thực sự đọc code của bạn?

Chỉ cần tưởng tượng là họ sẽ ấn tượng về bạn như thế nào - và đó là những bằng chứng thể hiện năng lực thực sự của bạn.

Nhận được những món quà miễn phí tuyệt vời

Học lập trình trực tuyến xin việc làm

Ảnh chụp màn hình ở trên xuất phát từ trang bán sản phẩm RubyMine của JetBrains. JetBrains là công ty làm ra rất nhiều IDE tuyệt vời cho Ruby, PHP, JavaScript, và nhiều hơn nữa - và nếu bạn là một người đứng đầu dự án hoặc một người có nhiều đóng góp vào một dự án mã nguồn mở, thì bạn có thể nhận được một giấy phép miễn phí để sử dụng đầy đủ sản phẩm này. Đây chỉ là một ví dụ khá tuyệt vời. Và JetBrains không phải là công ty duy nhất chia sẻ các sản phẩm của mình với cộng đồng mã nguồn mở một cách hào phóng như vậy.

Làm quen những đồng nghiệp mới

Học lập trình trực tuyến tốt nhất

Đây chỉ là một hồ sơ public trên Github; Josh có 1600 người follow, và đã forked hơn 80 repositories. Gã này rõ ràng là biết anh ta đang làm gì. Được làm việc trên cùng các dự án mà anh ta làm, committing code và đợi anh ta review phần code của bạn là một cách tuyệt vời để bắt đầu một cuộc trò chuyện để làm quen. Nếu bạn đang tìm cách để làm việc như một lập trình viên, thì việc xây dựng mối quan hệ là một phần quan trọng trong việc tìm kiếm việc làm. Hãy biết rõ về ngành công nghiệp này từ bên trong, và cho mọi người thấy những gì bạn thực sự biết.

Kết luận

Lý do tôi thích mã nguồn mở rất nhiều là vì nó là một cách để cho thấy năng lực của bạn. Nếu bạn đóng góp vào nhiều dự án nguồn mở, thì mọi người sẽ thấy điều đó. Điều này còn tốt hơn so với bất kỳ bản hồ sơ xin việc màu mè nào.

Bạn có đóng góp tới các dự án mã nguồn mở? Những đóng góp cho dự án mã nguồn mở đó có giúp cho bạn kiếm được một việc làm mơ ước? Hãy chia sẻ câu chuyện của bạn trong phần bình luận phía dưới nhé!