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

เลิกใช้แค่ API แล้วเริ่มสร้างมันขึ้นมาเอง

นักพัฒนาส่วนใหญ่ใช้ framework และ library อยู่ทุกวัน เครื่องมือเหล่านี้ช่วยให้ทำงานได้รวดเร็ว แต่ในขณะเดียวกันมันก็ซ่อนกลไกการทำงานของซอฟต์แวร์เอาไว้ คุณเห็นเพียงผลลัพธ์ แต่พลาดที่จะเข้าใจตรรกะเบื้องหลัง

วิธีการแบบ "build-your-own-x" จะเปลี่ยนสิ่งนี้ คุณสร้างเครื่องมือขึ้นมาใหม่ตั้งแต่ต้นเพื่อเรียนรู้แนวคิดเชิงลึก คุณไม่ได้ทำสิ่งนี้เพื่อนำไปใช้ในงานจริง (production) แต่คุณทำเพื่อการเรียนรู้

การสร้างเครื่องมือขึ้นมาจากพื้นฐานจะช่วยให้คุณ:

  • เข้าใจระบบที่ซับซ้อน: คุณจะได้เรียนรู้วิธีการทำงานของโปรโตคอล (protocols) และโครงสร้างข้อมูล (data structures)
  • พัฒนาทักษะการแก้ปัญหา: คุณจะได้ฝึกย่อยปัญหาใหญ่ให้กลายเป็นส่วนเล็กๆ
  • เรียนรู้พื้นฐาน: คุณจะได้เชี่ยวชาญเรื่องการจัดการหน่วยความจำ (memory management) และอัลกอริทึม (algorithms)
  • สร้างความมั่นใจ: คุณจะได้พิสูจน์กับตัวเองว่าคุณเข้าใจเทคโนโลยีนั้นจริงๆ
  • ดีบั๊กได้ดีขึ้น: คุณจะรู้ว่าระบบล้มเหลวที่จุดไหนเพราะคุณเป็นคนสร้างมันขึ้นมาเอง

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

ไอเดียโปรเจกต์สำหรับมือใหม่:

  • HTTP server ขนาดจิ๋ว: เรียนรู้เรื่อง sockets และ routing
  • CLI shell แบบง่าย: เรียนรู้เรื่องการรัน process
  • ระบบจัดเก็บข้อมูลแบบ key-value พื้นฐาน: เรียนรู้เรื่อง file I/O และ hash tables
  • Markdown parser: เรียนรู้เรื่องการ parse และ syntax trees
  • ระบบควบคุมเวอร์ชัน (version control system): เรียนรู้เรื่อง hashing และ diffing

เลือกมาหนึ่งโปรเจกต์แล้วเริ่มเลยวันนี้

Source: https://dev.to/kelvin_kariuki_20f4bec616/master-programming-by-recreating-your-favorite-technologies-from-scratch-1h8