เก่งโปรแกรมมิ่งด้วยการสร้างเทคโนโลยีขึ้นมาใหม่ด้วยตัวเอง

คุณใช้ framework และ library อยู่ทุกวัน คุณรู้วิธีใช้งาน API ของพวกมัน แต่คุณกลับไม่รู้ว่าข้างในพวกมันทำงานอย่างไร

ปรัชญา "Build Your Own X" จะเปลี่ยนสิ่งนี้ คุณจะสร้างเครื่องมือพื้นฐานขึ้นมาใหม่ตั้งแต่ศูนย์เพื่อทำความเข้าใจการพัฒนาซอฟต์แวร์

เครื่องมือสมัยใหม่มักซ่อนความซับซ้อนเอาไว้ แต่แนวทางนี้จะช่วยลอกเลเยอร์เหล่านั้นออก เพื่อให้คุณได้เผชิญกับปัญหาจริงๆ ที่วิศวกรต้องแก้ในทุกๆ วัน

ทำไมคุณถึงควรทำแบบนี้:

• ความเข้าใจอย่างลึกซึ้ง: คุณจะได้เรียนรู้ว่าทำไมเครื่องมือเหล่านี้ถึงถูกสร้างขึ้นมา และข้อดีข้อเสีย (trade-offs) ที่ต้องแลกมาคืออะไร • การแก้ปัญหา: คุณจะได้เผชิญกับความท้าทายด้านการออกแบบ ซึ่งจะช่วยสร้างกระบวนการคิดเชิงสถาปัตยกรรม (architectural thinking) • การ Debug ที่ดีขึ้น: คุณจะรู้ว่าควรไปดูตรงไหนเมื่อโค้ดทำงานผิดพลาด เพราะคุณเข้าใจการทำงานภายในของมัน • การเติบโตในสายอาชีพ: ผู้สัมภาษณ์ให้ความสำคัญกับผู้สมัครที่สามารถอธิบาย "อย่างไร" และ "ทำไม" เบื้องหลังการทำงานของเครื่องมือได้

เริ่มจากจุดเล็กๆ เลือกสิ่งที่คุณใช้งานบ่อยๆ

ไอเดียสำหรับโปรเจกต์แรกของคุณ:

อย่าเพิ่งพยายามสร้างเครื่องมือสำหรับใช้งานจริง (production tool) อย่าเพิ่งกังวลเรื่องความปลอดภัยหรือความเร็ว ให้โฟกัสไปที่ตรรกะหลัก (core logic) ก่อน

ทำตามขั้นตอนเหล่านี้:

  1. ค้นคว้าเกี่ยวกับเครื่องมือที่มีอยู่จริง อ่านเอกสารการออกแบบ (design docs) และดูโค้ดที่เป็น open-source
  2. ระบุส่วนประกอบหลัก เช่น Web server จำเป็นต้องมี sockets, parser และวิธีการส่ง response กลับไป
  3. กำหนดชุดฟีเจอร์ขั้นต่ำ (minimum feature set) หากคุณสร้าง URL shortener ให้โฟกัสที่การทำ mapping และการ redirect ส่วนเรื่องระบบบัญชีผู้ใช้หรือการวิเคราะห์ข้อมูล (analytics) ให้ข้ามไปก่อน

เลือกภาษาที่คุณรู้จักหรืออยากเรียนรู้ เป้าหมายคือการเข้าใจตรรกะ ไม่ใช่แค่ไวยากรณ์ (syntax)

ที่มา: https://dev.to/kelvin_kariuki_20f4bec616/master-programming-by-recreating-your-favorite-technologies-from-scratch-21b7