เก่งโปรแกรมมิ่งด้วยการสร้างเครื่องมือของคุณเอง

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

นักพัฒนาส่วนใหญ่รู้วิธีใช้ framework และ library แต่มีเพียงไม่กี่คนที่รู้ว่าพวกมันทำงานอย่างไรอยู่เบื้องหลัง วิธีการแบบ build-your-own-x จะเปลี่ยนสิ่งนี้ คุณแค่เลือกเทคโนโลยีที่คุณใช้ทุกวันแล้วลองสร้างเวอร์ชันที่เรียบง่ายขึ้นมาใหม่

แนวทางนี้จะช่วยให้คุณเติบโตในหลายด้าน:

  • ความเข้าใจที่ลึกซึ้ง: คุณจะได้เรียนรู้โครงสร้างข้อมูล (data structures) และอัลกอริทึม (algorithms) ที่อยู่เบื้องหลังเครื่องมือนั้นๆ
  • การแก้ปัญหาที่ดีขึ้น: คุณจะได้ฝึกแยกย่อยระบบที่ซับซ้อนออกเป็นส่วนเล็กๆ
  • อิสระทางภาษา: คุณจะได้เรียนรู้แนวคิดที่สามารถนำไปใช้ได้กับทุกภาษาโปรแกรม
  • การดีบั๊ก (debugging) ที่ดีขึ้น: คุณจะรู้ว่าจุดไหนที่ทำงานผิดพลาดเพราะคุณเป็นคนสร้างมันขึ้นมาเอง
  • พอร์ตโฟลิโอที่แข็งแกร่งขึ้น: นายจ้างจะเห็นทักษะทางเทคนิคที่ลึกซึ้งของคุณ
  • การเลือกเครื่องมือที่ชาญฉลาดขึ้น: คุณจะเข้าใจข้อดีและข้อเสีย (trade-offs) ของเครื่องมือที่คุณเลือกใช้

วิธีเริ่มต้นโดยไม่ให้ติดขัด:

  1. เลือกโปรเจกต์เล็กๆ อย่าเริ่มจากการสร้างระบบปฏิบัติการ (operating system) เป็นอย่างแรก ลองสิ่งเหล่านี้ดู:
  • HTTP server แบบง่ายๆ
  • เครื่องมือ command-line อย่าง grep
  • โปรแกรมจัดการงาน (task manager) พื้นฐาน
  • markdown parser
  • เครื่องคิดเลข
  1. เลือกสิ่งที่คุณใช้งานอยู่ แรงจูงใจจะยังคงสูงเมื่อโปรเจกต์นั้นมีความหมายต่อคุณ

  2. กำหนดเวอร์ชันขั้นต่ำ (minimum version) สำหรับ text editor ให้เน้นไปที่การเปิด การแก้ไข และการบันทึกไฟล์ ส่วนฟีเจอร์ล้ำๆ อย่าง syntax highlighting ให้ข้ามไปก่อนในตอนแรก

  3. ศึกษาพื้นฐาน อ่านเอกสารประกอบอย่างเป็นทางการ (official documentation) หรือดูโค้ดที่เป็น open source หาหลักการสำคัญให้เจอก่อนที่จะเริ่มเขียนโค้ด

  4. สร้างเป็นลำดับขั้นตอน อย่าพยายามสร้างทั้งระบบในคราวเดียว เริ่มจากฟังก์ชันหลักเพียงอย่างเดียวแล้วค่อยเพิ่มส่วนอื่นๆ ในภายหลัง และเขียน test ไปด้วยในขณะที่ทำ

เลือกภาษาที่คุณรู้จักหรือภาษาที่คุณอยากเรียนรู้ แล้วใช้มันเพื่อเปลี่ยนทฤษฎีให้กลายเป็นการปฏิบัติจริง

Source: https://dev.to/kelvin_kariuki_20f4bec616/how-to-use-build-your-own-x-master-programming-by-recreating-your-favorite-technologies-from-1pmi