เปลี่ยน AI ให้เป็นครูสอนเขียนโปรแกรม แทนที่จะเป็นแค่คนทำให้
มือใหม่หลายคนมักใช้ Claude Code หรือเครื่องมืออย่าง Codex (โมเดลปัญญาประดิษฐ์ที่ช่วยเขียนโค้ด) เหมือนเป็นคนรับจ้างทำโปรเจกต์ คุณอาจสั่งให้มันเขียนโค้ดทั้งหมดแล้วก๊อปปี้ไปวางตรงๆ ซึ่งนั่นเป็นวิธีที่ทำให้คุณ หยุดเรียนรู้ ทันที
ถ้าเปรียบเทียบกับการเรียนเลข การให้ AI เขียนให้เหมือนกับการลอกคำตอบท้ายเล่มโดยไม่เข้าใจวิธีทำ คุณจะทำโจทย์ข้อเดิมได้ แต่จะแก้โจทย์ที่ยากขึ้นไม่ได้เลย เพราะคุณขาดทักษะพื้นฐานในการคิดแก้ปัญหา
การใช้ AI ที่ถูกต้องคือการมองมันเป็น Thought Partner (คู่หูที่ช่วยกระตุ้นความคิด) เพื่อช่วยลับสมองและหาช่องโหว่ในความเข้าใจของคุณเอง แทนที่จะให้มันเป็น Autopilot (ระบบขับเคลื่อนอัตโนมัติ) ที่ทำแทนคุณทุกอย่าง
1. ฝึกให้ AI ตั้งคำถามกับคุณ
แทนที่จะบอกให้ AI เขียนโค้ดให้ทันที ให้ลองเปลี่ยนมาเป็นคนคุมเกมด้วยการสั่งให้มันถามคุณก่อน วิธีนี้จะช่วยเช็กว่าคุณเข้าใจสิ่งที่กำลังทำอยู่จริงๆ หรือไม่ก่อนจะเริ่มพิมพ์โค้ดบรรทัดแรก
สมมติว่าคุณกำลังทำระบบดึงข้อมูลจาก API (ช่องทางเชื่อมต่อระหว่างโปรแกรม) ให้ลองสั่งว่า "ฉันกำลังจะทำระบบดึงข้อมูลผู้ใช้ ช่วยถามคำถามฉันทีละข้อเพื่อให้มั่นใจว่าฉันออกแบบได้ถูกต้อง" การทำแบบนี้จะทำให้คุณต้องอธิบายเหตุผลของตัวเองออกมา
ถ้าคุณตอบคำถามไม่ได้ นั่นคือสัญญาณเตือนว่าคุณต้องกลับไปอ่านพื้นฐานเพิ่ม การบังคับให้ตัวเองพูดหรือพิมพ์อธิบายออกมาจะช่วยให้ความจำแม่นยำขึ้น และทำให้คุณเห็นช่องโหว่ของตัวเองได้ชัดเจนมาก่อนที่จะหลงทางในโค้ดที่ซับซ้อน
// สมมติคุณกำลังจะเขียนฟังก์ชันดึงข้อมูลผู้ใช้
// ลองถาม AI ว่า: "ฉันต้องรู้อะไรบ้างก่อนจะเขียนฟังก์ชันดึงข้อมูลจาก API นี้?"
// AI อาจจะถามกลับมาว่า:
// 1. คุณจะจัดการอย่างไรหากอินเทอร์เน็ตหลุด?
// 2. ข้อมูลที่ได้มาจะเก็บไว้ที่ไหนในหน้าจอ?
// 3. ถ้าข้อมูลเป็นค่าว่าง คุณจะแสดงผลอย่างไร?
คำอธิบาย: โค้ดนี้คือตัวอย่างชุดคำถามที่ AI ควรจะย้อนกลับมาถามคุณ เพื่อให้คุณเตรียมตัวก่อนเขียนฟังก์ชันจริง
ผลลัพธ์: คุณจะเห็นรายการสิ่งที่คุณต้องทำ (To-do list) ที่ชัดเจน แทนที่จะเริ่มเขียนแบบเดาสุ่ม
2. ขอคำใบ้แทนคำตอบสำเร็จรูป
เวลาเจอบั๊ก (ข้อผิดพลาดในโค้ด) มือใหม่มักรีบก๊อปปี้ Error ไปแปะให้ AI แก้ให้ทันที ซึ่งเป็นนิสัยที่น่ากลัวมาก เพราะคุณจะไม่ได้เรียนรู้วิธีการไล่โค้ดเพื่อหาต้นตอของปัญหาเลย
ให้ลองใช้ระบบ "การใบ้แบบค่อยเป็นค่อยไป" เริ่มจากขอให้ AI บอกแค่แนวคิดก่อนว่าปัญหาเกิดจากอะไร ถ้ายังไม่เข้าใจค่อยขอให้บอกจุดที่ผิด และสุดท้ายค่อยดูตัวอย่างโค้ดที่ถูกต้องเป็นทางเลือกสุดท้าย
การฝึกแบบนี้จะสร้างกล้ามเนื้อในการแก้ปัญหาให้คุณ คุณจะเริ่มคุ้นเคยกับรูปแบบของข้อผิดพลาดที่พบบ่อย และในอนาคตคุณจะแก้ปัญหาเหล่านั้นได้เองโดยไม่ต้องพึ่งพา AI ตลอดเวลา
// แทนที่จะบอก AI ว่า "แก้โค้ดนี้ให้หน่อย"
// ให้บอกว่า: "โค้ดนี้รันแล้วพัง ช่วยใบ้หน่อยว่าทำไมตัวแปรนี้ถึงเป็น undefined?"
// AI จะบอกว่า: "เช็กดูว่าคุณได้ประกาศค่าเริ่มต้นให้ตัวแปรนี้แล้วหรือยัง"
// คุณจะกลับไปดูโค้ดและพบว่าลืมใส่ค่าเริ่มต้นเอง
คำอธิบาย: บรรทัดแรกคือการเปลี่ยนคำสั่งจาก "สั่งให้แก้" เป็น "สั่งให้ชี้แนะ" ส่วนบรรทัดต่อมาคือการวิเคราะห์ที่ทำให้คุณฉุกคิดได้เอง
ผลลัพธ์: คุณจะเรียนรู้วิธีการแก้ปัญหา (Debugging) อย่างเป็นขั้นตอน มากกว่าการแค่ก๊อปปี้โค้ดแก้ไปวันๆ
3. เปลี่ยนความผิดพลาดให้เป็นบทเรียน
ถ้าคุณเขียนโค้ดแล้วมันพัง อย่าเพิ่งลบทิ้ง ให้ส่งโค้ดที่ "พัง" นั้นให้ AI ดู แล้วขอให้มันช่วยอธิบายว่าทำไมมันถึงทำงานไม่ได้ วิธีนี้จะเปลี่ยนความผิดพลาดให้กลายเป็นสื่อการสอนชั้นดี
ลองถาม AI ว่า "จุดไหนในโค้ดนี้ที่เสี่ยงที่สุด" หรือ "ถ้าฉันเขียนแบบนี้จะมีปัญหาอะไรตามมา" คุณจะพบว่าโค้ดที่ดูเหมือนจะทำงานได้ อาจมีช่องโหว่เรื่องความปลอดภัย หรือการจัดการข้อมูลที่ไม่รัดกุม
การวิเคราะห์โค้ดตัวเองที่พังไปแล้ว จะทำให้คุณจำบทเรียนได้แม่นกว่าการอ่านตำราเป็นเล่มๆ เพราะคุณได้สัมผัสกับปัญหาจริงและเห็นวิธีแก้ไขที่ถูกต้องด้วยตาตัวเอง
// ลองส่งโค้ดที่ผิดไปให้ AI แล้วถามว่า:
// "โค้ดนี้ทำงานได้ไม่ครบ ช่วยบอกหน่อยว่ามีจุดไหนที่เสี่ยงต่อการพัง?"
// AI จะตอบ: "คุณลืมตรวจสอบว่าข้อมูลที่ส่งมาจาก API เป็นค่าว่างหรือไม่"
คำอธิบาย: การถามหาจุดเสี่ยงทำให้คุณเห็นภาพกว้างของโปรแกรม ไม่ใช่แค่โฟกัสว่าทำไมมันถึงรันไม่ได้เพียงอย่างเดียว
ผลลัพธ์: คุณจะเข้าใจถึงความสำคัญของการเขียนโค้ดให้ครอบคลุมทุกกรณี (Edge cases) ซึ่งเป็นทักษะที่โปรแกรมเมอร์มืออาชีพต้องมี
4. เปรียบเทียบข้อดีข้อเสียก่อนเลือกใช้
AI มักจะเสนอวิธีแก้ปัญหาแบบเดียวมาให้คุณเสมอ แต่งานเขียนโปรแกรมจริงๆ มักมีหลายวิธีให้เลือก และไม่มีวิธีไหนที่ดีที่สุดในทุกสถานการณ์ คุณต้องหัดตั้งคำถามเรื่อง Trade-offs (การแลกเปลี่ยนข้อดีข้อเสีย)
ลองสั่งให้ AI เสนอมา 2 วิธีในการแก้ปัญหาเดียวกัน เช่น การดึงข้อมูลแบบเก็บไว้ในเครื่อง (Caching) เทียบกับการดึงข้อมูลใหม่ทุกครั้งที่กดเข้าหน้าเว็บ แล้วถามว่าวิธีไหนเหมาะกับงานของคุณมากกว่ากัน
เป้าหมายไม่ใช่การเลือกวิธีที่ซับซ้อนที่สุด แต่เป็นการเลือกวิธีที่เหมาะสมกับความเข้าใจและโปรเจกต์ของคุณที่สุด การเปรียบเทียบแบบนี้จะช่วยฝึกทักษะการตัดสินใจ (Judgment) ซึ่งเป็นสิ่งที่แยกโปรแกรมเมอร์เก่งๆ ออกจากคนที่เขียนตามสั่ง
// สั่ง AI ว่า: "ช่วยเขียนโค้ด 2 วิธีในการเก็บข้อมูลผู้ใช้
// วิธีที่ 1: ใช้ LocalStorage (ที่เก็บข้อมูลในเบราว์เซอร์)
// วิธีที่ 2: ใช้ตัวแปรในหน่วยความจำชั่วคราว
// แล้วบอกข้อดีข้อเสียของแต่ละวิธีหน่อย"
คำอธิบาย: การสั่งให้เปรียบเทียบทำให้คุณเห็นว่าเครื่องมือแต่ละอย่างมีจุดเด่นต่างกันอย่างไร และเหมาะกับสถานการณ์ไหน
ผลลัพธ์: คุณจะไม่ได้แค่โค้ดมาใช้งาน แต่ได้ความรู้เรื่องการเลือกเครื่องมือที่เหมาะสมกับงานจริง
สรุป: ใช้ AI อย่างฉลาดเพื่อก้าวไปข้างหน้า
การฝึกเป็นโปรแกรมเมอร์ในยุคที่มี AI ไม่ใช่การแข่งกับ AI ว่าใครเขียนโค้ดเร็วกว่ากัน แต่คือการใช้ AI เป็น Mentorship (ระบบพี่เลี้ยง) ที่คอยชี้แนะให้คุณเติบโตได้เร็วกว่าการเรียนรู้ด้วยตัวเองเพียงลำพัง
จำไว้ว่าเป้าหมายของคุณคือความเข้าใจ ไม่ใช่แค่ผลลัพธ์ที่รันได้ ถ้าคุณใช้ AI เพื่อช่วยให้ตัวเองคิดเป็น คุณจะเก่งขึ้นเรื่อยๆ จนวันหนึ่งคุณจะสามารถวิเคราะห์ได้เองว่าตอนไหนที่ AI ช่วยคุณได้ และตอนไหนที่มันกำลังพาคุณหลงทาง
ตัวอย่างการนำไปใช้จริง: ในโปรเจกต์ถัดไปที่คุณทำ ให้ลองตั้งกฎกับตัวเองว่า "ฉันจะไม่กดรับโค้ดจาก AI จนกว่าจะอธิบายได้ว่ามันทำงานอย่างไร" หากทำได้ครบทุกข้อ คุณจะพบว่าตัวเองมีความมั่นใจมากขึ้นในการรับงานที่ยากขึ้น และพร้อมเข้าสู่สายอาชีพนี้อย่างมืออาชีพ
ที่มา: Using Claude Code or Codex as a Teacher, Not an Autopilot — DEV Community