สัปดาห์ที่แล้วผมได้ไปบรรยายพิเศษที่ LINE Plus ในหัวข้อ "วิธีใช้ AI สำหรับนักพัฒนาที่อยากพัฒนาตัวเองให้ดีขึ้นทุกวัน"
ตั้งใจว่าจะนำไปลงบน YouTube ในภายหลังด้วย จึงพยายามใส่สิ่งที่ครุ่นคิดมาตลอดหลายเดือน (หรือหลายปี) ให้ได้มากที่สุด จนออกมาเป็นสไลด์ราว 230 หน้า แต่ในงานจริงนำเสนอได้ประมาณ 2/3 ของทั้งหมด
หลังจากนั้นก็ปรับแก้อย่างจริงจังมากขึ้น และทำเวอร์ชัน 2 ฉบับสมบูรณ์เสร็จที่ 290 หน้า
ด้านล่างนี้คือเนื้อหาสรุปโดย Gemini
เกริ่นนำ
- ช่องว่างด้าน AI literacy: ความสามารถในการใช้ AI ของผู้คนแตกต่างกันมาก และเพียงแค่รับรู้ว่า AI รุ่นใหม่ทำอะไรได้บ้างและได้ไกลแค่ไหน ก็ช่วยลดช่องว่างนี้ได้มากแล้ว
- ความสำคัญของการเรียนรู้อย่างต่อเนื่อง: หากไม่คอยใช้และเรียนรู้เครื่องมือ AI ที่หลากหลายอย่างสม่ำเสมอ พร้อมทั้งรู้จักเรียนและลืม (learn & unlearn) ช่องว่างนั้นก็จะกลับมากว้างขึ้นอีก
- การขยายขอบเขตของการพัฒนา: ในอดีตนักพัฒนามักโฟกัสที่ขั้นตอน 'การลงมือทำ' เป็นหลัก แต่ตอนนี้สามารถใช้ AI เข้าไปมีส่วนร่วมกับกระบวนการพัฒนาผลิตภัณฑ์ได้ทั้งสาย ตั้งแต่ไอเดีย การตลาด ไปจนถึงการดำเนินงาน
ตอนที่ 1: วิธีใช้ AI ให้ฉลาดขึ้นในฐานะผู้ช่วยเขียนโค้ด
- วิวัฒนาการของผู้ช่วยเขียนโค้ด: เริ่มจากระบบเติมโค้ดอัตโนมัติแบบง่าย (VSCode IntelliSense) ไปสู่การสร้าง code snippet ด้วย AI (TabNine, GitHub Copilot) และตอนนี้พัฒนามาถึงยุคของ 'vibe coding' และ 'coding agent' ที่สื่อสารกันด้วยภาษาธรรมชาติและสร้างสิ่งใหม่จาก 0 ไปเป็น 1 ได้
- การเปลี่ยนแปลงของประสิทธิภาพและต้นทุน AI: ประสิทธิภาพของ LLM พัฒนาอย่างรวดเร็ว ขณะที่ต้นทุนลดลงอย่างต่อเนื่อง และความยาวกับความซับซ้อนของงานที่ AI สามารถทำได้เองจนจบก็เพิ่มขึ้นอย่างรวดเร็วเช่นกัน
- แก่นแท้ของการพัฒนา: แม้เครื่องมือของ 'การเขียนโค้ด' จะเปลี่ยนจากบัตรเจาะรูมาเป็นภาษาธรรมชาติ แต่แก่นของนักพัฒนาในฐานะ 'คนที่แก้ปัญหาด้วยการเขียนโค้ด' ยังไม่เปลี่ยน
- การมอบหมายงานให้ AI และการกำกับดูแล: การทำงานร่วมกับ AI คล้ายกับการมอบหมายงานให้คน เราต้องปรับระดับการมอบหมายตามความสามารถของ AI (แจ้งให้ทราบ, โน้มน้าว, ปรึกษาหารือ, ตกลงร่วมกัน, ขอคำแนะนำ, ตั้งคำถาม, มอบหมาย) และต้องคอยสังเกตกับมอนิเตอร์การทำงานของ LLM ที่เป็น black box อยู่เสมอ
- Context engineering: สิ่งสำคัญคือการบอก AI ให้ชัดเจนว่า 'อะไร(What)' และ 'ทำไม(Why)' มากกว่า 'ทำอย่างไร(How)' โดยมี STICC framework ซึ่งประกอบด้วย Situation, Task, Intention, Concern, Calibration เป็นกรอบที่มีประโยชน์
- การใช้เครื่องมือ (MCP): เพื่อดึงความสามารถของ coding agent ออกมาให้สูงสุด สามารถใช้เซิร์ฟเวอร์ MCP (Model Context Protocol) ได้ แต่ถ้าเชื่อมต่อเครื่องมือมากเกินไป ประสิทธิภาพอาจลดลง จึงควรเลือกใช้เฉพาะความสามารถหลักอย่างการควบคุมเบราว์เซอร์ (Playwright) หรือการเพิ่มความเข้าใจโค้ด (Serena) อย่างคัดสรร
- การขยายขอบเขตของการจัดการเวอร์ชัน: ไม่ใช่แค่ตัวโค้ดเท่านั้น แต่ควรทดลองนำ prompt และ context (เช่น เอกสารแผนงาน) ที่ส่งให้ AI เพื่อสร้างโค้ด เข้ามาอยู่ในขอบเขตของ version control ด้วย
ตอนที่ 2: วิธีใช้ AI ให้ฉลาดขึ้นตลอดทั้งกระบวนการพัฒนาผลิตภัณฑ์
- Framework การแก้ปัญหา: การพัฒนาผลิตภัณฑ์มองได้ว่าเป็นกระบวนการ 3 ขั้น คือ 'นิยามปัญหา → ลงมือสร้างวิธีแก้ → ทำให้เกิดการเปลี่ยนแปลง'
- ความสำคัญของ 'ทำไว้ใช้เอง': แนวทาง 'ฉันสร้างสิ่งที่ฉันจะใช้เอง' เป็นกลยุทธ์ที่ยอดเยี่ยม โดยเฉพาะสำหรับผู้เริ่มต้นเขียนโค้ดด้วย AI เพราะทำได้ง่าย พัฒนาฝีมือได้เร็ว และต่อยอดได้ง่าย
- แนวทางที่ยึดผู้ใช้เป็นศูนย์กลาง: ต้องนิยามให้ชัดว่า 'จะแก้ปัญหาอะไร (เป้าหมาย) ของใคร (ผู้ใช้) และอย่างไร (ความซับซ้อน)' และสิ่งสำคัญที่สุดคือเริ่มจากการแก้ปัญหาของ 'ตัวเอง' ก่อน (dogfooding)
- การตรวจสอบความถูกต้องของผลิตภัณฑ์: ควรพัฒนาผลิตภัณฑ์ผ่านการตรวจสอบความใช้ได้ของไอเดีย (MVP), ความเป็นตลาด (MMP), และความภักดีของลูกค้า (MLP) ในช่วงแรกแม้จะยังสเกลไม่ได้ การลงพื้นที่และแก้ปัญหาให้ลูกค้าด้วยตัวเองก็ยังเป็นกระบวนการที่สำคัญ
- Build in Public: กลยุทธ์การสร้างแฟนด้วยการเปิดเผยกระบวนการสร้างผลิตภัณฑ์อย่างโปร่งใส เหมาะกับผู้ประกอบการรายเล็ก และหัวใจสำคัญคือการเล่าเรื่องโดยยึด 'ทำไม' และ 'อย่างไร' เป็นแกน
ตอนที่ 3: กลยุทธ์ที่ช่วยให้จูเนียร์/ซีเนียร์เรียนรู้และเติบโตได้อย่างมีประสิทธิภาพในยุค AI ตลอดทุกกระบวนการเหล่านี้
- สิ่งที่สำคัญน้อยลงและสิ่งที่สำคัญมากขึ้น: ความรู้บางอย่าง เช่น ไวยากรณ์ของภาษาเฉพาะ มีความสำคัญลดลง แต่ความสามารถในการวางวิสัยทัศน์ใหญ่ จัดการความซับซ้อน รับรู้และปรับแก้ความผิดพลาดของ AI ความเข้าใจโดเมนเชิงลึก การออกแบบ และความสามารถในการเรียนรู้ กลับยิ่งสำคัญมากขึ้น
- กรอบความคิด (เอาชนะ FOMO): ไม่จำเป็นต้องตามทุกเครื่องมือใหม่เสมอไป สิ่งสำคัญคือเลือกหมวดที่ตัวเองสนใจ เปิดช่องให้ข้อมูลไหลเข้ามาเองผ่าน SNS หรือ newsletter และรักษาความอยากรู้อยากเห็นแบบที่สมดุลไว้
- กลยุทธ์การเรียนรู้:
- ใช้แหล่งข้อมูลที่เชื่อถือได้: ควรเรียนรู้อย่างลึกซึ้งจากเอกสารทางการ การพูดคุยกับผู้เชี่ยวชาญ และบทความที่มีมุมมองลึกซึ้ง
- มุ่งหาความรู้เชิงกำเนิด: ให้โฟกัสที่ 'กระบวนการ (ความรู้เชิงกำเนิด)' ซึ่งเป็นสิ่งที่ทำให้เกิดผลลัพธ์ มากกว่าตัว 'ผลลัพธ์ (ความรู้สำเร็จรูป)' และควรมีท่าทีที่พร้อมเรียนรู้วิธีใช้เครื่องมือจากตัวเครื่องมือนั้นเอง
- เรียนรู้จากคนเก่ง: เวลาถามผู้เชี่ยวชาญ อย่าถามแค่คำตอบ แต่ให้ถามว่า "เขาใช้สัญญาณอะไรในการมองเห็นแพตเทิร์น" หรือ "ทำไมถึงตัดสินใจแบบนั้น" เพื่อเรียนรู้กระบวนการคิด
- บทบาทของซีเนียร์: ควรเปลี่ยนความรู้โดยนัยของตนให้เป็นความรู้ชัดแจ้ง (เช่น guide, example code, กฎสำหรับ AI) แล้วแชร์ให้กับองค์กร พร้อมทั้งผสานประสบการณ์จากหลายโดเมนเพื่อสร้างไอเดียแบบเกิดใหม่
- การสร้างนิสัย: แทนที่จะพยายามสร้างนิสัยดีหลายอย่างในครั้งเดียว ควรค่อย ๆ เปลี่ยนตัวเองผ่าน 'นิสัยของการสร้างนิสัย' (เช่น retrospective ระดับจุลภาค)
- Implementation intention: แทนที่จะตั้งใจลอย ๆ ว่า 'พรุ่งนี้ค่อยทำ ~' หากวางแผนให้ชัดว่า 'เมื่อไร ที่ไหน อย่างไร' โอกาสที่จะลงมือทำจริงจะเพิ่มขึ้นอย่างมาก
สรุปส่งท้าย
- คุณสมบัติสำคัญที่สุด: คุณสมบัติที่สำคัญที่สุดในยุค AI คือ 'ความสงสัยอย่างมีสุขภาวะ' และ 'ความอยากรู้อยากเห็น'
- การตระหนักถึงข้อจำกัดของ AI: ต้องรับรู้ว่า AI ยังมีข้อจำกัดที่ชัดเจนอยู่ เช่น การขาด context, อาการหลอนข้อมูล, ความปลอดภัย และต้นทุน
- เครื่องมือที่ดีที่สุด: เครื่องมือที่เหนือกว่า AI ใด ๆ ที่มีอยู่ในปัจจุบัน ในท้ายที่สุดก็คือ 'สมอง' ของมนุษย์ และเราควรใช้มันอย่างเต็มที่
6 ความคิดเห็น
อัปขึ้น YouTube ด้วย! https://www.youtube.com/watch?v=CAgn60EWDmw
รอติดตามใน YouTube ด้วยนะครับ 555
การทำ Context Engineering - ออกคำสั่งอย่างชาญฉลาดด้วย What+Why!
แถมยังอธิบายหลายประเด็นที่ปกติสงสัยกันได้อย่างกระจ่างมากด้วย :)
ทั้งรู้สึกเกรงใจและขอบคุณมากที่ได้อ่านข้อมูลคุณภาพดีแบบนี้ฟรี ๆ!!!!
ไม่ถึงกับต้องขอโทษเลยครับ... 555 ขอบคุณสำหรับคำชมที่เกินไปมากครับ
ในเวอร์ชันแรก ผมได้เรียนรู้มากมายเกี่ยวกับวิธีสั่งงาน agent
ขอบคุณครับ