Logo Zephyrnet

Hãy tự suy nghĩ nếu bạn muốn AI dạy bạn cách viết mã

Ngày:

Đặc tính Học cách lập trình giờ đây có lẽ dễ dàng hơn bao giờ hết với AI, mặc dù các công cụ gợi ý hoặc tạo mã nguồn cho bạn phải được sử dụng một cách khôn ngoan. 

Lập trình đòi hỏi sự kiên nhẫn và bền bỉ, đặc biệt là khi bắt đầu quá trình học tập khi không có gì có ý nghĩa nhiều. Các quy tắc viết mã có vẻ khó hiểu. Có tất cả các loại dấu câu và ký hiệu phải được sử dụng cẩn thận. Thiếu dấu hai chấm hoặc dấu phẩy hoặc làm lộn xộn phần thụt lề có thể dẫn đến sai sót, tùy thuộc vào ngôn ngữ được sử dụng. Theo thời gian, nếu thực hành đủ, nó sẽ hoạt động đúng chỗ.

Giống như hầu hết những người mới bắt đầu học cách viết mã trực tuyến, tôi bắt đầu bằng cách xem hướng dẫn và giải quyết vấn đề trong các bài tập lập trình. Khi tôi gặp khó khăn trong một vấn đề, tôi rất muốn chuyển sang ChatGPT, điều này sẽ dễ dàng giúp tôi tìm ra giải pháp phù hợp. Những loại trợ lý này rất giỏi trong việc tạo mã đơn giản và một số trong số chúng thậm chí có thể cung cấp cho bạn câu trả lời hoàn chỉnh giống như bạn đang mô tả.

Tôi nhận ra điều này khi vật lộn với việc triển khai một chức năng cụ thể và đã tắt tính năng tự động hoàn thành của GitHub Copilot trong Visual Studio Code để ngăn bản thân gian lận.

Đừng chỉ sao chép và dán

David Malan, giáo sư khoa học máy tính tại Đại học Harvard giảng dạy CS50, một khóa học khoa học máy tính cơ bản phổ biến (có thể học miễn phí Trực tuyến), đồng ý rằng đôi khi AI có thể hơi quá hữu ích. 

Để ngăn cản học sinh sử dụng các công cụ như ChatGPT của OpenAI hoặc Bard của Google để hoàn thành bài tập của mình, các giáo viên đã đưa ra cho họ một giải pháp thay thế: một con vịt cao su ảo. Vịt CS50 là một bot trò chuyện mã hóa được cung cấp bởi GPT-4 nhưng có sẵn các rào chắn để ngăn học sinh gian lận.

Gỡ lỗi vịt cao su, như bạn có thể biết, là một điều trong phát triển phần mềm: nếu bạn gặp khó khăn với một số mã, việc nói về vấn đề với một số đồ chơi hoặc đồ vật vô tri khác có thể giúp bạn tự mình tìm ra giải pháp. Nó khá hiệu quả.

Malan cho biết, trình gỡ lỗi vịt CS50 là một sự tôn kính đối với điều đó: bot vốn được coi là thân thiện và hỗ trợ, nó chỉ trả lời các truy vấn liên quan đến khóa học và không cung cấp câu trả lời cho các vấn đề về bài tập về nhà. Đăng ký

“Chính sách của chúng tôi khi bắt đầu khóa học là sinh viên không được sử dụng phần mềm của bên thứ ba như ChatGPT và Copilot; họ chỉ đơn giản là có xu hướng quá hữu ích, quá sẵn lòng cung cấp cho học sinh những giải pháp ngay lập tức hơn là hướng dẫn họ giải quyết chúng, như một giáo viên giỏi có thể làm. Nhưng sinh viên được phép và khuyến khích sử dụng phần mềm dựa trên AI của CS50, phần mềm này đã có sẵn các rào cản sư phạm đó,” ông nói.

Vịt CS50 đã được giới thiệu vào năm ngoái và phản hồi hầu hết là tích cực. Có gia sư ảo đồng nghĩa với việc học sinh có thể yêu cầu trợ giúp bất cứ lúc nào họ muốn. Nhưng giống như tất cả các mô hình AI, nó có thể mắc lỗi và không phải lúc nào cũng chính xác. Các thử nghiệm ban đầu cho thấy nó có thể trả lời chính xác khoảng 88% câu hỏi liên quan đến chương trình giảng dạy. 

Bot mã hóa cũng hữu ích cho người hướng dẫn; nó giúp họ có nhiều thời gian hơn để giúp đỡ học sinh trong các lĩnh vực khác ngoài bài tập về nhà. Trong một bài nghiên cứu [PDF] phân tích tác động của trình gỡ lỗi vịt, các giáo viên tại Harvard cho biết thử nghiệm của họ xây dựng một trợ lý mã hóa AI ảo đã được đền đáp. Họ tin rằng “AI [có thể] thúc đẩy việc học tập của học sinh chứ không chỉ làm gián đoạn nó” và đang tìm cách áp dụng công nghệ này vào các môn học khác.

Tiết kiệm thời gian với việc tìm kiếm ít hơn trên Google

Dù sao đi nữa, nền tảng học vấn của tôi là về vật lý và báo chí khoa học chứ không phải khoa học máy tính. Tôi bắt đầu học cách viết mã ngay trước khi thế hệ bot trò chuyện mới nhất ra đời. Trước đây, giống như nhiều người, tôi cố gắng hiểu các khái niệm phần mềm hoặc sửa lỗi bằng cách đọc các bài đăng trên blog hoặc tìm kiếm ví dụ về mã tương tự trên các trang web như Stack Overflow. AI cho phép tôi rút ngắn quá trình này.

Thay vì sàng lọc nhiều thông tin để tìm giải pháp phù hợp nhất với vấn đề của mình, giờ đây tôi có thể chuyển sang mô hình ngôn ngữ lớn để được trợ giúp trực tiếp. Tôi đang học để có thể hiểu rõ hơn về những công nghệ mà người khác đang sử dụng; những trợ lý kỹ thuật số này giúp tôi tăng tốc nhanh hơn so với việc nghiền ngẫm nhiều bài viết về các lát cắt so với mảng hoặc xem qua các dự án phần mềm của người khác.

Tuy nhiên, mã viết bằng máy không phải lúc nào cũng hữu ích và có thể giảm chất lượng của một cơ sở mã. Nếu tôi sao chép và dán kết quả đầu ra của trợ lý AI vào nguồn của mình, nó thường gây ra các lỗi mới vì nó không phù hợp với phần còn lại của chương trình của tôi. Việc cố gắng sửa những lỗi này có thể khó khăn, đặc biệt nếu bạn không hiểu điều gì đã được tạo ra. Là người mới sử dụng, không phải lúc nào cũng rõ liệu lỗi là do mã sai hay do nó được sử dụng sai ngữ cảnh.

“Tôi nghĩ nếu ai đó muốn học cách viết mã [bằng cách sử dụng các công cụ AI hiện tại], họ nên tiếp cận nó với hai mục tiêu: Dành thời gian học cách viết mã đủ để biết công cụ này đang tạo ra cái gì. [Và] đảm nhận vai trò 'người đánh giá mã' và nghiên cứu cách xác định cũng như cải thiện mã xấu,” Zed Shaw, một nhà phát triển phần mềm và là tác giả của cuốn sách Học Python theo cách khó, kể lại Đăng ký

Các lập trình viên có thể phát hiện ra lỗi trong mã do máy tạo ra và không nên hoàn toàn tin tưởng vào các bot. Chắc chắn họ nên chú ý đến mã có bản quyền rõ ràng lọt vào đầu ra của mô hình.

Charles cho biết: “Thực tế là ChatGPT đưa ra các giải pháp nhanh hơn bằng những cụm từ trấn an như 'Tôi nghĩ điều này sẽ giải quyết được vấn đề của bạn…” khiến chúng tôi tắt đi tư duy phê phán và không đặt câu hỏi về các giải pháp của nó một cách cẩn thận như chúng tôi nên làm”. Severance, giáo sư khoa học máy tính tại Trường Thông tin của Đại học Michigan, người đã phát hành các khóa học mã hóa miễn phí trực tuyến.

“Hãy luôn cho rằng ChatGPT là một lập trình viên có tay nghề thấp hơn bạn. Cách an toàn duy nhất để sử dụng các công cụ AI là khi bạn tin tưởng rằng giải pháp mà nó tạo ra là chính xác,” ông nói thêm. 

Bạn cần biết bạn đang làm gì

Để sử dụng những công cụ này một cách hiệu quả, bạn phải hiểu vấn đề của mình và giải thích rõ ràng trong lời nhắc. Inbal Shani, giám đốc sản phẩm tại GitHub, cho biết chất lượng của mã được trả về ở đầu ra phụ thuộc vào cách bạn đặt câu hỏi trong đầu vào. Đăng ký.

Người dùng nên tương tác với Trợ lý GitHub như thể họ đang nói chuyện với một đồng nghiệp, cô gợi ý. “Bạn càng cung cấp nhiều chi tiết cho trợ lý ngồi cạnh bạn về ý định của bạn, nơi bạn sẽ giải quyết vấn đề mà bạn đang cố gắng giải quyết, thì bạn sẽ nhận được phản hồi tốt hơn vì AI có được nhiều bối cảnh hơn. Nó biết cách thực hiện tìm kiếm chi tiết hơn để tìm ra đoạn mã phù hợp hoặc đề xuất cơ sở hạ tầng thử nghiệm phù hợp cho bạn,” cô nói. 

Ngôn ngữ lập trình mà chúng tôi sử dụng đã trở nên phù hợp hơn với ngôn ngữ của con người; công cụ trò chuyện chỉ là bước tiếp theo trong quá trình phát triển này

Phillip Compeau, trợ lý giáo sư giảng dạy tại Đại học Carnegie Mellon, người đã tạo ra Rosalind nền tảng và Lập trình cho người yêu hướng dẫn dành cho những người quan tâm đến sinh học tính toán, đã đồng ý.

Khi dạy những học sinh mới bắt đầu viết mã, anh ấy khuyến khích họ tránh xa AI. Nhưng đối với những sinh viên trình độ cao hơn, biết những điều cơ bản, anh dạy họ cách sử dụng công nghệ để làm việc năng suất và hiệu quả hơn.

“Một trong những điều tôi chỉ cho học sinh rằng cách tốt nhất để có được câu trả lời chính xác, rõ ràng từ mã tạo công cụ AI là bạn có thể chỉ định rõ ràng và chính xác những gì máy tính cần làm. Đó chính là định nghĩa về lập trình máy tính và theo thời gian, ngôn ngữ lập trình mà chúng ta sử dụng ngày càng phù hợp hơn với ngôn ngữ của con người; công cụ trò chuyện chỉ là bước tiếp theo trong quá trình phát triển này,” ông nói Đăng ký

Việc tìm ra những gì bạn muốn chương trình của mình làm, nó sẽ hoạt động như thế nào và nó sai ở đâu là điều rất quan trọng trong việc viết mã. Người học chỉ có thể xây dựng những kỹ năng cốt lõi này theo thời gian bằng cách thực hành nhất quán. Bạn không thể bỏ qua quá trình này bằng cách dựa vào AI nếu muốn trở thành nhà phát triển phần mềm có năng lực. Nhưng nếu bạn sử dụng nó một cách khôn ngoan, bạn có thể tiến bộ nhanh chóng và trở thành một lập trình viên giỏi – và thậm chí có thể nó sẽ rất thú vị. ®

tại chỗ_img

Tin tức mới nhất

tại chỗ_img