Rèn Phần Mềm Tự Do
Ngày đăng bởi Ron
Tôi đã nói một chút về sự bất mãn của mình với ngành công nghiệp công nghệ trong các bài viết Báo cáo Mùa xuân I và Mối quan hệ độc hại của tôi với Big Tech, vì vậy tôi sẽ không phàn nàn nữa. Trong bài viết này, tôi sẽ trình bày ngắn gọn cách tôi phát triển phần mềm cũng như các nền tảng và công cụ mà tôi sử dụng.
Tôi tốt nghiệp kỹ thuật viên tin học vào năm 2018, làm công việc bảo trì một thời gian cho đến khi bắt đầu học ngành Khoa học Máy tính vào năm 2020. Tuy nhiên, hành trình lập trình của tôi đã bắt đầu từ trước đó: từ năm 2014, tôi đã tự học phát triển các trang web rồi lưu trữ trên tài khoản GitHub cũ của mình. Tôi từng dùng GitHub Pages để host các trang web tĩnh và cảm thấy rất hài lòng. Tôi đã tạo ra hàng tá dự án .github.io và có lẽ chúng vẫn đang thất lạc đâu đó trong các trung tâm dữ liệu của Microsoft.
Tôi chưa bao giờ dùng Windows làm máy tính cá nhân. Khi mua chiếc máy tính đầu tiên, nó đã được cài sẵn Debian và tôi đã dùng Debian cho đến năm 2018. Khi tham gia khóa học kỹ thuật, tôi bắt đầu tập tành làm hacker nên chuyển sang dùng Arch Linux và lưu trữ các trang web cũng như dự án của mình trên GitLab.
Trong suốt thời gian học đại học, tôi dùng Arch Linux và lưu trữ các dự án trên GitLab. Vì trở thành nhà phát triển ứng dụng cho Google Play Store, tôi từng rất vui vẻ khi dùng bất cứ thứ gì của Google, đặc biệt là các trung tâm dữ liệu của họ. Câu chuyện đó kéo dài cho đến đầu năm nay. Việc chấm dứt mối quan hệ với Google là một sự giải thoát đối với tôi. Giờ đây, tôi chỉ sử dụng phần mềm tự do và phi tập trung trong toàn bộ cuộc sống công nghệ của mình. Tôi đang dùng Void Linux, mặc dù rất ghét mô hình rolling release, và lưu trữ các dự án của mình trên Codeberg với các trung tâm dữ liệu đặt tại Berlin.
Trình soạn thảo dòng lệnh của tôi là Nano. IDE của tôi là Geany.
Trong phát triển phần mềm cho máy tính để bàn (trọng tâm hiện tại của tôi), tôi sử dụng stack C/GDB/Make/Git, và các thư viện đồ họa tôi dùng là GTK3 (cho các công cụ tiện ích) và SDL2 (cho trò chơi).
Trong phát triển Web, tôi sử dụng web stack tiêu chuẩn HTML/CSS/JS và Python khi cần thiết.
Đối với script, tôi sử dụng Shell và Python.
Trong *Trí tuệ nhân tạo, tôi sử dụng C và Python.
Đây là lò rèn cá nhân của tôi. Dĩ nhiên, đối với công việc được trả lương, chúng tôi sử dụng những gì công việc yêu cầu. Tôi đã từng phải lập trình trên Windows bằng Java sử dụng VSCode và tôi vẫn còn sống.
*Trí tuệ nhân tạo là một lĩnh vực nghiên cứu thuộc Khoa học Máy tính. Những gì mọi người thấy ngoài kia được gán nhãn AI thực chất là các mô hình sinh (generative models) sử dụng kiến trúc transformer, cùng với các tác nhân tự hành (autonomous agents) và tự cải thiện.