- Bài viết ghi lại tâm trạng phức tạp của một lập trình viên đã theo nghề suốt 42 năm từ năm 1983, khi cảm nhận rằng bản chất của phát triển phần mềm đang thay đổi cùng với sự xuất hiện của kỷ nguyên AI
- Từ thời đại tự hiểu và trực tiếp điều khiển mọi byte của cỗ máy, từ máy tính 8-bit đến 486, tác giả đã đi qua vô số chuyển dịch công nghệ, nhưng năng lực cốt lõi luôn có thể chuyển giao
- Khác với những lần chuyển đổi nền tảng, ngôn ngữ hay mô hình trước đây, AI là một bước chuyển làm thay đổi chính ý nghĩa của việc “giỏi”
- Khi vai trò chuyển từ trực tiếp viết mã sang rà soát và đưa chỉ thị, vòng lặp phản hồi thân thuộc của việc giải câu đố cũng đang dần biến mất
- Với 42 năm kinh nghiệm, tác giả vẫn tạo ra sản phẩm nhanh hơn bao giờ hết, nhưng đang đứng trong giai đoạn chuyển tiếp nơi cảm giác kỳ diệu và bản sắc từng gắn với việc phát triển phần mềm đang đổi khác
Thời đại đã tạo nên tôi
- Năm 1983, khi 7 tuổi, tôi gõ BASIC vào một cỗ máy còn có sức xử lý kém hơn con chip trong máy giặt, và viết những dòng mã đầu tiên
- Tôi có thể theo dõi công dụng của từng byte RAM, tự đặt từng pixel trên màn hình, và con đường từ ý định đến kết quả là trực tiếp và nhìn thấy được
- Giai đoạn tôi yêu thích nhất là từ 8-bit đến 486DX2-66, khi mỗi cỗ máy đều có cá tính riêng
- Ví dụ như attribute clash của Sinclair Spectrum, con chip SID của Commodore 64 được khai thác vượt xa ý đồ thiết kế, hay mẹo nhấp nháy do giới hạn 8 sprite mỗi scanline của NES
- PC đã tiến hóa từ một chiếc hộp màu be dành cho bảng tính, qua 286, 386, 486, thành một cỗ máy gaming mạnh mẽ có thể chạy Doom
- Đó không chỉ là sản phẩm đơn thuần mà là một cuộc phiêu lưu kỹ thuật với những đánh đổi hữu hình; việc xử lý xung đột IRQ, kênh DMA, tối ưu
CONFIG.SYS và AUTOEXEC.BAT, hay các trình quản lý bộ nhớ, tự thân đã là công việc của một kỹ sư hệ thống
- Những nhóm nhỏ như id Software đã đưa ra các quyết định kỹ thuật táo bạo khi chưa ai đặt ra luật lệ
- Chẳng hạn như ray casting của Carmack trong Wolfenstein hay các mánh khóe VGA Mode X trong Doom, những ví dụ về việc ép giới hạn thực tế để tạo ra điều thật sự mới mẻ
- Khi Plug and Play xuất hiện, cùng với lớp trừu tượng của Windows, miền Viễn Tây hoang dã ấy khép lại; máy tính biến từ một cỗ máy mê hoặc đòi hỏi sự tôn trọng và thấu hiểu thành một thiết bị gia dụng
Lời hứa bị biến chất
- Thuở ban đầu từng tồn tại một sự lạc quan chân thật về việc máy tính có thể trở thành gì — một đứa trẻ có chiếc Spectrum có thể tự làm ra bất cứ điều gì, và web thời kỳ đầu giống như công cụ bình đẳng hóa lớn nhất trong lịch sử loài người
- Nhưng niềm hy vọng ấy đã biến chất theo hướng khó chịu — những cỗ máy tôi yêu quý trở thành công cụ giám sát và khai thác
- Những nền tảng hứa hẹn kết nối thực chất lại được xây ra để kiếm tiền từ người dùng
- Tinh thần mày mò của người làm kỹ thuật không chết đi tự nhiên, mà bị thâu tóm để phục vụ tối ưu hóa lượt nhấp quảng cáo
- Đây là một kiểu mất mát khác với chuyện công cụ thay đổi — là cảm giác thứ mình yêu đã đổi khác và bị huy động vào những việc không còn đáng tự hào
Những cuộc chuyển đổi đã đi qua
- Trong 40 năm qua đã trải qua vô số làn sóng thay đổi kỹ thuật — ngôn ngữ mới, nền tảng mới, mô hình mới, từ CLI sang GUI, từ desktop sang web, từ web sang mobile, từ monolith sang microservices, từ băng từ, đĩa mềm, ổ cứng đến SSD, và các framework JavaScript xuất hiện rồi biến mất như phù du
- Mỗi làn sóng đều đòi hỏi phải học cái mới, nhưng kỹ năng cốt lõi luôn có thể chuyển giao — học nền tảng mới, áp dụng hiểu biết sẵn có về cách hệ thống vận hành, và tiếp tục xây dựng
- Kinh nghiệm ấy tích lũy theo lãi kép mỗi lần ngành công nghiệp rẽ sang hướng mới, kể cả khi từng phát hành phần mềm trên những nền tảng nay đã không còn tồn tại
- Giữa các lập trình viên dày dạn kinh nghiệm và cả ngành từng có một thỏa thuận ngầm: “Mọi thứ thay đổi, nhưng sự hiểu biết thì còn lại.”
Lần này thì khác
- Những lần chuyển đổi trước đây đều có cấu trúc “học cái mới rồi áp dụng kỹ năng cũ”, còn AI không phải là nền tảng, ngôn ngữ hay mô hình mới, mà là một bước chuyển làm thay đổi chính ý nghĩa của việc “giỏi”
- Tôi nhận ra điều đó dần dần — khi xây tính năng, thiết kế kiến trúc, tôi về cơ bản vẫn làm cùng một công việc, nhưng cảm giác như phần thú vị nhất đã bị rút ruột
- Phần từng là việc tìm ra lời giải thanh nhã, vật lộn với ràng buộc, và cảm nhận niềm thỏa mãn khi mọi thứ khớp vào nhau, ngày càng được giao cho một mô hình không quan tâm đến sự thanh nhã và cũng không cảm thấy thỏa mãn
- Nó rẻ hơn, nhanh hơn, nhưng rỗng hơn
- Giờ đây vai trò của tôi chuyển sang rà soát, ra chỉ thị và chỉnh sửa thay vì trực tiếp gõ mã — tôi biết khả năng phán đoán về cái gì hiệu quả và cái gì không, được bồi đắp suốt 42 năm, vẫn có giá trị, nhưng đó là một loại công việc khác và không mang lại cảm giác như cũ
- Vòng lặp phản hồi đã đổi và sự thân mật đã biến mất — những câu đố, những lần lần dấu vết, khoảnh khắc cuối cùng hiểu ra vì sao thứ gì đó không chạy, từng khiến tôi thức trắng đêm suốt nhiều thập kỷ, nay bị nén thành prompt và response
- Tôi đang chứng kiến những người chỉ có một phần rất nhỏ trải nghiệm đó vẫn có thể tạo ra kết quả bề ngoài tương tự — khác biệt về tay nghề vẫn có thật, nhưng từ bên ngoài khó nhận ra hơn, khó định giá hơn, và cũng khó cảm thấy từ bên trong hơn
Tháp trừu tượng
- Trên LinkedIn, tôi thấy những lập trình viên mới ngoài 20, có vài năm kinh nghiệm, than phiền rằng với AI thì họ “không còn hiểu chuyện gì đang diễn ra”
- Họ không nhận ra rằng họ vốn đã đứng trên đỉnh một chuỗi trừu tượng, trên một tòa tháp Jenga đang lung lay
- TypeScript → biên dịch sang JavaScript → engine V8 viết bằng C++ → system call của nhân hệ điều hành → lịch lập luồng trên các core mà họ chưa từng nghĩ tới → bộ điều khiển bộ nhớ có các lớp cache → 400 package npm mà họ chưa từng đọc lấy một dòng
- Con tàu của sự trừu tượng đã rời bến từ nhiều thập kỷ trước, chỉ là vì các lớp đến dần dần nên ta vẫn có thể giả vờ rằng mình hiểu toàn bộ stack
- AI là lớp khiến ta không thể tiếp tục duy trì sự giả vờ đó nữa
- Cảm giác còn nhớ việc từng hiểu toàn bộ cỗ máy là như thế nào, và nỗi buồn khi đánh mất điều đó, là thứ người chưa từng trải qua sẽ khó mà cảm nhận trọn vẹn
Những gì còn lại
- Đúng là kinh nghiệm hiện giờ có giá trị hơn bao giờ hết, tư duy hệ thống và phán đoán kiến trúc là những thứ AI chưa thể thay thế, và tay nghề thủ công vẫn tồn tại dưới hình thức khác
- Khi làm việc phức tạp — quản lý phụ thuộc ở cấp độ hệ thống, duy trì mô hình tinh thần xuyên qua nhiều đặc tả tương tác, đưa ra hàng nghìn quyết định nhỏ để mọi thứ cho cảm giác nhất quán — tôi vẫn mang đến điều mà AI chưa có: gu thẩm mỹ, khả năng phán đoán và khả năng nhận diện mẫu tích lũy qua hàng chục năm
- Khi việc sinh mã trở nên rẻ, nút thắt sẽ chuyển sang người biết phải yêu cầu điều gì, người nhận ra đầu ra có gì đó sai một cách tinh vi, người giữ được toàn cảnh — gõ mã chưa bao giờ là phần khó nhất
- Nhưng nếu nói rằng cảm giác vẫn như cũ thì sẽ là nói dối — sự kỳ diệu trở nên khó chạm tới hơn, cảm giác khám phá khi tự mình lần mò ra điều gì đó bằng sự lì lợm thuần túy và tính độc sáng đã bị nén lại. Trong sự nén đó, ta được thêm thứ này nhưng cũng mất đi thứ khác
Giai đoạn đất nghỉ (Fallow Period)
- Gần đây tôi tròn 50 tuổi, và sau 4 năm xây dựng dữ dội cùng quá trình định hình bản sắc, tôi bước vào một thời kỳ mà mình bắt đầu gọi là “giai đoạn đất nghỉ (fallow period)”
- Nó khác với burnout — đây là quá trình tìm một nền móng mới khi mặt đất dưới công trình mà tôi từng nghĩ là vĩnh viễn đang dịch chuyển
- Không có kết luận gọn gàng nào cả — những lời khuyên như “hãy đi lên tầng cao hơn của stack”, “hãy chấp nhận công cụ”, hay “hãy tập trung vào những gì AI không làm được” có lẽ đều đúng, nhưng không giải quyết được cảm giác này
- Cảm giác rằng thứ mình đã dâng 42 năm cuộc đời cho giờ đây có thể đã biến thành một thứ mình không còn nhận ra — không nhất thiết là tệ hơn, nhưng khác đi, thách thức bản sắc tôi dựng nên quanh nó và không còn mang lại sự thỏa mãn như trước
- Tôi đoán nhiều lập trình viên trên 40 cũng đang cảm thấy điều tương tự nhưng không nói ra — vì ngành này sùng bái tuổi trẻ và khả năng thích nghi, nên nói rằng “mọi thứ không còn như xưa” dễ bị nghe như thể mình đã tụt lại phía sau
- Nhưng đó không phải là tụt lại — tôi đang dùng công cụ mới để xây dựng nhanh hơn bao giờ hết và tạo ra những sản phẩm mà vài năm trước chỉ dám mơ tới, đồng thời vẫn đang cố hiểu “làm ra thứ gì đó” giờ thực sự có nghĩa là gì
- Tôi bắt đầu lập trình từ năm 7 tuổi vì cỗ máy sẽ làm chính xác điều mình ra lệnh, vì nó có thể được khám phá và cuối cùng có thể được hiểu, và điều đó từng giống như phép màu; giờ tôi đã 50, phép màu ấy đã khác, và tôi đang học cách sống cùng sự khác biệt đó
11 bình luận
Là vì đã xuất hiện một công nghệ có nền tảng không trong sạch. Dữ liệu mà LLM đã "học" không được cấp phép sử dụng cho mục đích này (dù họ tuyên bố là đã được cấp phép), nên cũng không thể liệt kê một cách đàng hoàng chính xác đã "học" những dữ liệu nào. Vì thế không thể hiểu được cấu trúc của nó. Đây là một công nghệ ngay từ gốc đã khởi đầu bằng việc không tôn trọng tinh thần của con người, đồng thời sản xuất hàng loạt các bản sao giả mạo không được phép và phá hoại môi trường.
Tôi cũng bắt đầu với Basic, vậy mà đến nay đã hơn 40 năm rồi.
Hồi còn có thời đi học bàn tính, giờ thì lại đang dùng AI agent, đúng là thế giới thay đổi quá nhanh.
Nhưng tôi không có cảm giác giống tác giả bài viết, chỉ là thấy những gì đang diễn ra dạo này khá thú vị thôi.
Ý kiến trên Hacker News
Theo thời gian, tôi cảm thấy môi trường phát triển ngày càng tệ đi do độ phức tạp của OS tăng lên và tầm quan trọng xã hội của phần mềm ngày càng lớn
Chiếc Mac năm 1984 đã có sẵn thư viện đồ họa rất phong phú, và trừu tượng hóa là một xu hướng tất yếu. Thực ra tôi còn thích những framework được thiết kế tốt
Nhưng khi phần mềm bắt đầu chi phối cuộc sống, thời đại mà “kỹ sư dẫn dắt” cũng kết thúc, và văn hóa quản trị xoay quanh Agile, unit test, code review đã lấy mất niềm vui khi viết code
Giờ nghỉ hưu rồi, tôi lại được tự do code và tận hưởng cảm giác ‘cowboy programmer’ của ngày xưa
Chất lượng code do AI tạo ra cuối cùng vẫn tỷ lệ thuận với trình độ của lập trình viên dùng công cụ đó. Lập trình viên giỏi vẫn cho ra kết quả tốt
Ngay cả khi dùng AI, bạn vẫn có thể tự tay tinh chỉnh những phần quan trọng và dành thời gian để dùng bộ não của mình. Thử thách thật sự theo tôi không phải công nghệ mà là quản lý thời gian
Hồi trước, viết thư viện render bằng assembly xuyên đêm khiến tôi có cảm giác như đang làm phép. Tôi từng nghĩ Docker container không có thứ phép màu đó, nhưng dạo này tôi lại thấy mình đang làm phép dưới ánh màn hình lúc 2 giờ sáng
Tôi cũng đã 50, và rất hào hứng vì nhờ AI coding assistant mà giờ có thể thực hiện những dự án cá nhân trước đây không làm nổi do thiếu thời gian
Phát triển cùng chatbot khiến tôi có cảm giác như đang điền vào biểu mẫu. Dù vậy thế giới đang thay đổi nên vẫn phải chấp nhận
Điều đó khiến ta nhận ra đa số mọi người muốn hiệu quả hơn là tinh thần thủ công, và những người thợ thực thụ thì hiếm. Rốt cuộc có lẽ chúng ta lại sắp mất thêm một mảnh văn hóa nữa
Nhưng debug đoạn code do LLM tạo ra lại giống như sửa code của người khác, nên chẳng có cảm giác thành tựu. Hoàn thành thì nhanh hơn thật, nhưng giờ nó không còn giống là của mình nữa
Trẻ con bây giờ vẫn cảm thấy phép màu như thế. Biết đâu 50 năm nữa sẽ có người nói “tôi nhớ thời còn tune GPT-6.2 RAG”
Tôi thuộc nhóm đầu. Nhờ AI, tôi có thể làm ra những thứ trước đây không làm nổi vì thiếu thời gian. Giờ tôi tập trung được vào các tính năng cốt lõi
Sự kỳ vọng vào công nghệ tương lai đã biến mất nên tôi bắt đầu nhìn sang những lĩnh vực khác
Hồi ở công ty lớn thì không vui, nhưng giờ mỗi ngày ngồi trước IDE đều thấy thích
Nếu bạn thấy lập trình không còn vui nữa, tôi khuyên hãy thử chuyển sang làm tư vấn. Sự độc lập và quyền kiểm soát sẽ mang lại niềm vui trở lại
Từ hồi lớp 10 mình đã nghĩ sẽ theo ngành khoa học máy tính, nên trong hồ sơ hoạt động cũng cố lấp đầy bằng các hoạt động liên quan đến CNTT và tranh thủ tự học chút ít, rồi giờ đã thành học sinh chuẩn bị lên lớp 12, mà dạo này tâm trạng thật sự rất rối bời. Khi dùng GPT-3 hay gần như những phiên bản đầu tiên, mình chỉ thấy kinh ngạc vì AI có thể nói chuyện tự nhiên đến vậy, cũng từng vào Discord của Midjourney để thử tạo ảnh, nhưng lúc đó nó chỉ mang cảm giác như một "món đồ chơi thú vị" thôi, chứ mình chưa từng tưởng tượng nó sẽ phát triển nhanh đến thế. Có lẽ vì mình đã thấy AI kiểu như Bixby từ lâu rồi nên kỳ vọng cũng thấp nữa.
Nhưng rồi chẳng biết từ lúc nào AI tăng tốc quá nhanh, các ông lớn công nghệ thì đổ tiền vào AI, còn xung quanh bắt đầu lan truyền những câu chuyện kiểu tương lai ngành khoa học máy tính sẽ u ám này nọ. Tất nhiên AI tạo sinh về cơ bản chỉ là một chương trình phức tạp sắp xếp những từ có xác suất cao về mặt toán học, nhưng vì nó bắt chước sản phẩm do con người tạo ra quá giỏi, lại còn phát triển quá nhanh, nên mình cũng lo rằng sau khi tốt nghiệp đại học, thậm chí sau cả cao học, liệu công việc có còn đủ nhiều hay không...
Mình vẫn đang vừa học vừa chăm chút hồ sơ để nhắm tới khoa Khoa học Máy tính của Đại học Quốc gia Seoul như mục tiêu ban đầu, một nửa vì niềm tin, một nửa vì quán tính, nhưng thật sự rất khó gạt bỏ cảm giác bất an. Thêm nữa, có những lúc học lập trình bằng cách hỏi AI lại nhanh hơn áp đảo so với đọc sách, nên trong lòng cũng rất mâu thuẫn... Đại khái là vậy.
Có lẽ bây giờ thậm chí còn tốt hơn phải không? Nếu hành động nhanh hơn bất kỳ ai khác, có vẻ bạn có thể sớm trở thành chuyên gia. Trong lĩnh vực AI cũng vẫn còn rất nhiều việc phải làm.. Vì mới chỉ đến mức code khá tốt thôi mà.
Tuy khác độ tuổi nhưng tôi cũng nghĩ tương tự, hừ.
Ngay cả khi biết các ngành nghệ thuật và thể thao khó xin việc, mọi người vẫn chọn chuyên ngành mình yêu thích mà. Hãy quyết định tùy theo việc bạn xem tìm được việc làm có quan trọng hay không, hoặc dù khó xin việc nhưng nếu được làm điều mình thích thì vẫn ổn. Dùng AI để tạo ra phần mềm và nghiên cứu AI vẫn là những công việc rất tuyệt.
Tôi cũng bắt đầu với BASIC, và thời (tiểu học) trường quốc dân đã càn quét đủ loại cuộc thi. Chủ yếu tôi làm game, và tôi nghĩ đỉnh cao sự nghiệp của mình là việc đã làm ra một game bắn súng góc nhìn thứ nhất khi còn học tiểu học. Sau đó tôi bắt đầu từ COBOL, FORTRAN, C/C++, rồi làm ứng dụng/game Windows, server game, phát triển ứng dụng nhúng cho feature phone/set-top box, rồi đến iOS và Android, và sau đó phát triển web app full-stack dựa trên Node, Python, đồng thời hoạt động open source dựa trên Node cũng rất sôi nổi. Tôi đã hiểu, phát triển và trải nghiệm hầu hết các hệ thống, framework, OS... từ tận nền tảng. Khi bước sang tuổi 40, dù có framework hay OS mới ra đời thì cũng chỉ na ná như vậy. Nhưng phát triển dựa trên AI là một việc khác về căn bản. Trông có vẻ như là sự nối dài của những gì đã làm trước đó, nhưng không phải. Công việc kế toán/văn phòng thì vẫn thế, nhưng chuyển từ bàn tính sang spreadsheet không phải là một sự nối dài. Vấn đề là sẽ tiếp tục chỉ gảy bàn tính, hay bước sang một lĩnh vực khác. Đây không phải chuyện thích hay ghét, hay chuyện nó đã thay đổi hay chưa.
Thật tuyệt vời.
Tôi cũng đã ngoài 50, và từ đầu những năm 2000 đến nay vẫn làm trong nghề, nhưng tôi thấy việc AI xuất hiện lại là điều tốt hơn. Trước đây, mỗi khi phân tích mã nguồn kernel, tôi phải vừa căng thẳng vừa lục tìm hết lần này đến lần khác; giờ thì giao cho AI làm, còn tôi dựa trên đó để kiểm tra lại xem có đúng sự thật không, nên bớt căng thẳng hơn và hiểu được nhiều nội dung hơn, sâu hơn. Ngoài ra, nền tảng của tôi là firmware, nhưng giờ tôi nhận ra rằng mình có thể phát triển cả ứng dụng Android, nên cũng biết được rằng kinh doanh một người cũng là điều khả thi.
Tôi cũng bắt đầu với BASIC vào năm 83,
đồng thời từng trải qua giống hệt giới hạn 8 sprite trên mỗi scanline của NEC trên MSX (MSX1 là 4), nên tôi rất vui khi được đọc một bài viết chia sẻ cùng thời đại và trải nghiệm.
Tôi cũng rất hiểu những trăn trở hiện tại.