Quay lại blogSau AI, nghề lập trình vẫn còn. Chỉ là nó không còn như trước

Sau AI, nghề lập trình vẫn còn. Chỉ là nó không còn như trước

Đỗ Thành Đạt

Lập trình thời AIAI CodingVibe CodingVibe CodeSoftware EngineerKỹ sư phần mềmSoftware ArchitectureTư duy lập trìnhDeveloper MindsetAI và lập trìnhTương lai nghề lập trìnhLập trình viên có bị AI thay thế khôngCông nghệAI cho DeveloperSoftware EngineeringAI có thay thế lập trình viên khônglập trình viên trong thời đại AIvibe coding là gìvibe code là gì

Lại một chút tản mạn về nghề lập trình, nhớ lại những năm 2020, khi cảm giác trở thành một lập trình viên giỏi gắn liền với rất nhiều đêm muộn. Đêm muộn để dựng một project mới. Đêm muộn để sửa một lỗi không hiểu xuất hiện từ đâu. Đêm muộn để đọc những tài liệu, lục lọi khắp cái xó xỉnh ở StackOverflow, thử hết cách này đến cách khác, những tiếng gào thét, tiếng đập bàn rồi đến khi tự cười một mình khi tìm ra được một giải pháp cho cái vấn đề mình đang gặp phải.

Thật lòng mà nói, tôi nghĩ ngày đó, với tôi thì việc lập trình có một vẻ đẹp rất thủ công. Nó giống như xây một căn nhà bằng tay, chúng ta tự mình đặt từng viên gạch, tự đo từng khoảng cách, tự sửa từng vết lệch nhỏ. Có khi mệt, có khi bực, có khi muốn gập máy đi ngủ, à thực ra thì muốn đập mịa cái máy tính mình đi, nhưng khi sản phẩm của mình hiện lên trên trình duyệt, thì chắc hẳn ai đã từng trải qua sẽ thấy đó thực sự một niềm vui rất thật, cái thật ở đây nó không nằm ở kết quả, mà cái thật trong cảm xúc, kết quả của sự cố gắng, cái niềm đam mê của mình ở trong đó. Một cái nút bấm chạy được. Một API trả đúng dữ liệu. Một màn hình không còn vỡ layout. Một dòng chữ “success” bé xíu hiện ra. Tất cả những điều nhỏ bé đó từng là phần thưởng của cái nghề mà ai cũng nói là vua mọi nghề này.

Tôi thì cũng là một kỹ sư phần mềm ở thế hệ 9x đời cuối, may mắn tôi được tiếp xúc với cái nghề này từ khá là sớm, chắc cũng phải từ năm 2014 hay 2015 gì đó. Nếu nói về tuổi nghề thì chắc nhiều anh chị còn nhiều hơn tôi biết bao nhiêu, nhưng tôi nghĩ rằng nhiều lập trình viên thế hệ trước hay thế hệ tôi đều từng đi qua cảm giác ấy. Cảm giác rằng code không chỉ là công việc, mà còn là bằng chứng cho sự kiên trì của mình. Mình chịu khó hơn, mình hiểu sâu hơn, mình tự làm được nhiều hơn, vậy là mình giỏi hơn.

Và rồi cái thứ gọi là AI xuất hiện

Thành thật mà nói, ban đầu tôi không thích gọi đó là một cuộc cách mạng. Với bản thân tôi lúc đó, tôi thực sự thấy nó nghe hơi cường điệu. Có lẽ vì với tôi, việc này nó giống như một người lạ đang bước vào căn phòng làm việc quen thuộc của mình, kéo ghế ngồi xuống, rồi bắt đầu làm những việc mà trước đây tôi từng xem là một phần bản sắc, một phần cuộc sống của mình.

Mà cái sự không thích, hay có thể nói là ghét ở đây nó càng bộc lộ và lớn hơn khi tôi nhận ra nó viết hàm nhanh hơn tôi, nó tạo component nhanh hơn tôi, nó giải thích lỗi nhanh hơn tôi, thậm chí nó còn có thể đưa ra một giải pháp cho cái thứ mà tôi còn đang loay hoay chưa biết phải bắt đầu từ đâu.

Mà thật sự ấy, cảm giác ấy không dễ chịu tí nào. Ừ thì có thể những người đang đọc bài viết này cũng từng trải qua cảm giác đó đúng không, thú thật đi, chúng ta đang ganh tị, chúng ta đang lo sợ đúng không nào?

Một thứ chết tiệt đang làm được những thứ mà chúng ta từng tự hào, nó làm được những thứ mà chúng ta đã dành biết bao nhiêu thời gian, nỗi đau để đạt được. Có phải bạn hay tôi đã từng đặt ra những nghi ngờ cho cái thứ đó, mà không chỉ thế chúng ta còn bắt đầu nghi ngờ chính cái thước đo giá trị của bản thân chúng ta.

Đã từng có giai đoạn tôi cực kỳ ghét việc phải sử dụng các công cụ AI, tôi bài trừ nó, tôi ghét nó một cách cực đoan, tôi ghét cả những ai nhắc về nó. Tôi đều cho rằng việc sử dụng nó đang làm chúng ta đánh mất sự kiểm soát, đánh mất giá trị bản thân.

Hmm!... Thì...

Đọc đến đây, tôi muốn hỏi rằng, bạn ấy, người đang đọc bài viết này, bạn đã buông bỏ được cái chấp niệm đó chưa? Với tôi, thì tôi có thể trả lời là, RỒI!

Không phải ngay lập tức, cũng không phải một cách dễ dàng, nó là một quá trình giống như tôi phải cố gắng làm lành với cái đứa mà tôi ghét hồi đi học ấy. Tôi đã cố gắng bắt tay chào hỏi nó, cùng nó làm một vài thứ linh tinh, vì tôi vẫn đếch tin là nó có thể làm được cái gì hay ho đâu, rồi dần dần nó trở thành một thói quen.

"Dịch cái này cho tao đi"

"Code giùm tao cái landing page giống design này"

"Đoạn này lỗi gì thế"

...

Khỉ thật, đến một lúc nó lại trở thành bạn thân của tôi lúc nào không hay rồi!

Và thực sự, khi quen biết nó đủ lâu, đồng hành cùng nó đủ lâu, đến một lúc nào đó mà tôi cũng chẳng nhớ nữa, tôi nhận ra AI nó không "cướp" đi cái nghề lập trình của chúng ta

Nó chỉ lấy đi sự lãng mạn cũ của cái nghề này.

Cái sự lãng mạn của việc tự tay làm mọi thứ, cái sự lãng mạn của những đêm dài vật lộn với boilerplate của một thằng cha nào đó trên GitHub. Của cái cảm giác mình càng cực, càng kiên trì, càng tự làm nhiều thì càng xứng đáng được gọi là một kỹ sư giỏi.

Nhưng cái nghề này, suy cho cùng, đâu chỉ được đo bằng việc ta đã gõ được bao nhiêu dòng code đúng không nào?

Nó buộc chúng ta phải nhìn lại một câu hỏi cũ bằng một con mắt mới, một góc nhìn mới

Rốt cuộc, một kỹ sư phần mềm giỏi là ai?

Là người mà tôi từng nghĩ rằng gõ code nhanh hơn? Là ông anh trong team, cái người mà nhớ nhiều syntax hơn? Hay là một người có thể tự tay viết lại mọi thứ từ đầu?

Hay là một người hiểu vấn đề đủ sâu để biết mình nên xây cái gì, không nên xây cái gì, phần nào nên giao cho thằng trợ lý "AI", phần nào thì bản thân phải tự kiểm soát và làm sao để biến một ý tưởng mơ hồ thành một hệ thống thật sự chạy được trong đời thực?

Mộng mị trong làn khói "Vibe Code"

Tại thời điểm này, mối quan hệ giữa tôi và thằng bạn "AI" cũng gọi là khá là thân thiết. Với tôi, nó khá hữu dụng, thứ nó đưa cho tôi quá tiện lợi.

Nhưng cũng chính sự tiện lợi ấy đã đẩy tôi và có lẽ rất nhiều anh em trong nghề bước vào một thứ ảo giác rất êm.

VibeCode

VibeCode

VibeCode

Giới công nghệ dạo gần đây hay nhắc về một khái niệm nghe lạ đời nhưng khá là thơ Vibe Code.

Nghe thì có vẻ ngầu đét.

Chúng ta không còn giống một người thợ xây đang xách hồ, trộn xi măng, đo từng viên gạch nữa. Chúng ta bây giờ giống như một vị đạo diễn hơn. Một người đứng trước màn hình, tay nhâm nhi một ly cà phê, mắt nhìn xa xăm, rồi ra lệnh cho cái "đội thi công AI" của mình, đại loại thì kiểu:

Tôi đang cần xây dựng một dashboard quản lý kho hàng, dùng ReactJS, giao diện thật là đẹp dùng phong cách của Apple, có animation mượt mượt cho nó sang

Bùm, vài giây sau, một đống code hiện ra, bấm nút chạy thử.

Trình duyệt sáng lên, dashboard hiện ra, nút bấm được, biểu đồ thì nhảy nhót, bảng dữ liệu trông cũng ngon đét, màu sắc ổn, layout không vỡ. Nhìn qua thì đúng là có cảm giác phê thật, cái đống công việc mà có thể phải mất gần cả tháng trời chỉ cần một vài phút.

Chúng ta lại nhâm nhi một chút cà phê, ngả người ra ghế, một cảm giác vua chúa chỉ thế thôi.

Và tôi nghĩ, sự ảo tưởng bắt đầu chính từ khoảnh khắc đó.

Khoảnh khắc chúng ta bắt đầu đánh đồng một thứ trông có vẻ ngon, chạy được một với một thứ thật sự có thể vận hành được. Đánh đồng một bản demo đẹp mắt với một sản phẩm có thể chịu được người dùng thật, những khách hàng thật sự khó tính.

Ngày trước, như tôi đã nói ở trên, để có được cảm giác ấy, chúng ta phải đi qua rất nhiều bước xấu xí. Phải dựng project, phải ghép API, phải mòn đít sửa layout, phải đọc một đống log để xem cái error đang ở màn hình là cái lỗi quái gì, phải tự bước đi qua từng đoạn đường gồ ghề của hệ thống.

Còn bây giờ, AI có thể đưa ta thẳng đến một màn hình nhìn rất giống đích đến. Nó giống như việc bạn vừa nhắm mắt một lúc, mở mắt ra đã thấy đứng trước một căn nhà có đèn sáng, cửa gỗ, ban công, rèm cửa, cây xanh trước sân. Mọi thứ tuyệt đẹp, nó giống một căn nhà đã hoàn thiện, chúng ta chỉ cần vào ở thôi.

Nhưng chỉ khi chúng ta bước vào bên trong, chúng ta mới nhận ra rằng, những ổ điện còn chưa nối dây, những bức tường chỉ mới được sơn bên ngoài, những cái cửa mở ra chẳng dẫn đến đâu, những đường ống nước chưa từng được mở, những góc khuất mà bản thiết kế ban đầu chưa hề nghĩ tới.

Vibe code cũng vậy.

Nó cho ta một cảm giác rất dễ say, một cảm giác mình đang đi nhanh hơn tất cả mọi người, nhưng đôi khi, thứ chúng ta đang có không phải một sản phẩm, mà chỉ là hình bóng rất đẹp của một sản phẩm mà chúng ta đang muốn.

Một thứ đủ đẹp để demo, đủ mượt để quay video, đủ ấn tượng để khiến ta phấn khích, đủ để khoe bạn bè trên Facebook. Nhưng chưa chắc đã đủ để sống sót bước ra ngoài đời thật, nơi người dùng chả tuân theo cái nguyên tắc gì.

Điều nguy hiểm nhất của AI không phải là nó viết ra code tệ. Code tệ còn dễ nhận ra đúng không? Điều nguy hiểm hơn là nó có thể viết ra một thứ trông rất ổn, ổn đến mức ta lười nghi ngờ, ổn đến mức ta "quên" kiểm tra, ổn đến mức ta bắt đầu tin rằng chỉ cần vài dòng prompt là đủ để thay thế cả một quá trình suy nghĩ kỹ thuật một cách nghiêm túc.

Và đó là lúc, Vibe code không còn là một công cụ, một trường phái nữa. Nó trở thành một thứ, tôi cũng không rõ phải dùng từ gì cho đúng, nhưng tôi nghĩ rằng tôi sẽ gọi đó là một cơn mộng mị.

Một làn khói ngọt ngào khiến ta quên mất đi rằng phía sau một phần mềm chạy được không chỉ là một giao diện hiện lên, đó là còn là sự phức tạp, liên kết của dữ liệu, logic nghiệp vụ, bảo mật, hiệu năng, khả năng bảo trì, khả năng chịu lỗi và thậm chí là trách nhiệm của những người đã quyết định đưa nó vào đời thực.

Vậy nên, nếu có một điều tôi học được sau cái giai đoạn mà mọi người, kể cả tôi say mê sử dụng AI, thì chắc là "Đừng có bị nhầm cảm giác tạo ra thứ gì đó thật nhanh với năng lực xây dựng thứ gì đó thật vững chắc".

Ngừng lập trình như những năm 2020 không có nghĩa là buông tay cho AI lái thay mình, không có nghĩa là cho AI quyết định mọi thứ của chúng ta. Nó có nghĩa là ta phải học cách cầm lái trong một chiếc xe đi nhanh hơn trước rất nhiều.

Nó nhanh hơn, nó tiện hơn, nó mạnh hơn.

Nhưng cũng vì thế mà chỉ một khoảnh khắc mất tỉnh táo thôi, ta có thể lao đi rất xa khỏi nơi mình thật sự muốn đến.

Có lẽ sau này sẽ không còn ai nhớ rằng lập trình viên từng phải copy từng dòng trên StackOverflow, từng thức đến ba giờ sáng để sửa một lỗi NullPointerException, hay từng mất cả ngày chỉ để căn giữa một cái div. Nhưng tôi vẫn biết ơn những ngày tháng đó. Vì chính những ngày chậm chạp ấy đã dạy tôi cách suy nghĩ như một kỹ sư. AI có thể viết code nhanh hơn tôi. Nhưng nó không thể thay tôi chịu trách nhiệm cho một hệ thống đang chạy ngoài đời thực. Và có lẽ, đó mới là điều khiến nghề này vẫn đáng để theo đuổi.

Share

Bài viết liên quan