รีวิวคอร์ส Mathematics for Working Programmers
อยากจะพูดถึงคอร์ส Mathematics for Working Programmers ของอาจารย์เดฟ Dave Rawitat Pulam ที่เพิ่งรอดกลับมาหลังจาก 2 วันที่หนักหน่วงหน่อยครับ
"ทำไมต้อง Refactor ถ้าเรา Prefactoring ได้ตั้งแต่แรก"
นั่นคือประโยคที่ผมชอบที่สุดตลอดสองวันที่ผ่านมา ต้องบอกว่าก่อนไปเรียนคือ ผมไม่รู้เลยว่าจะไปเจอกับอะไรบ้าง แต่ก็มั่นใจระดับนึงว่าประสบการณ์เขียนโปรแกรมที่มีมันน่าจะพาเราเอาตัวรอดไปได้ระดับนึงละ พอผ่านไปไม่กี่สไลด์เท่านั้นแหละผมคิดผิด และผมเลยเพิ่งรู้ตัวเลยว่าผมมองโลกผ่านรูกุญแจมาตลอด อารมณ์เหมือน Dr.Strange เจอ Ancient One ครั้งแรกเลย
เบิกเนตรแรกเลยคือ ผมไม่เคยรู้จัก State machine, Turing Machine ฯลฯ อะไรเลย แต่มารู้ในคอร์สนี้แหละว่าสิ่งนี้มันกำหนดวิธีมองโลก (ผ่านรูกุญแจ) ของผมมาตลอดหลายๆ ปีเลย ได้รู้จักคณิตศาสตร์ในมุมที่มันสวยงาม ไม่ใช่แรงงาน เหมือนกลับไปอ่านเรื่องราวของพอล แอร์ดิชกับรามานุจัน อีกครั้ง แต่ในขณะที่ตื่นตากับการเบิกเนตรครั้งที่หนึ่งและรู้สึกว่าการรู้สิ่งนี้จะทำให้เราเข้าใจโลกมากขึ้น อาจารย์เดฟก็เขย่าโลกครั้งที่สองครับด้วย lambda calculus
เบิกเนตรครั้งที่สองพาผมย้อนกลับไปรู้จักกับความเรียบง่ายของ Function อีกครั้งที่เคยเรียนเมื่อเกิน 10 ปีที่แล้ววิธีคิด และค่อยๆ ไต่ระดับไปจนถึงจุดที่มัน "Equivalent" กันซึ่งคลาสนี้มันจะมีหลายจุดมากๆ ที่ระหว่างเรียนเราต้องสู้กับจิตใจตัวเองในการ unlearn ความเข้าใจที่เราเข้าใจมาตลอดหลายๆ ปี ซึ่งบางจุดก็ง่าย แต่บางจุดนั้นมันก็ยากจริงๆ ครับแต่ eventually เราจะเข้าใจมันเอง
จุดที่ผมประทับใจมากอีกจุดนึงคือเรื่อง Type ครับ ตลอดชีวิตการเขียนโปรแกรมมาหลายปี หนังสือไม่รู้กี่เล่ม Talk ไม่รู้กี่ตัว ไม่เคยมีใครเล่าเรื่อง Type ได้เห็นภาพขนาดนี้และผมจะรู้สึกผิดมากถ้าผมมาเล่าสปอยไว้ตรงนี้ เพราะอยากให้คนอื่นได้ฟังจากในคอร์สนี้เองจริงๆ
เบิกเนตรตัวสุดท้ายที่อยากพูดถึงในคอร์สนี้คือ Category Theory, Monad, Monoid, Functor และคณะนั่นแหละครับ เป็นสิ่งที่ผมรู้จักแต่ชื่อและไม่กล้าจะทำความรู้จักมันมาหลายปี แต่หลังจากคอร์สนี้ถึงแม้ผมจะพูดได้ไม่เต็มปากเลยว่าผมเข้าใจมัน แต่พอผ่านจุดที่อาจารย์เดฟเล่าให้ฟังมาได้มันเป็นเหมือนเชื้อเพลิงให้ไปศึกษาเองต่อได้อีกเยอะเลยครับ (และแน่นนอนครับว่าโดนป้ายยาหนังสือมาหลายเล่มมากจากคอร์สนี้)
อ่อ สิ่งที่เหลือเชื่ออย่างนึงของคลาสนี้คือพลังของมันครับ มันเป็นการเรียนตั้งแต่เก้าโมงครึ่งถึงทุ่มนิดๆ หยุดพักแค่ตอนกินข้าวเที่ยงแปปนึง ความเหลือเชื่อที่ลากตัวเองเรียนจนจบในแต่ละวันไปได้แล้ว (พร้อมกลับบ้านด้วยความหิวโหยเหมือนไปวิ่งรอบสนามบอลมาเป็นสิบๆ รอบ) ยังเหลือเชื่อในพลังของอาจารย์เดฟที่ไม่ตกตั้งแต่นาทีแรกจนถึงนาทีสุดท้ายของคอร์สเลยครับ
สุดท้ายต้องบอกว่านี่เป็นคอร์สที่เราทุกคน ควรเรียนซักครั้งในชีวิตครับ เพราะประตูที่คลาสนี้เปิดออกให้เราดูโลกมันกว้างมากจนเอาไปใช้ได้มากกว่าแค่เขียนโปรแกรมเลยในชีวิต และผมบอกได้เลยว่า ผมจินตนาการไม่ออกเลยว่าจะมีใครเปิดประตูนี้ให้เราได้ดีไปกว่าอาจารย์เดฟกับคอร์สนี้ครับ