1 điểm bởi GN⁺ 1 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Bob, kỹ sư huyền thoại của Facebook, đã ra mắt Facebook Groups và liên tiếp tạo ra thành quả trong các hackathon ngay cả khi không có môi trường phát triển cầu kỳ
  • Anh chỉ dùng Sublime Text mặc định và log printf; môi trường đó có tô sáng cú pháp không chính xác, không có live reloading hay debugger
  • Trong khi đó, các lập trình viên xung quanh lại xem cấu hình công cụ phức tạp như tô sáng cú pháp và snippet cho Vim, tmux, mosh, phím tắt hphpd, bí danh Git là cốt lõi của năng suất
  • Chiến thắng hackathon của Bob chịu ảnh hưởng lớn hơn từ cảm quan sản phẩm và trực giác, tức khả năng phán đoán nên làm gì, chứ không phải từ thiết lập trình soạn thảo
  • Cách làm việc mới có thể tạo ra thay đổi, nhưng rốt cuộc thành quả vẫn đến từ giải quyết đúng vấn đề

Khác biệt giữa công cụ phức tạp và kết quả thực tế

  • Bob là kỹ sư làm việc năng suất cao đã ra mắt Facebook Groups và là nhân vật huyền thoại liên tục đưa ra sản phẩm trong các hackathon
  • Khi đó, một đồng nghiệp ám ảnh với năng suất đã dùng tô sáng cú pháp và snippet tự làm cho Hack, phương ngữ PHP của Facebook
    • Chạy tmux trên mosh, đồng thời còn cấu hình cả phím tắt hphpd tùy chỉnh và bí danh Git
  • Trái ngược với điều đó, cách làm việc của Bob rất đơn giản
    • Anh dùng Sublime Text không thiết lập gì thêm, nên khoảng một nửa màu mã nguồn hiển thị sai
    • Thay vì live reloading hay debugger, anh chèn printf vào mã rồi chờ log xuất hiện
  • Trong hackathon hôm đó, Bob đã chiến thắng, và sản phẩm được nhớ là tính năng hỗ trợ bài đăng mua bán trong Facebook Groups
    • Tính năng này về sau phát triển thành Facebook Marketplace

Quan trọng là làm gì hơn là làm như thế nào

  • Nếu quá tập trung vào công cụ phức tạp, bạn có thể bị cuốn vào làm như thế nào mà bỏ lỡ làm cái gì
  • Yếu tố cốt lõi tạo nên năng suất cao của Bob không phải thiết lập trình soạn thảo mà là cảm quan sản phẩm và trực giác
  • Trên X mỗi ngày đều xuất hiện những cách làm việc mới như thể sẽ thay đổi mọi thứ, và một số trong đó thực sự có thể tạo ra khác biệt
  • Nhưng điều quan trọng nhất không phải bản thân công cụ hay cách làm việc, mà là giải đúng vấn đề

1 bình luận

 
Ý kiến trên Hacker News
  • Chia con người thành hai kiểu là người thợ trân trọng công cụ và người ám ảnh công cụ là sai. Công cụ tốt không phải đồ chơi mà là phương tiện phục vụ mục đích, và tôi cũng từng dành nhiều ngày để tạo shell script, hàm Emacs, công cụ bố trí cửa sổ... phù hợp với luồng làm việc của mình
    Kết quả là tô sáng cú pháp, điều hướng/phân tích mã, bố trí màn hình, thao tác Git đều chỉ cần vài lần bấm phím, và những thứ làm đứt mạch tập trung đã biến mất. Hãy đầu tư vào môi trường làm việc như ghế ngồi, shell prompt, trình soạn thảo, nhưng khi đã thấy thoải mái rồi thì nên quên nó đi và tập trung vào vấn đề thực sự
    Tuy vậy, việc tinh chỉnh công cụ bất tận có thể là dấu hiệu đang né tránh những nhiệm vụ nặng nề và không thú vị, và đây không phải vấn đề đơn giản có thể đổ lỗi cho bản thân công cụ

    • Nếu vào công ty mới, nhận một stack công nghệ mới và một laptop Windows thì sẽ làm gì? Hồi đầu sự nghiệp tôi đã học cách làm việc hiệu quả chỉ với các công cụ mặc định của môi trường được giao, và trên thực tế hiếm khi được tự chọn công cụ. Công cụ đa nền tảng cũng thường thiếu nhất quán, ngoại trừ bộ sản phẩm JetBrains
    • Trông giống sự khác biệt giữa samurai và ninja. Samurai coi thanh kiếm là phần nối dài của linh hồn, còn ninja khi cần thì cũng dùng kiếm để cạy mở đồ vật. Trong nền kinh tế ngày nay, quan niệm công cụ kiểu samurai không còn phù hợp
    • Điều quan trọng là sử dụng công cụ một cách vui vẻ. Dù năng suất không tăng gấp 10 lần, cốt lõi vẫn là tập trung vào công việc và tận hưởng quá trình
      Đặc biệt, công cụ trong thời đại LLM khiến người ta phải liên tục qua lại giữa nhiều agent và terminal. Việc chuyển ngữ cảnh liên tục này cướp mất niềm vui và trạng thái nhập tâm, nên mong là ai đó sẽ tìm ra lời giải
    • Có vẻ nhiều người mới muốn được công nhận và được xem trọng nên bỏ qua các bước cần thiết. Trông như vậy và thực sự trở thành như vậy là hai chuyện khác nhau, mà trong lúc tích lũy năng lực thì vẫn phải lo kế sinh nhai
    • Sau khi thành thạo kỹ năng, bản thân công cụ tốt đã là một niềm vui lớn. Ngược lại, người có tay nghề đôi khi vẫn có thể tạo ra kết quả đáng kinh ngạc ngay cả với công cụ không phù hợp
  • Tôi đã thấy nhiều kỹ sư dành nhiều thời gian cho tối ưu thiết lập môi trường hơn là cho việc thực sự tạo ra thứ gì đó, và bản thân tôi cũng từng như vậy. Nghĩ rằng 90% thời gian lập trình là gõ phím nên phải tăng tốc độ nhập là sai; 90% thời gian nên dành cho suy nghĩ, và phần lớn trong đó là để đọc

    • Phần mềm là lời giải được cụ thể hóa cho một vấn đề, nên trước hết phải xác định được vấn đề cần giải. Mã là ảnh chụp nhanh thể hiện mức độ hiểu vấn đề hiện tại cùng sự rõ ràng và phù hợp của lời giải cho tất cả mọi người, bao gồm cả chính mình trong tương lai
      Việc viết mã ở thời điểm thích hợp gần như là thao tác gõ để cụ thể hóa lời giải đã hiểu sẵn
    • Trước đây tôi từng ám ảnh chuyện cấu hình, nhưng sau khi dùng AI thì đang làm ra những thứ hay ho mà trước kia không làm được. Mặt khác, hiểu biết về code nền tảng và kỹ năng sẵn có đang dần suy yếu, và dù ngưỡng mộ các kỹ thuật mới, tôi dường như không học sâu được chúng
      Xét ở khía cạnh AI hạ thấp rào cản ban đầu, nó cũng là một dạng cải thiện môi trường khác. Trước đây khi từ vai trò QA muốn chuyển sang developer, tôi từng đi du lịch khắp châu Âu và học InterviewCake, nhưng lại phí thời gian chỉnh cấu hình editor nhiều hơn là giải bài toán
      Đây cũng có thể là triệu chứng của ADHD. Gần đây sau điều trị bằng thuốc, năng suất của tôi thay đổi rất lớn, và tôi gần như muốn khóc khi nghĩ mình đã lãng phí nửa đời để hoàn thiện cấu hình thay vì làm công việc thật sự
    • Có một khoảng cách giữa năng suất thực tế và cảm giác năng suất. Gõ code thành thạo bằng Vim hay Emacs có thể khiến bạn thấy mình như hacker, nhưng không có nghĩa là bạn đang hiệu quả. Chỉ huy hàng chục AI agent với lượng token khổng lồ cũng không đảm bảo đầu ra sẽ chạy được hay giải quyết được vấn đề
    • Tôi không chắc với đa số lập trình viên CRUD bình thường thì tỷ lệ dành 90% thời gian cho suy nghĩ và đọc có thật sự chính xác không
    • Suy nghĩ và gõ phím thường diễn ra đồng thời. Nhiều người suy luận vấn đề dễ hơn khi vừa viết vừa sửa code, và đó cũng là lý do mức độ hiểu code có thể giảm mạnh dù bạn đọc hết toàn bộ code do LLM tạo ra
  • Có những công ty được VC rót vốn nhưng lại không thể tạo ra sản phẩm mà người ta thật sự dùng hoặc trả tiền. Họ cố chứng minh định giá bằng cách cho thấy mình bận rộn và năng suất đến mức nào, và cơn sốt AI cũng có thể nằm trong cùng mạch đó ở chỗ chỉ tập trung vào năng suất và phương pháp hơn là vào việc sẽ tạo ra cái gì
    https://components.news/the-gamer-and-the-nihilist/ so sánh các startup hư vô kiểu này với các studio game làm ra sản phẩm mà người ta thực sự trả tiền để dùng. Trong một nền kinh tế nơi app năng suất chiếm gần 40% kết quả trên Product Hunt, lao động đôi khi được đổ vào việc trông như đang tạo ra thứ gì đó hơn là thực sự tạo ra nó

    • Nhà phát triển game cũng đổ rất nhiều công sức vào việc làm công cụ, chỉ là đối tượng chính không phải trình soạn thảo văn bản
    • Tôi tự hỏi trong phép so sánh này thì những người dành vô số thời gian để tạo ra môi trường chơi game hoàn hảo hơn là chơi game, hay các audiophile cả đời đi tìm bộ thiết bị hoàn hảo hơn là nghe nhạc, sẽ thuộc về đâu
    • Đây không hẳn là bong bóng mà giống kiểu thao túng tín hiệu đã lặp lại từ rất lâu. Nó luôn tồn tại và sẽ còn tiếp tục
  • Tôi chỉ làm hoặc dùng công cụ năng suất ở mức đủ để không bị tụt lại, còn hơn thế thì xem là cái bẫy. Trước kia tôi kiểm tra mỗi quý một lần, nhưng từ sau AI thì đang dành 1~2 ngày mỗi tuần cho công việc meta là cải thiện công cụ, và tôi đoán điều này sẽ giảm đi khi các công cụ liên quan được chuẩn hóa
    Nếu hình ảnh chuyên gia công cụ quá mạnh, bạn không chỉ bỏ lỡ công việc thực sự có giá trị mà còn bị đánh giá như người sở hữu bí kíp năng suất bí mật. Nếu khác biệt thực tế không lớn như kỳ vọng, người khác thậm chí có thể mất niềm tin vào các phán đoán khác của bạn

  • Tôi càng ít ngồi trước máy tính thì lại xử lý được càng nhiều việc, và khi giảm từ 3 màn hình xuống còn 1 thì năng suất tăng đáng kể. Tôi giải quyết hầu hết vấn đề khi cắt rau hay cắt cỏ; ngồi trước thứ công nghệ phát sáng không có nghĩa là sẽ đưa ra quyết định nhanh hơn hay tốt hơn
    Lý do tôi thường cho kết quả tốt hơn đội phát triển của khách hàng cũng là vì tôi không phải nhân viên chính thức nên có thể dừng lại đủ lâu để suy nghĩ chậm rãi. Áp lực phải giữ trạng thái xanh trên Teams và những kiểu diễn kịch năng suất như vậy tạo ra các quyết định ngu ngốc trong nhiều tổ chức

    • Trong 15 năm, tôi đã làm ở hai công ty có văn phòng trên vách đá nhìn ra biển ở La Jolla, California. Tôi đi bộ quanh vách đá và công viên để nghĩ về công việc, và nếu có cuộc trao đổi nghiêm túc không cần whiteboard, tôi sẽ rủ đồng nghiệp đi cùng. Đáng để nghe lại hammock talk của Rich Hickey
    • Nhìn tên người dùng nên tôi tự hỏi có phải Bob trong bài viết là bạn không
  • Nghĩ về lý do năng suất tồn tại, tôi đi đến giả thuyết rằng đó là nỗ lực nhằm giảm đau đớn. Nhiều kiểu tối ưu hiệu năng, bao gồm cả năng suất lập trình viên, thường trở thành nơi trú ẩn để kỹ sư né tránh những nỗi đau như sự mơ hồ của miền bài toán, chính trị nội bộ, thiếu rõ ràng, hay rủi ro thất bại
    Nhưng để giải quyết vấn đề thực tế, ta phải đối mặt với thực tại: xem xét luồng công việc của người dùng đến mức tẻ nhạt, đề xuất rõ ràng chiến lược chung để có được sự hợp tác của người khác, v.v. Không cần phải tôn vinh đau đớn, nhưng một kết quả tốt luôn hàm chứa sự rèn luyện kiểu vận động viên, và ta cần nuôi dưỡng khả năng kiểm soát nỗi đau cần thiết trên sân đấu

  • Điểm mấu chốt là nó có dễ được công nhận hay không. Công cụ hào nhoáng thì ai cũng nhìn thấy và trầm trồ, nhưng rất ít người nhận ra một sản phẩm hay tính năng mới tuyệt vời từ một editor trống hoặc phần code khung. Vì vậy sự chú ý đổ dồn vào công cụ dễ nhìn thấy, còn câu hỏi khó và mơ hồ là nên tạo ra cái gì thì bị lảng tránh
    Tôi áp dụng tiêu chuẩn kiểu Marie Kondo cho công cụ. Nếu dùng không thấy vui và nó cũng không làm cuộc sống dễ hơn thì bỏ đi; còn nếu có thì giữ lại

  • Năm 2004, một nhóm nhỏ mà phần lớn là lập trình viên junior được tham gia khóa đào tạo Java rất tốt và rất toàn diện. Trước khóa học, mọi người tranh luận kịch liệt và ám ảnh chuyện cấu hình IntelliJ với Eclipse, nhưng giảng viên lại bất ngờ khuyên chỉ nên dùng công cụ JDK mặc định và Notepad
    Mục đích là để mọi người học điều gì đang diễn ra bên trong, và ông ấy cũng nói năng suất có lẽ sẽ không khác biệt nhiều

  • Lý do người ta ám ảnh việc tối ưu môi trường là vì mối liên hệ giữa công sức tập trung và phần thưởng rất dễ thấy, cụ thể và mang tính vật lý. Còn việc học trừu tượng thì không như vậy. Có nhiều bài toán học tập hơn nhiều so với chuyện tối ưu cái ghế, nên sẽ rất tốt nếu có cách khiến việc học trừu tượng cũng trở nên cụ thể hơn

  • Đây không phải chuyện năng suất, mà là niềm vui khi chơi với đồ chơi