ฉันมีความสุขมากกว่าตอนเขียนโค้ดด้วยมือตัวเอง
(abhinavomprakash.com)- หลังจากใช้เครื่องมือสร้างโค้ดบนฐาน LLMซ้ำ ๆ ก็ได้ค้นพบอีกครั้งถึงภาวะจดจ่อและความสุขที่รู้สึกเมื่อเขียนโค้ดด้วยตัวเอง
- การเขียนโค้ดไม่ใช่แค่การผลิตงาน แต่คือกระบวนการทำความเข้าใจพื้นที่ของปัญหาและขัดเกลาความคิด ซึ่งการสร้างอัตโนมัติกลับรบกวนสิ่งนี้
- การตรวจสอบความถูกต้องของโค้ดที่ไม่ได้เขียนเองทำได้ยาก และมีเพียงตอนเขียนเองเท่านั้นที่เราจะซึมซับบริบทได้อย่างแท้จริง
- ใช้ LLM แบบจำกัดเพื่อป้อนบริบทด้วยตนเอง และใช้แค่แก้ไขโค้ดบางส่วนหรือสร้างเทสต์ ทำให้ยังคงรักษาการควบคุมกระบวนการคิดไว้ได้
- เน้นให้ความสำคัญกับความลึกของความคิดและความสุขมากกว่าผลิตภาพ และย้ำว่าหากเครื่องมือรบกวนการคิด ก็ควรระวังมัน
ประสบการณ์การใช้ตัวสร้างโค้ด LLM และความรู้สึกลังเลใจ
- เคยใช้ claude-code หลายครั้ง แต่ทุกครั้งกลับรู้สึกหดหู่และหมดแรง สุดท้ายก็ลบมันทิ้ง
- โค้ดที่สร้างอัตโนมัติดู “เหมือนจะใช้ได้” แต่ทำให้ตัวเองสูญเสียความหมายของสิ่งที่ต้องทำ
- ทุกครั้งที่หยุดใช้เครื่องมือ ก็ได้ความสนุกของการเขียนโค้ดกลับคืนมา
- การเขียนโค้ดไม่ใช่แค่การลงมือทำให้เสร็จ แต่เป็นกระบวนการสำรวจพื้นที่ปัญหาและเรียนรู้ผ่านความล้มเหลว
- หากอยากเข้าใจ API อย่างแท้จริง ก็ต้องลองใช้ด้วยตัวเอง การอ่านเอกสารอย่างเดียวไม่พอ
- การลงมือเขียนโค้ดนั้นเองคือวิธีทำให้ความคิดเป็นรูปธรรม
ความสัมพันธ์ระหว่างการคิดกับความถูกต้อง
> "ถ้าคุณไม่เขียน แต่แค่คิดอย่างเดียว คุณก็แค่หลงคิดไปเองว่ากำลังคิดอยู่" - Leslie Lamport
- การตรวจสอบความถูกต้องของโค้ดที่ไม่ได้เขียนเองนั้นยากกว่ามาก
- ในกระบวนการเขียนด้วยตัวเอง เราจะซึมซับบริบทของปัญหาเข้าไปภายใน ซึ่งเป็นสิ่งจำเป็นต่อการเข้าใจคุณภาพของโค้ด
- หากพึ่งพา LLM ก็จะข้ามกระบวนการนี้ไป ทำให้ความเข้าใจโดเมนของปัญหาอ่อนแอลง
ความเสพติดและผลข้างเคียงของ ‘Vibe coding’
- การสร้างโค้ดด้วย LLM มีลักษณะชวนเสพติดจากรางวัลโดพามีนแบบทันทีทันใด
- มันชวนให้เกิดภาพลวงว่า “ถ้าปรับพรอมป์ต์อีกนิดก็น่าจะถูกแล้ว”
- วิธีแบบนี้ทำให้เกิดความเฉื่อยทางความคิด ทำให้สมองกลายเป็นฝ่ายรับ และสุดท้ายแม้งานง่าย ๆ ก็ยังต้องพึ่ง LLM
- ตัวอย่างเช่น แม้แต่งาน find-and-replace ง่าย ๆ ก็ยังโยนให้ LLM ทำจนเสียเวลามากกว่าเดิม
- ต่อให้มีโค้ดที่ถูกสร้างออกมามากแค่ไหน สุดท้ายความรับผิดชอบในการทบทวนและทำความเข้าใจยังเป็นของมนุษย์ ซึ่งกลับกลายเป็นคอขวดแทน
วิธีที่เครื่องมือหล่อหลอมการคิด
- จากมุมมองที่ว่า “เครื่องมือไม่เป็นกลาง” เครื่องมือที่รบกวนการคิดก็คือเครื่องมือที่ไม่ดี
- ความสามารถหลักของคนทำงานความรู้คือความสามารถในการคิดอย่างลึกซึ้ง และเทคโนโลยีที่ขัดขวางสิ่งนี้ควรถูกใช้อย่างระมัดระวัง
- แน่นอนว่าไม่ได้ตัด LLM ออกไปทั้งหมด แต่เลือกใช้แบบตั้งใจและมีขอบเขตจำกัด
- คัดลอกเฉพาะไฟล์ที่จำเป็นเพื่อให้บริบท และใช้แค่แก้โค้ดบางส่วนหรือเขียนเทสต์
- วิธีนี้ทำให้ขอบเขตของการเปลี่ยนแปลงที่ถูกสร้างมีขนาดเล็ก และยังเข้าใจโครงสร้างทั้งระบบของโค้ดเบสได้ด้วยตัวเอง
- เปลี่ยนจากการสร้างแบบตั้งรับเป็น ‘การสร้างอย่างไตร่ตรอง’ ทำให้ยังคงการทำงานเชิงรุกของสมองและรักษาสภาวะ flow ไว้ได้
สมดุลระหว่างความสุขกับผลิตภาพ
- ชีวิตนั้นสั้น และควรให้ความสำคัญกับความสุขก่อน
- การสร้างฟีเจอร์ทั้งหมดแบบอัตโนมัติอาจเพิ่มผลิตภาพได้ แต่ถ้ามันก่อให้เกิดความกังวลเชิงอัตถิภาวะและความหดหู่ ก็ย่อมไม่ก่อให้เกิดผลิตภาพในระยะยาว
- ผู้เขียนยอมรับว่าคุณอาจเห็นด้วยกับความรู้สึกนี้หรือไม่ก็ได้ แต่
“อย่ากลัวที่จะเลือกในแบบที่ต่างออกไป”
14 ความคิดเห็น
ก็เหมือนกับที่แม้จะมีเครื่องคิดเลขอยู่แล้ว แต่ก็ยังมีคนที่ชอบคำนวณด้วยมือหรือคิดเลขในใจอยู่ดี
ผมมีความสุขมากกว่าเวลาที่เขียนโค้ดด้วยมือตัวเอง ผมคิดอย่างระมัดระวังว่า การได้ลองเขียนส่วนที่มีความซับซ้อนสูงและเป็นแกนหลักของบิสิเนสลอจิกด้วยมือตัวเอง ค่อย ๆ ขบคิดมัน แล้วถ่ายทอดสิ่งนั้นให้วิศวกร AI อาจช่วยเพิ่มประสิทธิภาพการทำงานได้เหมือนกัน นักคณิตศาสตร์เองก็ใช้เครื่องมืออย่างเครื่องคิดเลข แต่เวลาไตร่ตรองแนวคิดหลัก ๆ ก็ยังจดบันทึกกันเยอะใช่ไหมล่ะ
แม้จะเป็นโลกที่เราถ่ายภาพได้ด้วยการกดมือถือแค่ครั้งเดียว แต่ก็ยังเป็นโลกที่บางคนอาจใช้เวลาหลายชั่วโมงในการวาดรูปอยู่ดีนะครับ ดูเหมือนว่ามันเป็นเพียงเรื่องของกระบวนการและทิศทางที่ต่างกันเท่านั้น ไม่ใช่ปัญหาว่าอะไรถูกหรือผิด
ฟังดูเหมือนเป็นการบอกว่าจะเผชิญหน้าตรง ๆ กับทิศทางที่บริษัทต่าง ๆ กำลังมุ่งไปเสียมากกว่า..
ผมเคารพอุดมคติเรื่องความสุขและความพึงพอใจของแต่ละคนนะ แต่ถ้ามองในแง่ของอาชีพที่ต้องให้แรงงานและรับเงินตอบแทน มันดูเป็นกรอบความคิดที่ไม่ค่อยเหมาะสมครับ
ถ้าเห็นใครสักคนเมินเมตริกระยะยาวแล้วไล่ตามแต่เมตริกระยะสั้น ต่อให้เป็นคนที่ไม่เกี่ยวข้องกันเลยก็คงอดไม่ได้ที่จะเดินผ่านไปแล้วคิดในใจว่า “ไม่ได้ทำกันแบบนั้นนะ เฮ้อ” พร้อมอยากเข้าไปสอนอยู่บ้าง
แล้วถ้าเป็นโปรแกรมเมอร์ที่เชื่อว่าตัวเองร่วมทุกข์ร่วมสุขกับบริษัท สร้างผลงานใหญ่ และกำลังทำบทบาทสำคัญในบริษัทอยู่ด้วยแล้ว จะยิ่งรู้สึกแบบนั้นมากแค่ไหนกัน
แต่นักพัฒนาที่เก่งและมีฝีมือจริงๆ กลับสนุกกับการทำไวบ์โค้ดดิ้งกันนี่แหละ...
ไม่ได้หมายถึงผมหรอกนะ (อย่างเช่น Linus Torvalds หรือ Robert Martin)
ผมใช้มันแค่กับสคริปต์ Python เท่านั้น จะบอกว่าสนุกก็คงไม่ค่อยใช่นัก
ลองไปหาอ่านบทความเกี่ยวกับ Linus Torvalds แล้ว เหมือนว่าเขาใช้มันเป็นงานอดิเรก และยังไม่ได้ใช้กับการพัฒนา Linux ครับ
ความคิดเห็นจาก Hacker News
เปรียบการเขียนโค้ดกับงานไม้ แม้เครื่องจักรจะทำเฟอร์นิเจอร์ได้ แต่ก็ยังมีคนที่ทำด้วยมืออยู่ การเขียนโค้ดด้วยมือ ก็อาจยังทำเพื่อความสนุกได้ แต่ต่อไปในเชิงอาชีพคงยากขึ้น
ฉันเลือกวิธีที่ให้ผลลัพธ์เร็วและดีที่สุดในระยะยาว ตอนนี้ neovim และการเขียนโค้ดด้วยมือ ทำหน้าที่นั้น การพิมพ์เองพร้อมทำความเข้าใจโปรเจกต์อย่างลึกซึ้งช่วยให้ปล่อยฟีเจอร์ได้เร็วขึ้นในระยะยาว งานที่ไม่ช่วยให้เรียนรู้ก็ปล่อยให้ LLM ทำ แต่เพราะงานแบบนั้นมีเยอะ อัตราการใช้ LLM เลยสูง
ปัญหาของ vibecoding คือความรู้สึกว่า “มันดีจัง” อาจทำให้มองผลลัพธ์จริงผิดเพี้ยนไป
ตั้งคำถามเชิงประชดว่า “แค่มีความสุขแล้วปริมาณโค้ดจะเพิ่มขึ้น 200 เท่าหรือ?”
AI มีคุณค่าอย่างชัดเจน เช่น ตอนแปลง ตาราง DB ที่มี 300 คอลัมน์ เป็น Rust struct แค่ใช้พรอมต์ 15 คำก็สร้างโค้ด 900 บรรทัดได้ งานซ้ำๆ แบบนี้ AI เหมาะมาก แต่ก็ไม่ได้อยากโยนทุกอย่างให้มัน ทำแค่ในระดับการใช้งานที่ ยังทำให้มีความสุข
คำถามสำคัญคือ “ระหว่างที่ LLM เขียนโค้ดแทน ฉันทำอะไรอยู่?” เราไม่สามารถปล่อยให้ LLM ทำทั้งหมดได้ มันให้ความรู้สึกเหมือน ต้องคอยดูแลอยู่ข้างๆ นักพัฒนาจูเนียร์ยังเติบโตได้ แต่ LLM ไม่ได้เรียนรู้ ดังนั้นจึงรู้สึกว่า ความภูมิใจจากการเป็นเมนเทอร์หายไป
สงสัยว่าช่วงนี้ การจ้างนักพัฒนา เปลี่ยนไปอย่างไรบ้าง อนุญาตให้ใช้ LLM หรือยัง หรือยังคงให้เขียนโค้ดด้วยมือตามเดิม
ฉันพัฒนาด้วย model-driven development (MDD) มาตั้งแต่ก่อนมี LLM แล้ว และทำได้เร็วระดับ vibecoding โมเดลข้อมูลก็คือตัวแอปพลิเคชันเอง ส่วน LLM แค่ช่วยเขียนขั้นตอนต่างๆ ให้เร็วขึ้นอีกนิด ทิศทางของโมเดลข้อมูล ยังเป็นสิ่งที่ฉันตัดสินใจอยู่
AI coding แบ่งได้เป็น 3 แบบ
สังคมสมัยใหม่กำลังเปลี่ยนเป็น โครงสร้างที่ได้โดปามีนจากการกดปุ่ม เลยยิ่งทำให้รู้สึกว่าทุกอย่างกำลังเละเทะ
ช่วงนี้มีแต่โพสต์แนวปลอบใจตัวเองของนักพัฒนาที่กำลังตกยุคโผล่ขึ้นมาบ่อย ๆ ยังไงก็หยุดกระแสของยุคสมัยไม่ได้อยู่ดี
นี่มันเกินเส้นไปมากแล้ว
ผมก็เห็นด้วยกับความเห็นนี้ แต่ถึงแม้ว่าตัวเองจะยืนกรานเขียนโค้ดด้วยมือต่อไป หากไม่ได้ทำธุรกิจคนเดียว
ก็หลีกเลี่ยงการถูกแทนที่ไม่ได้อยู่ดี ซึ่งเหมือนเขาจะไม่รู้เรื่องนี้
โห พูดแรงไปนะ T_T