ในบทเรียนที่แล้วเรารู้ว่าการเขียนโปรแกรมคือการ “สั่งงาน” คอมพิวเตอร์ แต่ก่อนที่เราจะสั่งงานมันได้ เราต้องมี “แผนการ” ที่ดีก่อนว่าเราจะสั่งให้มันทำอะไรบ้าง กระบวนการคิดเพื่อสร้างแผนการอย่างเป็นระบบนี่แหละครับ ที่เราเรียกว่า “การคิดเชิงคำนวณ” หรือ Computational Thinking
มันไม่ใช่การคิดแบบคอมพิวเตอร์นะครับ แต่มันคือ กระบวนการคิดแก้ปัญหาเหมือนที่โปรแกรมเมอร์ใช้กัน ซึ่งมีประโยชน์มากๆ ไม่ว่าจะเจอปัญหาอะไรในชีวิตก็ตาม ทักษะนี้ประกอบด้วยแนวคิดสำคัญ 4 อย่างครับ
คือการ “ทุบ” ปัญหาใหญ่ๆ ที่ดูน่ากลัวและซับซ้อน ให้แตกออกเป็นปัญหาย่อยๆ เล็กๆ ที่จัดการได้ง่ายขึ้น
หลังจากเราย่อยปัญหาแล้ว ขั้นตอนนี้คือการ “จับผิด” หรือมองหา “รูปแบบ” ที่คล้ายๆ กันในปัญหาย่อยเหล่านั้น เพื่อที่เราจะได้ใช้วิธีแก้ปัญหาแบบเดียวกันได้ ไม่ต้องคิดใหม่ทั้งหมด
ฟังดูยาก แต่จริงๆ แล้วมันคือการ “เลือกโฟกัส” เฉพาะข้อมูลที่สำคัญและจำเป็นต่อการแก้ปัญหา และ “ซ่อน” รายละเอียดที่ไม่จำเป็นออกไปก่อน เพื่อให้เราไม่สับสน
นี่คือขั้นตอนสุดท้ายและสำคัญที่สุดครับ! คือการนำวิธีแก้ปัญหาย่อยๆ ที่เราคิดไว้ มา “เรียบเรียงเป็นลำดับขั้นตอน” ที่ชัดเจนและทำตามได้จริง ใครมาอ่านก็เข้าใจและทำตามได้ผลลัพธ์เหมือนกัน ซึ่งผลลัพธ์สุดท้ายที่ได้ก็คือ “อัลกอริทึม (Algorithm)” นั่นเอง
ลองนำแนวคิดทั้ง 4 อย่างมาใช้กับเรื่องใกล้ตัวอย่างการทำอาหารดูครับ ถ้าเราต้องการ “ทอดไข่เจียว 1 จาน” เราจะเขียนเป็นลำดับขั้นตอน (Algorithm) ได้อย่างไรบ้าง?
ชื่องาน: อัลกอริทึมการทอดไข่เจียว
เห็นไหมครับว่าเราสามารถเปลี่ยนกิจกรรมในชีวิตประจำวันให้กลายเป็นลำดับขั้นตอนที่ชัดเจนได้ นี่แหละครับคือหัวใจของการออกแบบอัลกอริทึม ซึ่งเป็นพื้นฐานสำคัญของการเขียนโปรแกรมทุกอย่างเลย!