30 คะแนน โดย GN⁺ 2025-04-04 | 16 ความคิดเห็น | แชร์ทาง WhatsApp
  • ตอนที่เริ่มใช้เครื่องมือเขียนโค้ดด้วย 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 ความคิดเห็น

 
supermaxi 2025-04-28

พื้นฐานที่เรียกกันว่าเป็นทักษะหลักของนักพัฒนาที่มีฝีมือ ไม่ได้คงเดิมมาตั้งแต่มีการประดิษฐ์คอมพิวเตอร์แล้วหรือ?

 
space0403 2025-04-05

ตอนที่ผมเตรียมตัวทำโค้ดเทสต์ ก็เผลอเปิด Cursor แบบติดเป็นนิสัย จนกด Tab มากกว่าพิมพ์เองอีก... ฮ่าๆ สุดท้ายเลยกลับไปใช้ VS Code ด้วยความรู้สึกดีๆ เหมือนเดิมครับ

 
ahwjdekf 2025-04-05

คนที่ทำเครื่องมือ AI เองก็น่าจะรู้ปัญหานี้กันหมดแล้ว แค่เงียบ ๆ กันไว้เท่านั้น

 
potatium 2025-04-05

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

 
aqqnucs 2025-04-04

สำหรับงานเขียนโค้ดใช้แรงล้วน ๆ แบบสกปรก ๆ นี่ไม่มีอะไรเหมาะไปกว่านี้แล้ว...

 
dbs0829 2025-04-04

ฉันเห็นด้วยโดยรวม ฉันคิดว่าตอนนี้ยังมีขอบเขตที่ต้องอาศัยสัญชาตญาณแบบนั้นอยู่ และคิดว่าความแตกต่างระหว่างการตระหนักรู้กับไม่ตระหนักรู้นั้นค่อนข้างใหญ่ ควรใช้มันเป็นเครื่องมือได้ แต่ก็ควรตระหนักรู้อย่างเพียงพอด้วย

 
dudghks5722 2025-04-04

ประสบการณ์การใช้งาน AI code editor, การสูญเสียสัญชาตญาณเชิง直感, และคำแนะนำที่อยากฝากถึงนักพัฒนามือใหม่ ทั้ง 3 ประเด็นนี้ชวนให้รู้สึกร่วมอย่างมากครับ

 
reagea0 2025-04-04

งั้นก็เลิกใช้คอมพิวเตอร์ไปเลยสิ จะใช้ไปทำไม..

 
plumpmath 2025-04-06

ฮ่าๆ เห็นด้วยเลย

 
plumpmath 2025-04-06

ฮ่าๆๆๆๆๆๆๆๆๆ

 
ifmkl 2025-04-04

ฟังก์ชันปี 2025 ฉบับผู้ช่วยคิม อย่าใช้มันเลยสิ.. .หรือว่าจะใช่กันนะ 555

 
dbs0829 2025-04-04

ดูจากบทความแล้ว เหมือนจะไม่ได้หมายความว่าไม่ให้ใช้กับงานรูทีน แต่ดูเหมือนจะสื่อว่าอย่าฝากการคิดไว้กับ AI

 
hhkkkk 2025-04-04

555 +1 ครับ

 
tujuc 2025-04-04

ดูเหมือนว่า... กำลังมีสถานการณ์ที่ต้องอาศัยการฝึกฝนอย่างตั้งใจมากขึ้นเรื่อย ๆ... :)

 
kandk 2025-04-04

???: "ใช้ putty กับ vi ต่อไปเถอะ"

 
GN⁺ 2025-04-04
ความเห็นจาก Hacker News
  • เชื่อว่ามีทักษะอยู่ 2 ประเภท: ทักษะแบบเฉพาะทาง และทักษะพื้นฐาน

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

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

    • ไม่ปล่อยให้ LLM เขียนทั้งไฟล์
    • มีคำพูดที่ดีเกี่ยวกับตลาดเครื่องมือ AI: หลายบริษัทใช้ FOMO เป็นกลยุทธ์การขาย
  • ปิดใช้งาน code completion เพราะการต้องอ่านข้อเสนอแนะต่าง ๆ เป็นภาระทางความคิดมาก

    • ใช้แชตเฉพาะตอนที่จำเป็น
  • หนังสือของ Nicholas Carr อธิบายพลวัตที่ว่า ยิ่งพึ่งพาระบบอัตโนมัติมาก ทักษะก็ยิ่งเสื่อมถอย

    • ปิด Copilot และใช้แชตให้น้อยลง
    • ตัดสินใจด้วยเหตุผล 2 ข้อ: ทักษะแย่ลง และการเขียนโค้ดสนุกน้อยลง
    • ชอบคิดด้วยตัวเอง และสนุกกับการพัฒนาทักษะ
    • การกลับมาเขียนโค้ดคนเดียวอีกครั้งแม้จะช้ากว่า แต่เป็นประสบการณ์ที่สนุกกว่า
  • คล้ายกับบทความประเภท "ทำไมนักพัฒนาทุกคนควรเรียน Assembly"

    • ความสามารถในการเขียนโค้ดของ AI จะดีขึ้น และจะให้โซลูชันระดับ 90% ที่เพียงพอสำหรับการออกสู่ตลาด
    • อาจไม่ถูกปรับแต่งให้เหมาะที่สุดหรือปลอดภัยอย่างสมบูรณ์ แต่ก็ไม่ได้ต่างจากโปรเจกต์ซอฟต์แวร์จริงส่วนใหญ่มากนัก
  • ใช้เพียง AI สำหรับ line completion ที่มาพร้อมกับ Rider

    • เป็นส่วนผสมที่สมเหตุสมผลระหว่าง code completion แบบดั้งเดิมกับความฉลาดเพิ่มขึ้นเล็กน้อย
  • เครื่องมือ AI ทำให้ชีวิตสะดวกขึ้น

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

    • อาจพลาดทักษะยุคแรกของการใช้ LLM อย่างมีประสิทธิภาพ
    • LLM อาจเปลี่ยนแปลงภาษาโปรแกรมได้
  • ใช้แทนการค้นหา Google เมื่อต้องหาปัญหาเฉพาะอย่าง

    • ชอบ Google มากกว่าเพราะผลลัพธ์จาก AI ยาวและเยิ่นเย้อเกินไป แต่ Google ก็มีประโยชน์น้อยลงเรื่อย ๆ