เชี่ยวชาญการเขียนโปรแกรมด้วยการสร้างเทคโนโลยีขึ้นมาใหม่ด้วยตัวเอง
คุณใช้งานเครื่องมือต่าง ๆ อยู่ทุกวันโดยที่ไม่รู้ว่ามันทำงานอย่างไร Framework และ library ต่าง ๆ ช่วยซ่อนความซับซ้อนเพื่อให้คุณทำงานได้รวดเร็วขึ้น แต่นี่ก็ทำให้เกิดช่องว่างในความรู้ของคุณ
วิธีการแบบ build-your-own-x จะช่วยแก้ปัญหานี้ คุณจะได้สร้างเครื่องมือที่คุณใช้งานอยู่ขึ้นมาใหม่ในเวอร์ชันที่ลดทอนความซับซ้อนลงจากศูนย์ คุณจะเลิกเป็นแค่ผู้ใช้งานเทคโนโลยี และเริ่มเปลี่ยนมาเป็นผู้ออกแบบสถาปัตยกรรมของมันแทน
ทำไมวิธีนี้ถึงได้ผล:
ช่วยขจัดความลึกลับ คุณจะเลิกมองว่าเครื่องมือต่าง ๆ คือเวทมนตร์ แต่จะเริ่มเรียนรู้ว่า web server จัดการเส้นทางของ request อย่างไร หรือ Git จัดเก็บข้อมูลอย่างไร
สอนพื้นฐานที่สำคัญ การสร้าง server จะบังคับให้คุณต้องเรียนรู้เรื่อง sockets และ HTTP ส่วนการสร้าง hash map จะสอนเรื่อง collision resolution สิ่งเหล่านี้คือรากฐานสำคัญของการพัฒนาซอฟต์แวร์
พัฒนาทักษะการแก้ปัญหา เมื่อคุณสร้างทุกอย่างขึ้นมาจากพื้นฐาน คุณไม่สามารถคัดลอกคำตอบจากอินเทอร์เน็ตมาใช้ได้เลย คุณต้องย่อยปัญหาและหาคำตอบด้วยตัวเอง
สร้างความมั่นใจ การสร้างระบบที่มีความซับซ้อนจะช่วยให้คุณมีทักษะในการรับมือกับโปรเจกต์ที่ใหญ่ขึ้นได้
นำทฤษฎีมาประยุกต์ใช้ คุณจะเปลี่ยนบทเรียนในห้องเรียนเรื่อง networking และ algorithms ให้กลายเป็นทักษะที่ใช้งานได้จริง
คุณสามารถเริ่มจากจุดเล็ก ๆ ได้ ลองเลือกเครื่องมือสักอย่าง เช่น database หรือ command-line tool แล้วลองสร้างฟังก์ชันพื้นฐานของมันขึ้นมาใหม่