- แม้จะทำโปรเจ็กต์ให้เสร็จด้วย generative AI แต่ถ้าคนที่ขอและผู้ที่ลงมือสร้างจริงเป็นคนละคน ก็ยากจะได้ ความภูมิใจว่า ‘ฉันเป็นคนทำ’
- การเขียนพรอมป์ต์ต้องอาศัยวิสัยทัศน์ การตัดสินใจ การสื่อสาร และทักษะ แต่ใกล้เคียงกับ ทักษะการมอบหมายให้สิ่งอื่นสร้างแทน มากกว่าทักษะการลงมือทำเอง
- ระบบแฟลชการ์ดภาษาสเปน 177 บรรทัดที่เขียนเองใช้เวลานานกว่า Claude ราว 50 เท่า แต่ให้ความภูมิใจมากกว่าโค้ดใด ๆ ที่ AI สร้าง
- ในขณะที่คอมไพเลอร์ แอสเซมเบลอร์ และค้อนให้ความรู้สึกเป็นเครื่องมือของผู้สร้าง AI ที่ตอบสนองต่อภาษามนุษย์กลับดูคล้ายคนที่รับคำสั่ง จึงทำให้ เส้นแบ่งระหว่างเครื่องมือกับผู้รับจ้างสร้างแทน พร่าเลือน
- การสร้างผ่าน AI อาจนับเป็นงานสร้างสรรค์ได้ แต่การทำให้ผลงานเสร็จ กับการลงมือสร้างเอง ไม่ได้ให้ความอิ่มเอมส่วนตัวเท่ากัน และก็ยากจะกำหนดเส้นแบ่งนั้นให้ชัดเจน
ความสำเร็จที่ AI เปลี่ยนความหมายไปในการพัฒนา
- นักพัฒนาที่ใช้ generative AI และ LLM มักพบกับการเปลี่ยนแปลงที่สวนทางกัน
- อาจสูญเสีย งานฝีมือแบบช่าง, การแก้ปัญหาระดับล่าง และความสนุกของการเขียนโค้ดด้วยมือตัวเอง
- แต่อาจได้ทำโจทย์ระดับสูงมากขึ้น ปิดโปรเจ็กต์ที่ค้างไว้ และพบความสนุกแบบใหม่
- นอกเหนือจากข้อดีข้อเสียเหล่านี้ คำถามสำคัญคือจะ รู้สึกได้หรือไม่ว่าเป็นสิ่งที่ตัวเองสร้าง เมื่อผลลัพธ์นั้นถูกทำให้เสร็จโดย AI
- เรื่องนี้เริ่มจากประสบการณ์ของนักพัฒนาที่เขียนโค้ดมาตั้งแต่ยุคไมโครคอมพิวเตอร์ในทศวรรษ 1980 ทำงานในวงการมา 20 ปี และปัจจุบันสอนวิทยาการคอมพิวเตอร์
- เขาประเมินตัวเองว่าอยู่ฝั่งหายนะ 65% บนสเกลระหว่าง AI ยูโทเปียกับหายนะ
- ใช้ Claude Code ควบคู่กับการเขียนโค้ดเอง
‘ความสารพัดเก่ง’ ที่ตกแต่งด้วยผลลัพธ์จาก AI
- ช่วงต้นเรื่องมีผลงานหลายชิ้นที่ดูเหมือนทำขึ้นเอง
- นิยายวิทยาศาสตร์ฉากต่อสู้ The Vorrkai Interval
- ภาพพิมพ์ไม้โทนพาสเทล Mirrors of the Machine
- ระเบียงหน้าบ้านไม้ซีดาร์ที่สร้างใหม่
- โค้ดเกมผจญภัย roguelike แบบ TUI ที่เขียนด้วย Rust
- แต่ในความจริง นิยาย ภาพ และโค้ดนั้น AI เป็นผู้สร้าง ส่วนระเบียงสร้างโดยช่างฝีมือที่รับค่าจ้าง
- บทบาทของผู้เขียนคือเริ่มต้นงานและสื่อสารความต้องการ จึงรู้สึกกระอักกระอ่วนหากจะพูดว่าผลงานเหล่านี้เป็นสิ่งที่ตนสร้าง
ทำไมจึงพูดได้ยากว่า ‘ฉันเป็นคนสร้าง’
- สำหรับระเบียงที่คนอื่นเป็นผู้ก่อสร้าง เขามองว่าการพูดว่า “ให้เขามาติดตั้ง” แม่นยำกว่าพูดว่า “ฉันติดตั้งเอง”
- โค้ดที่ Claude สร้างก็เช่นกัน เขาไม่ได้พูดว่า “ฉันสร้างมัน” แต่พูดว่า “ฉันให้มันสร้างให้ฉัน”
- เขายังรู้สึกไม่สบายใจที่จะใส่ MIT license พร้อมชื่อตัวเองบนงานที่ AI สร้างโดยไม่ใช่ความสัมพันธ์แบบจ้างงาน จึงใช้ Unlicense
- แม้ตอนทำงานเป็นผู้จัดการ เขาก็พูดว่า “ทีมของเราสร้างผลิตภัณฑ์นี้” ไม่ใช่ “ฉันสร้างผลิตภัณฑ์นี้” และถ้าเป็นการจัดการ LLM ก็จะพูดว่า “เอเจนต์ของฉันเป็นคนสร้าง”
- การทำโปรเจ็กต์ให้เสร็จนั้นเป็นเรื่องดี แต่ถ้าโปรเจ็กต์ที่ตนเริ่มต้นถูกคนอื่นทำจนเสร็จ ความอิ่มเอมจะน้อยกว่าการลงมือสร้างเองมาก
- สิ่งที่สูญเสียไปไม่ใช่แค่ทักษะการเขียนโค้ดหรือความสนุกในการแก้ปัญหา แต่คือ ประสบการณ์ของการได้สร้างบางอย่างด้วยมือตัวเอง
แฟลชการ์ด 177 บรรทัดที่เขียนด้วยมือ
- ภรรยาขอระบบเรียนภาษาสเปนแบบง่าย ๆ ที่ใส่คำศัพท์ที่ต้องการลงในสเปรดชีตแล้วดูเป็นแฟลชการ์ดได้
- เขารับหน้าที่ลงมือทำเอง และสั่ง Claude ว่าอย่าสร้างโค้ด ให้ช่วยตอบเพียงข้อมูลพื้นฐาน เช่น วิธีที่ง่ายที่สุดในการดึงข้อมูลจาก Google Sheets
- ใช้ CSV endpoint ของ Google Sheets
- เขียนทั้งหมด 4 ไฟล์ รวม 177 บรรทัด: JavaScript 112 บรรทัด, CSS 33 บรรทัด, HTML 32 บรรทัด
- แม้จะใช้เวลานานกว่าตอนให้ Claude ทำประมาณ 50 เท่า แต่เขาสามารถใส่ชื่อตัวเองและพูดได้ว่าเป็นคนสร้างมันขึ้นมา
- ถึงจะไม่ใช่โค้ดชิ้นใหญ่หรือปฏิวัติวงการ แต่เขาภูมิใจกับมันมากกว่าโค้ดใด ๆ ที่ Claude เขียน
- เช่นเดียวกับที่ภรรยาซึ่งเป็นคนเริ่มความต้องการ ไม่ได้พูดว่าเธอเป็นคนเขียนระบบแฟลชการ์ด คนที่ร้องขอก็ไม่เท่ากับผู้สร้างเสมอไป
การเขียนพรอมป์ต์คือทักษะอีกแบบหนึ่ง
- พรอมป์ต์ที่มีประสิทธิภาพต้องอาศัยการมีส่วนร่วมของมนุษย์อย่างชัดเจน
- ต้องใส่ วิสัยทัศน์ ลงไป
- ต้องตัดสินผลลัพธ์ได้
- ต้องมีความสามารถในการสื่อสารและเขียนพรอมป์ต์
- ไม่ใช่ทุกพรอมป์ต์หรือผู้ใช้ AI จะมีประสิทธิภาพเท่ากัน จึงมีทักษะสำคัญอยู่ในการพรอมป์ต์จริง
- แต่ทักษะนี้ก็ใกล้เคียงกับ ความสามารถในการขอให้สร้างสิ่งที่ต้องการอย่างมีประสิทธิภาพ มากกว่าความสามารถในการลงมือสร้างเอง
- แม้แต่การพรอมป์ต์เพื่อทำซอฟต์แวร์ก็ยังให้ความรู้สึกคล้ายการมอบหมายให้สิ่งอื่นสร้าง มากกว่าการสร้างซอฟต์แวร์ด้วยตนเอง
พื้นที่สีเทาระหว่างคอมไพเลอร์กับ AI
- เวลาเขียนโปรแกรม C หรือ Rust ผู้เขียนไม่ได้เขียน machine code ที่รันจริงด้วยมือตัวเอง แต่ก็ยังรู้สึกว่าตัวเองเป็นคนเขียนโปรแกรมนั้น
- การแปลงจากโค้ด C ไปเป็น machine code ใกล้เคียงกับกระบวนการที่แม่นยำทางคณิตศาสตร์ แต่ก็ยังมีคำถามบางอย่างคงอยู่
- Clang และ GCC สร้างชุดคำสั่งต่างกัน ผลลัพธ์จึงไม่ได้ถูกกำหนดอย่างเคร่งครัดให้มีเพียงแบบเดียว
- machine code อาจต่างกันในแต่ละแพลตฟอร์ม แต่โค้ด C ยังพกพาได้
- แม้จะ build แค่บน Linux ก็ยังอาจมองได้ว่าโปรแกรมที่รันบน Windows เป็นสิ่งที่ตนเขียน
- เมื่อขอให้ Claude แปลงโปรแกรม C แบบ recursive Fibonacci เป็นแอสเซมบลี x86_64 Linux ก็ได้โค้ดที่ build และรันได้
- เอาต์พุตแสดงลำดับ Fibonacci ถูกต้องตั้งแต่
0: 0ถึง9: 34 - ยังใช้ XOR เพื่อตั้งค่าสถานะจบการทำงานเป็น 0 ด้วย
- เอาต์พุตแสดงลำดับ Fibonacci ถูกต้องตั้งแต่
- เพราะต้นฉบับโค้ด C เขียนเอง แม้แอสเซมบลีจะถูกสร้างโดย Claude เขาก็ยังรู้สึกว่าโปรแกรมนั้นเป็นสิ่งที่ตนเขียน
- การแปลงจากแอสเซมบลีไปเป็น machine code เป็นกระบวนการที่เข้มงวดและไร้ปัญญา จึงถูกมองเหมือน การใช้เครื่องมือที่ไม่ได้แย่งบทบาทการสร้างไป คล้ายการใช้ค้อนตอกตะปู
เกณฑ์ที่แบ่งเครื่องมือออกจากผู้สร้างแทน
- สิ่งที่นับว่าได้ลงมือเอง เช่น เขียนโค้ด C แล้วรัน ใช้ค้อนตอกตะปู และใช้แอสเซมเบลอร์แปลงแอสเซมบลีเป็น machine code
- สิ่งที่เป็นการออกคำสั่งแล้วมอบหมายให้ผู้อื่นทำ เช่น การเขียนซอฟต์แวร์ การสร้างระเบียง หรือการวาดภาพ
- เขาไม่รู้สึกว่าภาพที่ ChatGPT สร้างเป็นภาพที่ตนวาดเอง แต่กับค้อนหรือคอมไพเลอร์ ก็ไม่มีความรู้สึกเหมือนกำลังขอให้ใครมาทำแทน
- กรณีที่ขอให้ Claude คอมไพล์โค้ด C กลับคร่อมอยู่ระหว่างสองหมวดนี้
- อาจมองว่าเป็นการรันโค้ด C ที่ตัวเองเขียน
- หรือจะมองว่าเป็นการขอให้ AI เขียนซอฟต์แวร์ก็ได้
- ผลลัพธ์เดียวกันนี้ก็อาจสร้างจากคำอธิบายภาษาอังกฤษล้วน ๆ ได้เช่นกัน
- AI เข้าใจภาษามนุษย์ที่ไม่แม่นยำและตอบสนองแบบมนุษย์ จึงอาจให้ความรู้สึกคล้าย ความสัมพันธ์ระหว่างผู้จัดการกับลูกน้อง มากกว่าคอมไพเลอร์หรือค้อน
- ถ้ามีค้อนที่ฝัง AI และต้องขอให้มันตอกตะปูให้ แม้เราจะมีส่วนร่วมในกระบวนการสร้าง ก็ยังพูดได้ยากว่าเป็นคนตอกเอง
- ยิ่งพิจารณาพื้นที่สีเทานี้มากเท่าไร ก็ยิ่งรู้สึกว่าการมอบหมายให้ AI สร้างอาจนับเป็นงานสร้างสรรค์ได้ แต่เส้นแบ่งของคำว่าได้สร้างเองยังคงไม่ชัดเจน
สิ่งที่ผู้เขียนมีส่วนลงแรงจริงในผลงานเหล่านั้น
- สำหรับฉาก SF เขาใช้พรอมป์ต์ให้สร้างสามย่อหน้าและชื่อนิยาย โดยมีฮีโร่กับผู้ลี้ภัยสองคนติดอยู่ใต้การโจมตีด้วยเลเซอร์ของศัตรู ก่อนจะหาทางหนีได้
- สำหรับภาพ เขาขอให้สร้างแฮ็กเกอร์สไตล์พ่อมดสองคนที่นั่งหันหน้าเข้าหากันและจดจ่อกับคอมพิวเตอร์ ในสไตล์ภาพพิมพ์ไม้โทนพาสเทล พร้อมใช้สีที่ตรงข้ามกันแต่เสริมกันทั้งสองฝั่ง
- สำหรับเกม เขาขอเกมแฟนตาซี TUI ที่คล้าย Ultima I
- ต้องการอักขระ 3×3 ต่อหนึ่งช่องแผนที่, 7×7 ช่องแผนที่ต่อหนึ่งหน้าจอ, และแอนิเมชันน้ำ
- มีโลกแบบ procedural ด้วย Perlin noise, มอนสเตอร์ที่กำหนดไว้ล่วงหน้าและเคลื่อนที่แบบสุ่ม, และค่าสถานะแบบ D&D
- ใช้ตัวละครผู้เล่นทั่วไปที่ไม่มีอาชีพ เขียนด้วย Rust และ Ratatui และแยก UI ออกจาก game logic
- สำหรับงานไม้ เขาขอเพียงว่า “ช่วยเปลี่ยนระเบียงหน้าบ้านให้หน่อย” แต่ตะปูหนึ่งตัวในเศษไม้ที่อยู่ในรูปเปิดเรื่อง เขาเป็นคนตอกเองจริง ๆ
- เครื่องหมาย em dash ที่ใช้ในบทความนี้เป็นการเลือกโดยตั้งใจ และ Vim digraph คือ
^K-M
1 ความคิดเห็น
ความคิดเห็นใน Hacker News
ต่อให้ไม่ได้เขียนโค้ดเองแม้แต่บรรทัดเดียวด้วย LLM ก็ยังรู้สึกภูมิใจกับ ผลงานที่ฉันสร้างขึ้น ได้
ไม่ได้คิดจะอวดว่าเป็นโปรแกรมเมอร์ที่ยอดเยี่ยม แต่เดิมทีการเขียนโค้ดก็เป็นเพียงวิธีหนึ่งในการสร้างผลิตภัณฑ์สำเร็จรูป
เหมือนกับต่อให้ไม่ได้ลงมือจัดสวนเอง แต่จ้างบริษัทภูมิสถาปัตย์ ก็ยังรู้สึกพึงพอใจกับสวนที่ฉันวางคอนเซปต์ไว้ได้
โปรแกรมแก้ไขแท็บกีตาร์ที่ทำด้วย vibe coding แก้ปัญหาจริงด้วยฟีเจอร์ที่ไม่มีในซอฟต์แวร์อื่น และถ้าไม่มี AI ก็คงไม่มีทางสร้างมันขึ้นมาได้เลย ขณะต้องทำงาน ดูแลครอบครัว และทำงานอดิเรกไปพร้อมกัน
กรณีอย่างแซนด์วิชเนยถั่วกับแยม ที่ลงมือทำเองโดยไม่มีความคิดสร้างสรรค์ เราก็ยังบอกว่าทำขึ้นมา และแม้ใช้เครื่องมืออย่างเลื่อยวงเดือนที่มาทดแทนแรงงานมือก็เช่นกัน
แต่การดาวน์โหลด
Articulated dragon.stlจากเว็บแล้วแค่กดปุ่มพิมพ์ กับการออกแบบเองแล้วพิมพ์ออกมา นั้นต่างกันการใช้งาน CNC และเครื่องพิมพ์ 3D ก็ต้องใช้ความรู้และทักษะที่ต่างจากงานทำมือ แต่ยิ่งเครื่องมือง่ายขึ้น เส้นแบ่งก็ยิ่งพร่าเลือน
แม้ไม่มีเส้นแบ่งที่ชัดเจน แต่มันอยู่ที่ไหนสักแห่งระหว่าง “เครื่องมือใหม่คือการโกง ต้องทำทุกอย่างด้วยมือ” กับ “สั่งแซนด์วิชแล้วนั่งรอ”
ถ้ามอบหมายโปรเจกต์ให้คนอื่นทำ อาจพูดได้ว่าบริหารจัดการหรือออกแบบบางส่วน แต่ยากที่จะรับเครดิตว่าลงมือทำเอง
แม้ไม่ได้ผลิตจริง ก็ยังภูมิใจกับการกำหนด ทิศทางและวิสัยทัศน์ เพื่อแก้ปัญหาได้อย่างเต็มที่
makingมีนัยของการลงมือทำเองอย่างกระตือรือร้นมากกว่า ส่วนproducingมีนัยของการกำกับและประสานงานมากกว่าหลังจากเริ่มทำงานกับโปรดิวเซอร์ในการพัฒนาเกม ความแตกต่างนี้ก็ชัดเจนขึ้น
โปรเจกต์ส่วนตัวที่ช่วงหลังให้ Claude เขียนส่วนหลัก ๆ นั้นทำฟังก์ชันที่ต้องการได้ แต่กลับรู้สึก ตัดขาดจากผลงาน อย่างน่าประหลาด และทำให้ต้องคิดว่าจะใช้ AI ในเวลาว่างอย่างไร
คอมไพเลอร์ให้ผลลัพธ์ที่เป็นแบบกำหนดแน่นอนและสม่ำเสมอต่อคำสั่งที่แม่นยำ แต่ Claude อนุมานคำสั่งที่แม่นยำน้อยกว่าโค้ด สร้างผลลัพธ์ต่างกันทุกครั้ง ใส่พฤติกรรมที่ไม่ได้ขอ และตัดสินใจแทนผู้ใช้
อาจสั่งอย่างเข้มงวดด้วยสเปก Markdown ขนาดใหญ่หรือเทสต์ที่ละเอียดได้ แต่ถ้ามีเวลาเขียนถึงขนาดนั้น ก็อาจไม่ต่างจากการเขียนโค้ดเองมากนัก
AI ยอดเยี่ยมเวลาช่วยแก้ปัญหาที่ติดขัดหรืออธิบายแนวคิดให้เหมาะกับแต่ละคน แต่ทันทีที่มอบการตัดสินใจให้มัน ก็เท่ากับให้ความสำคัญกับผลลัพธ์มากกว่าการสร้างสรรค์
โปรเจกต์ส่วนตัวที่ทำเพราะรักการสร้างสรรค์เองนั้นใกล้เคียงศิลปะมากกว่าผลิตภัณฑ์ ดังนั้น AI อาจเหมาะกับผลิตภัณฑ์ แต่ไม่เหมาะกับศิลปะ
ในสายเทคโนโลยีมีทั้งคนที่ชอบรายละเอียดและคนที่ชอบระบบ โดย สายเน้นระบบ จะรู้สึกว่า LLM สนุกและน่าพึงพอใจ ขณะที่สายเน้นรายละเอียดอาจรู้สึกตรงกันข้าม
คนรู้จักที่เคยมีชื่อเสียงด้าน computer vision ยุคก่อน neural network เคยบอกว่าในอดีตเขาแก้ปัญหาเป็นคนแรก ๆ ได้มากมาย แต่ตอนนี้การพัฒนาซอฟต์แวร์ส่วนใหญ่เป็นงานประกอบสิ่งที่รู้กันอยู่แล้ว จึงน่าเบื่อ
LLM ดูเหมือนยิ่งเร่งแนวโน้มนี้ให้เร็วขึ้น
การให้ LLM พ่นสคริปต์ออกมารู้สึกคล้ายกับการสุ่มใส่ตัวเลขลงในซูโดกุจนกว่าแอปจะบอกว่าคำตอบถูก
ไม่อยากเห็นผลงานที่ LLM สร้างขึ้นบน Hacker News
แม้จะไม่ใช่ผลิตภัณฑ์ที่ประสบความสำเร็จ แต่สิ่งที่สนุกคือการได้เห็นความคิดริเริ่มของมนุษย์ถูกนำมาใช้จริง
เหมือนกับที่ไม่ดูหมากรุกที่คอมพิวเตอร์เล่นกันเอง จึงต้องการวิธีแยกแยะและหลีกเลี่ยงซอฟต์แวร์กับศิลปะที่ AI สร้างขึ้นได้ง่าย ๆ
ความแตกต่างอยู่ที่ ระดับที่สามารถอนุมานได้ ว่าการเปลี่ยนอินพุตจะส่งผลต่อพฤติกรรมที่สังเกตได้ของเอาต์พุตอย่างไร
ถ้าไฟล์ executable ที่คอมไพเลอร์สร้างทำงานไม่ตรงตามที่ตั้งใจ 99.99% เป็นความรับผิดชอบของฉัน และฉันสามารถคาดการณ์ผลลัพธ์จากซอร์สโค้ด รวมถึงวิเคราะห์ความผิดพลาดได้
ระหว่างโปรแกรมแบบ vibe coding กับพรอมป์ต์ที่ใช้สร้าง ไม่มีความสัมพันธ์แบบเทียบเคียงกันได้เช่นนั้น
ถ้าหุ่นยนต์ตัดหญ้าอัตโนมัติเต็มรูปแบบทำงานได้ถูกต้อง ก็เป็นหุ่นยนต์ที่ตัดหญ้า แต่ถ้าฉันนั่งขับหรือควบคุมด้วยจอยสติ๊ก ก็เป็นฉันที่ตัด
สิ่งที่กำหนดความรู้สึกเป็นเจ้าของคือใครเป็น ผู้ตัดสินใจว่าจะตัดตรงไหน
ในโปรเจกต์ vibe coding ก็จะรู้สึกถึง ความเป็นเจ้าของ ในระดับต่างกันตามสัดส่วนของความใส่ใจและความเข้าใจที่ทุ่มลงไป
บางคนกำหนดเพียงว่าจะเริ่มกระบวนการเมื่อใดและผลลัพธ์ดีหรือแย่ แต่เพราะขาดความสามารถในการตัดสินจริง ๆ จึงเชื่อว่าผู้สร้างคงจัดการองค์ประกอบย่อยทั้งหมดได้ดี
คอมไพเลอร์แทบจะสร้างโปรแกรมให้เป็นไบนารีที่ถูกต้องเสมอ และหากล้มเหลวก็แจ้งชัดเจน แต่ความถูกต้องของอัลกอริทึมเป็นความรับผิดชอบของผู้ใช้ เส้นแบ่งจึงชัดเจน
ในทางกลับกัน เส้นแบ่งความรับผิดชอบของ LLM ไม่ชัดเจน และมันไม่สามารถจัดการทุกองค์ประกอบที่ไม่ได้ระบุในพรอมป์ต์ได้อย่างเสถียร
ยังต่างจากการร่วมงานกับมนุษย์ด้วย เช่น หากขอให้จิตรกรมืออาชีพวาด Batman ก็ไม่จำเป็นต้องตรวจถึงนิ้วเท้าหรือจำนวนแขน
ใช้ LLM เพราะมันเร็วกว่า แต่กลับไม่ได้รับความสนุกแบบเดิมอีกแล้ว
ความเร็วไม่จำเป็นต้องสำคัญกว่าความสนุกเสมอไป และต้องเรียนรู้ที่จะกลับมาโฟกัสกับการเขียนเอง โดยไม่มองว่ามัน “ไม่มีประสิทธิภาพ”
อยากได้ความรู้สึกตอนอายุ 13 ที่นั่งเขียนโค้ดตอนดึกกลับคืนมา และบทความของ Beej ก็น่าประทับใจเสมอ
หากสร้างงานเขียน โค้ด หรือดนตรีด้วยพรอมป์ต์เท่านั้น กระบวนการนั้นก็หายไป
เป็นเวลาประมาณสองเดือนที่นอกจากดื่มเหล้าแล้ว แม้แต่ทีวีก็ยังไม่อยากดู แต่พอเลิกเหล้ามาหลายสัปดาห์ ความอยากสร้างสรรค์เหมือนค่อย ๆ กลับมา
เคยออกแบบและสร้างกล้องกับหุ่นยนต์ขับเคลื่อนอัตโนมัติขนาดเล็กด้วยตัวเอง และในที่สุดก็ซ่อมกล้องที่กลิ้งไปมาในรถจนเสียได้แล้ว
เคยทำวิดีโอด้วยเลนส์ C-mount วินเทจแต่ละตัว ก่อนจะหมดความสนใจ เหลือแค่กล่องเลนส์กับกล้องที่กลายเป็นของประดับ แต่โปรเจกต์ฮาร์ดแวร์เหล่านี้ทำให้ได้ งานวิศวกรซอฟต์แวร์สองตำแหน่ง
เวลาพูดว่า “ผมสร้างเอง” กับโปรเจกต์ที่ Claude Code สร้างโค้ดให้ ความเคารพมักลดลงทันที แต่ท้ายที่สุดเงินและอิสรภาพคือหัวใจสำคัญ และผมเองก็อยากได้อิสรภาพก่อนแล้วค่อยทำสิ่งที่ชอบ
ถ้ายังไม่ได้ตรวจสอบ ก็น่าลองพิจารณาความเป็นไปได้ของ ADHD หรือปัจจัยอื่น ๆ ด้วย
มนุษย์ไม่ใช่เครื่องจักร แต่เป็นสิ่งมีชีวิตทางชีววิทยาที่ซับซ้อน ดังนั้นการเข้าใจลักษณะเฉพาะของตัวเองจะช่วยได้มากในการกลับมาเดินไปในทิศทางที่ถูกต้อง
งานที่เพิ่งมอบให้ AI ทำเมื่อเร็ว ๆ นี้ แม้แต่รายละเอียดคร่าว ๆ ก็ยังจำได้ยาก ในขณะที่ โค้ดเบสกว่า 100,000 บรรทัด ที่เขียนไว้เมื่อหลายปีก่อน ตอนนี้ก็ยังไล่ตามในหัวได้โดยรวม
แต่โปรเจกต์ที่ทำกับ AI เมื่อแค่ 2 สัปดาห์ก่อน กลับเหลือเป็นก้อนความทรงจำเลือน ๆ ว่า “มีใครสักคนเขียนพรอมป์ แล้วโค้ดก็ออกมา”
สมัยเป็นนักศึกษา OSU ตอนเรียนรู้ system programming เชิงปฏิบัติด้วยตัวเอง ใช้
Beej's Guide to Network Programmingอ้างอิงทุกวันเคยเสียดายว่าเว็บไซต์ฟรีนี้มีประโยชน์กว่ามหาวิทยาลัยราคาแพงมาก แต่ตอนนี้ Beej ไปสอนที่ OSU แล้ว ถือเป็นวงจรที่ยอดเยี่ยมและเป็นการจ้างงานที่ดีมาก
จะเน้นการออกแบบระดับระบบ การใช้ AI อย่างจริงจัง และโปรเจกต์กับทีมที่ใหญ่ขึ้น
การเรียนเขียนโค้ดยังคงจำเป็น แต่ ทักษะ software engineering ที่ในอดีตมักไปเรียนรู้จากงานจริง ตอนนี้ควรถูกวางไว้ในช่วงต้นของการศึกษามากขึ้น
ก็อดคิดไม่ได้ว่าถ้า LLM มาช้ากว่านี้สัก 15 ปีก็คงดี
Le Corbusier และ Frank Lloyd Wright ไม่ได้ลงมือสร้างอาคารเอง แต่เป็นผู้ออกแบบ และอาคารเหล่านั้นก็ได้รับการยอมรับอย่างไม่ต้องสงสัยว่าเป็นผลงานของพวกเขา
Steve Jobs ก็ไม่ได้ออกแบบแผงวงจรหรือเขียนโค้ดเอง แต่เขาสร้าง Mac, iPod, iPhone และจิตรกรยุคเรอเนซองส์ก็มีเวิร์กช็อปที่ลูกศิษย์เป็นผู้ลงมือทำ
การสร้างสรรค์ซอฟต์แวร์เป็นมากกว่าการเขียนโค้ด คือการเข้าใจตลาดและความต้องการ ทำการตลาดและเขียนข้อความ ตัดสินใจว่าจะสร้างหรือทิ้งอะไร และจินตนาการรูปแบบสุดท้าย
ช่างฝีมือที่สร้างบ้านของ Wright อาจภูมิใจได้ว่าตนทำหลังคา กำแพง หรือน้ำตก แต่บ้านทั้งหลังนั้นเป็นของ Wright อย่างชัดเจน
เสียงคร่ำครวญในตอนนี้ดูใกล้เคียงกับ ความกลัวอย่างมีเหตุผลต่อการสูญเสียการผูกขาดทางทักษะ
อาจเปลี่ยนไปเหมือนหลังจากเฟอร์นิเจอร์ทำมือถูก IKEA เข้ามาแทนที่ แล้วช่างไม้ฝีมือดีหันไปโฟกัสตลาดระดับไฮเอนด์ แต่ต่างกันตรงที่ลูกค้าของงานโปรแกรมมิ่งส่วนใหญ่เป็นองค์กร และเกณฑ์ผ่านคือคำถามแบบสองขั้วว่า “มันทำงานได้ไหม”