เริ่มต้นปี 2025 อยากมาแชร์ tip ง่าย ๆ เผื่อใครเอาไปใช้เวลาฝึกทำโจทย์ algorithm (หรืออื่น ๆ) กัน
ตอนช่วงที่เราฝึกทำโจทย์ algorithm เมื่อปีที่แล้ว มีกฏข้อนึงที่เราตั้งไว้ให้ตัวเองเวลาฝึกคือ “Document Everything”
ไม่ว่าจะเป็น naive solution แรกที่นึกออก; ข้อสังเกตเล็ก ๆ น้อย ๆ เวลาอ่านโจทย์; หรือจะเป็นไอเดียที่อยู่ ๆ ก็ผุดขึ้นมา …“ไม่ว่าจะคิดอะไรให้จดเก็บไว้ทั้งหมดและห้ามลบ ถึงแม้ว่าไอเดียนั้นจะไปผิดทาง หรือไม่ได้ถูกหยิบมาใช้งานเลยก็ตาม”
กฏง่าย ๆ นี้มันทำให้เรามีข้อมูลที่เราสามารถนำมาใช้ reflect เพื่อพัฒนาได้
- เราเสียเวลาไปกับอะไรมากที่สุด?
- อะไรคือสิ่งที่ทำให้เราไม่เห็นวิธีการแก้ปัญหานี้ตั้งแต่แรก?
- เราสามารถพัฒนา process ของเราได้ยังไง?
มันเหมือนกับการที่เรา debug software เลย ข้อมูลอย่างการ log ว่า data ในแต่ละส่วนของโปรแกรมมันเป็นยังไง มันช่วยทำให้เรารู้ได้ว่าบัคมันเกิดจากตรงไหน และเกิดจากอะไร
การ debug วิธีการคิดหรือ problem-solving process ก็เหมือนกัน ที่เรามองว่าเราจำเป็นต้องมี log เพื่อที่ว่าเราจะสามารถกลับมา debug ทีหลังได้
แน่นอนว่านอกจากการเขียนโค้ดแล้วเราก็จดทุกอย่างกับเรื่องอื่น ๆ ด้วย เหมือนกัน
ตลอดช่วงทำโปรเจค LearnAlgorithm เราพยายามจด writing process รวมไปถึงการเขียน journal เก็บไว้ว่าแต่ละช่วงของการทำโปรเจคนี้ คิดหรือตัดสินใจอะไรไปเพราะอะไร etc. เพื่อที่ว่าวันนึงเวลาเจอปัญหาอะไรจะได้กลับมา debug ได้นั่นเอง
หวังว่า tip เล็ก ๆ นี้จะเป็นประโยชน์สำหรับคนที่กำลังฝึกเรื่องนี้อยู่นะครับ~