เรียน Competitive Programming มี roadmap ให้ตามไหม
เรียน Competitive Programming มี roadmap ให้ตามไหม คำตอบสั้นๆง่ายๆ “ไม่มี” และถึงมีก็คงไม่มีใครทำตามอยู่ดี การวางแผนว่าจะอ่านเรื่องอะไรเป็นขั้นๆไปไม่ใช่ว่าไม่ดีนะ จริงๆมันก็เป็นเครื่องมือนึงที่ดีมากในการกำหนดแผนการเรียน หรือ อ่านหนังสือ
ไม่มีและถึงมีก็คงไม่มีใครทำตามอยู่ดี
การวางแผนว่าจะอ่านเรื่องอะไรเป็นขั้นๆไปไม่ใช่ว่าไม่ดีนะ จริงๆมันก็เป็นเครื่องมือนึงที่ดีมากในการกำหนดแผนการเรียน หรือ อ่านหนังสือ
แต่ตัวผมเอง และหลายๆคนที่อยู่ในวงการ Competitive Programming จะมองว่าการเขียนโปรแกรมโดยเฉพาะทาง Competitive เนี่ยมันคือการได้เล่น ได้ทดลองไอเดียใหม่ๆ ที่เกิดจากการยำ concept ต่างๆ ผสมๆ กันเพื่อให้ได้วิธีแก้ปัญหาใหม่ขึ้นมา
การที่เราจะเจอโจทย์ข้อนึงในเน็ตแล้วมีวิธีแก้ที่ตรงเป๊ะๆกับในหนังสือเลย มันไม่ค่อยมีหรอก (ยกเว้นเป็นโจทย์ classic อยู่แล้ว 😅)
ดังนั้นผมเลยมองว่าการเขียนโปรแกรมมันไม่ใช่การอ่านหนังสือ ที่อ่านทำความเข้าใจเฉยๆ แล้วมันจะเอาไปแก้ปัญหาได้ มันคือการทำความเข้าใจปัญหา วิเคราะห์และหาวิธีแก้ที่เหมาะสม และการทำแบบนี้นี่แหละที่ทำให้สมองจำข้อมูลได้มีประสิทธิภาพมากขึ้น
แล้วถึงเราจะแก้ปัญหานั้นไม่ได้ทันทีหรือ ไม่รู้วิธีทำ ก็ลองทดลองไปเลย การที่ทดลองแล้วผิดก็ยิ่งดีเพราะทำให้รู้ว่าแบบไหนใช้ไม่ได้ ถ้านึกต่อไม่ออกก็ใช้ข้อมูลที่วิเคราะห์มาได้นี่แหละ กลับไปหาในเน็ตว่ามันมีปัญหาลักษณะคล้ายกับที่เราเจอไหมแล้วเขาใช้วิธีแบบไหนแก้ แล้วมันดีไม่ดียังไง ก็เอามาวิเคราะห์อีกที แล้วก็ทำวนๆไปจนได้คำตอบ
เขียนโปรแกรมมันไม่มีวันเพอร์เฟคในครั้งเดียวอยู่แล้ว การที่พลาดยิ่งทำให้รู้ว่าเรายังพัฒนาต่อได้อีกเรื่อยๆ
ถึงจุดนี้มันก็ไม่มีใครมาสนใจแล้วล่ะว่าควรเรียนอะไรต่อ แต่เป็นว่าอยากจะแก้ปัญหาอะไรต่อซะมากกว่า แล้วก็ค่อยทดลอง และหาข้อมูลมาเพื่อเติมส่วนที่ยังไม่รู้ต่อไป
แต่ถ้าถามว่าก่อนจะเข้าวงการนี้ควรรู้อะไรก่อนจะเรียนไหม มีครับ แต่มันก็เริ่มรู้ระหว่างที่หาข้อมูลได้อยู่ดี
- ภาษาอังกฤษ เนี่ยสำคัญสุดเลยเพราะทั้งโจทย์และเนื้อหาส่วนใหญ่จะเป็นภาษาอังกฤษทั้งหมด
- เลขพื้นฐาน บวก ลบ คูณ หาร(หาเศษ) ยกกำลัง แค่นั้นแหละ
- ความอยากรู้อยากเห็น
Happy Coding! — Practical Algorithms