เชี่ยวชาญการเขียนโปรแกรมด้วยการสร้างเทคโนโลยีขึ้นมาใหม่ด้วยตัวเอง
เลิกใช้แค่ 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
เลือกมาหนึ่งโปรเจกต์แล้วเริ่มเลยวันนี้