ตามหัวข้อเลย วันนี้ขอยกหัวข้อที่เราชอบบอกกับรุ่นน้องหรือนักเรียนที่เรียนเขียนโปรแกรมด้วย...
ก่อนจะทำให้โปรแกรมฉลาดได้ โปรแกรมเมอร์ต้องฉลาดก่อน
แล้วอะไรคือความหมายของคำว่า "ฉลาด" ในประโยคนี้?
จาก ที่เห็น คนที่เขียนโปรแกรม "มือใหม่" เวลาได้รับโจทย์อะไรสักอย่างมา อย่างแรกที่พวกเขาจะทำคือเปิดIDE (โปรแกรมสำหรับช่วยเขียนโปรแกรม ที่เอาไว้พิมพ์โค้ดนั่นแหละ) โดยมักจะละเลยบางสิ่งที่สำคัญมากไป
นั่นคือ algorithm! แนวทางการคิดเพื่อแก้ปัญหาของโจทย์นี้
เขียนโปรแกรมเล่นหมากรุกให้หน่อยสิ
ถ้ามีโจทย์ว่าลูกค้าหรืออาจารย์อยากได้โปรแกรมสำหรับเล่นหมากรุก โปรแกรมเมอร์มือใหม่ทุกท่านจะทำอะไรก่อน
เริ่มเขียนโค้ดเลยมั้ย? (แล้วก็จบเหมือนเดิมคือเขียนไปสักพักก็จะตัน ทำต่อไม่ได้)
แล้วเราพลาดอะไรไปล่ะ
สิ่งที่พลาดคือคุณยังไม่ "ฉลาด" เลย แล้วคุณจะทำให้โปรแกรมฉลาดได้ยังไง!
คำถาม...คุณจะเขียนโปรแกรมเล่นหมากรุก แล้วคุณเล่นหมากรุกเป็นหรือยัง?
คุณรู้หรือยังว่าตัวหมากแต่ละตัวเดินยังไง กฏมาตราฐานของหมากรุกมีว่าอะไร แล้วกลยุทธ์ที่นักเล่นหมากรุกชอบใช้มีอะไรบ้าง
ตัวรูค(เรือ)เดินแนวตั้ง-นอน กี่ช่องก็ได้ |
สรุป การเขียนโปรแกรมคือการสอนอะไรบางอย่างให้คอมพิวเตอร์ แล้วถ้าเรายังไม่รู้เลยว่าสิ่งที่เราจะสอนมันใช้ (หรือเล่น) ยังไง ก็อย่างเพิ่งไปสอนคอมพิวเตอร์เลย