3 điểm bởi GN⁺ 8 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Ngay cả trong thời đại LLM và vibe coding, lập trình vẫn không chỉ là một kỹ năng xin việc mà còn là phương tiện để học toán, phương pháp học tập và biểu đạt sáng tạo
  • Không khí từng coi “learn to code” như một khẩu hiệu để thăng tiến giai tầng nhanh chóng đã suy yếu, và chỉ vài dòng JavaScript không còn đảm bảo mức lương sáu chữ số
  • Như các ví dụ về LOGO và Mathland, lập trình giúp hiểu toán thông qua khám phá thay vì ghi nhớ chỉ dẫn, đồng thời rèn luyện cả gỡ lỗi, cấu trúc và tư duy logic
  • Lập trình kết hợp trí tưởng tượng của viết lách, sự chính xác của toán học và phản hồi tức thì như trò chơi, buộc ta phải gọt giũa điều mình muốn thành ngôn ngữ để máy tính có thể thực thi
  • Dù LLM xử lý tốt cả tiếng Anh và mã nguồn, cũng như giá trị của nhân văn học không vì thế mà biến mất, nhu cầu về kiến thức đọc hiểu mã nguồn phổ quát vẫn sẽ tiếp tục tồn tại

Giá trị của lập trình vượt ra ngoài đảm bảo việc làm

  • Steve Krouse, nhà sáng lập Val Town, dù đang vận hành một “Silicon Valley startup” dành cho việc viết và triển khai mã, vẫn nói rằng ai cũng nên học lập trình
  • Trong Making Sense with Sam Harris #481, có ý rằng ở Silicon Valley người ta đã không còn nghe câu “learn to code” trong nhiều tháng
  • Đã có lúc “learn to code” được lặp đi lặp lại như con đường thoát nghèo nhanh chóng, nhưng chỉ vì có thể nối vài dòng JavaScript lại với nhau không có nghĩa là lương sáu chữ số sẽ tự động đi kèm
  • Lập trình, giống như toán học, văn học, khoa học và nhân văn, đáng để học không chỉ vì tính hữu dụng nghề nghiệp mà còn vì lý do giáo dục

Một phương tiện để học toán và rèn luyện tư duy

  • Lập trình có thể trở thành một phương tiện mạnh mẽ để học toán
    • Steve Krouse bắt đầu yêu thích toán học thông qua chương trình lập trình sau giờ học và cũng trở nên giỏi toán hơn nhiều so với kỳ vọng
    • Seymour Papert muốn trẻ em học toán như học nói, thông qua khám phá chứ không phải qua những chỉ dẫn áp đặt
    • “Mathland” của Papert chính là ngôn ngữ lập trình LOGO, nơi người học ra lệnh cho chú rùa trên màn hình để vẽ hình
    • Steve Krouse cũng đã tạo ra một phiên bản LOGO có thể thử trực tuyến
  • Trong quá trình học lập trình, những kỹ năng siêu nhận thức như gỡ lỗi, cấu trúc và logic cũng được bồi đắp, đồng thời hình thành cảm giác rằng không có gì là không thể học được

Lập trình như một hoạt động sáng tạo

  • Lập trình là nơi gặp nhau của tính sáng tạo trong viết lách, sự chính xác của toán học và vòng phản hồi tức thì như trò chơi điện tử
    • Nó buộc ta phải tinh luyện điều mình muốn thành một ngôn ngữ chính xác để máy tính có thể thực hiện
    • Sau khi học một cú pháp xa lạ, việc khiến máy tính thực sự tạo ra thứ mình tưởng tượng được ví như đang niệm một câu thần chú
  • LLM có thể viết tốt cả tiếng Anh lẫn mã nguồn, nhưng cũng như tính liên quan của nhân văn học không biến mất, mã nguồn vẫn giữ nguyên tầm quan trọng
  • Cũng như văn bản pháp lý, mã nguồn có thể trông như những chi tiết khó hiểu và tẻ nhạt, nhưng nó là nền tảng để thế giới vận hành, và một dòng mã thanh nhã có thể thay đổi thế giới
  • Lập trình là một hoạt động thú vị, và ngay cả trong thời đại LLM, giấc mơ về kiến thức đọc hiểu mã nguồn phổ quát hay “cuộc cách mạng máy tính thực sự” vẫn tiếp tục

1 bình luận

 
Các ý kiến trên Hacker News
  • Ngay cả trong số những người đã biết lập trình từ trước thời LLM, kỹ năng lập trình cũng đã suy giảm, và có lẽ sẽ còn như vậy trong 10–20 năm tới
    Việc học lập trình trong cùng giai đoạn đó cũng có thể không mang lại phần thưởng lớn
    Rốt cuộc, mã dùng để huấn luyện các LLM tương lai sẽ chỉ là mã do LLM tạo ra, và chất lượng các codebase vận hành có vẻ sẽ xuống đến mức con người cũng khó hiểu, LLM cũng khó bảo trì, rồi các vết nứt sẽ lộ ra
    Đến lúc đó lập trình sẽ lại trở thành một kỹ năng có giá trị, nhưng từ góc độ lập kế hoạch sự nghiệp thì thời điểm ấy không chắc chắn, và thị trường có thể duy trì sự phi lý lâu hơn khoảng thời gian một cá nhân có thể trụ được

    • Điều này giống với Profession của Isaac Asimov
      Vẫn sẽ cần những người tự tay viết mã và khôi phục tính thủ công lành nghề
      Nếu tất cả đều dựa vào mã được sinh ra, họ chỉ có thể lặp lại những gì đã biết; chỉ những người học con đường khó bằng việc học thật sự mới có sự sáng tạo và trí tuệ để tạo ra tri thức mới và làm ra các băng giáo dục mới
    • Đó là một viễn cảnh khá lạc quan
      Mục 1 và 2, tức codebase vận hành trở nên không thể hiểu được với con người và cũng khó để LLM bảo trì, sẽ xảy ra; nhưng mục 3 sau đó, rằng lập trình lại trở nên có giá trị, thì có lẽ không
      Đặc biệt, ban lãnh đạo sẽ hạ thấp kỳ vọng, hoặc sẽ bị buộc phải làm vậy
      Chỉ cần nghĩ xem chuyện một “phiên bản mới và cải tiến” loại bỏ các tính năng quan trọng đang dùng mà không có thay thế phù hợp phổ biến đến mức nào
      Khi codebase trở nên không thể bảo trì, khả năng cao là họ sẽ chỉ tạo lại một đống rác mới, rồi gọi những thay đổi ngẫu nhiên chỗ này chỗ kia là cải tiến
    • Tôi có chiếc laptop Fujitsu cuối cùng đáng nhắc đến và rất thích nó
      Khoảng 5 năm trước, khi Fujitsu cố gắng khởi động lại việc sản xuất laptop, cách thực tế là tập hợp lại những công nhân Nhật đã nghỉ hưu
      Có vẻ thế hệ trẻ không có kỹ năng, hoặc đơn giản là không muốn làm, và sau vài đợt sản xuất thì mọi chuyện kết thúc
      Panasonic vẫn làm laptop doanh nghiệp nhưng rất đắt, và câu chuyện này liên quan trực tiếp đến chủ đề này
    • Để trở thành một lập trình viên năng suất với Claude, bạn vẫn phải hiểu mình đang làm gì
      Học lập trình là điều bắt buộc, và bạn phải biết điều gì khả thi và dễ làm thì mới biết mình có thể yêu cầu đến mức nào
      Thứ trở nên kém quan trọng hơn là việc liên tục giữ lưỡi dao thật sắc
      Nếu trong một thời gian bạn viết ít mã hơn, lỗi nhất thời hoặc lỗi sao chép/dán sẽ tăng lên, nhưng nhờ LLM, tầm quan trọng của việc giữ cảm giác lập trình luôn “ấm máy” giảm đi
      Dù vậy, nếu tôi không biết tự làm, thì kể cả có Fable tôi cũng không nghĩ mình có thể hoàn thành công việc của mình
    • Tôi nghĩ chuyện này gần với “các lập trình viên lớn tuổi sẽ tiếp tục chỉ trích chất lượng mã đi xuống và hoài niệm về thời lập trình ngày xưa” hơn
      Trong lúc đó, sẽ có nhiều người hơn bao giờ hết tạo ra và sử dụng phần mềm, và các bài diễn thuyết dài dòng kiểu “mọi thứ đang hỏng hết” rất có thể sẽ bị xem là phóng đại đến vô lý
  • Câu “mã là một hình thức biểu đạt sáng tạo đẹp đẽ, phong phú như văn học hay âm nhạc” có vẻ là phóng đại, và tôi tự hỏi tác giả quen thuộc với văn học và âm nhạc đến mức nào
    Phần lớn lập trình giống việc làm đường ống hơn
    Đó là đến nơi, cằn nhằn về người làm trước, rồi giải một câu đố với các ràng buộc riêng
    Lý do LLM giỏi lập trình là vì trong lập trình, người ta muốn mã nhàm chán và bình thường

    • Phần lớn lập trình gần với rác dùng rồi bỏ hơn; nếu hệ thống ống nước bị đối xử như vậy thì chúng ta đã sống trong đống chất thải nghiêm trọng theo đúng nghĩa đen
      Tôi chưa từng gặp thợ ống nước nào đến rồi chửi người trước; họ thay đổi thứ gì đó hoặc sửa thứ tôi làm hỏng
      Kết quả là nó hoạt động hoàn hảo trong nhiều năm, nhiều thập kỷ, dù tôi không chăm sóc tốt
      Việc làm cho mọi thứ nhàm chán và bình thường, vì không có từ nào tốt hơn, cũng có thể gọi là nghệ thuật
      Bạn không thể đặt tên hàm như mã viết tắt, cũng không thể đặt là ThisIsTheEntryPointOfTheProgram(), và cái nào tốt hơn là đối tượng của suy ngẫm và tranh luận bất tận
      Vì chúng ta coi việc thay thế thường xuyên và phình to là chuyện hiển nhiên, nên ta cũng coi những điều “nhỏ” này là hiển nhiên, nhưng thợ ống nước thì tuyệt đối không làm vậy
      Họ không đưa vào một vật liệu ống mới mỗi tuần rồi lại chuyển sang trào lưu tiếp theo; vì họ thường tạo ra những thứ tồn tại lâu hơn con người, nên nghề đó trông như đến từ một hành tinh hoàn toàn khác
    • Có vẻ hai thứ nằm ở hai phía đối diện của cùng một hàng rào
      Demoscene là lập trình để vui và để biểu đạt sáng tạo, và cũng có IOCCC
      Điều này tương ứng với tiểu thuyết được viết một cách sáng tạo
      Ngược lại, cũng có kiểu viết chỉ là nghề nghiệp, như viết cơ sở tri thức, và đó là lập trình kiểu đường ống như CRUD và cloud
    • Phần lớn lập trình có thể là như vậy, nhưng phần lớn âm nhạc và văn học có lẽ cũng là một mớ tạp nham thiếu cảm hứng
      Dù vậy vẫn có nhiều thuật toán đẹp như trong sách của Knuth, và cá nhân tôi thấy chúng đẹp hơn bất kỳ bản nhạc nào
    • Tôi không nghĩ đó là phóng đại chút nào
      Ngược lại, có thể lập luận rằng mã có sức biểu đạt lớn hơn văn học hay âm nhạc vì nó tổng quát hơn
      Hãy nghĩ đến không gian của mọi trò chơi điện tử, demo/intro, tranh tạo sinh, nhạc tạo sinh có thể có; những thứ này không thể tồn tại nếu không có mã
      Có vẻ bạn đang nhầm lẫn giữa cách sử dụng phổ biến của một phương tiện và sức biểu đạt của nó
      Nhiều cách dùng ngôn ngữ hằng ngày cũng không thú vị, nhưng phải nhìn vào toàn bộ không gian khả năng
    • Mục đích của các loại hình nghệ thuật như âm nhạc hay văn học là bản thân nghệ thuật
      Mã là thủ công, là phương tiện để đạt mục đích
      Nó vẫn có thể đẹp, ấn tượng và sáng tạo, nhưng thuộc một loại khác
      Đây không phải là phán xét giá trị
      Nghệ thuật cũng có thể dở hoặc nhạt nhẽo, và mã cũng có thể là sản phẩm thiên tài
      Nhưng lý do tàu đổ bộ Mặt Trăng hay đồng hồ thủ công đẹp là vì chúng thực sự hoạt động, và khó so sánh điều đó với âm nhạc
  • Với tư cách là một lập trình viên chuyên nghiệp đang bước vào một phần ba cuối của sự nghiệp vốn từng rất thú vị, giờ tôi xếp việc học lập trình vào cùng hạng mục với “kiếm sống bằng nghề nhà thơ”
    Đó là một nghệ thuật thật sự thú vị và một số người sẽ nhận ra giá trị của nó, nhưng tốt hơn là nên có kế hoạch kiếm sống riêng
    Những senior đã biết lập trình hiện giờ có vẻ vẫn ổn, nhưng công việc ngày càng trở thành dạng chăm nom mô hình như một cộng tác viên junior

    • Nếu thực sự không biết lập trình thì ngay cả việc chăm nom đó cũng không thể làm được
    • Nói vậy không sai, có lẽ thế
      Tôi nhớ đến một người bạn ngày xưa
      Anh ấy học nhạc cổ tại Harvard, có bằng MFA và rất xuất sắc
      Anh ấy đọc và viết được tiếng Latin và tiếng Hy Lạp, có thể sáng tác và biểu diễn nhạc bằng ký pháp trung cổ, và còn xuất bản một cuốn sách về thêu cổ
      Nhưng anh ấy không có được vị trí trong giới học thuật, cũng không tìm được công việc nào cần đến những kỹ năng đó
      Vài năm trước anh ấy qua đời trong cô độc
      Số phận của nhiều lập trình viên cũng có thể như vậy
    • Tôi đã nói như thế một thời gian rồi, và cuối cùng đã đổi hẳn lĩnh vực
      Mọi người bấu víu vào chuyện LLM không thể thật sự thay thế lập trình viên, và điều đó đúng nhưng không quan trọng
      Để thị trường lao động bị xáo trộn mạnh, chỉ cần giảm số người cần thiết để xử lý những phần LLM chưa làm được là đủ
      Chỉ cần hiệu suất của lập trình viên hiện tại tăng vỏn vẹn 30% thì nhu cầu lập trình viên có thể giảm 20%, và điều này sẽ tác động rất lớn đến nhu cầu và tiền lương
    • Có vẻ phụ thuộc rất nhiều vào khu vực
      Ở ngoài phương Tây, nơi AI không được chấp nhận rộng rãi, theo https://hai.stanford.edu/ai-index/2026-ai-index-report, AI đã kéo nhu cầu phần mềm tăng lên
    • Tôi tò mò không biết bạn đang nhìn vào dữ liệu nào
  • Việc tôi đang cố làm bây giờ là tạo ra thứ gì đó nhưng không dùng LLM để viết code
    Tôi vẫn dùng nó để tham khảo/tư vấn
    Tôi đang làm một bộ tổng hợp trận đấu giải Dota2 bằng Elixir: nó nhận stream của giải đấu, sắp xếp theo trình tự thời gian, nhằm giảm bớt sự bất tiện khi xem một loạt video liên tiếp trên YouTube
    Lý do tôi làm là vì tôi thích lập trình và thích tạo ra thứ gì đó
    LLM khiến tôi trở nên lười biếng về mặt trí tuệ, và làm ra thứ gì đó bằng nó thì ít đem lại cảm giác thỏa mãn hơn
    Tôi muốn tạo ra, và mong muốn tạo ra là điều rất con người

    • Những gì con người cảm nhận, dù là muốn tạo ra hay không muốn tạo ra, đều rất con người
      Người này thích một cách tạo ra nào đó, người khác thích cách khác; vậy là ổn
      Rốt cuộc, có vẻ nhiều người quên rằng lập trình là một hoạt động khá sáng tạo
      Nói hơi gây tranh cãi một chút, tôi cho rằng việc tạo ra chương trình, dù tốt hay xấu, gần với vẽ tranh hơn là xây cầu
    • Dạo này tôi đang đọc Seneca, và trong một bức thư có câu thế này
      “Bản thân sự đắm chìm khi tập trung vào công việc đã là một niềm vui sâu sắc. Niềm vui có được từ thành phẩm sau khi công việc kết thúc không giống với điều đó. Nghệ sĩ tận hưởng kết quả, nhưng trong lúc vẽ thì tận hưởng chính nghệ thuật”
      Vấn đề của LLM chính là điều này
      Nó đã lấy đi khỏi tôi khoảnh khắc tận hưởng chính nghệ thuật lập trình
    • Tôi đã làm khá nhiều việc tổng hợp trận Dota2 bằng stratz / opendota
      Dữ liệu nhiều đến mức rất thú vị, và chắc chắn nó giúp tôi trở thành một lập trình viên giỏi hơn
  • Cá nhân tôi thấy những người quen vốn không phải là lập trình viên tốt trước thời LLM thì giờ vẫn dùng các mô hình mới nhất để tạo ra code tệ
    Kiến thức và hiểu biết vững chắc về kiến trúc tốt và các thực hành thông thường vẫn là cốt lõi
    Ta rất dễ quên rằng những kiến thức nền tảng và trực giác mà giờ ta xem là hiển nhiên từng tốn rất nhiều thời gian và công sức để học khi còn ít kinh nghiệm

    • Hoàn toàn đồng ý
      Đây là hiện tượng tôi luôn quan sát thấy
      LLM có thể là công cụ khuếch đại sức mạnh, nhưng người không biết đặt câu hỏi đúng hoặc không hiểu các khác biệt tinh tế sẽ tạo ra code tệ, và chỉ khuếch đại chính những điểm tệ đó
      Tôi không nghĩ các mô hình hiện tại có thể tránh được điều này, đặc biệt vì dữ liệu huấn luyện về mặt lịch sử vẫn là thứ do con người tạo ra
  • Có ai biết nhà toán học nào không biết chia đa thức hoặc đại số cơ bản không?
    Có lẽ là không
    Bởi vì toán cơ bản là cần thiết để học toán cao cấp, nên kiểu người đó không tồn tại
    Việc máy tính bỏ túi có làm được các phép tính cơ bản hay không không liên quan gì nếu bạn muốn trở thành nhà toán học
    Tương tự, tôi nghĩ câu hỏi “5 năm nữa lập trình viên trung bình có viết code bằng tay không” không liên quan đến việc liệu bạn có cần học lập trình hay không khi muốn làm chủ việc thiết kế và xây dựng phần mềm phức tạp, bất kể dùng phương pháp nào

    • Hiện giờ thì không, nhưng trước đây tôi từng là nhà toán học nghiên cứu
      Tôi hoàn toàn không còn nhớ cách chia đa thức, nhưng từng có thời tôi chắc chắn làm rất thạo
      Dạo này tôi tính nhẩm cũng rất tệ
      Dù vậy, trên con đường trở thành nhà toán học, những thứ đó là bắt buộc; chỉ là khi mức độ trừu tượng tăng lên thì chúng mất dần tính liên quan
    • Tôi nhìn từ góc độ ngược lại, nhưng kết luận thì giống nhau
      Tôi đã nghe nhiều nhà toán học đùa rằng “càng lên cao cấp thì càng kém toán hơn”
      Hầu hết các nhà toán học nếu phải giải một bài chia đa thức sẽ phải suy nghĩ khá nhiều, vì họ đã vượt qua kỹ năng đó từ rất lâu rồi
      Dù vậy, ngay cả khi có máy tính bỏ túi và notebook Python, mọi người vẫn học và làm toán bằng tay ở mọi cấp độ để phát triển lĩnh vực này
      Người ta quá chìm đắm vào LLM như thể nó là toàn bộ tương lai, nhưng bản thân LLM hoàn toàn là sản phẩm của quá khứ
      LLM giống JPEG nén mất dữ liệu của ngôn ngữ, và của tri thức được biểu đạt bằng ngôn ngữ, hơn là một cỗ máy biết tư duy
      Vì vậy, để mở rộng lĩnh vực và tiến tới tương lai, ta không thể chỉ dựa vào một thuật toán hồi quy về giá trị trung bình
  • Phần code mà các AI agent chủ yếu thay thế chẳng phải là lớp ngoài của phát triển sao?
    Ý tôi là những thứ như ứng dụng cho người dùng cuối, app, dashboard, ứng dụng nghiệp vụ
    Ở “lớp vỏ” này, con người có thể chịu đựng được phần nào độ chính xác 99% hoặc code phình to, và các app vibe coding cũng có thể tuyên bố là “đủ tốt”
    Dù vậy cứ nhìn xem các ứng dụng Microsoft đã trở thành thảm họa thế nào sau khi đưa AI vào là thấy
    Nhưng trong các compiler, framework, công cụ, thư viện cốt lõi mà mọi người thật sự phải dựa vào, họ vẫn tránh dùng LLM
    Không ai muốn xây dựng trên nền code chỉ đúng 99% hoặc phình to, và cũng không ai muốn dùng một trình duyệt web do AI code
    Muốn tạo ra vật liệu xây dựng thật sự tốt thì phải tự code và hiểu mình đang làm gì
    Đã có trường hợp nào tiến gần tới việc loại bỏ dần việc code trong những lĩnh vực cốt lõi như vậy chưa?

    • Có cách làm đúng
      Chỉ là sẽ phải dành rất nhiều thời gian để khái niệm hóa và tinh chỉnh các abstraction
      Vấn đề là việc khái niệm hóa đòi hỏi một trạng thái tinh thần nhất định
      Trước LLM, công việc là 10% suy nghĩ khó, 90% triển khai
      Triển khai giống như một phần thưởng, cảm giác cụ thể hóa ý tưởng trong trạng thái nhập tâm rất tuyệt
      Sau LLM, khá thường xuyên chỉ đi đi lại lại và suy nghĩ
      Giờ thì gần như 40% suy nghĩ, 60% lập kế hoạch/review code
      Từ đó đến nay tôi chưa trải nghiệm lại được trạng thái nhập tâm
      Suy nghĩ thì thú vị nhưng mệt, còn review thì chỉ phiền phức
      Đặc biệt là khi LLM rơi vào những kiểu thất bại kỳ quặc
      Trước đây, nhìn code tệ là có thể biết ngay tác giả đã nghĩ gì và vì sao nó không chạy
      Giờ thì ít code smell hơn nhưng lại có nhiều abstraction chọn sai, nên phải cẩn thận hơn nhiều
      Thật sự mệt mỏi
    • Cách nói kiểu này gán ngược cho code do con người viết một phẩm chất vốn không hề có
      Bạn nói “không ai muốn xây dựng trên nền code chỉ đúng 99% hoặc phình to”, nhưng bạn ơi, đã từng dùng Windows chưa?
    • Tôi không biết là những ai chịu đựng được thứ đó
      Hỏi bạn bè và gia đình quanh tôi thì ai cũng ghét phần mềm chậm chạp, phình to
      Nó ngốn thời gian và năng suất đến mức khó tin
      Sau khi LLM xuất hiện, mọi thứ chẳng tốt lên mà còn tệ hơn
    • Những thứ ở đoạn thứ hai chẳng phải chỉ chiếm một tỷ lệ nhỏ trong các công việc lập trình sao?
      Nếu để kiếm sống bằng nghề lập trình mà chỉ còn phải giành được những công việc như vậy, thì lập trình có thể sẽ trở nên rất giống thể thao
      Giống như bạn có thể chơi bóng rổ nghiệp dư, chơi nghiêm túc hơn ở trung học hoặc đại học, nhưng muốn sống bằng bóng rổ thì phải giỏi đến mức vào được NBA
    • Vụ tranh cãi về Bun gần đây chẳng phải cho thấy một câu chuyện khác sao?
  • Tôi thấy các lập luận được đưa ra rất yếu
    Thay vì thấy hy vọng, tôi thấy u ám hơn; nếu logic còn lại chỉ đến mức này thì có cảm giác mọi thứ thật sự đang trở nên tuyệt vọng
    Nói kỹ hơn, nếu coding là nghệ thuật thì đó là loại nghệ thuật tệ nhất
    Nó gần với Lego hơn nhiều, gần với cảm giác thỏa mãn khi hoàn thành một thứ lắp ghép có ý nghĩa
    Có lẽ ý của tác giả cũng là vậy
    Tức là nó vẫn có giá trị như một sở thích thuần túy
    Lập luận “coding giúp ích cho toán học” cũng yếu tương tự
    Nó chắc chắn giúp ích cho đại số, nhưng nhìn chung tôi nghĩ kiểu toán theo lối coding chủ yếu giúp ích hơn cho chính kiểu toán theo lối coding
    Đó là một dạng toán kỳ lạ có loop, quy tắc, câu điều kiện, và ngay từ đầu nếu phần mềm không trở nên phổ biến như hiện nay thì nó đã không trở thành chính thống
    Bóc lớp vỏ ra thì logic đó nghe có vẻ vòng vo hơn là một lập luận có thực chất

  • Học code là học cách hiểu vấn đề, chia nó thành những phần nhỏ có thể quản lý, rồi lắp lại với nhau
    Nó cũng bao gồm debug và lặp lại để hướng tới các chỉ số tốt hơn
    Những thứ này là các kỹ năng và lối tư duy cực kỳ giá trị, có thể chuyển sang những lĩnh vực giải quyết vấn đề khác

    • Đúng vậy
      Ngay cả trước LLM, người ta cũng đã biết rõ rằng nếu không tự viết chương trình thì khó có thể nói là mình thật sự hiểu
      Không có đường tắt ở đây
    • Nếu không biết code mà chỉ biết prompt, bạn không có cách nào phân biệt giải pháp tốt và giải pháp tệ
      Điều tốt nhất bạn có thể làm chỉ là để mô hình tự tìm ra thay cho mình
      Bạn cũng không biết cách thiết kế API tốt hay chia hệ thống thành các module
      Vấn đề là nhiều quản lý không phân biệt được rõ giữa lập trình viên giỏi và vibe coder
      Vibe coder thì tạo rất nhiều PR
      Có khi chính quản lý cũng có thể tạo PR bằng vibe coding
      Họ không thích ý nghĩ rằng lập trình viên có thể biết rõ hơn họ
    • Steve Jobs từng nói rằng mọi người nên học lập trình
      Vì nó dạy ta cách suy nghĩ
      https://youtu.be/BRTOlPdyPYU
  • Không phải một lập luận thuyết phục
    Nếu lý do tốt nhất để thuyết phục mọi người học lập trình là vì nó giống ký hiệu toán học, tức là một phần của toán học mà người mới nhập môn ghét nhất, hoặc vì nó đẹp như violin, tức là vô dụng với người mới, thì lập trình đang gặp khủng hoảng nghiêm trọng
    Tôi nghĩ lập luận tốt hơn là nó giúp ta suy nghĩ như máy tính
    Nhưng nếu muốn học điều đó, có rất nhiều trò chơi điện tử tôi sẽ khuyên nên thành thạo trước khi học lập trình
    Với đa số mọi người, “hãy học lập trình” cũng giống như nói với lập trình viên rằng “hãy học hợp ngữ”
    Đã lập trình khoảng 30 năm

    • Lý do thuyết phục nhất để học lập trình hoàn toàn giống với lý do phải đọc nhiều sách
      Vì nó rèn luyện bộ não
      Một bộ não có thể dễ dàng sắp xếp, diễn giải và hiểu logic cơ bản cùng luồng điều khiển sẽ chống lại tuyên truyền và ảnh hưởng tốt hơn
      Lợi ích giống như đọc nhiều sách, nhưng tác động lên một con đường tư duy khác
      Bạn tiếp xúc với nhiều thế giới quan hơn, suy nghĩ phản biện hơn về từng thế giới quan, và tư duy phản biện nói chung tăng lên
    • Tôi rất thích cách diễn đạt “với đa số mọi người, học lập trình giống như bảo lập trình viên học hợp ngữ”
      Nếu là môn ở đại học thì có thể học hợp ngữ, nhưng ngoài ra thì không có động lực
      Trước đây chẳng ai muốn đọc hợp ngữ, và giờ chẳng ai muốn đọc mã nguồn
    • Tôi từng nói với một người bạn thích toán rằng thỉnh thoảng tôi tự hỏi liệu mình có thể lớn lên mà không nghĩ rằng “mình dở toán” hay không, và tôi nghĩ lý do là vì điều đó
      Bản thân việc giải quyết vấn đề không khó
      Tôi đã thấy người ta vô tình tái phát minh những mảng toán “khó” bằng code
      Vì vậy tôi bắt đầu nghĩ liệu toán học có bị cố tình làm cho khủng khiếp hay không
    • Tôi nghĩ trò chơi điện tử quá trừu tượng để gắn với việc học cách suy nghĩ như máy tính
      Điều hữu ích nhất tôi từng học về máy tính là tự tay tạo ra cổng logic
      Không có gì giúp tôi hiểu sâu hơn về cách máy tính hoạt động bằng việc đó
      Lập trình là bước tiếp theo
      Tất cả các tầng ở giữa có thể được bù bằng suy luận nên có thể bỏ qua
      Không cần học hợp ngữ, nhưng đáng đọc thử để có cảm giác
      Hiểu các tầng từ cổng logic đến hợp ngữ, lập trình, trò chơi, và giờ là AI cũng giống như đọc mô hình OSI để hiểu mạng
      Đó là một cấu trúc gồm các tầng trừu tượng xếp chồng lên nhau
      Lý do lập trình đáng học là vì đó là tầng trừu tượng cao nhất mà mọi thứ phía trên nó cùng chia sẻ
      Dù có hàng trăm ngôn ngữ lập trình, các khái niệm nhìn chung vẫn giống nhau; nếu học một ngôn ngữ và hiểu lập trình thì có thể áp dụng cho hầu hết các ngôn ngữ khác
      Ngược lại, trò chơi có hàng chục nghìn, chia thành hàng trăm loại, và nếu tính cả các ứng dụng khác thì cây biến thể ở tầng đó sẽ bùng nổ