# 34: Hiện thực hoá tham vọng của bạn với Open Source

Có lẽ bạn đang phát triển phần mềm ở nơi mà không thỏa mãn được giấc mơ đầy tham vọng của mình. Có thể bạn đang phát triển phần mềm cho một công ty bảo hiểm nào đó trong khi nơi bạn thực sự muốn làm việc là Google, Apple, Microsoft hay công ty khởi nghiệp của riêng bạn để làm nên điều vĩ đại hơn. Mọi thứ sẽ chẳng đi đến đâu cả khi bạn phải phát triển phần mềm cho các hệ thống mà bạn không mấy hứng thú.

May mắn thay, có một câu trả lời cho vấn đề của bạn: Open Source. Có hàng nghìn dự án Open Source ngoài kia- rất nhiều trong số đó khá thiết thực, cung cấp bất kỳ loại trải nghiệm phát triển phần mềm nào bạn muốn. Nếu bạn có ý tưởng phát triển một hệ điều hành mới, hãy thử sức với một trong hàng tá dự án hệ điều hành. Nếu bạn muốn làm việc với phần mềm âm nhạc, hoạt hình, mật mã, robot, trò chơi PC, trò chơi trực tuyến, điện thoại di động hay bất cứ điều gì, chắc chắn bạn sẽ tìm thấy ít nhất một dự án Open Source dành riêng cho sở thích đó.

Và tất nhiên, chẳng có gì là miễn phí cả. Bạn sẽ phải từ bỏ thời giờ nghỉ ngơi của mình, vì bạn không thể làm việc với dự án Open Source về một trò chơi nào đó trong giờ làm việc- bạn vẫn phải có trách nhiệm với ông chủ của mình. Ngoài ra, rất ít người thực sự kiếm được tiền nhờ việc đóng góp cho các dự án Open Source. Cũng có một số người kiếm chác được chút đỉnh nhưng chỉ chiếm một phần rất nhỏ. Bạn nên xác định sẵn rằng sẽ phải từ bỏ thời gian rảnh của mình (tất nhiên, cắt giảm chút thời gian chơi game và xem TV thì bạn vẫn sống tốt thôi). Với tư cách là một lập trình viên, bạn càng làm việc năng suất với các dự án Open Source, bạn càng sớm nhận ra tham vọng thực sự của mình. Điều quan trọng là phải xem xét kĩ hợp đồng của bạn- một số nhà tuyển dụng có thể hạn chế những gì bạn có thể đóng góp, thậm chí cả thời gian của bạn. Ngoài ra, bạn cũng nên cẩn thận với việc vi phạm luật sở hữu trí tuệ liên quan đến vấn đề bản quyền, bằng sáng chế, nhãn hiệu và bí mật thương mại.

Open Source cung cấp nhiều cơ hội cho các lập trình viên năng nổ. Trước tiên, bạn có thể xem người khác triển khai vấn đề mà bạn quan tâm như thế nào- bạn có thể học được nhiều điều thông qua việc đọc code của người khác. Thứ hai, bạn có thể đóng góp code và ý tưởng của riêng mình cho dự án. Đương nhiên không phải mọi ý tưởng của bạn đều được chấp nhận mà chỉ có một số có thể. Và bạn sẽ học được nhiều điều mới mẻ thông qua việc xử lý các vấn đề và đóng góp code. Thứ ba, bạn sẽ gặp những người tuyệt vời có chung niềm đam mê với bạn- những tình bạn có thể tồn tại suốt đời. Thứ tư, nếu bạn là người đóng góp nhiều cho project, bạn có thể thêm kinh nghiệm thực tế vào công nghệ thực sự khiến bạn quan tâm.

Bắt tay vào làm việc với Open Source khá dễ dàng. Có sẵn rất nhiều tài liệu về các công cụ bạn cần (ví dụ: quản lý mã nguồn, biên tập viên, ngôn ngữ lập trình, xây dựng hệ thống, v.v.).

Bắt đầu với việc tìm kiếm dự án bạn muốn làm và tìm hiểu các công cụ mà dự án sử dụng. Những tài liệu về các dự án sẽ khá nhẹ nhàng trong phần lớn trường hợp, nhưng điều này có lẽ ít quan trọng hơn vì cách tốt nhất để học là tự điều tra code. Nếu bạn muốn tham gia, bạn có thể đưa ra lời đề nghị giúp đỡ. Hoặc bạn có thể bắt đầu bằng cách tình nguyện viết test code. Mặc dù điều đó nghe có vẻ không mấy thú vị, sự thật là bạn học nhanh hơn thông qua việc viết test code cho phần mềm của người khác so với hầu hết các hoạt động khác. Hãy biết test code thật tốt. Tìm bugs, đề xuất sửa lỗi, kết bạn, làm việc với phần mềm bạn yêu thích và thực hiện tham vọng phát triển phần mềm của bạn!