- ตอนที่เริ่มใช้เครื่องมือเขียนโค้ดด้วย AI ครั้งแรก ฉันทึ่งกับทั้งความน่าประหลาดใจและประสิทธิภาพของมัน
- โดยเฉพาะการช่วยวิเคราะห์ข้อผิดพลาดการคอมไพล์ของ C++ ที่ให้ความรู้สึกเหมือนเวทมนตร์
- เมื่อใช้ GitHub Copilot และเครื่องมือผสานรวม editor ที่อิง LLM หลากหลายตัว มันก็กลายเป็นส่วนหนึ่งของเวิร์กโฟลว์การพัฒนา
- แต่พอถึงช่วงปลายปี 2024 ฉันได้ลบฟีเจอร์ผสานรวม LLM ทั้งหมดออกจาก code editor
- ทุกวันนี้ยังใช้ AI เป็นครั้งคราวอยู่ แต่ไม่ได้นำมาไว้ในเวิร์กโฟลว์หลักอีกแล้ว
ประสบการณ์ที่คล้ายกับ Tesla FSD
- ระหว่างปี 2019~2021 ฉันขับรถ Tesla และใช้ FSD อยู่บ่อยครั้ง
- เมื่อใช้ FSD บนทางหลวง ระดับสมาธิในการขับรถของฉันก็ค่อย ๆ ลดลง
- การพึ่งพา FSD ทำให้ความสามารถในการขับรถด้วยตัวเองอ่อนลง
- เมื่อต้องกลับไปขับรถธรรมดาอีกครั้ง ก็ใช้เวลาพักหนึ่งกว่าจะเรียกสมาธิกลับมาได้
ประสบการณ์การใช้ AI code editor
- ยิ่งใช้เครื่องมือ AI มากขึ้น ความเร็วในการทำงานก็เพิ่มขึ้น แต่ทักษะพื้นฐานกลับอ่อนลง
- เวลาทำ side project ที่ใช้เครื่องมือ AI ไม่ได้ ฉันรู้สึกไม่สะดวกและความมั่นใจก็ลดลง
- ฉันเริ่มรู้สึกลำบากกับงานพื้นฐานอย่างการเขียนนิยามฟังก์ชันหรือโค้ดทดสอบ
- เมื่อพึ่งพา AI ฉันก็เริ่มไม่มั่นใจในการตัดสินใจด้าน implementation ด้วยตัวเอง
- สุดท้ายจึงตระหนักได้ว่าความสามารถของตัวเองในงานที่ซับซ้อนลดลงจริง
การสูญเสียสัญชาตญาณเชิงช่าง
- คำภาษาเยอรมันว่า ‘Fingerspitzengefühl’ หมายถึงวิจารณญาณเชิงสัญชาตญาณที่ผู้เชี่ยวชาญมี
- สำหรับการเขียนโค้ดก็เป็นความรู้สึกที่ค่อย ๆ เกิดขึ้นเมื่อคุ้นเคยกับภาษาและเฟรมเวิร์กมากขึ้น
- ความรู้สึกนี้สำคัญมากในการเลือกเทคนิคย่อย ๆ เช่น การใช้ pointer, การเลือก standard library, การใช้ assert
- เครื่องมือ AI ทำให้ความรู้สึกนี้อ่อนแอลง
- เมื่อคำนึงถึงคุณภาพของโค้ดและการบำรุงรักษา สัญชาตญาณของมนุษย์มีความสำคัญอย่างยิ่ง
การพัฒนาได้แม้ไม่มีเครื่องมือ AI
- ความกลัวว่าหากไม่มีเครื่องมือ AI แล้วจะทำงานไม่ได้ เป็นเรื่องที่ถูกพูดเกินจริง
- ในความเป็นจริง AI ไม่ได้มีประโยชน์มากนักกับโปรเจกต์ขนาดใหญ่หรือระบบ legacy
- ในโปรเจกต์ที่ใช้เครื่องมือภายในองค์กร เฟรมเวิร์ก หรือ internal DSL นั้น LLM แทบไม่ช่วยอะไร
- โค้ดด้านความปลอดภัย เช่น JWT, RBAC เป็นต้น ไม่ควรยกให้ AI จัดการ
- ความปลอดภัยเป็นขอบเขตที่เราต้องเข้าใจและรับผิดชอบด้วยตัวเอง
- หากให้ AI รับผิดชอบตั้งแต่การเขียนโค้ดไปจนถึง PR review และ deployment ปัญหาด้านความปลอดภัยจะพุ่งสูงขึ้น
การตั้งหลักเกณฑ์ในการใช้ AI
- AI มีประโยชน์ แต่ฉันหลีกเลี่ยงวิธีใช้งานแบบผสานรวมเข้าไปใน editor
- ฉันจะป้อน context เอง แล้วรับเฉพาะโค้ดที่ต้องการมาเพื่อนำไปปรับใช้ด้วยมือ
- ตัวอย่างเช่น การแปลงชุดทดสอบ, การแปลงการคำนวณ SIMD, การถอดรหัสข้อมูลที่ถูกบีบอัด
- วิธีนี้ทำให้รู้สึกถึงความรับผิดชอบต่อโค้ดมากขึ้น และยังช่วยลดค่าใช้จ่ายได้ด้วย
- การใช้ AI เพื่อการเรียนรู้นั้นมีประโยชน์ เช่น ขอให้อธิบาย assembly code, shader, network code เป็นต้น
- ในบล็อกส่วนตัว ฉันไม่ใช้เนื้อหาที่สร้างโดย AI และยังคงชอบผลงานที่มนุษย์สร้างมากกว่า
ทำสิ่งที่ชอบต่อไป
- นอกจากประสิทธิภาพและผลิตภาพแล้ว การทำสิ่งที่เราชอบต่อไปก็สำคัญเช่นกัน
- เหมือนกับหมากรุกที่แม้ AI จะชนะได้ แต่ผู้คนก็ยังสนุกกับมันต่อไป การเขียนโปรแกรมก็สามารถดำเนินต่อไปได้ในฐานะความสุขอย่างหนึ่ง
- สิ่งสำคัญคือการเขียนโปรแกรมต่อไปไม่ใช่เพียงเพราะต้องทำให้เก่งขึ้น แต่เพราะเราสนุกกับมัน
คำแนะนำถึงนักพัฒนามือใหม่
- อย่ากลายเป็น ‘จูเนียร์ตลอดกาล’ ที่ต้องพึ่งพา AI
- จงพัฒนาความสามารถในการเขียนโค้ดด้วยตัวเอง และทำความเข้าใจหลักการทำงานของระบบอย่างลึกซึ้ง
- การศึกษาว่าอะไรทำงานอยู่ under the hood และฝึกฝนทักษะไปพร้อมกันเป็นเรื่องสำคัญ
- AI เป็นเพียงเครื่องมือ ไม่ใช่คำตอบที่สมบูรณ์ในตัวเอง
- บางครั้งก็ควรฝึกทำงานโดยไม่มี AI ด้วย
- การทำแค่ ‘vibe coding’ จะไม่ทำให้กลายเป็นนักพัฒนาที่มีฝีมือ
- ถ้าคุณเขียนโค้ดโดยไม่มี AI ไม่ได้ นั่นก็ไม่ใช่การเขียนโค้ดอย่างแท้จริง
บทสรุป
- AI คือการแลกความรู้กับความเร็ว
- บางครั้ง trade-off นี้ก็คุ้มค่า แต่การฝึกทักษะพื้นฐานยังเป็นสิ่งจำเป็น
- นักพัฒนาที่มีฝีมือจะฝึกพื้นฐานซ้ำ ๆ อยู่เสมอ
- AI ยังอีกไกลกว่าจะมาแทนที่อาชีพนี้ได้ และบริษัทต่าง ๆ ก็มีเป้าหมายใหญ่ในการกระตุ้น FOMO เพื่อดึงดูดการลงทุน
- AI เป็นเพียงเครื่องมือ ไม่ใช่สิ่งที่จะมาแทนการคิด
- การรักษาความอยากรู้อยากเห็นและเรียนรู้อย่างต่อเนื่องเป็นเรื่องสำคัญ
16 ความคิดเห็น
พื้นฐานที่เรียกกันว่าเป็นทักษะหลักของนักพัฒนาที่มีฝีมือ ไม่ได้คงเดิมมาตั้งแต่มีการประดิษฐ์คอมพิวเตอร์แล้วหรือ?
ตอนที่ผมเตรียมตัวทำโค้ดเทสต์ ก็เผลอเปิด Cursor แบบติดเป็นนิสัย จนกด Tab มากกว่าพิมพ์เองอีก... ฮ่าๆ สุดท้ายเลยกลับไปใช้ VS Code ด้วยความรู้สึกดีๆ เหมือนเดิมครับ
คนที่ทำเครื่องมือ AI เองก็น่าจะรู้ปัญหานี้กันหมดแล้ว แค่เงียบ ๆ กันไว้เท่านั้น
ถ้าพึ่งพา AI แบบไม่ลืมหูลืมตามากเกินไป สุดท้ายเราอาจกลายเป็นผู้จัดการที่ไร้ความสามารถซึ่งไม่เข้าใจสถาปัตยกรรม เขียนโค้ดเองสักบรรทัดก็ไม่ได้ เอาแต่สั่งงานลูกน้อง จนไม่รู้ด้วยซ้ำว่าความเสี่ยงที่แฝงอยู่ในโค้ดคืออะไร และเมื่อเกิดปัญหาก็หาวิธีแก้ไม่ได้ ในเชิงแนวคิดมันแทบไม่ต่างกันเลย แค่เปลี่ยนเครื่องมือที่ใช้จากสติปัญญามนุษย์เป็นปัญญาประดิษฐ์เท่านั้นเอง
สำหรับงานเขียนโค้ดใช้แรงล้วน ๆ แบบสกปรก ๆ นี่ไม่มีอะไรเหมาะไปกว่านี้แล้ว...
ฉันเห็นด้วยโดยรวม ฉันคิดว่าตอนนี้ยังมีขอบเขตที่ต้องอาศัยสัญชาตญาณแบบนั้นอยู่ และคิดว่าความแตกต่างระหว่างการตระหนักรู้กับไม่ตระหนักรู้นั้นค่อนข้างใหญ่ ควรใช้มันเป็นเครื่องมือได้ แต่ก็ควรตระหนักรู้อย่างเพียงพอด้วย
ประสบการณ์การใช้งาน AI code editor, การสูญเสียสัญชาตญาณเชิง直感, และคำแนะนำที่อยากฝากถึงนักพัฒนามือใหม่ ทั้ง 3 ประเด็นนี้ชวนให้รู้สึกร่วมอย่างมากครับ
งั้นก็เลิกใช้คอมพิวเตอร์ไปเลยสิ จะใช้ไปทำไม..
ฮ่าๆ เห็นด้วยเลย
ฮ่าๆๆๆๆๆๆๆๆๆ
ฟังก์ชันปี 2025 ฉบับผู้ช่วยคิม อย่าใช้มันเลยสิ.. .หรือว่าจะใช่กันนะ 555
ดูจากบทความแล้ว เหมือนจะไม่ได้หมายความว่าไม่ให้ใช้กับงานรูทีน แต่ดูเหมือนจะสื่อว่าอย่าฝากการคิดไว้กับ AI
555 +1 ครับ
ดูเหมือนว่า... กำลังมีสถานการณ์ที่ต้องอาศัยการฝึกฝนอย่างตั้งใจมากขึ้นเรื่อย ๆ... :)
???: "ใช้ putty กับ vi ต่อไปเถอะ"
ความเห็นจาก Hacker News
เชื่อว่ามีทักษะอยู่ 2 ประเภท: ทักษะแบบเฉพาะทาง และทักษะพื้นฐาน
ตอนนี้เลิกใช้เครื่องมือ AI ระดับเอดิเตอร์อย่าง Cursor แล้ว และแก้ปัญหาด้วยการเติมข้อความในบรรทัดและแชตแทน
ยังเขียนโค้ดส่วนใหญ่ด้วยตัวเอง แต่ใช้ LLM สำหรับ semantic search เพื่อทำให้การค้นคว้าลุ่มลึกขึ้น
ปิดใช้งาน code completion เพราะการต้องอ่านข้อเสนอแนะต่าง ๆ เป็นภาระทางความคิดมาก
หนังสือของ Nicholas Carr อธิบายพลวัตที่ว่า ยิ่งพึ่งพาระบบอัตโนมัติมาก ทักษะก็ยิ่งเสื่อมถอย
คล้ายกับบทความประเภท "ทำไมนักพัฒนาทุกคนควรเรียน Assembly"
ใช้เพียง AI สำหรับ line completion ที่มาพร้อมกับ Rider
เครื่องมือ AI ทำให้ชีวิตสะดวกขึ้น
การสูญเสียทักษะทำงานได้ทั้งสองทาง
ใช้แทนการค้นหา Google เมื่อต้องหาปัญหาเฉพาะอย่าง