11 điểm bởi GN⁺ 2025-10-29 | 1 bình luận | Chia sẻ qua WhatsApp
  • Hành vi học bằng cách chạm vào và thay đổi một thứ gì đó (tinkering) không chỉ là tiếp thu kỹ năng đơn thuần mà còn là quá trình cốt lõi của việc học và hình thành gu thẩm mỹ
  • Trong quá trình thử mà không có mục đích rõ ràng và lặp lại thất bại, tính ham khám phá và cảm quan sẽ lớn dần
  • Gu thẩm mỹ tốt được tạo nên thông qua những thử nghiệm lặp đi lặp lại: tự mình dùng nhiều công cụ và môi trường khác nhau, bỏ đi thứ không thích và giữ lại thứ tốt
  • Việc liên tục động tay vào, phá đi rồi làm lại là cách rèn cảm giác phân biệt giữa sự tầm thường và sự xuất sắc
  • Thói quen đặt câu hỏi, thử nghiệm và va chạm mỗi ngày mới chính là thái độ mà lập trình viên thời nay nên có

Tinkering là gì

  • Tinker có nghĩa là hành vi lặp đi lặp lại những chỉnh sửa nhỏ để sửa chữa hoặc cải thiện một thứ gì đó
  • Ví dụ như điều chỉnh độ nhạy chuột trong game FPS, thiết lập window manager trên Linux, hay tháo ra và bôi trơn bàn phím cơ
  • Những việc này không nhất thiết phải làm, nhưng mang lại niềm vui khi tự tạo ra môi trường của riêng mình và từ đó dẫn tới học hỏi

Thái độ của tinkering

  • Có hai kiểu người: chỉ hành động để đạt mục tiêuthử làm dù không có lý do cụ thể
    • Tư thế lý tưởng nằm ở khoảng giữa: tìm sự cân bằng giữa thử nghiệm và tính thực dụng
  • Việc đụng vào ngôn ngữ, công cụ, editor mới và chấp nhận sự bất tiện sẽ trở thành quá trình mở rộng cảm quan sáng tạo
    • Không thể khẳng định rằng việc một số lập trình viên chỉ dùng terminal của VSCode, không biết vim bindings, hay dùng GitHub Desktop thay vì CLI là xấu, nhưng nên xem đó là mức cơ bản tối thiểu (minimum)
  • Như câu nói “bài tập là thứ có thể ném đi”, tính khám phá và tần suất của quá trình quan trọng hơn kết quả

Mối quan hệ giữa việc học và gu thẩm mỹ

  • Gu thẩm mỹ tốt là khả năng phân biệt được tích lũy từ kinh nghiệm, và không thể có nếu thiếu những lần thử đa dạng
  • Quá trình dùng nhiều công cụ và ngôn ngữ khác nhau để phân biệt “cái tốt” và “cái chưa ổn” chính là học tập
  • Những thử nghiệm từng có vẻ không cần thiết trong quá khứ rốt cuộc lại làm sâu sắc thêm sự thấu hiểu và tình yêu đối với lập trình
  • Không đi theo tiêu chuẩn của người khác, mà lặp đi lặp lại việc tự chọn và tự bỏ theo tiêu chuẩn của riêng mình mới là quá trình tạo nên gu thật sự
  • Gần đây, việc thử viết shader GLSL, macro thủ tục trong Rust, template C++, phát triển ứng dụng Swift, dùng editor Helix đã mang lại kiến thức và trải nghiệm mới thuần túy từ niềm vui

Thời gian dành cho việc học không bao giờ là lãng phí

Vì sao gu thẩm mỹ lại quan trọng vào lúc này

  • Trong hành vi không ngừng thử, sửa, phá rồi làm lại, không chỉ kỹ năng mà cả cảm quan và tiêu chuẩn thẩm mỹ cũng cùng trưởng thành
  • Gu thẩm mỹ tốt (good taste) được hình thành qua quá trình thử dùng nhiều thứ, bỏ đi những gì không hợp ý và giữ lại những gì phù hợp
  • “Gu” ở đây là khả năng phân biệt giữa sự tầm thường và sự xuất sắc, khác nhau ở mỗi người và không cần phải giống người khác

Hãy đặt câu hỏi với hiện trạng, thử nghiệm, phá vỡ và lặp lại điều đó

1 bình luận

 
GN⁺ 2025-10-29
Ý kiến trên Hacker News
  • Từ lâu có một người bạn từng nói rằng sau khi đã tìm hiểu mọi thứ về cà phê, cuối cùng anh ấy chỉ còn có thể thưởng thức cà phê được pha từ hạt đắt tiền và máy móc xịn; nhưng mức độ vui thích cũng không khác gì hồi còn uống cà phê mua ở siêu thị
    Vì vậy tôi cố sống theo hướng giảm bớt “gu” của mình nếu có thể. Tai nghe 20 đô và TV 200 đô đã đủ khiến tôi hài lòng, và dù bạn bè dùng TV 3.000 đô thì mức độ vui vẻ cũng chẳng khác bao nhiêu

    • Tôi thì ngược lại, trước đây hoàn toàn không thể thưởng thức cà phê hay sô-cô-la bình thường. Mãi đến tuổi 30 tôi mới nếm được “cà phê thật” và “sô-cô-la thật”, rồi nhận ra đó là cả một thế giới hoàn toàn khác
      Giờ tôi đăng ký hạt từ các lò rang độc lập và thích thú với việc khám phá hương vị mới mỗi lần. Biết đến cà phê ngon là một trải nghiệm đã làm cuộc sống tôi phong phú hơn
    • Câu chuyện của bạn nghe giống thái độ “biết đủ” hơn là “không có gu”. Mỗi người chỉ khác nhau ở tiêu chuẩn tạo ra niềm vui, chứ thiết bị đắt tiền không nhất thiết mang lại hạnh phúc lớn hơn
      Với tôi, “gu” không làm hỏng trải nghiệm mà còn khiến nó phong phú hơn
    • Tôi cũng có trải nghiệm tương tự. Dùng tai nghe 20 đô trong thời gian dài, rồi một lần thử chiếc 200 đô đi kèm điện thoại mới, tôi thấy âm nhạc như hoàn toàn mới
      Dù vậy trong sinh hoạt hằng ngày tôi vẫn dùng chiếc 20 đô. Điều quan trọng là “tận hưởng mà không phô trương”
    • Dù hiểu rõ cà phê thì vẫn có thể thích cà phê hòa tan hay cà phê ở trạm xăng. Biết về hương vị và trở nên ngạo mạn là hai chuyện khác nhau
      Cũng như một kỹ sư xuất sắc cuối tuần vẫn chạy Doom trên củ khoai tây, gu là sức mạnh để bao dung sự đa dạng
    • Mỗi khi nghe kiểu câu chuyện này, tôi lại có cảm giác như “hành trình học hỏi vẫn chưa đi hết”. Giống như người mới học nhạc thì nghĩ chỉ Bach là hay, nhưng học sâu hơn rồi sẽ hiểu cả sức hút của Taylor Swift
      Gu thực sự là khả năng hiểu được vẻ đẹp của nhiều phong cách khác nhau. Tôi cũng đã thử nhiều thiết bị pha cà phê khác nhau và cuối cùng có được một “gu bớt phán xét hơn”
  • Tôi đồng cảm với ý rằng có người “chỉ làm vì mục tiêu” và có người “cứ thế mà làm”
    Bây giờ là thời đại ai cũng có thể vibe coding, nên tôi nghĩ khác biệt giữa các lập trình viên nằm ở “gu tốt (good taste)”
    Đây không chỉ là cảm giác, mà là năng lực phân biệt được tích lũy qua nhiều lần thử nghiệm. Trong thiết kế hệ thống cũng vậy: không chỉ làm nhanh mà còn phải biết tạo ra “cấu trúc không dễ sụp đổ”
    Vì thế tôi tạo thư mục sandbox để thử ý tưởng mới hay thư viện mới, qua đó nuôi dưỡng gu của mình

    • Tôi cũng hoàn toàn đồng ý. Trên GitHub có thể chẳng có gì đáng kể, nhưng trong thư mục cục bộ ~/Code của tôi thì đầy dự án thử nghiệm. Chính những thử nghiệm nhỏ này đã giúp tôi trở thành lập trình viên tốt hơn
    • Tôi đồng ý 100% với câu “chỉ những người vừa nhanh vừa làm tốt mới sống sót”
    • Cũng giống như các nhà văn xuất sắc đều là những độc giả cuồng nhiệt. Lập trình viên cũng phải tiếp xúc với nhiều kiểu mã nguồn khác nhau thì mới hình thành gu
    • Trong thời đại LLM hiện nay, tôi cảm nhận rõ “phong cách riêng” đang dần biến mất. Giữa những người chỉ nghĩ là chạy được là đủ, thái độ suy nghĩ vì sao phải làm như vậy ngày càng hiếm
      Ví dụ, tôi từng thấy một PR biến việc chỉ cần thêm route vào ứng dụng Flask thành thứ phức tạp với AWS Lambda và Terraform
    • Nhắc đến chuyện này tôi lại nhớ XKCD 915. Nội dung của nó là tầm nhìn rộng cuối cùng sẽ tạo nên gu tốt
  • Tôi hiểu ý chính của tác giả, nhưng cảm thấy ví dụ không hay lắm. Độ nhạy chuột, switch bàn phím hay thiết lập VSCode vốn là những thứ được tạo ra để chỉnh
    Việc học thật sự đến từ chỗ “dùng sai đi”, nhưng ngày nay ngay cả những kiểu thử nghiệm đó cũng đã bị đóng gói thành hàng hóa. Thật tiếc khi thế giới đã tiện đến mức cả việc tinh chỉnh cũng trở thành một trải nghiệm được đóng gói

  • Trước đây tôi nghĩ “gu” là tiêu chuẩn để phân biệt chất lượng tốt, nhưng giờ tôi xem nó là mức độ trùng khớp về giá trị
    Việc đánh giá gu của ai đó là tốt, rốt cuộc là vì người đó và tôi đang chia sẻ cùng một hệ giá trị

    • Khác biệt giữa hai định nghĩa này rốt cuộc nằm ở chỗ có tồn tại tiêu chuẩn tuyệt đối hay không. Khi đưa góc nhìn tương đối vào thì ý nghĩa sẽ thay đổi hoàn toàn
    • Tôi xem gu là “khả năng giải thích hợp lý cho sở thích của bản thân”. Không chỉ nói là thích, mà còn có thể nói vì sao nó hay
    • Gu có hai định nghĩa. (1) Đánh giá tốt hay xấu so với một tiêu chuẩn nào đó, (2) hiểu sâu về một loại hình và có khả năng phân biệt khác biệt trong đó
    • Cần phân biệt giữa “gu tệ” và “gu khác”. Một trong những lập trình viên tôi kính trọng có phong cách hoàn toàn khác tôi, nhưng mã của anh ấy có ý đồ rõ ràng và tính nhất quán
      Tôi nghĩ chính “tính chủ đích” mới là cốt lõi của gu thật sự
    • “Gu” ở đây rốt cuộc lại gần với “ý kiến” hơn. Không nhất thiết phải tự tay đụng vào; việc lựa chọn và phàn nàn cũng là biểu hiện của gu
  • Những kỹ sư tệ nhất tôi từng thấy là những người bị mắc kẹt trong “gu của chính mình”. Trong môi trường cần cộng tác, thái độ đó sẽ phá hỏng cả đội
    Lập trình không phải nghệ thuật mà là “công việc dành cho người khác”. Người dùng quan tâm tới giá trị của kết quả hơn là ngôn ngữ hay pattern
    Nhà phát triển thực sự giỏi là người có thể cộng tác theo bất kỳ cách nào

    • Nhưng tôi lại nghĩ lập trình là một hành vi mang tính nghệ thuật. Diễn đạt chính xác vấn đề, tạo ra cấu trúc để người khác có thể hiểu và mở rộng, điều đó rất gần với nghệ thuật
      Điều quan trọng là có cảm giác để biết khi nào nên giữ nguyên tắc
    • Gu thực sự tốt đến từ việc hiểu sâu giá trị người dùng. Cốt lõi là giá trị thực chất chứ không phải vẻ hào nhoáng
    • Dĩ nhiên nếu mã nguồn quá lộn xộn thì bảo trì sẽ khó, và cuối cùng cũng ảnh hưởng đến trải nghiệm người dùng. Cách tổ chức có gu rốt cuộc cũng có ích cho kinh doanh
  • Sự phân biệt giữa “hành động vì mục tiêu” và “hành động chỉ vì muốn làm” khá giống khái niệm trong 『Zen and the Art of Motorcycle Maintenance』
    Robert Pirsig chia nó thành “hiểu biết lãng mạn” và “hiểu biết cổ điển”, nhưng rốt cuộc nói rằng cả hai đều là ảo ảnh, và một góc nhìn tích hợp mới là lý tưởng

  • Tôi cảm thấy khái niệm ‘tinkering’ của tác giả thực ra khá giống kiểu hành vi tập trung lặp lại thường thấy ở người có đặc điểm thần kinh đa dạng (neurodivergence)
    Gu tốt không đến từ lặp lại đơn thuần mà từ sự kết hợp giữa tri thức và kỹ năng. Mấu chốt là bạn hiểu thế giới rộng đến đâu, và có nhận thức được những lĩnh vực mình chưa biết hay không

  • Trước đây tôi cũng từng là một “người chỉnh mãi không thôi”, nhưng khi gia đình, công việc và cuộc sống bận rộn hơn thì thực tế buộc tôi phải từ bỏ
    Giờ tôi dùng Synology NAS và quay lại Windows thay vì Linux. Dù vậy, tinh thần tinkering vẫn còn ở trong tôi

    • Với tôi, tinkering giờ gần như là “một sở thích”. Chẳng hạn, thay vì chiến lược ghi chú phức tạp kiểu Obsidian, tôi chỉ quăng suy nghĩ vào các tệp văn bản bình thường
      “Kiểu ghi chú cần phải bảo trì” không hợp với tôi
  • Tôi không chắc từ “gu” có đúng không, nhưng tôi đồng ý với ý “quá trình học hỏi thông qua thử nghiệm đầy hứng thú”
    Tuy vậy kiểu học này có hai giới hạn

    1. Rất dễ sa vào những tinh chỉnh vô nghĩa
    2. Khi niềm vui biến mất thì khó duy trì động lực — lúc đó động lực bên ngoài (ví dụ: Advent of Code) sẽ hữu ích
  • Tác giả dùng IDE để định nghĩa ‘tinkering’, nhưng IDE không phải đối tượng thử nghiệm duy nhất
    Còn có rất nhiều lĩnh vực khác như độ nhạy chuột, bàn phím, window manager
    Không thể vì ai đó không đụng vào IDE mà gọi họ là “không biết tinh chỉnh”. Cuối cùng, điều quan trọng là “thái độ khám phá”, chứ không phải một công cụ cụ thể