คุณสมบัติของ Pragmatic Programmer

สำหรับ Blog นี้ขอสารภาพก่อนครับ มันเขียนดองไว้ใน Draft ตั้งแต่ปี 2016 เลย 5555 พอดีทยอยไล่ Clear พวก Draft แล้วดูว่าอันไหนยังใช้ได้ เลย Rewrite หรือ เติมให้มันสมบูรณ์ครับ มาเข้าเนื่อหากันดีกว่า

ถ้าเราอยากเป็น Pragmatic Programmer ต้องมาฝึกฝนตัวเองให้มีคุณสมบัติตามนี้ครับ
1. Early adopter/fast adapter

Early adopter/fast adapter - กล้าลองสิ่งใหม่ รวมถึงปรับตัวได้ไว เพราะรอบตัวเราเทคโนโลนยีมันเปลี่ยนไปหมดเลย อย่างตอนเขียน Blog นี้ดองไว้ AI ยังไม่มี หลักๆต้องๆไปลองทำมือ Dojo + Google ตอนนี้ยอมรับเลยว่าตามไม่ทันในหลายๆเรื่องเหมือนกัน

2. Inquisitive

Inquisitive - อยากรู้อยากเห็น มีการตั้งคำถาม (What / How) คือ อะไร แล้วมีการทำงานอย่างไร เช่น ถ้าเปลี่ยน library ตัวนี้จะมีผลอะไร หรือ ข้อมูล API เอามาได้ มาจากไหน

3. Critical thinker

ผมมองว่า "กาลามสูตร" หรือหลักแห่งการไม่เชื่อโดยง่าย (Opanayiko) เค้าบอกกันมา แต่เราต้องมีต่อมเอ๊ะ แล้วตั้งสมมติฐานขึ้นมาด้วย ว่ามันเป็นอย่างนั้นจริงไหม เช่น

  • library ตัวนี้จะมีผลอะไร > ต้องมาคิดต่อเรื่อง Trade Off ที่เอามาใช้กับระบบที่เราดู
  • ข้อมูล API เอามาได้ มาจากไหน > ต้องมาคิดอีก อันนี้เป็นศาสตร์เอาจาก Tech + Business Domain มารวมกันด้วยนะ

การมี Critical thinker เราต้องมี Fundamental ด้วย ยิ่งในยุคที่ AI มาช่วยเยอะแล้ว Fundamental สำคัญมากๆ เพราะ AI มันมาเป็นก้อนเลย ต้องรู้ Fundamental มัน Gen มาตรงกับความต้องการเราไหม และดีกับการที่เราอยู่กับมัน หรือป่าว ?

4. Realistic 

Realistic - อยู่กับปัจจุบัน และเข้าใจความเป็นจริงทั้งหมด การทำงานจริงนั้น เรา Control ทุกอย่างไม่ได้ ต้องมาคิดก่อน อาทิ เช่น

  • ก่อนที่เราเข้าไป Code เรากำลังแก้ปัญหาอะไรจริงๆกัน หลายรอบ Requirement ที่ผิด เสีย Cost มากกว่า Code อีก
  • Estimation + เข้าใจ Good Enough Software จุดที่ควรหยุด เราทำมนดีที่สุดไม่ได้ ถ้ามีเงื่อนไขของเวลา และเงิน รวมถึงการจัดการความเสี่ยงอีก
  • รวมถึง No Silver Bullets ที่คนอื่นบอกว่าดี อาจจะไม่ได้ดีกับเราก็ได้นะ
5. Jack of all trades

Jack of all trades - เป็น “คนที่รู้กว้าง” และรู้จักเชื่อมโยงความรู้เพื่อใช้งานจริง นึกถึงคำของ Ad Toy (Data Rookie) ทำตัวเป็นเป็ดรู้ให้กว้าง มี Skill แต่ละด้านอย่างละนิดหน่อย เช่น Coding (C#) เป็นหลักก็จริง มี Skill ส่วนอื่น ทำ Front End ได้บ้าง / เข้าใจ Flow DevOps หรือ Security ได้นิดหน่อย หรือ การเข้าใจ Business จะได้มาปรับกับงานเราให้ Flow ได้ประโยชน์สูงสุดครับ

สำหรับ 5 ข้อข้างต้นมาจาก Pragmatic Programmer Chapter 2 ครับ แต่ถ้าลองดูทั้งเล่มมี 2 ข้อนะที่ผู้เขียนบอกเยอะๆ

6. Care About Your Craft

Care About Your Craft - ใส่ใจในงานฝีมือ ลงในงานที่ทำ ไม่ว่าเป็นการลองมาทดสอบก่อนว่าที่เขียนทำงานได้จริงไหม Build ได้ไหม รวมถึงมีการสื่อสาร เพื่อให้คนอื่นมาร่วมกันช่วยปรับปรุงให้ดีขึ้น คงไม่มีใครกล้าไปบอกลูกค้าตรงๆ พี่ใช้พี่ต้องรับผิดชอบเองนะครับ 5555

7. Take Responsibility

Take Responsibility - มีความรับผิดชอบ การกล้ายอมรับผิดและมองหาทางแก้ไข ยิ่งเราอยู่คำแหน่งที่สูง อายุงานที่มากต้องยอมรับในส่วนนี้นะครับ

Reference

  • The Pragmatic Programmer: From Journeyman to Master //เล่มที่ผมมี Edition แรกเลย และแบบถ่ายเอกสารตั้งแต่สมัย ป ตรี แล้ว Release 1999 ระหว่างเขียน Blog มี Release 2019 ออกมาด้วย

Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.