คำนำและบทนำ: The Pragmatic Programmer
1 min readคำนำ (Foreword) — โดย Saron Yitbarek
หนังสือเล่มนี้ไม่ใช่หนังสือเทคนิคทั่วไปที่เต็มไปด้วยศัพท์ยาก ๆ — แม้ผู้เขียนจะมีประสบการณ์หลายสิบปี แต่พวกเขาเขียนด้วยความตื่นเต้นแบบเดียวกับคนที่เพิ่งเรียนรู้บทเรียนเหล่านี้ พวกเขาไม่พูดดูถูก ไม่คิดว่าคุณเป็นผู้เชี่ยวชาญ และไม่คิดว่าคุณเคยอ่าน edition แรกมาก่อน หนังสือเล่มนี้คือเพื่อนบ้านที่เป็นมิตรที่คอยพาคุณทัวร์ละแวกใหม่ — แสดงให้เห็นว่าการเป็นโปรแกรมเมอร์ที่ดีนั้นต้องใช้ mindset shift ที่ตั้งใจและ deliberate practice
คำนำฉบับที่ 2 (Preface to the Second Edition)
หนังสือเล่มนี้เริ่มต้นจากโน้ตที่ Dave และ Andy จดไว้ตอนเป็นที่ปรึกษาให้บริษัทที่มีปัญหาด้านซอฟต์แวร์ในยุค 90s — 20 ปีต่อมาเทคโนโลยีเปลี่ยนไปมาก (CORBA, CASE tools, indexed loops ล้วนหายไป) แต่สามัญสำนึก (common sense) ไม่เคยเปลี่ยน ฉบับนี้ปรับปรุงเนื้อหาประมาณ 1 ใน 3 ให้เป็นหัวข้อใหม่ทั้งหมด และเขียนส่วนที่เหลือใหม่เกือบทั้งหมดหรือบางส่วน — เพิ่มเนื้อหาเรื่อง concurrency, functional programming, ความปลอดภัย และ privacy
คำนำฉบับที่ 1 (From the Preface to the First Edition)
หนังสือเล่มนี้เป็นหนังสือเกี่ยวกับ การลงมือทำ (doing) — ไม่ใช่ทฤษฎี คำว่า pragmatic มาจากภาษาละติน pragmaticus แปลว่า "ชำนาญในทางปฏิบัติ" ไม่มีคำตอบง่าย ๆ ไม่มี best solution ที่เป็นสากล — มีเพียงระบบที่เหมาะสมกับบริบทเฉพาะเท่านั้น
คุณสมบัติของ Pragmatic Programmer
| คุณสมบัติ | คำอธิบาย |
|---|---|
| Early adopter / fast adapter | มีสัญชาตญาณต่อเทคโนโลยีใหม่ ๆ ชอบลองของ และปรับตัวเร็ว |
| Inquisitive | ชอบถามคำถาม เก็บสะสมความรู้เล็ก ๆ น้อย ๆ ที่อาจมีประโยชน์ในอนาคต |
| Critical thinker | ไม่เชื่ออะไรง่าย ๆ โดยไม่มีหลักฐาน ชอบท้าทายคำตอบสำเร็จรูป |
| Realistic | เข้าใจธรรมชาติของปัญหา รู้ว่าอะไรยาก อะไรจะใช้เวลานาน |
| Jack of all trades | คุ้นเคยกับเทคโนโลยีหลากหลาย พร้อมย้ายไปทำงานใน domain ใหม่เสมอ |
Tip 1: Care About Your Craft — ใส่ใจในฝีมือของคุณ
Tip 2: Think! About Your Work — คิดเกี่ยวกับสิ่งที่คุณทำอยู่ตลอดเวลา อย่าใช้ autopilot
Individual Pragmatists, Large Teams
แม้ในทีมใหญ่หรือโครงการซับซ้อนก็ยังมีที่ว่างสำหรับงานฝีมือส่วนบุคคล (individual craftsmanship) — เช่นเดียวกับช่างแกะสลักหินในยุคกลางที่สร้างมหาวิหาร: "เรา ผู้ซึ่งแกะสลักเพียงก้อนหิน ต้องมองเห็นมหาวิหารเสมอ"
It's a Continuous Process
การเป็น Pragmatic Programmer ไม่ใช่การตรวจสอบครั้งเดียวแล้วจบ — มันคือการประเมินวิจารณ์ทุกการตัดสินใจ ทุกวัน ในทุกโครงการ อย่างต่อเนื่อง