← Tất cả bài viếtThấu hiểu người dùng

Câu hỏi 'làm thế nào' và 'tại sao': cái nào quyết định tốc độ học code của bạn?

Kiểu câu hỏi bạn đặt ra cho AI tiết lộ nhiều hơn bạn nghĩ về tốc độ học. Người hỏi 'tại sao' xây được hiểu biết bền vững — đây là những gì chúng tôi quan sát thấy trong thực tế.

Hóa ra, điều phân tách người học nhanh khỏi người học chậm không nằm ở năng khiếu, cũng không nằm ở thời gian luyện tập, cũng không phải ở bộ công cụ họ chọn. Mà nằm ở chính xác một từ trong câu hỏi họ đặt ra mỗi khi gặp khúc mắc.

Hai người học có thể bắt đầu cùng một dự án, cùng một ngày, với cùng mức độ kinh nghiệm. Sau sáu tuần, một người có thể giải thích từng quyết định trong code của mình - người kia cũng tiến được một đoạn đường, đôi khi còn tiến khá xa, nhưng vẫn nhờ AI giải quyết những loại vấn đề tương tự như hồi đầu.

Sự khác biệt đó, hầu như luôn luôn, nằm ở chỗ một người hỏi "làm thế nào" và người kia hỏi "tại sao".

Hai kiểu câu hỏi, hai con đường khác nhau

Câu hỏi kiểu "làm thế nào" thì quen thuộc với bất kỳ ai mới học code:

  • "Làm thế nào để căn giữa cái element này?"
  • "Làm thế nào để lấy dữ liệu từ API bằng JavaScript?"
  • "Làm thế nào để button đổi màu khi click?"

Câu hỏi kiểu "tại sao" thì khác hẳn về bản chất:

  • "Tại sao đặt margin: auto rồi mà element này vẫn không chịu căn giữa?"
  • "Tại sao API call của mình chạy trước khi data kịp trả về?"
  • "Tại sao button đổi màu lần đầu nhưng từ lần thứ hai trở đi thì không?"

Nhìn qua, cả hai đều giúp bạn tiếp tục được với dự án. Và đây chính xác là điểm đáng lo ngại nhất.

Bẫy của sự hiệu quả tức thì

Câu hỏi "làm thế nào" rất tiện lợi - hỏi xong có đáp án ngay, áp dụng xong tiếp tục code. Với người đang học mà muốn giữ đà, kiểu hỏi này có vẻ hoàn toàn hợp lý. Và với những tra cứu đơn giản như cú pháp hay tên hàm, nó thực sự không có vấn đề gì.

Vấn đề là theo thời gian, người học ở mãi trong chế độ "làm thế nào" sẽ xây được cái có thể gọi là sự hiểu biết lắp ráp - họ biết các mảnh ghép vào đâu vì đã đặt chúng vào đó nhiều lần, nhận ra được các mẫu lệnh quen thuộc. Nhưng điều họ khó làm được là ứng biến - là lý luận qua một vấn đề chưa gặp bao giờ, khi không có giải pháp nào sẵn trong trí nhớ đủ gần để với tới.

Khi những lúc đó ập đến - và chúng sẽ ập đến - người học theo kiểu này thường đứng khựng. Họ dán toàn bộ thông báo lỗi vào chat, chờ fix, áp dụng xong, tiếp tục đi - mà không hiểu rõ tại sao nó hoạt động. Vòng lặp đó cứ thế kéo dài.

Đây không phải lười biếng hay thiếu chăm chỉ. Đây là phản ứng tự nhiên trước một công cụ cực kỳ giỏi trong việc đưa ra đáp án - AI làm cho con đường ít kháng cự nhất trở nên hoàn toàn trơn tru.

Điều hữu ích nhất mà AI có thể làm cho người học không phải lúc nào cũng là điều hiển nhiên nhất nó có thể làm.

Tại sao "tại sao" khó hơn - nhưng tích lũy nhanh hơn

Câu hỏi "tại sao" buộc bạn tiếp cận với nguyên nhân, chứ không chỉ với giải pháp. Khi bạn hỏi "tại sao cái này không hoạt động?", bạn đang ngầm cam kết rằng mình sẽ hiểu phần giải thích trước khi áp dụng fix. Chỉ một thay đổi nhỏ này thôi đã làm khác đi hoàn toàn những gì bạn mang về từ mỗi cuộc trò chuyện.

Lấy một ví dụ cụ thể:

/* Đáp án cho câu hỏi "làm thế nào": đây là fix */
.container {
  display: flex;
  justify-content: center;
}

/* Đáp án cho câu hỏi "tại sao": flex thay đổi
   formatting context. margin: auto chỉ hoạt động
   để căn giữa block trong normal flow. Trong flex
   container, alignment được xử lý khác hoàn toàn. */

Người hỏi "làm thế nào" nhận được fix. Người hỏi "tại sao margin: auto không căn giữa được?" nhận được fix CSS box model, sự khác biệt giữa block và flex context, và lý do justify-content tồn tại. Lần sau gặp vấn đề layout, họ có mô hình tư duy để lý luận từ đó - không phải chỉ là ký ức mờ về một giải pháp từng áp dụng.

Điều này tích lũy. Mỗi câu trả lời "tại sao" thêm một mảnh vào tấm bản đồ hiểu biết liên kết với nhau. Mỗi câu trả lời "làm thế nào" là một tờ ghi chú có thể thất lạc bất cứ lúc nào. Đây là một dạng khác của thứ chúng tôi gọi là comprehension debt - khi hiểu biết nông dần mà người học không nhận ra, cho đến lúc bắt đầu vấp phải những vấn đề không còn quen nữa.

Những người học mà chúng tôi thấy tiến bộ nhiều nhất - và tự tin nhất khi kết thúc dự án - không nhất thiết là nhanh nhất hay có nền tảng kỹ thuật tốt nhất từ đầu. Họ là những người chịu dừng lại để hiểu, dù đôi khi cảm giác như vậy là đang làm chậm mình lại.

Điều gì khiến người ta bắt đầu hỏi "tại sao"?

Suy cho cùng, câu hỏi thú vị hơn không phải là liệu sự khác biệt này có tồn tại hay không - mà là cái gì khiến ai đó chuyển từ "làm thế nào" sang "tại sao".

Theo những gì chúng tôi quan sát, hiếm khi đó là một buổi thuyết giảng về best practice. Hầu như luôn là một lúc bí mà chế độ "làm thế nào" không tháo ra được - một bug mà fix xong vẫn còn đó, một tính năng hoạt động khác nhau trong hai ngữ cảnh, một đáp án AI hoàn hảo với ví dụ mẫu nhưng không áp dụng được vào dự án thực. Những lúc đó gây bực bội. Nhưng chúng cũng thường là những khoảnh khắc học được nhiều nhất.

Khi "làm thế nào" ngừng hiệu quả, bước tiếp theo tự nhiên là đặt câu hỏi theo cách khác. Và người nào đã từng cảm nhận giới hạn đó - đã từng thấy kiểu hỏi nông không đưa mình đến đâu - thường bắt đầu hỏi "tại sao" một cách chủ động, vì họ biết nó đưa mình đến chỗ có giá trị hơn.

Bạn cũng có thể tạo ra sự chuyển dịch này có chủ đích:

  1. Trước khi hỏi fix, viết ra phỏng đoán của mình. Dù sai hoàn toàn cũng không sao - "mình nghĩ cái này xảy ra vì X" là cách luyện thói quen đặt giả thuyết trước khi tìm đáp án.
  2. Sau khi nhận được câu trả lời, hỏi thêm một câu: "Tại sao cách đó lại hoạt động?" Thói quen đơn giản này biến mỗi giải pháp thành một bài học có thể dùng lại.
  3. Khi code chạy đúng theo cách bất ngờ, hãy tò mò. "Nó hoạt động nhưng mình không hiểu tại sao" là dấu hiệu đáng để dừng lại - không phải điểm kết thúc. Ghi lại trong nhật ký code của bạn buộc bạn phải diễn đạt sự hiểu biết, và những lỗ hổng trong sự diễn đạt đó thường tự lộ ra trước buổi học tiếp theo.

Codepet tiếp cận vấn đề này như thế nào

Một trong những điều chúng tôi suy nghĩ kỹ khi xây dựng Codepet là làm sao hướng người học đến câu hỏi "tại sao" mà không trở nên thuyết giáo. Không ai muốn nghe "bạn cần hỏi câu hỏi tốt hơn" - câu đó không hữu ích và thường khiến người ta tắt tư duy thay vì mở ra.

Điều hiệu quả là thiết kế tương tác sao cho câu hỏi "tại sao" xuất hiện một cách tự nhiên trong luồng hội thoại. Khi các companion của Codepet nhận được câu hỏi kiểu "làm thế nào", họ trả lời đúng câu hỏi đó - nhưng không dừng lại ở đó. Họ nêu ra nguyên lý đằng sau fix, chỉ ra nơi nó xuất hiện lại trong các bối cảnh khác, đôi khi đặt tên thẳng cho khái niệm mà người học sẽ cần giữ lại. Không phải "đây là fix" - mà là "đây là fix, và đây là thứ thật sự đang diễn ra bên dưới."

Điều bạn có thể bắt đầu ngay hôm nay

Nếu bạn đang học code với AI, hãy thử chú ý đến kiểu câu hỏi mình đặt ra trong buổi học tiếp theo. Không phải để phán xét bản thân - mà để nhận ra kiểu mẫu đang hình thành mà có thể bạn chưa nhận thấy.

Nếu phần lớn câu hỏi của bạn bắt đầu bằng "làm thế nào để...", bạn không làm gì sai. Nhưng bạn đang để lại rất nhiều thứ trên bàn. Lần tới khi nhận được một câu trả lời có tác dụng, hãy dành một phút hỏi tại sao nó có tác dụng - với AI, hoặc với chính mình bằng cách viết ra. Một phút đó đáng giá hơn ba mươi phút code tiếp theo.

Cách nhanh nhất để giỏi hơn không phải là hỏi nhiều câu hỏi hơn - mà là hỏi câu hỏi khác đi.

#learning#ai#prompting#skill-building#coding

Xây sản phẩm của riêng bạn với Codepet

Codepet là ứng dụng macOS đồng hành cùng bạn từ dòng code đầu tiên đến sản phẩm hoàn chỉnh — với một đội AI lớn lên cùng bạn.

Tải Codepet