53 điểm bởi GN⁺ 2024-09-11 | 5 bình luận | Chia sẻ qua WhatsApp
  • "Chúng tôi thích phát triển phần mềm"; việc lập trình là một hành trình ngoằn ngoèo để giải quyết vấn đề, và đích đến kém quan trọng hơn nhiều so với điều nhiều người nghĩ
  • Chúng tôi thường nhận được những câu hỏi như:
    • "Tại sao lại làm việc này?"
    • "Mục đích của dự án này là gì?"
    • "Dự án này tốt hơn X ở điểm nào?"

Sự khắc nghiệt của Thung lũng Silicon

  • Nếu bạn dành nhiều thời gian trên Hacker News hoặc các trang tin thiên về startup khác, bạn có thể tin rằng ai cũng đang bám lấy startup triệu đô tiếp theo hoặc chiến lược thoái vốn
  • Có thể sẽ khó hình dung rằng mọi người lại làm mã nguồn mở hoàn toàn chỉ vì niềm vui
  • Có những hacker yêu nghệ thuật xây dựng phần mềm. Họ làm điều đó vì thử thách, vì niềm vui. Họ không cố để trở thành triệu phú

Văn hóa tiêu dùng

  • Hoặc nếu bạn chỉ tiêu thụ phần mềm của người khác mà hầu như không tự làm gì, bạn có thể bị mắc kẹt trong suy nghĩ: "Dự án này có thể làm gì cho tôi?" (và nếu dự án không liên quan đến họ, họ sẽ tự hỏi tại sao nó lại tồn tại)
  • Có những hacker không cần người khác phải tiêu thụ phần mềm của họ. Tất nhiên, sẽ rất tuyệt nếu người khác thích thú, ngưỡng mộ hoặc trân trọng công việc của họ, nhưng điều đó không thực sự cần thiết. Chỉ riêng việc tạo ra nó đã là niềm vui rồi.

Chúng tôi làm điều đó chỉ vì vui thôi. Thật đấy.

  • Cuối cùng, những người chỉ học các kỹ năng lập trình cần cho công việc hằng ngày có thể sẽ không hiểu được các lập trình viên luôn thử những điều mới mẻ
  • Có những hacker sống và thở cùng code
    • Thật đáng buồn khi phải nghĩ rằng từng dòng code đều phải chứng minh giá trị tiền bạc của nó, rằng từng giờ vất vả trước bàn phím đều phải được giải thích
  • Bản thân quá trình đã có giá trị. Dù có khiếm khuyết, nó vẫn có giá trị tự thân. Không phải chỉ sản phẩm cuối cùng mới quan trọng
  • Tôi xin kết lại bằng câu trích dẫn yêu thích của mình về lập trình:

Lập trình viên, cũng như thi sĩ, làm việc chỉ hơi tách ra khỏi chất liệu thuần túy của tư duy. Anh ta dùng trí tưởng tượng của mình để xây lâu đài trong không trung. Rất ít phương tiện sáng tạo nào linh hoạt đến vậy, dễ dàng tinh chỉnh và làm lại đến vậy, và có thể hiện thực hóa những cấu trúc ý niệm hùng vĩ một cách dễ dàng đến vậy. Nhưng khác với lời thơ của thi sĩ, cấu trúc chương trình là có thật ở chỗ, tách biệt khỏi chính cấu trúc đó, nó tạo ra những kết quả hữu hình, chuyển động và vận hành.
— Fred Brooks, The Mythical Man-Month

Hãy thử đi!

  • Nếu bạn nghĩ mình đã lạc lối — nếu việc code từng vui, nhưng giờ chỉ còn là cực hình để chấm công và nhận lương — chúng tôi muốn mời bạn quay lại!
  • Hoặc nếu bạn đã bị thuần hóa để nghĩ rằng việc lập trình những ý tưởng kỳ quặc chỉ dành cho chuyên gia và học giả, thì trang này là dành cho bạn. Bạn có quyền mày mò và tận hưởng niềm vui trong quá trình đó!
  • Hãy nghĩ đến một thứ gì đó mà bạn muốn tạo ra, học hỏi và trải nghiệm bên trong máy tính. Và đừng tìm kiếm hay nghiên cứu trước, cứ lao vào đi. Biết đâu bạn sẽ cảm thấy được một chút niềm vui. Thật đấy.

Câu lạc bộ

Không theo thứ tự nào, dưới đây là một vài dự án tự hào gắn nhãn "chỉ vì vui thôi".

  • Natalie - Trình biên dịch Ruby làm cho vui
  • ZigSelf - Bản hiện thực Self bằng Zig làm cho vui
  • php-parser-rs - Trình phân tích cú pháp PHP viết bằng Rust làm cho vui
  • ex6502 - Trình giả lập bộ xử lý 6502 viết bằng Elixir làm cho vui
  • Piko-piko OS - Toy OS x86 16-bit làm cho vui
  • Folders2kt - Ngôn ngữ lập trình esoteric làm cho vui
  • GCC Rust - Trình biên dịch Rust làm cho vui
  • Soul - Máy chủ SQLite REST và thời gian thực làm cho vui
  • hssp - CLI mã trạng thái HTTP làm cho vui
  • PyCraft - Trình khởi chạy Minecraft viết bằng Python làm cho vui
  • hashsearch - Công cụ tìm kiếm ảnh ngược làm cho vui
  • quackspeak - Công cụ chuyển văn bản thành giọng nói bằng vịt làm cho vui
  • Quark - Phương ngữ Lisp hiệu năng cao làm cho vui
  • Whitecat - CLI cho phát triển PHP làm cho vui
  • eClient - Trình khởi chạy Minecraft viết bằng Python làm cho vui
  • CascadeOS - Hệ điều hành đa dụng làm cho vui
  • Kiesel - Engine JavaScript viết bằng Zig làm cho vui
  • github-pewpew - Công cụ CLI xóa repository làm cho vui
  • dt - Ngôn ngữ kiểu AWK có chaining làm cho vui
  • grab - Bản sao grep gọn nhẹ làm cho vui
  • math-with-regexps - Làm toán bằng regex cho vui
  • noro - Trình soạn thảo văn bản có window manager làm cho vui
  • Vox - Trình dựng static site viết bằng Elixir làm cho vui
  • jimson - Trình phân tích cú pháp JSON làm cho vui
  • txt2tufte - Trình dựng website kiểu Tufte làm cho vui
  • Azure Storage Trình khám phá web - Trình khám phá web Azure Storage làm cho vui
  • renam - Tiện ích đổi tên tệp cực nhanh làm cho vui
  • Funciton - Ngôn ngữ lập trình bằng các chiếc hộp làm cho vui

Ý kiến của GN⁺

  • Bài viết này nói về giá trị và tầm quan trọng của việc các lập trình viên theo đuổi niềm vui đơn thuần. Trong văn hóa tiêu dùng và startup ngày nay, có áp lực rằng mọi thứ đều phải thực dụng và sinh lời, nhưng điều đó có thể cản trở tính sáng tạo và đổi mới của việc lập trình.
  • Cộng đồng mã nguồn mở là một ví dụ điển hình thể hiện tinh thần "chỉ vì vui thôi" này. Nhiều dự án mã nguồn mở quan trọng ban đầu bắt đầu như một dự án sở thích của ai đó, và trong quá trình đó, những ý tưởng và cách tiếp cận mới đã được khám phá.
  • Tuy nhiên, nếu theo đuổi thái độ này một cách quá mức, nó cũng có thể dẫn đến việc sản sinh hàng loạt dự án kém tính thực dụng. Cuối cùng, có lẽ sự cân bằng giữa niềm vui và tính thực dụng mới là điều quan trọng. Dù vậy, bài viết này vẫn có ý nghĩa ở chỗ nó nhắc chúng ta nhớ đến giá trị của niềm vui thuần túy và sự tò mò mà ta thường hay quên mất.
  • Với những nhà phát triển đang mệt mỏi vì công việc thường nhật, các dự án sở thích kiểu này có thể là nguồn cảm hứng và động lực tốt. Đây cũng là bài viết mà tôi muốn giới thiệu cho những ai muốn học ngôn ngữ hay công nghệ mới nhưng cảm thấy mình không có thời gian.

5 bình luận

 
geekbini 2024-09-18

Tôi được biết ngay cả bản thân ngôn ngữ Python cũng là một language được tạo ra cho vui trong kỳ nghỉ khoảng một tuần.

 
joon14 2024-09-12

Tôi cũng thích phát triển những thứ cho vui, nhưng dạo này cứ tan làm là kiệt sức nên có vẻ đến tưởng tượng cũng không nổi nữa. Có nhiều người thật đáng nể.

 
savvykang 2024-09-12

Bạn cũng có thể hỗ trợ khắc phục sự cố trên issue tracker của các dự án mã nguồn mở mình thường dùng hoặc đóng góp cho tài liệu. Có vẻ không nhất thiết phải bắt đầu một dự án mới hay phải tự mình viết code.

 
halfenif 2024-09-11

Đến năm 94 tôi vẫn chỉ là một người dùng máy tính đơn thuần, rồi học ngôn ngữ lập trình và đến năm 95 thì làm một nghề liên quan đến "tin học".

Bây giờ nghĩ lại, tôi đúng là một kẻ cực kỳ may mắn.

Đôi khi tôi còn nghĩ có khi mình phải trả tiền để được đi làm cho công ty ấy chứ.

 
GN⁺ 2024-09-11
Ý kiến trên Hacker News
  • Thích tạo ra thứ gì đó bằng code, đôi khi cũng cân nhắc lợi ích tài chính, nhưng chủ yếu làm dự án vì vui

    • Điều hành một nhóm cùng làm dự án trong 6 tuần và đã hoàn thành khóa thứ hai
    • Quá trình cùng nhau giải quyết dự án và thử thách rất thú vị
  • Đã giải thích về dự án cá nhân trong buổi phỏng vấn, nhưng cảm thấy khó chịu vì người phỏng vấn cứ liên tục hỏi tại sao lại làm dự án đó

    • Đã nói là chỉ làm để vui và học hỏi, nhưng người phỏng vấn không hiểu
  • Khi giải thích động lực làm phần mềm, ví nó giống như một mình xây lâu đài cát trên bãi biển và cảm thấy thỏa mãn

    • Dù không ai công nhận, dù bị sóng cuốn trôi, vẫn thấy hài lòng
  • Nhờ các mô hình ngôn ngữ lớn (LLM), việc bắt đầu những dự án thú vị trở nên dễ hơn

    • Có thể tạo prototype đơn giản mà không cần quá trình nghiên cứu dài hay thiết lập công cụ phức tạp
    • Đã làm một web app âm nhạc dựa trên vị trí để mỗi lần đi dạo lại nghe nhạc khác nhau
  • Để dành thời gian cho dự án cá nhân, đã cắt giảm chi phí sinh hoạt và tận dụng khoảng thời gian giữa các hợp đồng

    • Làm dự án theo từng tuần và dành thời gian cho những ý tưởng từng mơ ước
    • Làm dự án vì vui nhưng đầu tư thời gian rất nghiêm túc
  • Thấy tiếc khi danh sách các dự án làm vì vui chỉ bao gồm những dự án đã hoàn thành

    • Cả những dự án dang dở hoặc bị quên sau vài tuần cũng nên được tính vào
    • Cái vui của việc lập trình nằm ở chính quá trình
  • Trong cuộc trò chuyện với đồng nghiệp hôm qua, đã đi đến kết luận rằng phát triển kỹ năng thông qua khối lượng công việc lớn là điều quan trọng

    • Lấy ví dụ John Carmack, chia sẻ kinh nghiệm nâng cao kỹ năng khi làm ra nhiều trò chơi
    • Việc cố chọn đúng ngôn ngữ và dự án portfolio đôi khi lại gây trì hoãn
  • Cả sản phẩm làm vì vui lẫn sản phẩm làm vì lợi nhuận đều có thể kém chất lượng

    • Vượt qua thế lưỡng phân giữa niềm vui và lợi nhuận, điều quan trọng là tạo ra những sản phẩm hệ thống lập trình tốt
  • Đây là một trải nghiệm nội tại, giống như tự mình nấu ra một món ăn tuyệt vời, nhưng bản thân nó đã có giá trị

    • Rất khó giải thích điều này cho những người không hiểu mindset đó
  • Khi đọc các trang như Hacker News, người ta có thể nghĩ nhiều người đang chuẩn bị cho startup bom tấn tiếp theo

    • Nhưng cũng có rất nhiều người chỉ đơn giản làm open source cho vui
    • HN là một nguồn lớn cho thấy các lập trình viên đang làm việc theo cách thú vị hơn