เรากำลังแก้ปัญหา หรือแค่กำลังสนอง Need ในการต่อจิ๊กซอว์: สิ่งที่ผมอยากบอกตัวเองในวันที่เริ่มเขียนโค้ด

เคยไหม? ที่นั่งหลังขดหลังแข็งเขียน Class ที่ Abstract สุดๆ, รองรับทุก Edge cases, ใช้ Design Pattern ครบสูตร... แล้วมารู้ทีหลังว่าไม่มีใครใช้มันเลย แม้กระทั่งตัวเราเองในอีก 6 เดือนข้างหน้า ในหนังสือ Things I wish I knew when I started programming ของ Brent Roose มีบทเรียนหนึ่งที่ตบหน้าชาว Tech อย่างเราได้ฉาดใหญ่ นั่นคือเรื่องของ The CRUD Controller
solving-problems-vs-solving-puzzles-coding-mindset-cover-image

กับดักของนักสร้าง

ในวันที่เรายังร้อนวิชา เรามักมองโจทย์ทางธุรกิจเป็น Puzzle ที่ต้องไขให้เท่ที่สุด Brent เล่าว่าเขาเคยสร้าง CRUDController ที่เป็น Masterpiece รองรับทุก operations, มีระบบ filter, pagination, validation อัตโนมัติ เพียงแค่ extend class นี้ ทุกอย่างก็เสร็จ

ฟังดูเหมือนฝันของ Programmer ใช่ไหม? แต่มันกลายเป็นฝันร้าย เมื่อ Business Requirement เปลี่ยน (ซึ่งมันเปลี่ยนเสมอ) ความ Abstract ที่สร้างไว้กลับกลายเป็นโซ่ตรวน การแก้เล็กๆ น้อยๆ กลายเป็นเรื่องใหญ่ จนสุดท้าย Code ชุดนั้นกลายเป็นสัตว์ประหลาดที่ไม่มีใครกล้าแตะ

"Code was a means to an end, rather than the goal itself." Code เป็นเพียงพาหนะ ไม่ใช่ปลายทาง

เรามักหลงลืมไปว่า บริษัทไม่ได้จ้างเรามาเขียน Clean Code ที่สวยเหมือนงานศิลปะ แต่จ้างเรามาแก้ปัญหา.การต้านทานความกระหายที่จะเขียนโค้ดที่ซับซ้อน จึงเป็นทักษะที่สำคัญกว่าการรู้ Syntax ใหม่ๆ

กฎ 95% : ยอมแลกความยืดหยุ่น เพื่อความชัดเจน

เรามักถูกสอนให้เขียนเผื่อ เขียนให้ Flexible เข้าไว้ แต่การพยายามรองรับ Edge case 5% ที่เหลือ มักทำให้ Code อีก 95% ที่ใช้งานจริงนั้นพัง และซับซ้อนเกินจำเป็น

การยอมรับว่า Code เราไม่ได้ทำได้ทุกอย่าง แต่ทำสิ่งที่ต้องทำได้ดีเยี่ยม คือความกล้าหาญ ในโลก Open Source หรือแม้แต่ในโปรเจกต์บริษัท การมีจุดยืนที่ชัดเจน ดีกว่าการเป็นเป็ดที่พยายามว่ายน้ำและบินได้ในเวลาเดียวกันแต่ไม่เก่งสักอย่าง

เลิกเป็นช่างไม้ที่คลั่งไคล้แต่ค้อน

สุดท้ายแล้ว Framework, Languages หรือ Tools ต่างๆ ที่เราเถียงกันแทบตายว่าค่ายไหนดีกว่า มันเป็นแค่เครื่องมือ

สิ่งที่เราควรโฟกัสไม่ใช่เครื่องมือ แต่คือคุณค่าที่เราส่งมอบ อย่าให้ Passion ในการเขียนโค้ด มาบังตาจนมองไม่เห็นเป้าหมายที่แท้จริง

ลองถามตัวเองวันนี้ครับ

Code ที่คุณกำลังเขียนอยู่นั้น กำลังแก้ปัญหาให้ผู้ใช้ หรือกำลังแก้เบื่อให้ตัวคุณเอง?

(ติดตาม Part 2: เมื่อความผิดพลาดเกิดขึ้น และวันที่มีคนร้องไห้ในออฟฟิศ เร็วๆ นี้)

Related posts

the-sandbox-effect-cover-image
sandwiched-developer-author
s
sirawich
·Feb 1, 2026

The Sandbox Effect: ทำไมไอเดียที่ดีที่สุด มักมาตอนที่คุณไม่ได้พยายามคิด?

the-bus-factory-phobia-infographic
sandwiched-developer-author
s
sirawich
·Jan 10, 2026

The Bus Factor: คุณคือ เทพเจ้า ผู้แบกโปรเจกต์ หรือ นักโทษ ที่ไม่มีวันลาออกได้?

leetcode-interview-nightmare-cover-image
sandwiched-developer-author
s
sirawich
·Dec 15, 2025

สัมภาษณ์งาน Dev หรือสอบเข้า NASA? : ความวิบัติของระบบคัดคนด้วย LeetCode ที่ Google เริ่มไว้... แต่เรา (คนธรรมดา) ต้องรับกรรม

some-how-i-think-bug-is-really-alive-cover-image
sandwiched-developer-author
s
sirawich
·Oct 3, 2025

คุณรู้สึกเหมือนกันไหม ว่าบัคมีชีวิต ?

sandwiched-developer-music-while-coding
sandwiched-developer-author
s
sirawich
·Sep 21, 2025

การฟังเพลงระหว่างเขียนโค้ด: เมื่อโค้ดกลายเป็นท่วงทำนอง

sandwiched-developer-golang-art-of-empty-world
sandwiched-developer-author
s
sirawich
·Jun 20, 2025

🕊️ Golang: ศิลปะแห่งความว่างเปล่าที่เปลี่ยนโลก

sandwiched-developer-go-ภาษาของผู้ไม่เร่งรีบ-แต่ไปถึงเส้นชัยก่อน
sandwiched-developer-author
s
sirawich
·Jun 3, 2025

🐢 Go: ภาษาของผู้ไม่เร่งรีบ แต่ไปถึงเส้นชัยก่อน

sandwiched-developer-ts-cannot-missing
sandwiched-developer-author
s
sirawich
·Jun 1, 2025

TypeScript เสียงสะท้อนจากอนาคตที่ย้อนกลับมาบอกว่า “เธอพลาดไม่ได้อีกแล้ว”

sandwiched-developer-rust-slient
sandwiched-developer-author
s
sirawich
·May 31, 2025

Rust ความเงียบงันของเหล็กกล้า

golang-ภาษาแห่งความสงบ-ที่เกิดมาเพื่อรองรับความวุ่นวาย
sandwiched-developer-author
s
sirawich
·May 31, 2025

Golang ภาษาแห่งความสงบ ที่เกิดมาเพื่อรองรับความวุ่นวาย