Graph Programming

จากที่ผ่านๆมาหลายบทความในช่วงนี้ ผู้เขียนได้เขียนแต่เรื่องที่ไม่ยากมากนัก คือไม่ต้องต้องมีการคำนวนซับซ้อนอะไรเท่าไหร่ เช่นการเชื่อมต่อกับฐานข้อมูล การส่งผ่านตัวแปรระหว่าง Class บน .NET อะไรแบบนี้ ซึ่งทำให้เราได้ห่างหายจากการวิเคราะห์โค้ดกันไปบ้างพอสมควร ในบทความนี้ ผู้เขียนจึงคิดขึ้นมาได้อย่างนึงว่า เราควรจะมีอะไรแรงๆมาขั้นบ้าง เพื่อความหลากหลายในบทความของเรา

พูดถึง Graph Programming ต้องย้อนกลับไปตั้งแต่ผู้เขียนยังเรียนอยู่มหาลัยฯ ปี 2 ซึ่งตอนนั้นผู้เขียนได้เรียนวิชา Data Structure and Algorithm ซึ่งในวิชานั้น ก็มีการสอนถึง Data Structure หลายๆตัว เช่น Queue, Stack, Linklistและก็รวมทั้ง Graph นี้ด้วย แต่สิ่งที่ต่างกันคือ ถ้าเป็น Queue, Stack หรือ Linklistอาจารย์เค้าจะเจาะเข้าไปให้เราดูโค้ด เอาไปใช้งาน แต่พอเป็น Graph กลับมีแค่การอธิบายทฤษฎี และการนำเอาไปใช้ ไม่ได้ลงโค้ด ผู้เขียนจึงได้ไปถามอาจารย์ท่านว่า ทำไมถึงไม่มีการสอนเชิงลึกเกี่ยวกับเรื่องนี้ ซึ่งอาจารย์ท่านก็ได้ตอบกลับมาว่า “เพราะแต่ละคน มีพื้นฐานไม่เท่ากันนะสิ ถึงแม้ว่าแต่ละคน จะเรียนมาเหมือนกัน แต่ในเมื่อสุดท้าย แต่ละคนมีพื้นฐานที่ไม่เท่ากันแล้ว จะสอนเรื่องให้ยากเกินไปเลยไม่ได้”

ความรู้มากมาย แต่เริ่มต้นเขียนโปรแกรมไม่ถูกซักที ตอนที่ 1 – การออกแบบ(1)

ความรู้มากมาย แต่เริ่มต้นเขียนโปรแกรมไม่ถูกซักที ตอนที่ 1 – การออกแบบ(1)

หลังจากที่ได้พูดถึงการเขียนโปรแกรมในเชิงลักษณะของ Code มาเป็นเวลานานแล้ว ก็เชื่อว่าผู้ที่ติดตามอ่านในแต่ละบทความนั้น ก็คงจะได้ความรู้เพิ่มขึ้นไม่มากก็น้อย ยิ่งถ้าประกอบกับความรู้ที่มีอยู่แล้วในชั้นเรียน ก็คิดว่า แต่ละคน น่าจะมีประสบการณ์ในการเขียนโปรกรมพอสมควร
แต่ความรู้ในเชิงของการเขียน Code นั้น แม้ว่าจะมีความรู้ในลักษณะนี้มาก แต่หากตัวของ Programmer เองยังขาดคุณสมบัติที่สำคัญประการหนึ่งนั้น ก็จะทำให้การเขียนโปรแกรมทั้งหมดเป็นไปได้อย่างเชื่องช้า ซึ่งนอกจากจะเชื่องช้าแล้ว ยังอาจจะมีผลเสียถึงทำให้ตัวของโค้ดนั้นซับซ้อนมากจนไม่สามารถแก้ไขโค้ดในภายหลังได้อีกด้วย

Continue Reading…