จาก “แค่รันได้ก็พอ” สู่ “กล้าแก้และยังรันได้”: ไดอารีเขียนโค้ดหนึ่งเดือนของมือใหม่
ขอชี้แจงไว้ก่อน: ผมไม่ใช่วิศวกรซอฟต์แวร์ เนื้อหาโปรแกรมที่พูดถึงในที่นี้ แท้จริงแล้วทั้งหมดคือสิ่งที่เรียกว่า Vibe Coding ซึ่งเป็นแบบที่ทำตามความรู้สึกไปเรื่อย ๆ

ช่วงนี้เพื่อให้งานราบรื่นขึ้นอีกนิด ผมพัฒนาเครื่องมือเล็ก ๆ ของตัวเองมาตลอด สองวันที่ผ่านมาทำไปสามอย่าง: เริ่มสำรองข้อมูลด้วย Git แก้ bug ในตรรกะโปรแกรมไปหลายจุด และเชื่อมต่อโมเดล AI ตัวใหม่
สิ่งที่ยากที่สุดไม่ใช่ไวยากรณ์ แต่คือการ “เปลี่ยนสิ่งที่ต้องการให้กลายเป็นโค้ด”
หนึ่งเดือนผ่านไป ข้อคิดที่ใหญ่ที่สุดคือ จุดที่ยากที่สุดของการเขียนโปรแกรมแท้จริงแล้วไม่ใช่ไวยากรณ์ แต่คือการแปลง “สิ่งที่ตัวเองต้องการจริง ๆ คืออะไร” ให้กลายเป็น “โค้ดที่เป็นรูปธรรม”
ตัวอย่างเช่น คำว่า “แก้ bug” พูดออกมาง่ายมาก แต่ก่อนจะลงมือทำจริง ต้องถามตัวเองด้วยคำถามมากมายก่อน:
- ควรบันทึกก่อนไหม?
- ควรเปิด branch ใหม่ไหม?
- ทดสอบเมื่อไหร่? แล้วจะทดสอบอย่างไร?
- หลังแก้เสร็จ แบบไหนถึงจะนับว่า “เสร็จแล้ว”?
- ควรติดหมายเลขเวอร์ชันไปด้วยเลยไหม?
แท้จริงแล้วสิ่งเหล่านี้ไม่ใช่ปัญหาโปรแกรมมิ่งเลยสักอย่าง แต่เป็นปัญหาของ “นิสัยการทำงาน” กระบวนการชุดนี้อาจพบเห็นได้ทั่วไปในวงการ แต่สำหรับมือใหม่ด้านโปรแกรมมิ่งแล้ว นี่คือฝันร้ายเต็มรูปแบบ
เรื่องเล็ก ๆ น้อย ๆ ที่ได้เรียนรู้
หนึ่งเดือนนี้ ผมได้เรียนรู้เรื่องเล็ก ๆ น้อย ๆ อยู่หลายเรื่อง ขอแบ่งปันให้กับมือใหม่ที่เป็นแบบเดียวกับผม:
- กางเกราะป้องกันไว้ก่อน แล้วค่อยลงมือแก้ได้เต็มที่ ใช้ Git ควบคุมเวอร์ชัน ต่อให้แก้พังยับ ก็กลับไปอดีตได้ภายในสามสิบวินาที อุ่นใจเหมือนมีเซฟเกม
- ทำทีละเรื่องเดียว อย่า “ถือโอกาสแก้เพิ่มอีกบรรทัด” เด็ดขาด เพราะจะทำให้ตัวคุณในอนาคตอยากเอาหัวโขกกำแพง
- ช้า คือเรื่องปกติ บ่ายทั้งบ่ายเคลียร์ได้แค่ฟีเจอร์เล็ก ๆ อันเดียว? ใช่ นี่แหละคือชีวิตประจำวัน คอร์สสอนลัดพวกนั้น ส่วนใหญ่กำลังหลอกคุณอยู่
- เขียนโน้ตทิ้งไว้ให้ตัวเองในอนาคต ไม่งั้นครั้งหน้าที่กลับมาดู คุณจะคิดว่านี่เป็นโปรแกรมที่คนอื่นเขียน (เอาละ โปรแกรมนี้ก็เขียนโดย AI จริง ๆ)
จาก “แค่รันได้ก็พอ” สู่ “กล้าแก้และยังรันได้” สิ่งที่คั่นอยู่ตรงกลาง คงเป็นนิสัยการทำงานเหล่านี้ที่ดูเผิน ๆ แล้วไม่มีอะไร แต่ก็ต้องเติมเต็มไปทีละอย่าง