วันที่ทักษะการโค้ดเริ่มโรยราในสายตาของโปรแกรมเมอร์
(newyorker.com)- ผู้เขียนซึ่งเป็นโปรแกรมเมอร์มืออาชีพ เคยมั่นใจว่าจะสอนลูกให้เขียนโค้ด แต่หลังจากได้ลอง GPT-4 ความมั่นใจนั้นก็สั่นคลอน และมองว่าเมื่อถึงวันที่ลูกโตพอจะพิมพ์คีย์บอร์ดได้ คุณค่าทางอาชีพของการโค้ดอาจเปลี่ยนไปแล้ว
- Ben เพื่อนที่แทบไม่มีประสบการณ์โค้ดดิ้งสมัยใหม่ ใช้ ChatGPT Plus และ GPT-4 สร้างเครื่องมือบรรทัดคำสั่ง, แอป iPhone สำหรับให้คะแนนคำศัพท์ และโค้ดเชื่อมต่อไมโครคอนโทรลเลอร์กับ Firebase ได้อย่างรวดเร็ว
- การโค้ดเรียกร้องความอดทน การดีบักซ้ำๆ และ mechanical sympathy หรือความเข้าใจข้อจำกัดของเครื่องจักรในระดับสัญชาตญาณมาอย่างยาวนาน แต่ผู้ช่วย AI เริ่มแทนที่รายละเอียดการเขียนจริงและความรู้ยากๆ บางส่วนด้วยบทสนทนาภาษาธรรมชาติ
- GPT-4 ยังมีบางด้านที่ด้อยกว่าโปรแกรมเมอร์มืออาชีพ และคนทั่วไปก็ใช้งานในแบบเดียวกันได้ยาก แต่รูปแบบ centaur ที่ผสานโปรแกรมเมอร์กับ AI แสดงให้เห็นผลิตภาพที่ต่างจากมนุษย์ล้วนหรือ AI ล้วน
- เมื่อความสำคัญของการโค้ดเองลดลง ความสามารถในการตัดสินใจว่าจะสร้างอะไร เข้าใจว่าสิ่งใดที่ผู้ใช้จะชอบ และสื่อสารได้ทั้งเชิงเทคนิคและเชิงมนุษย์ อาจสำคัญยิ่งขึ้น
GPT-4 เขย่าความมั่นใจในอาชีพโค้ดดิ้ง
- ผู้เขียนเคยตั้งใจจะสอนลูกเขียนโปรแกรมคอมพิวเตอร์ เหมือนที่พ่อแม่สอนอ่านและเขียน
- การโค้ดถูกมองว่าเป็นทักษะใหม่และความสามารถจำเป็นที่ครอบคลุมตั้งแต่การสร้างภาพยนตร์ไปจนถึงฟิสิกส์
- ในฐานะโปรแกรมเมอร์มืออาชีพ เขารู้สึกว่าเมื่อถึงวันที่ลูกพิมพ์คีย์บอร์ดได้ คุณค่าของการโค้ด อาจหายไปแล้วก็ได้
- จุดเปลี่ยนคือโปรเจกต์งานอดิเรกกับเพื่อนชื่อ Ben เพื่อสร้าง ปริศนาอักษรไขว้ สไตล์ Times ด้วยคอมพิวเตอร์
- ในปี 2018 พวกเขาใช้ซอฟต์แวร์ช่วยสร้างปริศนาระดับวันเสาร์ โดยมนุษย์เพียงใส่รสนิยมลงไปเล็กน้อย
- ครั้งนี้ตั้งใจจะสร้างโปรแกรมทำปริศนาโดยไม่ต้องมีฝีมือมนุษย์เข้ามาเกี่ยว
- Ben เก่งด้านฮาร์ดแวร์ แต่มีประสบการณ์โค้ดดิ้งแบบมืออาชีพสั้นและตื้น และแทบหยุดอยู่ที่ระดับเมื่อเกือบ 20 ปีก่อน
- แต่เขาสมัคร ChatGPT Plus และเริ่มใช้ GPT-4 เป็นผู้ช่วยเขียนโค้ด
- เขาสร้างเครื่องมือเล็กๆ ที่จำเป็นต่อโปรเจกต์ได้เองอย่างรวดเร็วอย่างน่าทึ่ง
ประสิทธิภาพของผู้ช่วยโค้ด AI ที่เห็นจากโปรเจกต์งานอดิเรก
- ตอนสร้างคำสั่งเพื่อสุ่มพิมพ์ 100 บรรทัดจากไฟล์พจนานุกรม ผู้เขียนต้องคิดปัญหา ค้นหา และลองผิดลองถูก
- Ben แค่บอก GPT-4 ว่าต้องการอะไร แล้วก็ได้โค้ดที่รันได้
- ผู้เขียนมองว่าคำสั่งแบบนี้เดิมทีก็เป็นเรื่องจุกจิก และเป็นสิ่งที่ใครๆ ก็ต้องค้นหา จึงไม่นับว่าเป็น “การเขียนโปรแกรมจริงๆ”
- ไม่กี่วันต่อมา Ben บอกว่าอยากทำ แอป iPhone สำหรับให้คะแนนคำในพจนานุกรม
- ผู้เขียนมองว่าการทำแอป iPhone เป็นภาระ เพราะต้องเรียนรู้สภาพแวดล้อมการเขียนโปรแกรมของ Apple ภาษาใหม่ คอมโพเนนต์ UI และกระบวนการแพ็กเกจแอป
- วันถัดมา Ben ส่งแอปที่ทำงานได้ตรงตามฟีเจอร์ที่ต้องการ และยังมีดีไซน์น่ารักมาด้วย
- Ben บอกว่าเขาสร้างมันได้ในไม่กี่ชั่วโมง และ GPT-4 จัดการงานยากๆ ส่วนใหญ่ให้
- Ben ยังทำโปรเจกต์ติดตั้งลำโพงขนาดเล็กและไฟ LED สีแดงเข้ากับกรอบรูปพระบรมฉายาลักษณ์กษัตริย์ Charles
- เป็นอุปกรณ์ที่เมื่อพิมพ์ข้อความบนเว็บไซต์ ลำโพงจะเล่นเพลง และ LED จะกะพริบเป็น รหัสมอร์ส เหมือนอัญมณีบนมงกุฎ
- โค้ดสำหรับดึงข้อความใหม่ต้องใช้ความรู้เรื่องไมโครคอนโทรลเลอร์และ Firebase ซึ่งเป็นเรื่องยากสำหรับ Ben
- GPT-4 แนะนำฟีเจอร์ที่เหมาะสมของ Firebase และโค้ดที่ใช้บนไมโครคอนโทรลเลอร์ได้
- Ben ยังใช้ GPT-4 ทำสิ่งคล้าย เกม Snake บนโทรศัพท์ Nokia
- หลังคุยกันสั้นๆ เขายังให้มันเพิ่มฟีเจอร์ที่แสดงว่าเมื่อแพ้ ผู้เล่นเบี่ยงเบนจากเส้นทางที่ดีที่สุดไปมากแค่ไหน
- ผู้เขียนไม่แน่ใจด้วยซ้ำว่าตนเองจะทำการแก้ไขนี้ได้หรือไม่
- GPT-4 ทำได้ภายในราว 10 วินาที
เสน่ห์ของการโค้ดและการก่อรูปของความชำนาญ
- จุดเริ่มต้นที่ทำให้ผู้เขียนหลงใหลคอมพิวเตอร์ คือประสบการณ์เล่น Mortal Kombat กับพี่ชายที่ Montreal ช่วงต้นทศวรรษ 1990
- พี่ชายเชื่อมต่อกับเซิร์ฟเวอร์ FTP จากเทอร์มินัล MS-DOS พิมพ์คำสั่ง และพิมพ์โค้ดที่มีคำสั่ง fatality ทั้งหมดในเกมออกมา
- ผู้เขียนมองพี่ชายเหมือนแฮกเกอร์ และรู้สึกหลงใหลกับการค้นหาสถานที่และความรู้ที่ซ่อนอยู่
- ประโยค “อาชญากรรมของผมคือความอยากรู้อยากเห็น” จาก “The Hacker’s Manifesto” และภาพยนตร์ “Hackers” ปี 1995 ยิ่งตอกย้ำความรู้สึกว่าความรู้คือพลัง
- Dade Murphy ในภาพยนตร์รู้จักหนังสือคอมพิวเตอร์เพียงแค่เห็นปก และใช้การพิมพ์คีย์บอร์ดควบคุมสปริงเกลอร์ของโรงเรียนกับการทรงตัวของเรือบรรทุกน้ำมัน
- สำหรับผู้เขียน การแฮกใกล้เคียงกับ การเรียนรู้สิ่งที่ซ่อนอยู่ มากกว่าการทำลาย
- หนังสือ “Beginning Visual C++” ของ Ivor Horton ที่ซื้อสมัยมัธยม เป็นตำราเริ่มต้นเล่มแรกหนา 1,200 หน้า
- ช่วงต้นค่อนข้างง่าย แต่เขาติดตรงส่วน “Dynamic Memory Allocation”
- เขาเปรียบมันกับ pons asinorum หรือ “สะพานลา” ซึ่งเป็นคำที่นักเรียนยุคกลางใช้เรียกจุดยากจุดแรก
- ประสบการณ์กว่าจะรัน “Hello, world” ได้ ทำให้รู้สึกว่าการเขียนโปรแกรมใกล้เคียงกับ ความอดทนและความหมกมุ่น มากกว่าความรู้หรือทักษะ
- เขาต้องดิ้นรนอยู่หลายวันเพื่อให้คอมไพเลอร์ Borland C++ ทำงานได้ และเมื่อแก้ข้อผิดพลาดหนึ่ง ก็มีข้อผิดพลาดอื่นโผล่มา
- ในที่สุดเมื่อข้อความ “Hello, world” ปรากฏขึ้น ก็รู้สึกราวกับคอมพิวเตอร์ตื่นขึ้นมาทักทายด้วยเสียงของตัวเอง
- ช่วงมหาวิทยาลัย เขาขยายความสนุกของการโค้ดด้วยการทำโปรแกรมเล็กๆ
- เขาสร้างโปรแกรมส่งข้อความ SMS เมื่อ Tiger Woods ทำเบอร์ดีหรือโบกี้ใน 2006 Masters Tournament
- เขายังเขียนโปรแกรมสุ่มดึงประโยคจาก “Ulysses” นับจำนวนพยางค์ และประกอบเป็นไฮกุ
- เขาใช้เวลา 14 ชั่วโมงสร้าง “Jimbo Jeopardy!” ให้เพื่อนๆ เล่น และสัมผัสความรู้สึกรุนแรงเมื่อเห็นใครบางคนสนุกกับสิ่งที่ตนสร้าง
ยุคทองของวิศวกรซอฟต์แวร์และความย้อนแย้งของระบบอัตโนมัติ
- ในปี 2009 ท่ามกลางวิกฤตการเงิน เขาจบการศึกษาด้วย GPA 2.9 แต่ด้วยประสบการณ์ทำงานจริงด้านโปรแกรมมิง ทำให้ได้งานประจำแรกอย่างง่ายดาย
- ตอนนั้นบริษัทต่างๆ แข่งขันกันแย่งโปรแกรมเมอร์ฝีมือดี และติดต่อโปรแกรมเมอร์ที่มีประสบการณ์อย่างแข็งขัน
- ความนิยมของสาขาวิทยาการคอมพิวเตอร์เริ่มพุ่งสูง และ coding bootcamp โฆษณาว่าสามารถเปลี่ยนมือใหม่ให้เป็นโปรแกรมเมอร์เงินเดือนสูงได้ภายในหนึ่งปี
- ท่ามกลางดอกเบี้ยต่ำและการเติบโตของภาคเทคโนโลยี สถานะและสวัสดิการของวิศวกรซอฟต์แวร์สูงขึ้น
- บริษัทอย่าง Google ทำให้แนวปฏิบัติอย่างเอสเพรสโซฟรี อาหารจัดเลี้ยง สวัสดิการแพทย์ดีๆ ลาคลอด/เลี้ยงดูบุตร ยิมในบริษัท ที่จอดจักรยาน การแต่งกายสบายๆ และ 20% time แพร่หลายขึ้น
- งานโค้ดดิ้งอาจเผยบั๊กได้ทุกเมื่อ จึงถูกมองว่าการประมาณระยะเวลาเป็นเรื่องโง่ และเดดไลน์ถูกปฏิบัติราวกับเป็นข้อห้าม
- ยังมีบรรยากาศที่หากแรงกดดันมากเกินไป แค่พูดคำว่า “burnout” ก็ยืดเวลาออกไปได้หลายเดือน
- ข้อสงสัยว่าการปฏิบัติแบบนี้จะดำเนินต่อไปได้หรือไม่ก็เพิ่มขึ้น
- ในอดีต เว็บดีไซน์ก็เป็นที่ต้องการสูงถึงขั้นทำงานวันหยุดสุดสัปดาห์แล้วได้เงินหลายพันดอลลาร์
- เมื่อเครื่องมืออย่าง Squarespace ปรากฏขึ้น เจ้าของร้านพิซซ่าหรือศิลปินฟรีแลนซ์ก็สร้างเว็บไซต์ได้ด้วยการคลิกเท่านั้น
- สำหรับโค้ดเดอร์มืออาชีพ งานบางส่วนที่เคยรายได้สูงและใช้แรงน้อยจึงหายไป
- ปฏิกิริยาของชุมชนโปรแกรมเมอร์ค่อนข้างเอนเอียงไปทางการต้องเรียนรู้เทคโนโลยีที่ยากขึ้นต่อไป
- วิศวกรซอฟต์แวร์ชอบระบบอัตโนมัติ และวิศวกรเก่งๆ ก็สร้างเครื่องมือที่ทำให้งานประเภทอื่นไร้ความจำเป็น
- leverage หรืออำนาจทวีคูณที่โค้ดหนึ่งชุดสามารถส่งผลต่องานของคนหลายล้านคน คือเหตุผลรองรับค่าตอบแทนของโปรแกรมเมอร์
- สัญชาตญาณด้านระบบอัตโนมัติแบบเดียวกันก็ทดแทนงานบางส่วนของโปรแกรมเมอร์เองด้วย
โปรแกรมเมอร์ในยุค AI, centaur และทักษะที่ยังเหลืออยู่
- หลังจากบริษัทอนุญาตให้ใช้แชตบอต AI เป็นผู้ช่วยเขียนโปรแกรม ผู้เขียนตั้งใจหลีกเลี่ยงในช่วงแรก
- ไม่นานเขาก็เริ่มเห็นรูปแบบถามตอบของแชต AI บนหน้าจอเพื่อนร่วมงานบ่อยขึ้น
- เพื่อนร่วมงานบอกว่าเครื่องมือเหล่านี้ช่วยเพิ่มผลิตภาพ และในบางกรณีทำให้แก้ปัญหาได้เร็วขึ้น 10 เท่า
- ผู้เขียนกังวลว่า AI อาจพรากความสนุกในการไขปริศนาและความพึงพอใจที่ได้แก้ปัญหาด้วยตนเองไป
- ผลลัพธ์ทั่วไปของงานโปรแกรมมิงมักไม่น่าสนใจ และบางครั้งก็ธรรมดาจนน่าขำ
- เช่น งานเพิ่มหัวตารางที่กินหลายคอลัมน์ในตารางของเอกสารสำคัญ หากดูแค่ผลลัพธ์ก็เรียบง่าย
- แต่กระบวนการคิดว่าจะสร้าง API สำหรับผู้ใช้อย่างไร และจะจัดการอย่างไรเมื่อคอลัมน์ที่ไม่มีข้อมูลถูกละไว้ต่างหาก คือแก่นของความสนุก
- ในที่สุด เขาใช้ GPT-4 ขณะทำงานเพื่อสร้างเครื่องมือเล็กๆ ที่ไฮไลต์ส่วนในผลการค้นหาที่ตรงกับคิวรีของผู้ใช้
- Edsger W. Dijkstra เคยเขียนในปี 1978 ใน “On the Foolishness of ‘Natural Language Programming’” ว่าภาษาธรรมชาติเป็นวิธีละทิ้งความแม่นยำที่คอมพิวเตอร์มอบให้
- การใช้ GPT-4 จริงไม่ได้อยู่ในระดับแค่พูดว่า “ช่วยแก้ปัญหานี้ให้ที” แต่ต้องระบุสิ่งที่ต้องการอย่างระมัดระวังราวกับอธิบายให้มือใหม่ฟัง
- เขาต้องดูความล้มเหลวแล้วปรับพรอมป์ให้ทะเยอทะยานน้อยลง และแบ่งปัญหาเป็นปัญหาย่อยที่เฉพาะเจาะจง เป็นนามธรรม และไม่กำกวม
- หลังจากนั้น เขาเริ่มเห็นช่องว่างขนาดพอดีสำหรับ GPT-4 แทรกอยู่ในงานหลายจุด
- เขาคุยกับ GPT-4 แม้ในงานเปลี่ยนผลลัพธ์ของปริศนาอักษรไขว้ให้เป็นหน้าเว็บที่ดูดี
- มีปัญหารายละเอียดอย่างการเชื่อมโยงตัวอักษรแต่ละตัวกับคำแนวนอนและแนวตั้ง แต่เขาไม่ได้จำลองตัวเลข แพตเทิร์น และลูปในหัวเหมือนเมื่อก่อน
- ดังที่ Geoffrey Litt เขียนหลังมีประสบการณ์คล้ายกัน เขาเหลือความรู้สึกว่าไม่ได้ใช้ “สมองโปรแกรมเมอร์ในรายละเอียด”
- กรณี Lee Sedol ใน Go และกรณีหมากรุก แสดงให้เห็นว่าหลัง AI วัฒนธรรมของทักษะก็ไม่ได้หายไปเสมอ
- Lee Sedol แพ้ AlphaGo ในปี 2016 และภูมิใจที่ชนะได้หนึ่งกระดานหลังการแข่งขันหลายวัน ก่อนจะเลิกเล่นอาชีพในอีก 3 ปีต่อมา
- หมากรุกยิ่งได้รับความนิยมมากขึ้นหลังถูก AI พิชิต และผู้เรียนสามารถรับโจทย์ที่สูงกว่าระดับของตนเล็กน้อยกับสาเหตุของความพ่ายแพ้จากโค้ช AI ได้
- แกรนด์มาสเตอร์ระดับสูงสุดศึกษาตาที่คอมพิวเตอร์แนะนำราวกับเป็นแผ่นจารึกจากพระเจ้า
- ปัจจุบัน GPT-4 ยังเป็นโปรแกรมเมอร์ที่ด้อยกว่าผู้เขียน และคนทั่วไปก็ยังใช้งานมันแบบโปรแกรมเมอร์ได้ยาก แต่แนวทางแบบ centaur ได้เกิดขึ้นแล้ว
- Ben เพียงคนเดียวเป็นโปรแกรมเมอร์ที่ด้อยกว่าผู้เขียนมาก และ GPT-4 เพียงอย่างเดียวก็ยังด้อยกว่าผู้เขียน แต่การผสาน Ben กับ GPT-4 แสดงผลิตภาพที่น่ากลัว
- หากการสร้างซอฟต์แวร์ง่ายขึ้น ซอฟต์แวร์ก็จะแพร่หลายยิ่งขึ้น และโปรแกรมเมอร์อาจรับหน้าที่ออกแบบ ตั้งค่า และบำรุงรักษา
- เมื่อการโค้ดเองสำคัญน้อยลง สิ่งที่อาจสำคัญขึ้นคืออะไรควรค่าแก่การสร้าง ผู้ใช้ชอบอะไร และจะสื่อสารอย่างไรทั้งเชิงเทคนิคและเชิงมนุษย์
- สิ่งที่ควรสอนลูกอาจไม่ใช่เทคโนโลยีเฉพาะ แต่เป็น จิตวิญญาณของการแฮก
- ในอนาคต การเขียนโปรแกรมด้วยการพิมพ์ C++ หรือ Python เองอาจดูน่าขำเหมือนการป้อนคำสั่งไบนารีลงบัตรเจาะรู
- การสั่งให้คอมพิวเตอร์ทำสิ่งที่ต้องการอย่างแม่นยำ อาจกลายเป็นการขอร้องอย่างสุภาพก็ได้
- โค้ดเดอร์ในยุคเกษตรกรรมอาจเคยจับต้องกังหันวิดน้ำและสายพันธุ์พืช ส่วนในยุค Newton อาจหมกมุ่นกับแก้ว สีย้อม และการวัดเวลา
- คนรุ่นต่อไปอาจใช้ค่ำคืนขุดลึกเข้าไปในภายในของ AI ที่พ่อแม่เคยมองว่าเป็นกล่องดำ และแม้ยุคของการโค้ดจะโรยรา การแฮกก็ยังดำเนินต่อไป
3 ความคิดเห็น
ส่วนท้ายของบทความถูกตัดออกไปเล็กน้อยตอนสรุป แต่ประโยคสุดท้ายนั้นสำคัญครับ
"I shouldn’t worry that the era of coding is winding down. Hacking is forever."
"ไม่จำเป็นต้องกังวลว่ายุคของการเขียนโค้ดกำลังลาลับไป เพราะการแฮ็กจะคงอยู่ตลอดไป"
พอเห็นว่าแม้แต่ Bard ก็ทันทีที่มีฟีเจอร์เชื่อมต่อรวมเข้ามา ก็ยังสามารถถูก prompt injection จนข้อมูลรั่วไหลหรือเกิดอะไรทำนองนั้นได้
ก็เลยรู้สึกว่าแฮ็กคงเป็นสิ่งที่อยู่ตลอดไปครับ
ความคิดเห็นจาก Hacker News
GPT-4 น่าประทับใจมากก็จริง แต่สำหรับฉัน แก่นของการพัฒนาซอฟต์แวร์ ไม่เคยอยู่ที่การเขียนโค้ดเอง
GPT-4 ล้มเหลวบ่อย แถมวิธีที่มันพังก็ไม่ชัดเจน และในโดเมนที่มีข้อมูลฝึกน้อยมันยิ่งพังหนักกว่าเดิม
ต่อให้มันเก่งขึ้น 20 เท่า ถ้าทำให้สร้างซอฟต์แวร์ดี ๆ ได้ถูกลงและง่ายขึ้น ก็ถือว่าเป็นเรื่องดีสำหรับโลก
ถ้าใครสนุกกับการเขียนโค้ดเป็นงานอดิเรกจริง ๆ AI ก็ไม่ได้มาขัดขวางสิ่งนั้น และถึงวันหนึ่งการเขียนโค้ดจะหายไป ก็ยังรู้สึกว่าแก่นของวิศวกรรมซอฟต์แวร์เดิมทีก็ไม่ได้อยู่ตรงนั้น
LLM เร็วและใช้ได้ค่อนข้างดี แต่ใกล้เคียงกับ Stack Overflow เวอร์ชันที่ผิดพลาดเยอะ และในระยะสั้นถึงกลางก็ดูเป็นเครื่องมือที่เสริมความสามารถของโปรแกรมเมอร์ได้มากกว่าผลเสีย
ปัญหาที่ติดขัดมักกว้างและซับซ้อนจนแม้แต่คนก็ยังคิดตามได้ยาก และ GPT ก็มักเสนอคำตอบที่แทบใช้ไม่ได้
เวลาพูดถึงโค้ด มันเหมือนช่างสารพัดนึกที่ รู้กว้างแต่ไม่ลึก และสำหรับนักพัฒนาระดับจูเนียร์ถึงกลางอาจต่างออกไป
คงมีไม่กี่คนที่คิดว่าการดีบักโค้ดซึ่งดูเผิน ๆ แล้วเหมือนถูกต้องชัดเจนคือส่วนที่สนุกที่สุดของการเขียนโปรแกรม
แต่ก็คิดว่าน่าจะหาวิธีใช้ LLM ที่ดีกว่านี้ได้ เช่น วนมันซ้ำไปเรื่อย ๆ จนผ่าน test suite หรือให้มันส่งโค้ดมาพร้อม proof of correctness ที่ proof assistant ตรวจสอบแล้ว
แต่สิ่งที่ฉันชอบไม่ใช่โค้ดแนววิชาการที่วัดคุณค่าด้วยตัวชี้วัดเชิงปริมาณอย่างจำนวนรอบสัญญาณนาฬิกาหรือ latency หากเป็นโปรเจกต์ที่มี ดุลยพินิจเชิงศิลป์ อยู่พอสมควรมากกว่า
งานเขียนโค้ดแบบที่ฉันเคยสนุกในช่วงต้นอาชีพนั้นลดลงอยู่แล้วตั้งแต่ก่อน ChatGPT และเมื่อมองย้อนกลับไป การได้เริ่มต้นในยุคที่วิศวกรยังเป็นคนเฝ้าร้านเองก็ดูเป็นอภิสิทธิ์อย่างหนึ่ง
ตัวโค้ดเองไม่ได้พิเศษอะไร ฉันแค่อยากสร้างอะไรบางอย่างเท่านั้น
มีแค่ฉันหรือเปล่าที่ยิ่งนานวันยิ่ง ทึ่งกับ LLM น้อยลง
ตอน Copilot ออกมาใหม่ ๆ ในปี 2021 ฉันเองก็มีช่วงที่คิดว่า “อีกไม่นานเราคงหมดประโยชน์”
แต่จากประสบการณ์ที่ได้ใช้เองและจากงานวิจัยต่าง ๆ ฉันมองว่า LLM สมัยใหม่มีข้อบกพร่องระดับรากฐาน และไม่ได้อยู่บนเส้นทางไปสู่ปัญญาทั่วไป
GPT-4 ดีกว่า 3.5 แต่ไม่ได้ต่างกันในระดับพื้นฐาน และ 5 ก็น่าจะคล้ายกัน คิดว่าเมื่อมี AI ที่ทรงพลังจริง ๆ ออกมา เราอาจหัวเราะกับความสนใจที่เคยเทให้เทคโนโลยีนี้
ตอนแรกมันน่าประทับใจมาก แต่ตอนนี้ฉันเชื่อถือมันได้แค่ในระดับสรุปภาพรวมกว้าง ๆ เท่านั้น
ตัวอย่างเช่น ตอนพยายามให้มันสร้างตัวอย่างเสียงโดยเขียน sound synthesizer ตั้งแต่ต้นและบันทึกเป็นไฟล์ wave ภาพรวมเชิงแนวคิดช่วยให้เข้าใจได้ แต่โค้ดกลับผิดแบบละเอียดอ่อน
มันพลาดรายละเอียดอย่างเรื่องอะไรถูกนับรวมในความยาวของ struct ตอนคำนวณขนาดอยู่บ่อยเป็นพิเศษ และในฐานะมือใหม่ก็ยิ่งไม่แน่ใจด้วยว่ามันถูกหรือไม่
พอขอให้ตรวจสอบ มันก็ขอโทษแล้วเปลี่ยนคำตอบไปในทางที่ฉันอยากได้ยิน ทำให้เชื่อถือไม่ได้
แต่ในฐานะ เครื่องมือที่ช่วยลดความเหงาเวลาเขียนโปรแกรมคนเดียว มันค่อนข้างดี และแค่ได้โยนไอเดียใส่มันแล้วดูว่ามันตอบสนองอย่างไรก็ช่วยได้มากแล้ว
ผู้ชมภาพยนตร์ยุคแรก ๆ เคยรู้สึกว่าหนังขาวดำธรรมดาก็น่าขนลุก และถึงกับก้มหลบเมื่อเห็นรถไฟวิ่งเข้ามาทางจอ
คนที่ได้ยินเครื่องเล่นแผ่นเสียงครั้งแรกก็เคยบอกว่าแยกไม่ออกจากวงออร์เคสตราสด
เมื่อเราคุ้นเคยกับเทคโนโลยี เราก็เรียนรู้ที่จะมองมันออก และเริ่มมีสัญชาตญาณต่อทั้งข้อจำกัดและจุดแข็งของมัน จึงรู้สึกประทับใจน้อยลงเรื่อย ๆ
เวลามันทำสิ่งที่เราเคยคิดว่าทำไม่ได้ เราก็ทึ่งได้ง่าย แต่พอมันทำสิ่งที่เราคาดหวังว่าในที่สุดมันน่าจะทำได้ไม่สำเร็จ ก็ไม่ได้แปลว่าเราจะมองข้ามมันทันที
ถ้า GPT-5 กระโดดได้แบบเดียวกัน การจะไม่ใช้มันแล้วแข่งขันให้ได้น่าจะยากมาก
แม้ทั้งคู่จะเป็นโมเดล GPT และฝึกมาในฐานะ autoregressive language model ธรรมดา แต่เวลาที่ GPT-4 สังเคราะห์ข้อมูลให้ตรงกับคำขอได้อย่างเหมาะสมในหลายบริบท ฉันสัมผัสได้ถึงความเปลี่ยนแปลงอย่างมากแม้ในระดับบุคคล
สุดท้ายแล้ว LLM ก็คือการอนุมานเชิงความน่าจะเป็นจากข้อความจำนวนมหาศาล แต่ถ้ามีทั้งพลังประมวลผลและข้อมูลมากพอ ฉันคิดว่าโมเดลใหญ่สามารถสร้างโครงสร้างขึ้นมาระหว่างการฝึกเพื่อทำความเข้าใจข้อมูลได้อย่างเหมาะสมที่สุด
เมื่อข้อมูลกลายเป็น หลายรูปแบบสื่อ แต่ละรูปแบบอาจช่วยลบหรือทำให้ภาพแทนโลกที่ผิดเพี้ยนชัดเจนขึ้น จนผลลัพธ์ไม่ได้เพิ่มแบบบวกกันธรรมดา แต่อาจเหมือนคูณกัน
เราอาจหัวเราะเมื่อได้เห็นว่า GPT-10 ที่ฝึกด้วยข้อความ ภาพ วิดีโอ เสียง และเซ็นเซอร์รับรสจะดีแค่ไหน แต่ฉันก็ยังมองว่า GPT-4 เป็นก้าวกระโดดที่ยิ่งใหญ่กว่าขั้นไหน ๆ ที่มนุษยชาติเคยเดินมา
เห็นคนพิมพ์พรอมต์อย่าง “ช่วยเขียนนิพจน์ที่บวก 2 กับ 2 ให้หน่อย” เพื่อให้ได้
2+2ที่ต้องการ แล้วพูดจริงจังว่านี่คือประสิทธิภาพระดับเวทมนตร์พูดตรง ๆ คือฉันไม่ค่อยชอบเขียนอะไรยืดยาวอยู่แล้ว และสำหรับฉัน โค้ดสั้นและเร็วกว่าเสมอเมื่อเทียบกับการอธิบายด้วยภาษาปกติ นั่นก็เป็นเหตุผลตั้งแต่แรกว่าทำไมเราถึงต้องมีโค้ด
ถ้ามองจากความคาดหวังที่สูง ก็อาจพูดได้ว่ามัน “มีข้อบกพร่องระดับรากฐาน” แต่ถ้ามองจากจุดตั้งต้นแบบ “ไร้ประโยชน์” อย่างที่หลายคนคิด มันก็อาจเรียกได้ว่าเป็น เครื่องมือที่น่าทึ่ง
ฉันมักให้ ChatGPT ลองทำแบบทดสอบฟรอนต์เอนด์ง่าย ๆ ที่ให้กับนักพัฒนาระดับจูเนียร์ทุก ๆ สองสามเดือน แต่จนถึงตอนนี้มันยังไม่เคยผ่านเลย และยังห่างไกลมาก
มันตอบอย่างมั่นใจ แต่มีความคลาดเคลื่อนเล็ก ๆ น้อย ๆ อยู่ และโค้ดที่สร้างออกมาก็คล้ายกับโค้ดไร้สาระที่คนจบ bootcamp มาไม่นานเขียน โดยในเรซูเม่ยาว 8 หน้าอ้างว่าตัวเอง “เชี่ยวชาญ” 50 เทคโนโลยี
ถ้ามันดีขึ้น ฉันก็ยังไม่รู้สึกได้
เมื่อ 10 ปีก่อนก็เคยมีคนบอกว่ารถบรรทุกขับเคลื่อนอัตโนมัติจะพลิกอุตสาหกรรมรถบรรทุกภายใน 10 ปี และสื่อที่รายงานเรื่อง LLM ตอนนี้ก็เหมือนกันเป๊ะ
มันน่าทึ่งก็จริง แต่จะวนอยู่กับระดับที่พอให้มันเลี้ยวซ้ายทีไรก็เร่งไปถึง 100 ไมล์ต่อชั่วโมงแล้วชนกำแพงทุกครั้งอีกนานแค่ไหน
ฉันอยากใช้ AI ในแบบที่มันช่วยเชื่อมโยงกลุ่มจุดที่มนุษย์ไม่มีทางเชื่อมเองได้ แล้วให้ผู้เชี่ยวชาญตรวจสอบผลลัพธ์ก่อนค่อยเดินหน้าต่อ ไม่รู้เหมือนกันว่าวันที่เราจะโหลด CLI tool หรือแอปใหม่ด้วย
gpt installจะมาถึงเมื่อไร แต่ยังไม่ใช่เร็ว ๆ นี้ฉันทำออกมาได้พอใช้ แต่ไม่ตรงแบบระดับพิกเซล และหัวหน้าทีมก็บอกให้ทำใหม่ แม้มูลค่าทางธุรกิจจะเป็นศูนย์ แต่ตอนนั้นทีมเรายึดถือความเป็นpixel perfectเป็นความภาคภูมิใจ
งานนั้นเป็นหนึ่งในเหตุผลที่ทำให้ฉันเลิกทำฟรอนต์เอนด์
ไม่นานมานี้ฉันลองให้ ChatGPT สร้าง CSS แบบคล้าย ๆ กันเป็นการฝึก และมันทำได้สมบูรณ์แบบ
ฉันเก่ง CSS แค่ระดับกลาง ๆ แต่ถ้ามี ChatGPT ฉันก็สร้างงานที่คุณภาพใกล้เคียงกับที่คนเก่ง CSS ทำได้ อย่างที่บทความบอกไว้ ตอนนี้ generalist ระดับกลางก็เริ่มสู้กับผู้เชี่ยวชาญได้แล้ว
ประสบการณ์ของฉันค่อนข้างต่างออกไป ฉันเป็นนักพัฒนาแบ็กเอนด์ที่ทำงานจริงจังและต้องทำ validation รูปแบบด้วยถ้าจำเป็น และฉันหงุดหงิดกับสิ่งที่ทำงานไม่เป็นตรรกะ
พอทำงานกับคอมพิวเตอร์ก็รู้สึกว่าทุกอย่างควรมีตรรกะ แต่หลายอย่างในฟรอนต์เอนด์สำหรับฉันมันไม่เป็นตรรกะเลย
ถ้าไปถามคนฟรอนต์เอนด์ว่า “จะจัดข้อความให้อยู่กึ่งกลางยังไง” เขาก็ตอบว่า
text-alignซึ่งแน่นอนว่าฉันลองอันนั้นก่อนอยู่แล้ว แต่มันใช้ไม่ได้แม้แต่คนฟรอนต์เอนด์เอง บางครั้งก็ไม่ได้ตอบคำถามง่าย ๆ ได้ทันที แต่ต้องไปลองทำเองแล้วค่อยพบว่ามันไม่ได้
ตอนนี้ถ้า Copilot ไม่สามารถให้คำตอบได้ทันที ChatGPT-4 หรือ GPT แบบปรับแต่งส่วนตัวของฉันที่รู้จัก codebase ของเราในชื่อ “front-end hacker” ก็จะช่วยแก้ให้ มันใช้ได้ดีทุกวัน ตลอดทั้งวัน
ตอนเห็นครั้งแรก มันเป็นลูกเล่นสุดทึ่งที่ให้ความรู้สึกเหมือนเทคโนโลยีเอเลียนจากอนาคต
แต่พอเวลาผ่านไป คุณจะเริ่มเห็นรูโหว่ และตระหนักว่าแม้จะใช้มันไปหลายเดือนหรือหลายปี รูโหว่เหล่านั้นก็ไม่ได้ถูกอุดอย่างมีนัยสำคัญ
ความเร็วในการพัฒนาถือว่าปานกลางเมื่อเทียบกับการตลาดและวาทกรรม และเมื่อเทียบกับช่องว่างที่ยังต้องปิด บางทีก็รู้สึกว่าการใช้มันกลับเหมือนงานมากกว่าการไม่ใช้
แนวทาง machine learning ที่ขับเคลื่อนด้วยข้อมูลล้วน ๆ อาจไม่เหมาะกับปัญหาที่ต้องการความแม่นยำสูงกว่า 80% มาก ๆ
มันโอเคสำหรับอัลกอริทึมการเทรดที่แค่ถูก 55% ก็ทำเงินได้, recommendation engine ที่โชว์รายการหนังหรือเพลงให้เลื่อนดู, ผลการค้นหาที่เอาไว้กวาดตาอ่านผ่าน ๆ, หรือ spam filter ที่ช่วยลดเสียงรบกวนในกล่องจดหมาย
แต่ปัญหาแบบ “นี่คือคำตอบที่ถูกต้อง” หรือ “ขับรถโดยไม่ฆ่าคน” นั้นยากกว่ามาก
ส่วนใหญ่มันยังไม่ผ่านแม้แต่สองจุดที่ต้องใช้ทำ interpolation ด้วยซ้ำ และพอฉันชี้จุดนั้น มันก็ให้ฟังก์ชันที่ผ่านจุดได้ แต่ไม่ smooth อีกต่อไป
ฉันลองใหม่หลายครั้งและพยายามอย่างจริงจังแล้ว
ถ้าเอาสิ่งแบบนี้ไปเขียนโค้ดควบคุมเครื่องจักร มันคงกลายเป็นหายนะเต็มรูปแบบ ดังนั้นฉันคิดว่าเราต้องเลือกอย่างใดอย่างหนึ่ง ระหว่างโลกที่มี machine learning กับโลกที่มีโดรนส่งของแบบหุ่นยนต์
แต่กับงานเล็ก ๆ น้อย ๆ อย่างการสร้างพารามิเตอร์ของฟังก์ชันจากตัวแปร มันทำได้โอเค
แต่ถึงอย่างนั้น งานลักษณะนี้ก็คงจะถูกฝ่าไปได้ในที่สุด และตอนนั้นคำถามที่เหลืออยู่ก็คือ มันเป็นความสามารถจริง หรือเป็น data leakage กันแน่
ไม่เข้าใจว่าผู้คนมองว่านี่เป็นช่วงอัสดงของเทคโนโลยีนี้จริง ๆ ได้อย่างไร
จากมุมมองของผม เรากำลังจะเข้าสู่ ยุคแห่งผลิตภาพการเขียนโค้ดแบบควอนตัม เร็ว ๆ นี้
ผมตื่นเต้นมาก เพราะตัวช่วย AI ไม่ได้แค่ปรับปรุงสิ่งที่ผมเขียน แต่ยังช่วยให้ผมเรียนรู้ระหว่างทำงานด้วย ตลอด 1 ปีที่ผ่านมาไม่เคยมีช่วงไหนที่การเขียนซอฟต์แวร์สนุกเท่านี้มาก่อน
ผมเขียนซอฟต์แวร์มาหลายสิบปีแล้ว แต่ตอนนี้แทบจะมีโค้ชอยู่ข้างตัวเสมอที่ช่วยให้ผมข้ามจุดที่ติดขัดและเข้าใจทางเลือกต่าง ๆ
ไม่ใช่แค่ระดับเดินไปถามเพื่อนร่วมงานที่โต๊ะ แต่ให้แนวทางแก้ปัญหาที่สร้างสรรค์และส่งผลกับผลลัพธ์จริง ๆ
น่าทึ่งจริง ๆ
ผมไม่เข้าใจว่าทำไมถึงมองว่าการเขียนโค้ดกำลังจะจบลง ผมยังไม่เห็นหลักฐานว่าผู้ช่วยเขียนโค้ดด้วย AI จะมาแทนที่นักพัฒนาที่พอใช้ได้ เว้นแต่คนคนนั้นจะไม่มีความสามารถในการสร้างอะไรขึ้นมาเลยจริง ๆ
มันให้ความรู้สึกเหมือนมีคนพูดว่า “ตอนนี้งานฐานรากฟรีแล้ว แต่คุณก็ยังสร้างบ้านได้อยู่ดี”
ผมยังต้องเป็นคนสร้างบ้านเอง ต้องวางแผน ออกแบบ ลงมือทำ บอกให้ผู้คนรู้ สนับสนุน ปกป้อง และอธิบายมันอยู่ดี แค่ไม่ต้องทำฐานรากเองทั้งหมดก็เลยง่ายขึ้น
ถ้า AI ทำให้นักพัฒนามีผลิตภาพเพิ่มขึ้นเป็นสองเท่า ความสามารถในการพัฒนาที่เพิ่มขึ้นนั้นจะถูกดูดซับโดยอุปสงค์เดิมและอุปสงค์ใหม่หรือไม่? จำนวนนักพัฒนาจะเหลือครึ่งหนึ่งไหม? หรือจะมีนักพัฒนาเท่าเดิมแต่ได้ค่าจ้างต่ำลงมาก?
คำถามเหล่านี้ก็ยังเกิดขึ้นได้ แม้จะไม่มีงานนักพัฒนาที่มีอยู่เดิมแม้แต่งานเดียวถูก AI แทนที่อย่างสมบูรณ์
อีกเรื่องที่สำคัญคือ งานประเภทไหนเหมาะกับระบบอัตโนมัติด้วย AI ผมนึกถึงงานอย่าง CSS ที่ต้องรู้รายละเอียดทางเทคนิคเล็ก ๆ จำนวนมากในบริบทแคบ ๆ เพื่อเปลี่ยนแปลงผลลัพธ์เพียงเล็กน้อย
ถ้าคุณกำลังทำงานเขียนโค้ดลักษณะนี้ ผมคิดว่านี่ถึงเวลาที่ควรขยายขอบเขตทักษะให้ครอบคลุมความรับผิดชอบที่กว้างขึ้น
ผู้ที่เพิ่งเข้าสู่วงการในช่วงหลังไม่เข้าใจหลายชั้นที่โปรแกรมเมอร์ในอดีตจำเป็นต้องเข้าใจ ทั้งที่ชั้นเหล่านั้นยังอาจส่งผลต่อการทำงานในรายละเอียดได้อยู่
ถ้าคุณเป็นคนที่เขียนโปรแกรมในสายเว็บเทคโนโลยีที่แพร่หลายที่สุดมานานกว่า 13 ปี คุณอาจรู้สึกได้ว่าการทำความเข้าใจสแต็กทั้งหมดที่เว็บพึ่งพานั้นยากขึ้นทุกปี และมองว่านี่คือความโรยราของทักษะ
ฝั่งฟรอนต์เอนด์ การเรียนรู้จากการดูโค้ดที่คนอื่นทำไว้ยิ่งยากขึ้นเรื่อย ๆ เพราะเทคโนโลยีการ build สมัยใหม่ทำให้การดูโค้ดของเว็บไซต์แทบไม่ช่วยอะไร และเสียงบ่นแบบนี้ก็มีมาตั้งแต่ 13 ปีก่อนแล้ว
ถ้ามีลูกหรือมีภาระนอกงาน คนที่อยู่นอกระบบการศึกษาอย่างเป็นทางการก็ยิ่งฝึกฝนทักษะอย่างตั้งใจได้ยากขึ้น เมื่อประกอบกับการที่ซอฟต์แวร์กินพื้นที่ของทุกโดเมนมากขึ้นเรื่อย ๆ
ผลิตภาพที่เพิ่มขึ้นไม่ได้แปลว่าความเป็นช่างฝีมือจะดีขึ้นเสมอไป คล้ายกับที่อุตสาหกรรมทำให้ผลิตภาพสูงขึ้นและสินค้าแพร่หลายมากขึ้น แต่ไม่ได้เป็นผลดีต่อทักษะเชิงช่าง
แต่ก่อนคุณมักจะเจอคนที่บัดกรีชิ้นส่วนลงบนบอร์ดและต่อวงจรรวมหลายตัวเข้าด้วยกันได้ และผมเองก็เคยทำแบบนั้นตอนเรียนมหาวิทยาลัย
ตอนนี้ชนชั้นช่างฝีมือแบบนั้นหายไปแล้ว เหลือเพียงผู้เชี่ยวชาญที่เข้าใจการทำงานของคอมพิวเตอร์ฮาร์ดแวร์อย่างลึกซึ้งมาก ๆ หรือไม่ก็คนที่แค่ซื้อฮาร์ดแวร์มาแล้วมองมันเหมือนเวทมนตร์
ตามธรรมเนียมเดิม ผู้คนจะแสดงความสนใจ ฝึกฝนผ่านขั้นกลาง และค่อย ๆ กลายเป็นผู้เชี่ยวชาญ โดยงานอดิเรกสามารถต่อยอดเป็นอาชีพได้
ทุกวันนี้ ถ้าจะไปทำงานในโรงงานชิป ก็ไม่ใช่เพราะเป็น “เด็กที่เคยจับหัวแร้งบัดกรี” แต่เพราะผ่านเส้นทางวิชาการที่ยาวนาน คุณต้องเรียนเรื่องที่ก้าวหน้ามากจนการบัดกรีดูเหมือนยุคหินไปเลย
ในซอฟต์แวร์ยังมี ชนชั้นช่างฝีมือระดับกลาง แบบนี้อยู่ แต่กำลังหายไปอย่างรวดเร็ว ไม่ใช่เพียงเพราะ LLM
มีคนจำนวนมากที่พอเอาเว็บไซต์มาต่อ ๆ กันให้ใช้งานได้ หรือจัดการงานประจำวันด้วย Excel หรือการเขียนสคริปต์ Python แต่ไม่รู้แนวคิดขั้นสูง
เมื่อพวก GPT ปรากฏขึ้น ผู้เชี่ยวชาญก็ต้องการความช่วยเหลือจากจูเนียร์น้อยลง แทนที่สถาปนิกระบบจะวาดโครงไว้แล้วแบ่งงานย่อยให้จูเนียร์ ก็สามารถไปเอาสิ่งที่ต้องการจาก LLM ได้
ผลลัพธ์คือ คนที่จะถูกฝึกจนถึงระดับสูงสุดจะมีน้อยลง และแม้คนส่วนน้อยนั้นจะมีผลิตภาพสูงขึ้นมาก แต่คนจำนวนมากจะถูกทิ้งค้างอยู่ตรงกลาง
แม้จะปฏิเสธไม่ได้ว่า AI เขียนโค้ดที่ดีได้และอาจพัฒนาขึ้นได้เมื่อเวลาผ่านไป แต่ก็ยังไม่รู้ว่า เวิร์กโฟลว์ที่ AI จะมาแทนงานของนักพัฒนาส่วนใหญ่ จะทำงานอย่างไร
ยกตัวอย่างงานอย่างการเขียน CRUD endpoint ของโปรแกรมเมอร์ระดับจูเนียร์ การอธิบายความต้องการให้ตรงกับสิ่งที่ฉันต้องการเป๊ะ ๆ อาจใช้เวลามากกว่าการลงมือเขียนโค้ดเองโดยมีเครื่องมืออย่าง Copilot ช่วยเสียอีก
จะนึกภาพผู้ใช้ที่ไม่ใช่สายเทคนิคพัฒนาทุกอย่างตั้งแต่ A ถึง Z ด้วย AI ได้จริงหรือ? ถ้าโค้ดที่สร้างขึ้นมีบั๊ก จะถือว่าไม่ต้องมีคนเข้ามาแทรกแซงเลยในทุกช่วงได้หรือ?
ต่อให้มีคนสายเทคนิคเข้ามาตอนเกิดบั๊ก ถ้าต้องเสียเวลาไล่ดูสิ่งที่ AI เขียนและทำความเข้าใจว่าเกิดอะไรขึ้นหลังเหตุการณ์ ต้นทุนที่ประหยัดได้จากการเขียนโค้ดก็หายไปอย่างรวดเร็ว
สุดท้ายแล้ว การเขียนโค้ดเป็นเพียงส่วนเล็ก ๆ ของงาน และแม้ LLM จะเก่งเรื่องสร้างโค้ด แต่โดยแก่นแท้แล้วไม่ได้เป็นผู้แก้ปัญหา
เทคโนโลยีนี้น่าทึ่ง แต่ดูเหมือนจะเป็นเพียงอีกหนึ่งเครื่องมือในกล่องเครื่องมือของนักพัฒนา อีกทั้งยังเป็นติวเตอร์ที่ยอดเยี่ยม และสำหรับปัญหาเฉพาะจบอย่างสคริปต์ดึงข้อมูลจากหน้าเว็บ ก็ช่วยให้ไม่ต้องเรียกนักพัฒนาได้
แต่มันทำให้เวิร์กโฟลว์ของนักพัฒนาหลายคนง่ายขึ้นมาก จนใช้คนน้อยลงได้ หรือใช้จำนวนคนเท่าเดิมแต่ทำงานได้มากขึ้น
ผมก็เคยเขียนเรื่องนี้ไว้ที่อื่นในเธรดนี้: https://news.ycombinator.com/item?id=38259425
โดยพื้นฐานแล้วมันให้ความรู้สึกเหมือนเป็นผู้ช่วยอเนกประสงค์ที่ทรงพลังมากและเป็นเพื่อนช่วยระดมความคิดสำหรับงานที่ปกติกินเวลามาก
ไม่ได้จำกัดแค่เรื่องโค้ด ผมยังใช้กับงานเอกสาร เช่น ป้อนข้อมูลหยาบ ๆ แล้วให้จัดเป็นเอกสารที่สอดคล้องกัน หรือใช้เพื่อรับฟีดแบ็ก
ตอนออนบอร์ดเข้าทีมในโปรเจกต์ใหม่ มันก็ช่วยได้ด้วยการเอาเศษเสี้ยวเอกสารที่เข้าใจยากมาให้มันอธิบาย
แม้แต่งานจิปาถะที่เกี่ยวกับผู้บริหาร ผมก็ใส่คำขอและมุมมองของตัวเองลงไป แล้วให้มันสร้างคำตอบที่ปรับตามมุมมองเฉพาะ ทำให้ใช้พลังใจน้อยลง
แน่นอนว่าทำสิ่งเหล่านี้กับคนอื่นในทีมก็ได้ แต่พวกเขาไม่ได้อยู่ข้าง ๆ ตลอดเวลาและต่างก็มีงานของตัวเอง ส่วนเครื่องมืออย่าง ChatGPT ไม่รู้จักเหนื่อย จึงเปิดโอกาสให้ปล่อยเด็กน้อยในใจที่ถามว่า “ทำไม?” ซ้ำ ๆ ได้เต็มที่จนกว่าจะพอใจ
แม้ในกรณีที่ถามคนอื่นได้ ChatGPT ก็ยังช่วยขัดเกลาคำถามให้ดีขึ้นได้
ค่อนข้างมีประโยชน์กับงานซ้ำ ๆ งานน่าเบื่อ หรือการแปลงอัลกอริทึมที่คนอธิบายไว้ให้เป็นโค้ด
มันก็แปลงภาษาของโค้ดได้ดี และถ้าสั่งถูกทางก็ทำงานให้เสร็จได้
เรื่องนี้จะกระทบต่อแนวโน้มการจ้างงานอย่างมาก แม้มันยังแทนวิศวกรไม่ได้ แต่คนที่เชี่ยวชาญเฉพาะทางในฐานะ ผู้เชี่ยวชาญด้านการลงมือสร้าง ของเทคโนโลยีบางอย่างมีความเสี่ยง ต่อให้มีแค่การเพิ่มผลิตภาพ ความต้องการก็จะลดลง
จากประสบการณ์เชิง anecdotal ที่เห็นในเทศบาลทั้ง 98 แห่ง เครื่องมือแบบนั้นไม่เคยทำงานได้ยืนยาว
แต่ตอนนี้พนักงานที่พอมีเซนส์ด้านดิจิทัลสามารถใช้ ChatGPT ช่วยสร้างอะไรบางอย่างและทำระบบอัตโนมัติได้
ในมุมของการบำรุงรักษาระยะยาว หลายอย่างก็ยังแย่เหมือน RPA หรือเครื่องมือเวิร์กโฟลว์ในอดีต แต่ครั้งนี้ผู้ใช้เองอาจดูแลต่อได้
เพียงแต่พวกเขาไม่ใช่นักพัฒนาซอฟต์แวร์ จึงทำเรื่องอย่าง scalability, การใช้ทรัพยากร, เอกสารประกอบ, การจัดการข้อผิดพลาด ไม่ได้
ถึงอย่างนั้น ส่วนใหญ่ก็เป็นแค่การ “ประหยัด” เวลาเดือนละไม่กี่ชั่วโมง จึงไม่สำคัญพอจะดึงนักพัฒนาตัวจริงมาทำ ดังนั้นแค่ได้สัก 90% ก็อาจเพียงพอ
เมื่อรวมกับการพัฒนาของเครื่องมืออย่าง SharePoint Online งานที่เดิมต้องใช้นักพัฒนาภายในหรือที่ปรึกษาภายนอกก็อาจทำกันเองภายในองค์กรได้
นี่ไม่ใช่จุดจบของวิศวกรรมซอฟต์แวร์ มันจะไม่ขยายขนาดได้ และระยะยาวสถาปัตยกรรมแบบสมัครเล่นเหล่านี้คงต้องมาเชื่อมต่อกันจนเกิดปัญหา
แต่ถ้ายังต้อง Google เพื่อหาวิธีดึงข้อความสุ่มไม่กี่บรรทัดออกจาก dictionary ก็ยากจะบอกว่าไม่อันตราย
GPT จัดการกับ “โปรแกรมที่เขียนได้ด้วยการ Google หา” ได้ค่อนข้างง่ายและดีพอสมควร ดังนั้นสิ่งนี้จะเกิดขึ้นในอุตสาหกรรมมากขึ้นเรื่อย ๆ
ถ้าดูประวัติของผมจะเห็นว่าผมทั้งทึ่งและผิดหวังกับ LLM หรือให้แม่นคือ GPT ส่วนโมเดลอื่นพูดตรง ๆ ว่ายังไม่ค่อยน่าประทับใจ
ในงานประจำวันมันไม่ได้ช่วยการพัฒนาจริงมากนัก แต่เขียนเอกสารให้เกือบทั้งหมด และทำได้ดีจนน่ากลัว
มันยังทำ code generation เยอะมากจาก Excel data mapping sheet เช่น สร้าง type, class และ CRUD functionality เมื่อก่อนผมใช้สคริปต์ CLI สั้น ๆ แต่ตอนนี้ GPT จัดการให้เกือบหมด
แต่ถ้าจะให้ออกแบบ business logic ที่ต้องการประสิทธิภาพให้เป็นโค้ดที่ดี มันแย่มาก และจนถึงตอนนี้ก็ไม่ได้ดีขึ้นเลยแม้แต่น้อย
ในบริษัทยักษ์ใหญ่ที่ไม่ใช่สายเทคนิคในยุโรปและอุตสาหกรรม IT/ที่ปรึกษาขนาดมหึมาที่คอยสนับสนุนพวกเขา มีนักพัฒนาจำนวนมากที่ทำงานแบบที่ GPT ทำได้ดี และยิ่งเครื่องมือดีขึ้น โดยรวมก็จะยิ่งต้องการนักพัฒนาซอฟต์แวร์น้อยลงมาก
สิ่งที่น่ากังวลเป็นพิเศษคือเรายังสอนเนื้อหาที่ GPT ทำได้ดีอยู่มากให้กับนักศึกษา CS
ผมเป็นผู้ตรวจสอบภายนอกของนักศึกษา CS ระดับ academy และ GPT สามารถทำคะแนนหลักสูตรได้แทบเต็ม เพราะหลักสูตรเน้นการผลิตโค้ดองค์กรแบบ “ง่าย” เป็นส่วนใหญ่
ผมกลัวว่าเมื่อ LLM ลงหลักปักฐานจริงจัง นักศึกษาจำนวนมากจะต้องผ่านช่วงเวลาที่ยากลำบาก และหลักสูตรก็คงไม่เปลี่ยนทันเวลา การศึกษาระดับสูงของเดนมาร์กปรับตัวเข้ากับความเป็นจริงช้า และก็ดูค่อนข้างล้าสมัยมาตั้งแต่ 10 ปีก่อนแล้ว
คำพูดที่ว่า “การเขียนโปรแกรมใกล้เคียงกับความอดทน หรืออาจถึงขั้นความหมกมุ่น มากกว่าความรู้หรือทักษะ โปรแกรมเมอร์คือคนที่ทนต่อแถวอุปสรรคอันน่าเบื่อที่ไม่มีวันจบสิ้น” จับประเด็นได้ดีว่าทำไมจึงมองโลกในแง่ดีต่อการเขียนโปรแกรมแบบมี AI ช่วย
เส้นโค้งการเริ่มต้นเรียนเขียนโปรแกรมนั้นชันอย่างเลวร้าย ไม่ใช่เพราะมันยาก แต่เพราะมันน่าหงุดหงิด
กว่าคุณจะรู้สึกว่าตัวเองสร้างอะไรได้จริงและกำลังก้าวหน้า คุณต้องทนอยู่กับข้อความ error แปลกๆ และ semicolon ที่หายไปเป็นเวลา 6 เดือน
คนส่วนใหญ่ยอมแพ้และคิดว่าตัวเอง “ไม่ฉลาดพอ” แต่ความจริงคือพวกเขาแค่ไม่มีความอดทนพอจะลุยผ่านโคลนตมนั้น
มองว่า LLM ส่งผลอย่างมากต่อ เส้นโค้งการเรียนรู้ช่วงต้น นั้น การที่คนจำนวนมากขึ้นจะได้เรียนการเขียนโปรแกรมพื้นฐานและสามารถใช้คอมพิวเตอร์ทำงานซ้ำๆ น่าเบื่อในชีวิตให้เป็นอัตโนมัติได้ เป็นเรื่องที่ดี
โปรแกรมเมอร์ต้องยอมรับ ความจริงอันน่าเกลียด ในชีวิตประจำวันมากกว่าอาชีพอื่นแทบทั้งหมด วิศวกรฟิสิกส์ คนงานก่อสร้าง และช่างซ่อมก็ต้องมีคุณสมบัตินี้เช่นกัน แต่เพราะวงจร feedback ช้ากว่า จึงถูกเรียกร้องคุณสมบัตินี้ไม่บ่อยเท่า
คล้ายกับการบอกว่า Google Translate ทำให้ทุกคนพูดสเปนได้คล่องแล้ว
สุดท้ายแล้ว ถ้าจะใช้ ChatGPT ได้อย่างมีประสิทธิภาพ คุณก็ยังต้องตรวจโค้ดและเข้าใจว่ามันทำงานอย่างไรอยู่ดี
การพิมพ์โค้ดจริงๆ ไม่เคยเป็นส่วนที่ยากของการพัฒนาซอฟต์แวร์
ถ้าเครื่องมือนี้ช่วยให้นักพัฒนาไปได้เร็วขึ้นแค่ 6 เดือน การเปิดสอนวิทยาการคอมพิวเตอร์ในโรงเรียนจะคุ้มค่ากับทรัพยากรประมวลผลมากกว่า และสร้างวิศวกรรุ่นที่แข็งแกร่งกว่ามาก
โครงการซอฟต์แวร์ขนาดใหญ่ที่มีผู้ใช้มากมักมี backlog ของบัตรบั๊กที่แทบถูกทิ้งไว้ไม่สิ้นสุด
เหมือนว่าเมื่อไม่กี่เดือนก่อน Firefox เพิ่งแก้บั๊กอายุ 25 ปีได้
คอมไพเลอร์และเฟรมเวิร์กส่วนใหญ่มี ticket สะสมอยู่มากมายประมาณว่า “ปรับปรุงข้อความ error เมื่อเกิด X” แต่เวลาของโปรแกรมเมอร์แพงเกินกว่าจะถูกจัดลำดับความสำคัญ
เมื่อเวลาผ่านไป ความต่างระหว่างซีเนียร์กับจูเนียร์มักไม่ใช่เรื่องสติปัญญาหรือประสบการณ์จริงเสียทีเดียว แต่เป็นบาดแผลสะสมจากการฝ่าบั๊กและปัญหาด้าน usability ที่ไม่เคยถูกแก้ก่อนผลิตภัณฑ์จะหมดอายุ
ถ้า AI จะมาแทนที่โปรแกรมเมอร์ทั้งหมดคงยังต้องมีความก้าวหน้าครั้งใหญ่อีกหลายครั้ง แต่การปล่อยมันเข้าไปใน bug tracker แล้วให้มันทำงานแก้ไขเล็กๆ น้อยๆ ทั้งวันนั้นอยู่ในระยะที่พอมองเห็นได้แล้ว
ถ้าเป็นแบบนั้น การเขียนโปรแกรมโดยมนุษย์ก็น่าจะสนุกขึ้นและเรียนรู้ง่ายขึ้น
มันทำให้นึกถึงคนธรรมดาที่ใช้ชีวิตอยู่ภายใต้ข้อจำกัดของแอปที่ตัวเองใช้ และความนิยมของหนังสือแนว “ทำงานอัตโนมัติด้วย Python”
ถ้าเทคโนโลยีใหม่นี้ช่วยให้ผู้คนไม่ต้องถูกจำกัดด้วยสิ่งเหล่านั้นอีกต่อไป ก็ค่อนข้างเจ๋งเลย
โค้ดยังคงเป็นสิ่งที่ซับซ้อนและเปราะบาง
การที่ LLM เขียนโค้ดได้เป็นเพียงจุดเริ่มต้น และสำหรับคนส่วนใหญ่ low-code/no-code ที่มี LLM ช่วยน่าจะเป็นทางเลือกที่เหมาะกว่า
กำลังถกเถียงเรื่องนี้กับเพื่อนที่ทำงานด้าน AI และ neural network
เพื่อนบอกว่าการเขียนโค้ดกำลังจะล้าสมัยและทั้งหมดจะถูกแทนที่ด้วยการสร้างโค้ดแบบ ChatGPT
ส่วนฉันในฐานะ “วิศวกรอาวุโส” มองว่างานส่วนใหญ่แบบท่วมท้นของฉันคือการสื่อสาร ความเป็นผู้นำภายในองค์กร การทำความเข้าใจความต้องการของผลิตภัณฑ์จริงๆ และดูว่ามันเชื่อมเข้ากับระบบของเราอย่างไร
ฉันก็เขียนโค้ด แต่ถึงแม้งานส่วนใหญ่นั้นจะถูกเสริมด้วยการสร้างโค้ด สิ่งที่ฉันทำเป็นหลักก็คงแทบไม่เปลี่ยน
งานของจูเนียร์ไม่ใช่แบบนั้น แต่คือรับ issue ที่ลงทะเบียนไว้มาแล้วนำไป implement พวกเขาไม่ได้รับปัญหาที่ยาก และจะได้รับทั้งงานและเกณฑ์การยอมรับมาพร้อมกัน
ถ้าในอนาคตมีอะไรอย่าง CodeGPT ที่มาแทนทักษะการเขียนโปรแกรมของพวกเขาได้ทั้งหมด แล้วอีก 10 ปีข้างหน้าเส้นทางที่พวกเขาจะกลายเป็นซีเนียร์จะเป็นอย่างไร?
ซีเนียร์ในตอนนี้จะเกษียณในอีก 10-20 ปี และเมื่อพวกเขาถูกแทนที่ด้วยคนที่ได้รับประโยชน์จากการสร้างโค้ดอัตโนมัติมาโดยตรง “การเขียนโค้ด” ก็อาจกลายเป็นสิ่งที่คนแก่ทำกันก่อนที่เครื่องจักรจะเข้ามาทำแทน
ถ้า AI ทำให้ทีมเล็กลงแต่มีความสามารถมากขึ้นได้ ก็จะยิ่งต้องการหัวหน้าและการประชุมน้อยลง และทุกอย่างจะมีประสิทธิภาพขึ้นมาก
เวลาที่เคยใช้ไปกับการสอนงานวิศวกรจูเนียร์ก็คงต้องบอกลา เพราะอีกไม่นานอาจจะไม่มีจูเนียร์แล้ว
ใช้เวลาไปกับการสำรวจองค์กร เชื่อมต่อกับทีมอื่น และพยายามทำความเข้าใจว่าควรทำอะไร
โค้ดที่ฉันเขียนให้ความรู้สึกเหมือนเป็นผลพลอยได้จากงานจริงที่ทำมากกว่า
อย่างแรก จำนวนคนที่เกี่ยวข้องจะลดลง ทำให้การประสานงานง่ายขึ้น
อย่างที่สอง คนจำนวนมากขึ้นจะเข้าถึงบทบาทด้านการประสานงานได้ และมีแนวโน้มสูงที่อาชีพหรือบุคลิกแบบที่ปกติไม่ใช่คน “เขียนโค้ดเก่ง” จะมารับบทบาทนั้น
หากเครื่องจักรสามารถอธิบายวิธีทำงานทั่วไปของสิ่งที่กำลังถูกสร้างขึ้นได้ เช่นนี้ พวกเขาก็ไม่จำเป็นต้องมีทักษะการเขียนโค้ดที่ยอดเยี่ยมอีกต่อไป
ดังนั้นคาดว่าขอบเขตของงานจะสั่นสะเทือนอย่างหนัก และค่าจ้างจะลดลงอย่างรุนแรง
บทความนี้ดูไม่เหมือนเขียนโดยโปรแกรมเมอร์นัก และคอมเมนต์บางส่วนก็ดูไม่เหมือนวิศวกรมืออาชีพ
ในอนาคตอันใกล้ AI จะสามารถเข้ามาแทนที่งานส่วนไหนของโปรแกรมเมอร์ได้อย่างสมจริงบ้าง?
เพื่อให้ถกกันต่อ สมมติว่าส่วนของการเขียนโค้ดสามารถถูกแทนที่ได้อย่างคุ้มค่าในเชิงต้นทุน แล้วส่วนอื่นจะทำได้ด้วยไหม?
มีทั้งการรับ requirement ที่คลุมเครือมาแล้วไปทำให้ชัดเจนร่วมกับทีมดีไซน์ ทีมผลิตภัณฑ์ ฯลฯ, การสั่งงาน AI ให้มากพอจนสร้างฟีเจอร์ซับซ้อนได้, การรีวิวโค้ด, การจัดการกับ build ที่ล้มเหลวแบบสุ่ม, การเขียนเอกสารฟีเจอร์ให้โปรแกรมเมอร์คนอื่นและผู้มีส่วนได้ส่วนเสียเข้าใจได้, การดีบักและแก้ไขปัญหาใน production
ในความเป็นจริง ก่อนที่ AI จะมีโอกาสแทนที่โปรแกรมเมอร์ที่ใช้ได้ดีอย่างมีประสิทธิภาพ น่าจะมีช่วงยาวที่โปรแกรมเมอร์ใช้ AI เพื่อทำงานได้มีประสิทธิภาพมากขึ้นก่อน
มันจะเอื้อประโยชน์กับวิศวกรที่คิดในเชิงนามธรรมได้ดีกว่า และจะเริ่มดูดซับ งานเขียนโปรแกรมระดับล่าง ไปก่อน
การแก้ build failure แบบสุ่มก็น่าจะตามมาเป็นลำดับถัดไป
จากนั้นคำถามคือมันจะดึงงานของโปรแกรมเมอร์ไปได้กี่เปอร์เซ็นต์ และส่วนที่เหลือจะต้องอาศัยชุดทักษะอื่นหรือไม่
มีโปรแกรมเมอร์ที่เขียนโค้ดเก่ง แต่พอธุรกิจให้ requirement ที่คลุมเครือนิดหน่อยก็โวยวายเสียงดัง เพราะมองว่างานของตัวเองมีแค่การเขียนโค้ด ไม่ใช่การช่วยทำกฎทางธุรกิจให้ชัดเจน
คนกลุ่มนี้จะได้รับผลกระทบมากกว่าโปรแกรมเมอร์ที่เต็มใจทำงานเพื่อทำความเข้าใจความต้องการทางธุรกิจแม้อยู่ในสถานการณ์ที่คลุมเครือ
มันทำผิดพลาดได้ แต่ความผิดพลาดนั้นดูมีความสัมพันธ์กับความผิดพลาดของมนุษย์ต่ำ
โดยเฉพาะในช่วงที่ Google ใช้งานได้น้อยลงเรื่อย ๆ มันกลับรู้เรื่องที่ปกติฉันต้องใช้เวลาค้นหาหลายชั่วโมง
ส่วนตัวฉันใช้มันกับงานสคริปต์และ การช่วยด้านการทำงานจริง
ถ้าดูจากเครื่องมือปัจจุบันก็ยังรู้สึกว่าอีกไกลมาก
รู้สึกว่าชื่อเรื่องไม่ค่อยตรงกับเนื้อหา
ชื่อเรื่องพูดเหมือนทักษะการเขียนโปรแกรมจะถูกแทนที่ แต่เนื้อหาจริงกลับบอกว่ามันจะเปลี่ยนแปลงครั้งใหญ่ และสัญชาตญาณของฉันก็เอนเอียงไปทางนั้นมากกว่า
สุดท้ายแล้วกำแพงในการเข้าสู่อาชีพกำลังต่ำลง นี่เป็นเรื่องแย่ไหม? ในมุมมองแบบเห็นแก่ตัวอาจใช่ แต่ในมุมมองของสังคมไม่ใช่
ฉันคิดว่าปัญหาหนึ่งที่แคนาดาและสหรัฐฯ บางส่วนกำลังเผชิญคือความไม่เท่าเทียม
คนที่ทำงานบริการที่ “ธรรมดากว่า” มีรายได้น้อยกว่าวิศวกรมาก และตลอดหลายปีที่ผ่านมาเรื่องนี้ก็น่าอึดอัดไม่น้อย
คุณค่าทางสังคมของ generative AI คือการทำให้งานใช้ความรู้ เช่น กฎหมาย การแพทย์ และวิศวกรรมซอฟต์แวร์ เข้าถึงได้มากขึ้นมากสำหรับคน “ทั่วไป”
มันอาจมีข้อเสีย แต่การกระจายอำนาจให้สม่ำเสมอกว่าน่าจะเป็นเส้นทางที่ใกล้ยูโทเปียมากกว่าความเป็นชนชั้นนำที่ผิดเพี้ยน ซึ่งอย่างหลังฟังดูเหมือนเส้นทางสู่เผด็จการ
ถ้าค่าแรงขั้นต่ำคือรายได้ที่ต่ำที่สุด และเงินเดือนโปรแกรมเมอร์คือรายได้ที่สูงที่สุด อเมริกาก็คงเป็นเศรษฐกิจที่เท่าเทียมมาก
ถ้าเราเอาเส้นทางชนชั้นกลางที่ยังเหลืออยู่ในสหรัฐฯ ไปทำให้เป็นอัตโนมัติ ก็จะยิ่งขยายช่องว่างระหว่างนายทุนที่เป็นเจ้าของโครงสร้างพื้นฐานของระบบอัตโนมัติ กับคนที่ถูกผลักเข้าไปอยู่ในภาคส่วนที่ยังไม่ถูกทำให้เป็นอัตโนมัติและกำลังหดตัวลง
แบบนั้นก็ไม่ได้ทำให้สถานการณ์ของพวกเขาดีขึ้น
ในฐานะคนผมหงอกที่ไม่ได้เขียนโค้ดทุกวัน ChatGPT น่าประทับใจในฐานะผู้ช่วยเขียนโปรแกรม
มันให้ความรู้สึกเหมือนมีนักพัฒนาระดับจูเนียร์ที่พร้อม on-call เดือนละ 20 ดอลลาร์
เดือนก่อนผมต้องการยูทิลิตีที่ทำงานได้เร็ว ๆ แบบไม่เนี้ยบ จึงแบ่งปัญหาออกเป็น 4-5 ขั้นตอนด้วยตัวเอง แล้วให้ ChatGPT เขียนฟังก์ชันของแต่ละขั้นตอน จากนั้นผมค่อยนำมาต่อเข้าด้วยกัน
ส่วนใหญ่ผ่านไปได้ด้วยดี แต่มีอยู่ส่วนหนึ่งที่ต้องคอยชี้นำและขัดเกลาเยอะเกินไปกว่าจะได้ผลลัพธ์ตามที่ต้องการ