Jitrak Blog

Math for Working Programmer Conclusion

สรุปผลการเรียน Math for Working Programmer ทั้งหมด

24 Jul 2025 18:36

Written by: Yosapol Jitrak

Math for Working Programmer
Tags:

Math

Programming

Software Development

เล่าประสบการณ์การเรียน Math for Working Programmer ของตัวเองครับ ซึ่งลงเรียนบาง Class มาหลายรอบอยู่ครับ เพราะรอบเดียวเก็บไม่หมด และมีหลาย Versions มาก ใช้เวลาถึง 5 ปีกว่าจะเก็บครบ เพราะหลัง ๆ ลงไม่ทันครับ จนอาจารย์ได้ติดต่อมาสอบถามว่าสนใจลงเรียนไหม จึงได้เรียนครบสักที

ClassTitleDate
Days 1-2Mathematics for Working Programmers - Public 32-3 พฤศจิกายน 2019
Days 3-4Category Theory for Working Programmers: Lets do private!9-10 พฤษภาคม 2020
Days 1-2Mathematics for Working Programmers Days 1-25-6 ธันวาคม 2020
Days 3-4Mathematics for Working Programmers Days 3-419-20 ธันวาคม 2020
Days 1-2Math for Working Programmer Days 1-211-13 มีนาคม 2023
Days 0Reasoning with Discreet Maths Day 022-23 มีนาคม 2025
Days 5-6Math for working programmer Days 5-631 พฤษภาคม 2025 - 1 มิถุนายน 2025
Days 7-8Math for working programmer Days 7-87-8 มิถุนายน 2025

ก่อนหน้านี้ผมเคยโพสไปบ้างแล้วสำหรับ Series ของ Class นี้
Link: Opened up a new world with Math for Programmers - Public 3
Link: Again with Math for Programmers

การเรียน Series ของ Class นี้ มีความประทับใจตั้งแต่ครั้งแรก จนถึง Class สุดท้าย

Day 0

ถึงแม้ชื่อว่าจะ Day 0 แต่จริง ๆ ก็เรียน 2 วันนะครับ ส่วนตัวชอบ Days 0 ที่สุดครับ เพราะสอนให้เรามองทุกอย่างเป็น Logical ได้ มองสิ่งต่าง ๆ เป็นจุด และเส้นเชื่อม มองโลกเป็น Set ของสิ่งนั้นสิ่งนี้ ไม่จำเป็นจะต้องเป็น Software developer ก็สามารถเรียน Class นี้ สามารถไปประยุกต์ใช้ต่อได้อีกหลายอย่างเลย ทำให้การมองโลกของเรามีความเป็นเหตุเป็นผลมากขึ้น

Good and expensive wrong setGood and expensive correct set

รูปซ้ายหรือขวา ถูกกันแน่

Days 1-2

สำหรับ Class นี้เนื่องจากได้ลงเรียนตั้งแต่ Version แรก ๆ จนถึง Version หลัง ตัว Version แรก ๆ ต้องยอมรับว่าเนื้อหาอัดแน่นจนสมองเบลอไปหมด แต่หลัง ๆ เหมือนเนื้อหาจะลดถอน และกระจายออกไปสู่วันอื่นมากขึ้น ยกตัวอย่าง Code น้อยลงกว่า Version แรก ๆ สิ่งที่ได้จาก Class นี้คือ อะไรคือ Computation, ประวัติศาสตร์ Computer, อะไรคือ Turing machine และเข้าใจ Functional Programming มากขึ้น สำหรับคนที่เริ่มเรียน Funtional Programming จะมีคำถามนึงเสมอ อะไรคือ Monoid, Monad เพราะ Search Google คุณจะเจอว่า “monad is a monoid within the category of endofunctors” อ่านแล้วปวดหัว แต่ Class นี้จะทำให้คุณเข้าใจเรื่องพวกนี้มากขึ้น ใน Version ที่ผมเรียนแรก ๆ เนื้อหาจะมีตัวอย่าง Code Haskell ค่อนข้างเยอะ ว่าการเขียนโปรแกรมแบบ Declarative จริงแล้ว ๆ มันเป็นอย่างไร ไม่ใช่การพยายามเขียน Functional ในภาษา Programming แบบที่เราเคยรู้จักในในตลาด ตอนเรียนครั้งแรกค่อนข้างเปิดโลกใบใหม่พอสมควรสำหรับ Class นี้ Functional Programming

Days 3-4 และ Days 5-6

Version ที่ผมเรียน Days 3-4 เป็น Category Theory for Working Programmers ซึ่งเนื้อหาส่วนใหญ่จะซ้ำกับ Days 5-6 เลย แต่เหมือนตอนหลัง Day 3-4 จะถูกเปลี่ยนเป็นอย่างอื่นไปแล้ว สำหรับ Days 3-4 Version ที่ผมเรียนรู้สึกว่าเนื้อหาอัดแน่นเหมือนเคย โดย Days 5-6 Version ล่าสุดที่เรียนจะถูกลดถอนเนื้อหา แล้วยกบางส่วนไปอยู่ที่ Days 7-8 ก่อนหน้านี้เวลาเราเขียนโปรแกรมเราจะมองซูมเข้าไป เพื่อให้เห็นรายละเอียด แต่ Class นี้จะให้เรามองถอยออกมา เพื่อลดถอนรายละเอียด มองสิ่งต่าง ๆ เป็นจุด และเส้นเชื่อมมากขึ้น ลดเงื่อนไขเฉพาะเจาะจงที่มนุษย์เราซูมลึกเข้าไปจนเกินเหตุ ที่ทำให้เกิด If-else เต็มไปหมด เนื้อหา Class นี้จะมีเนื้อหาบ้างส่วนซ้ำกับของ Day 0 และเอามาต่อยอด โดยที่เจาะลึกเข้า Functor แต่ละแบบเลย (Days 3-4 Version แรก ๆ) นอกจากนี้ยังได้เห็นมุมมองของการ Morphisms หรือ Map ของข้าม Domain อะไรคือ Natural transformations และจากก่อนหน้านี้ ถ้าคุณอาจจะยังไม่เคลียร์กับ Monad และ Monoid ซึ่ง Class นี้จะทำให้คุณกระจ่างทันที Category C

Days 7-8

Class นี้หลานส่วนซ้ำกับ Version Days 3-4 ที่ผมเคยเรียนปีแรก ๆ แต่เป็นการเปลี่ยนมุมมอง เป็นในมุมของ Senior software developer และนี้คือสิ่งที่จะได้เรียนจากใน Class นี้ทั้งหมด จากรูปด้านล่างนี้ Category 7-8

โดยจะแยกออกมาเป็น 42 เรื่องที่เราจะได้เรียนใน Class นี้ ตามนี้ Phase A Phase B Phase C Phase D Phase E

โดยจะเอาเรื่องทั้งหมดนี้มาเล่าให้เข้ากับสถานการณ์จริงที่เกิดขึ้นในชีวิต และใช้เครื่องมือพวกนี้ เล่า สื่อสาร อธิบาย หรือแก้ปัญหาที่เกิดขึ้นของ Senior software developer

สรุป

หลังจากเรียน Series ของ Math for working programmer ของอาจารย์เดฟ ทั้งหมดแล้ว ทำให้รู้ว่าคณิตสาตร์เป็นเรื่องใกล้ตัวกว่าที่เราเคยคิด สามารถนำมาประยุกต์ใช้ในชีวิตประจำได้เกือบทุกเรื่อง ใช้เป็นภาษากลางในการสื่อสารได้ เป็นกรอบความคิดของเหตุและผล ที่สำคัญ คณิตศาสตร์ไม่ใช่แค่การคำนวณตัวเลข อย่างที่เราเคยเรียนมาตลอดในการศึกษาของประเทศไทย และขอบคุณอาจารย์เดฟที่ยอมเหนื่อยมาสอน เชื่อว่าเรื่องเหล่านี้จะหาคนพูดสอนในไทย เป็นภาษาไทย และในฉบับของ Software developer คงมีเพียงหยิบมือเท่านั้น (มองจาก Union Set ของคนที่มีคุณสมบัติครบทั้งหมด)

สนใจเรียนกับอาจาย์
ติดต่อได้ที่ Facebook: Dave Rawitat Pulam
อย่าลืมนอนให้เพียงพอ ก่อนไปเรียนกันด้วยนะครับ

ฝากภาพถ่ายสุดท้ายของการเรียน Series นี้ครับ Ending class