22 คะแนน โดย GN⁺ 2025-04-23 | 3 ความคิดเห็น | แชร์ทาง WhatsApp
  • เครื่องมือ LLM ไม่ได้มีไว้เพื่อมาแทนที่โปรแกรมเมอร์ แต่ทำหน้าที่ ขยายความสามารถของนักพัฒนา
  • จากประสบการณ์ใช้งาน Claude Code พบว่า ความเร็วในการเขียนโค้ดเพิ่มขึ้นอย่างมาก แต่ยังคงต้องอาศัย การตัดสินใจเชิงสถาปัตยกรรมและการกำกับดูแลอย่างต่อเนื่อง จากมนุษย์
  • การนำ LLM มาใช้ทำให้ การนิยามปัญหาและการออกแบบกลายเป็นงานที่สำคัญกว่าการลงมือเขียนโค้ดจริง
  • เนื่องจาก AI ขยายผลของความผิดพลาดด้วย นักพัฒนาที่ขาดประสบการณ์จึงเสี่ยงที่จะมองไม่เห็นข้อผิดพลาดของ AI
  • การเขียนโปรแกรมในอนาคตจะมี ความสามารถในการทำงานร่วมกับ AI วิจารณญาณ และความกล้าที่จะลบสิ่งที่ไม่จำเป็น เป็นทักษะหลัก

การเขียนโปรแกรมด้วย LLM ไม่ใช่การแทนที่มนุษย์ แต่เป็นเครื่องมือเสริมพลัง

  • เครื่องมือเขียนโปรแกรมที่ขับเคลื่อนด้วย LLM เปรียบเสมือน mech suit ที่ช่วยขยายความสามารถของนักพัฒนา
  • ผู้เขียนเพิ่งใช้ Claude Code พัฒนา แพลตฟอร์มเอเจนต์ฝั่งแบ็กเอนด์และแอป SaaS ฝั่งฟรอนต์เอนด์
  • ได้เขียนโค้ดรวมมากกว่า 30,000 บรรทัด พร้อมสัมผัสผลกระทบของ LLM ในทางปฏิบัติ
  • Claude Code ไม่ได้มาแทนที่ผู้ใช้ แต่เป็น เครื่องมือที่ช่วยขยายความสามารถของนักพัฒนาเหมือน power loader ของ Ripley
  • การตัดสินใจด้านสถาปัตยกรรม การควบคุมคุณภาพ และการกำหนดทิศทาง ยังคงเป็นสิ่งที่มนุษย์ต้องนำ
  • AI เด่นในเรื่องความเร็วและงานซ้ำ ๆ แต่หากกำหนดทิศทางผิด ก็อาจนำไปสู่ ผลลัพธ์ที่ร้ายแรง

Vigilance: การเขียนโค้ดด้วย AI ต้องอาศัยความระมัดระวังอย่างต่อเนื่อง

  • Claude Code บางครั้งก็ตัดสินใจได้ แปลกประหลาด โดยอาจมองข้ามปัญหาที่ต้นตอหรือ hardcode เพื่อให้เทสต์ผ่าน
  • บางครั้งยังเกิดการ เปลี่ยน framework แบบฝืน ๆ หรือเพิ่ม dependency ที่ไม่จำเป็น
  • เหมือนนักบิน ในช่วงเวลาสำคัญ มนุษย์จำเป็นต้องเข้ามาแทรกแซงเสมอ
  • เพียงเผลอไม่ทันดู AI ก็อาจหลุดไปผิดทิศ จนต้อง เขียนโค้ดแบ็กเอนด์ใหม่ทั้งหมดถึงสามครั้ง
  • แม้ LLM จะลดภาระในการเขียนโค้ด แต่ ภาระด้านการกำกับดูแลและการรักษาสถาปัตยกรรมกลับเพิ่มขึ้น

ความเปลี่ยนแปลงของเศรษฐศาสตร์ด้านเวลาในการเขียนโค้ด

  • โดยดั้งเดิม เวลาที่ใช้ในการเขียนโปรแกรมมักแบ่งเป็นสามส่วนคือ ทำไม (เป้าหมาย), อะไร (การออกแบบ), อย่างไร (การเขียนโค้ด)
  • หลังนำ Claude Code มาใช้ เวลาที่ใช้กับ "อย่างไร" แทบจะใกล้ศูนย์
  • แต่การคิดเรื่อง "ทำไม" และ "อะไร" กลับยิ่งสำคัญกว่าเดิม
  • เมื่อสร้างโค้ดได้ง่ายขึ้น ตอนนี้จึงต้องมี ความกล้าที่จะทิ้งโค้ดเดิมอย่างเด็ดขาดและเลือกแนวทางที่ดีกว่า
  • การตัดสินใจเช่นนี้ยังไม่ใช่สิ่งที่นักพัฒนาหลายคนคุ้นเคย และทำให้เราเข้าสู่ยุคที่ วิจารณญาณด้านการออกแบบสำคัญกว่าระยะเวลาในการลงมือทำ

ประสบการณ์คือสิ่งที่สร้างความแตกต่าง

  • หากต้องการใช้ AI ได้อย่างมีประสิทธิภาพ จำเป็นต้องมี วิสัยทัศน์และวิจารณญาณจากประสบการณ์ 30 ปี
  • แม้โค้ดจะทำงานได้ แต่ความสามารถในการ มองเห็น anti-pattern ที่ไม่เหมาะกับการสเกลหรือการบำรุงรักษา ก็สำคัญมาก
  • นักพัฒนาที่ขาดประสบการณ์ มักพลาดปัญหาในโค้ดที่ AI สร้างขึ้นได้ง่าย และเสี่ยงที่จะพอใจกับผลลัพธ์เฉพาะหน้าเท่านั้น
  • สิ่งที่ AI ขยายผลไม่ใช่แค่ความสามารถ แต่รวมถึง ความผิดพลาดด้วย ดังนั้นหากขาดวิจารณญาณ ความเสี่ยงก็จะยิ่งสูงขึ้น

Centaur effect: ความร่วมมือระหว่างมนุษย์กับ AI

  • เช่นเดียวกับ Centaur chess ที่มีที่มาจากวงการหมากรุก การผสาน AI กับมนุษย์ให้ผลลัพธ์ดีกว่าใช้ AI เพียงลำพัง
  • การทำงานร่วมกับ Claude Code ก็เช่นกัน โดย มนุษย์ให้ทิศทางเชิงกลยุทธ์ ส่วน AI จัดการงานเชิงยุทธวิธี
  • วิธี เขียนสเปกตามลำดับความคิด แล้วค่อยขัดเกลาร่วมกับ Claude ให้ผลดีที่สุด
  • เพราะ Claude ไม่สามารถตัดสินใจให้เหมาะกับบริบทได้ จึงยังต้องอาศัยการเฝ้าดูและการตัดสินใจจากมนุษย์เสมอ

การหาสมดุล: ปรับจูนระหว่างการมอบหมายกับการควบคุม

  • หากปล่อย AI ไว้ตามลำพัง ก็มักเกิดความพยายามแก้ปัญหาแบบซับซ้อนเกินจำเป็นอยู่บ่อยครั้ง
  • ตัวอย่างเช่น การเขียนโค้ดซ้ำซ้อน หรือการเลือกเทคโนโลยีผิดพลาด ซึ่งเป็นความผิดพลาดของ AI ที่ก่อปัญหาจริง
  • แม้แต่ฝั่งฟรอนต์เอนด์ ก็ยังต้อง คอยชี้นำให้แก้ implementation ที่เพี้ยนของ JavaScript ไปในแนวทางของ Elixir หรือ LiveView ซ้ำแล้วซ้ำเล่า
  • งานที่เรียบง่ายและทำซ้ำได้ควรมอบหมาย ส่วนจุดที่ต้องใช้การตัดสินใจซับซ้อนควร เข้าไปแทรกแซงด้วยตนเอง เพื่อสร้างจังหวะการทำงานร่วมกันที่เหมาะสม
  • แม้ AI จะทำให้พัฒนาได้รวดเร็ว แต่ หากไม่มีมนุษย์เข้ามาเกี่ยวข้อง ก็คงไม่สามารถทำงานได้อย่างถูกต้อง

อนาคตคือการเสริมศักยภาพ

  • LLM อาจไม่ได้แทนที่โปรแกรมเมอร์ทั้งหมด แต่ เปลี่ยนวิธีทำงานและทักษะที่จำเป็นไปอย่างมาก
  • การคิดเชิงโครงสร้าง การมองเห็นแพตเทิร์น และวิจารณญาณทางเทคนิค จะสำคัญกว่าความสามารถในการเขียนโค้ดแบบพื้นฐาน
  • ความสามารถในการทำงานร่วมกับ AI เองก็กำลังก้าวขึ้นมาเป็น ทักษะทางเทคนิคแบบใหม่
  • นักพัฒนาที่จะประสบความสำเร็จในอนาคตจะไม่ใช่คนที่กลัว AI แต่เป็น คนที่เข้าใจทั้งข้อจำกัดและความเป็นไปได้ของมัน และใช้งานมันได้อย่างเหมาะสม
  • AI ไม่ได้เป็นสิ่งที่พยายามกำจัดมนุษย์ แต่เป็น เครื่องมือที่ขยายความเป็นไปได้ของมนุษย์

3 ความคิดเห็น

 
bus710 2025-04-23

ผมก็ไม่ใช่อามุโร่ แล้วก็ไม่ได้รับการจัดสรรกันดั้มมาด้วยเหมือนกันนี่ครับ....?

 
jsh5782 2025-04-23

แค่ประสิทธิภาพของโมบิลสูทที่ต่างกัน ไม่ได้เป็นความแตกต่างด้านกำลังรบอย่างชี้ขาดหรอกนะ..

 
GN⁺ 2025-04-23
ความคิดเห็นจาก Hacker News

สิ่งที่สำคัญกว่าการเขียนโค้ดคือการเข้าใจปัญหาและการออกแบบ

  • โดยทั่วไปแล้วการเขียนโปรแกรมแบ่งเวลาออกได้เป็นสามส่วน
    • ทำไมต้องทำงานนี้? คือการทำความเข้าใจปัญหาทางธุรกิจและคุณค่า
    • ต้องทำอะไร? คือการออกแบบโซลูชันในเชิงแนวคิด
    • จะทำอย่างไร? คือการลงมือเขียนโค้ดจริง
  • ขั้นตอนสุดท้ายในอดีตเคยใช้เวลามาก แต่ตอนนี้แทบไม่ต้องใช้เวลาแล้วเพราะ Claude
    • หากยังใช้เวลากับขั้นตอนสุดท้ายมาก อาจหมายความว่าสองขั้นตอนแรกผิดพลาด หรือยังไม่คุ้นเคยกับเครื่องมือ
    • การแก้ไขโค้ดด้วยมือมีความยุ่งยาก แต่ในหลายภาษาได้ถูกทำให้เป็นอัตโนมัติผ่าน IDE และ indexer
    • ในโปรเจกต์การเขียนโปรแกรม มักใช้เวลากับการทำความเข้าใจปัญหามากกว่า
  • กล่าวคือ ใช้เวลากับ การเข้าใจปัญหาและการออกแบบ มากกว่า
    • การเขียนโค้ดเป็น ขั้นตอนที่ง่ายที่สุด
    • ถ้าใช้เวลานาน อาจเป็นเพราะ ยังไม่ชำนาญเครื่องมือ หรือ การออกแบบไม่เพียงพอ
  • การออกแบบโครงสร้างข้อมูล คือหัวใจสำคัญ
    • ถ้าโครงสร้างวางมาดีแล้ว การเขียนโค้ดก็เป็นเพียงการลงมือทำให้เสร็จ
    • ในส่วนนี้ มนุษย์ยังทำได้ดีกว่า LLM

ข้อจำกัดและจุดที่ต้องระวังของ LLM

  • LLM มักจะ ตัดสินใจผิดพลาด
    • ตัวอย่าง: เพิ่ม dependency ที่ไม่จำเป็น, สร้างโค้ดที่เปราะบาง
    • มนุษย์จำเป็นต้อง ตรวจทานและแก้ไข เสมอ
  • ไม่สามารถรับรู้ ปัญหาด้านความปลอดภัย ได้ด้วยตัวเอง
    • ตัวอย่าง: injection, การตั้งค่าสิทธิ์ที่ผิดพลาด
  • ประสิทธิภาพลดลงเมื่ออยู่ใน codebase ขนาดใหญ่
    • ข้อจำกัดของ context window ทำให้ ไม่สามารถเข้าใจโครงสร้างทั้งหมดได้

การเพิ่มผลิตภาพที่ LLM มอบให้

  • มีประสิทธิภาพมากกับ งานซ้ำๆ และงานง่ายๆ
    • ช่วย ประหยัดเวลา ในงานอย่าง boilerplate และ test code
  • การนำไปใช้ใน ขั้นตอนการวางแผน มีประสิทธิภาพมากกว่า
    • มีประโยชน์สำหรับการร่าง system design และการแยกย่อยฟีเจอร์
  • ยอดเยี่ยมสำหรับ การเรียนรู้ภาษา หรือเฟรมเวิร์กที่ไม่คุ้นเคย
    • ทำให้ เข้าใจภาพรวมพื้นฐานได้เร็วกว่า เอกสารแบบเดิม

ความสำคัญของประสบการณ์และวิจารณญาณทางเทคนิค

  • หากจะใช้ LLM ให้ดี ประสบการณ์ยิ่งสำคัญกว่าเดิม
    • ต้องมีความสามารถในการ ประเมินปัญหาอย่างเป็นโครงสร้าง และ คัดกรอง
  • ต่อให้ LLM สร้างโค้ดได้ การ ตรวจสอบและ refactor ก็ยังเป็นหน้าที่ของมนุษย์
    • สิ่งที่ "ใช้งานได้" กับสิ่งที่ "ถูกต้อง" นั้นไม่เหมือนกัน

LLM ไม่ได้มาแทนนักพัฒนา แต่เป็นเครื่องมือช่วย

  • LLM ใกล้เคียงกับบทบาทของ นักพัฒนาระดับจูเนียร์
    • หากไม่มี การชี้ทิศทางที่ชัดเจน ก็อาจให้ผลลัพธ์ที่หลงทาง
  • การผสานมนุษย์ + LLM เหนือกว่า LLM ที่ทำงานลำพัง
    • มนุษย์วางกลยุทธ์, AI ทำงานที่ซ้ำๆ

วิธีใช้งาน LLM ส่งผลให้ผลลัพธ์แตกต่างกัน

  • ถ้า พึ่งแต่การสร้างโค้ดอัตโนมัติ อย่างเดียว อาจยิ่งทำให้ช้าลง
    • โดยเฉพาะในภาษาที่คุ้นเคย มนุษย์มักเร็วกว่า
  • อินเทอร์เฟซแบบ autocomplete (เช่น Copilot) เป็นธรรมชาติที่สุด
    • รับความช่วยเหลือได้ง่ายโดยไม่ทำให้ flow สะดุด

การเปลี่ยนแปลงของงานและความกังวลจาก LLM

  • บทบาทหลักของนักพัฒนากำลังขยับจาก การเขียนโค้ด ไปสู่ การออกแบบและการตรวจทาน
  • หากพึ่งพา LLM อย่างเดียว อาจ สูญเสียโอกาสในการเรียนรู้และเติบโต
    • เสี่ยงที่จะไม่สามารถสะสม พื้นฐานเชิงเทคนิคที่ลึกพอ และกลายเป็นผู้ใช้แบบรับอย่างเดียว

อนาคตของ LLM และผลกระทบทางสังคม

  • ในสภาพแวดล้อมที่ ทุกคนใช้ AI ได้ ความแตกต่างจะเกิดจากมนุษย์
    • วิจารณญาณ และ ทักษะการสื่อสาร จะเป็นตัวตัดสินความสามารถในการแข่งขัน
  • LLM คือ "เครื่องมือแบบเดียวกับรถยนต์"
    • ทรงพลัง แต่ ยิ่งพึ่งพามากขึ้น และเมื่อเกิดปัญหาจะรับมือได้ยาก