เก่งโปรแกรมมิ่งด้วยการสร้างเครื่องมือของคุณเอง
เลิกแค่ใช้งาน API แต่เริ่มสร้างเครื่องมือเหล่านั้นขึ้นมาเอง
นักพัฒนาส่วนใหญ่รู้วิธีใช้ framework และ library แต่มีเพียงไม่กี่คนที่รู้ว่าพวกมันทำงานอย่างไรอยู่เบื้องหลัง วิธีการแบบ build-your-own-x จะเปลี่ยนสิ่งนี้ คุณแค่เลือกเทคโนโลยีที่คุณใช้ทุกวันแล้วลองสร้างเวอร์ชันที่เรียบง่ายขึ้นมาใหม่
แนวทางนี้จะช่วยให้คุณเติบโตในหลายด้าน:
- ความเข้าใจที่ลึกซึ้ง: คุณจะได้เรียนรู้โครงสร้างข้อมูล (data structures) และอัลกอริทึม (algorithms) ที่อยู่เบื้องหลังเครื่องมือนั้นๆ
- การแก้ปัญหาที่ดีขึ้น: คุณจะได้ฝึกแยกย่อยระบบที่ซับซ้อนออกเป็นส่วนเล็กๆ
- อิสระทางภาษา: คุณจะได้เรียนรู้แนวคิดที่สามารถนำไปใช้ได้กับทุกภาษาโปรแกรม
- การดีบั๊ก (debugging) ที่ดีขึ้น: คุณจะรู้ว่าจุดไหนที่ทำงานผิดพลาดเพราะคุณเป็นคนสร้างมันขึ้นมาเอง
- พอร์ตโฟลิโอที่แข็งแกร่งขึ้น: นายจ้างจะเห็นทักษะทางเทคนิคที่ลึกซึ้งของคุณ
- การเลือกเครื่องมือที่ชาญฉลาดขึ้น: คุณจะเข้าใจข้อดีและข้อเสีย (trade-offs) ของเครื่องมือที่คุณเลือกใช้
วิธีเริ่มต้นโดยไม่ให้ติดขัด:
- เลือกโปรเจกต์เล็กๆ อย่าเริ่มจากการสร้างระบบปฏิบัติการ (operating system) เป็นอย่างแรก ลองสิ่งเหล่านี้ดู:
- HTTP server แบบง่ายๆ
- เครื่องมือ command-line อย่าง grep
- โปรแกรมจัดการงาน (task manager) พื้นฐาน
- markdown parser
- เครื่องคิดเลข
เลือกสิ่งที่คุณใช้งานอยู่ แรงจูงใจจะยังคงสูงเมื่อโปรเจกต์นั้นมีความหมายต่อคุณ
กำหนดเวอร์ชันขั้นต่ำ (minimum version) สำหรับ text editor ให้เน้นไปที่การเปิด การแก้ไข และการบันทึกไฟล์ ส่วนฟีเจอร์ล้ำๆ อย่าง syntax highlighting ให้ข้ามไปก่อนในตอนแรก
ศึกษาพื้นฐาน อ่านเอกสารประกอบอย่างเป็นทางการ (official documentation) หรือดูโค้ดที่เป็น open source หาหลักการสำคัญให้เจอก่อนที่จะเริ่มเขียนโค้ด
สร้างเป็นลำดับขั้นตอน อย่าพยายามสร้างทั้งระบบในคราวเดียว เริ่มจากฟังก์ชันหลักเพียงอย่างเดียวแล้วค่อยเพิ่มส่วนอื่นๆ ในภายหลัง และเขียน test ไปด้วยในขณะที่ทำ
เลือกภาษาที่คุณรู้จักหรือภาษาที่คุณอยากเรียนรู้ แล้วใช้มันเพื่อเปลี่ยนทฤษฎีให้กลายเป็นการปฏิบัติจริง