22 คะแนน โดย xguru 2025-03-14 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • กำลังรู้สึกถึงความเปลี่ยนแปลงในยุคใหม่ของการพัฒนาซอฟต์แวร์: มีส่วนร่วมกับงานที่ทำอยู่น้อยลง
  • เมื่อมอบหมายงานเขียนฟังก์ชันและแก้ข้อผิดพลาดผ่าน LLM ก็ทำให้ ความรู้สึกจดจ่อดื่มด่ำลดลง
  • เปลี่ยนจากการลงมือทำเองไปสู่สถานะ auto-pilot และ วนซ้ำกับกระบวนการตรวจทานและยอมรับงานของ LLM
  • เมื่อใครสักคนทุ่มเทอย่างลึกซึ้งกับทักษะของตน ก็จะเข้าสู่ สภาวะลื่นไหล (Flow) ซึ่งเปรียบได้กับการ เป็นช่างฝีมือ
    • หมายถึง ภาวะที่เส้นแบ่งระหว่างผู้กระทำกับสิ่งที่กระทำเลือนหายไป และจมลึกกับการแก้ปัญหาที่ซับซ้อน
  • หลายคนโต้แย้งว่าการใช้ LLM ใน workflow การเขียนโปรแกรมที่เพิ่มขึ้นในช่วงหลัง เป็นเพียงการ นำงานเชิงนามธรรมในระดับที่สูงขึ้นเข้ามา
    • เส้นทางวิวัฒนาการจาก Binary → Assembly → C → ภาษาระดับสูง มอบอำนาจให้มากขึ้นเรื่อย ๆ
    • แต่การนำ LLM มาใช้นั้นไม่ใช่แค่การเปลี่ยนระดับ abstraction อีกขั้นหนึ่งเท่านั้น
    • การเปลี่ยนจากไบนารีไปเป็นแอสเซมบลี และจากแอสเซมบลีไปเป็น C ในข้างต้นนั้น ช่วยลดภาระทางความคิดและทำให้โฟกัสกับตรรกะได้
    • LLM ทำให้เราโฟกัสที่โครงสร้างโดยรวมมากกว่าตรรกะของโปรแกรม → จึงต่างจากการเปลี่ยนแปลงก่อนหน้า
  • โปรแกรมถูกสร้างขึ้นจากชิ้นส่วนต่าง ๆ ที่ประกอบกัน
    • เราเข้าใจโปรแกรมของเราได้ด้วยการเข้าใจทุกชิ้นส่วนที่ใช้ประกอบมันขึ้นมา
    • แต่ตอนนี้เรา มอบหมายการสร้างชิ้นส่วน เท่ากับ มอบหมายงานแบบช่างฝีมือ และ หันไปจัดการการสร้างแทน
    • เรามีส่วนร่วมกับการสร้างน้อยลง และความเป็นเจ้าของต่อโค้ดที่ LLM สร้างให้เราก็ลดลง
  • กล่าวคือ เราได้ เปลี่ยนงานเชิงช่างฝีมือ (craftsmanship) ให้กลายเป็นงานบริหารจัดการ (management)
    • เราเริ่มสนใจผลลัพธ์ของงานมากกว่าชิ้นส่วนที่เราสร้างอย่างแม่นยำ
    • การเขียนโปรแกรมกลายเป็นเครื่องมือ ไม่ใช่เป้าหมายอีกต่อไป
  • โชคดีหรือโชคร้ายก็ตาม ปัญหายังคงเกิดขึ้นในโค้ด และเรายังต้องเข้าใจบริบทของโค้ดแล้วลงมือแก้ไข
    • นั่นหมายความว่าในกระบวนการเขียนโปรแกรมยังคงต้องมีการแทรกแซงจากมนุษย์
  • เราสามารถใช้ LLM agent เพื่อดื่มด่ำกับการเขียนโปรแกรมได้มากขึ้น
    • เราโฟกัสกับ abstraction ระดับสูง ส่วน LLM agent ก็ลงมือปรับเปลี่ยนอย่างขยันขันแข็ง
    • แต่ตอนนี้ยังไม่มีเครื่องมือที่เหมาะสม
    • ภาระทางความคิดจากการเปลี่ยนแปลงต่อเนื่องจำนวนมากนั้นสูงมาก และจำเป็นต้องมีวิธีรับมือกับมัน
  • เนื่องจากความทรงจำของมนุษย์มีขีดจำกัด (สำหรับความจำระยะสั้น จำได้เพียง 7±2 รายการ) จึง จำเป็นต้องมีเครื่องมือที่ออกแบบมาอย่างดีเพื่อแสดงข้อมูลในหลายระดับของ abstraction
    • เพื่อให้เราทั้งมองเห็นรายละเอียดและซูมออกไปเห็นภาพรวมที่ใหญ่ขึ้นได้

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

 
superego 2025-03-17

เราจำเป็นต้องยึดถือ craftsmanship แค่ในโค้ดเท่านั้นหรือ? เราจะมี craftsmanship กับซอฟต์แวร์และตัวผลิตภัณฑ์เองไม่ได้หรือ?

 
kandk 2025-03-14

เดิมทีการเขียนโปรแกรมก็ไม่ใช่เป้าหมาย แต่เป็นเพียงวิธีการ
ความก้าวหน้าของเครื่องมือเหล่านี้พัฒนามาเพื่อให้มนุษย์สามารถทุ่มเวลาไปกับความคิดและการออกแบบที่ยิ่งใหญ่กว่า แทนที่จะเสียเวลาไปกับเรื่องที่ไม่จำเป็น
คอมไพเลอร์, ระบบปฏิบัติการ, ภาษา scripting ฯลฯ..