หลักการเรียนรู้ให้เข้าใจ (ภาค 2)

Chris
4 min readJun 23, 2024

--

(อันนี้ต่อจาก ภาคแรก)

โอเค หลังจากภาคหนึ่งเรารู้แล้วว่าความเข้าใจเกิดจากการได้ลองเล่นกับข้อมูล เรามาดูข้อสองกัน

ตอนสองนี่จะยากกว่าตอนแรกนะครับ

ข้อสองคือ

“ถ้าคุณจะเข้าใจอะไร ให้เน้นที่การย่อยข้อมูลเข้าระบบภายใน”

ข้อนี้อาจจะไม่ตรงไปตรงมาเท่าข้อแรก แต่คืองี้ครับ

จริงๆ แล้ว การเรียนรู้มันเหมือนกับการกินข้าวครับ

การกินข้าว คือเราเอาข้าวเข้าปาก แล้วให้กะเพาะกับลำไส้ย่อย ได้สารอาหารมาเป็นส่วนนึงของตัวเรา ของร่างกายเรา นั่นคือการกินข้าว

การเรียนรู้ก็เหมือนกัน เรารับข้อมูลภายนอกมาผ่าน Sensory Input อาจจะเป็นเสียงเข้าหู ภาพหรือตัวหนังสือเข้าตา แล้วกลับมาเติมเต็มตัวเรา แล้วให้สมองเราย่อยออกมา แล้วข้อมูลนั้นกลายเป็นส่วนนึงของตัวเรา ของสมองเรา ของความเข้าใจโลกของเรา

และประสิทธิภาพของการทานข้าวมันก็จะประกอบไปด้วยสองส่วน คือ คุณภาพของอาหารที่เราทาน และระบบการดูดซึมการเผาผลาญของเราเอง

การเรียนรู้ก็เช่นกันครับ

เวลาที่คุณเรียนรู้อะไรอย่างเข้าใจ และเกิดโมเมนต์ที่มัน “คลิ๊ก” หรือ “aha” มันคือเวลาที่คุณย่อยความรู้และข้อมูลจากของโลกภายนอกมาเป็นตัวตนมาเป็นส่วนนึงของตัวคุณได้อย่างสมบูรณ์

แล้วคุณจะสังเกตได้ว่า เวลาเกิดสิ่งนี้ขึ้น สิ่งที่คุณได้เรียนรู้ มันไม่เคยลืมเลย มันจำได้ตลอด จำได้ง่ายมาก

แล้วเวลาเกิดสิ่งนี้ คุณแทบจะไม่จำเป็นต้องย้อนกลับไปดูข้อมูลต้นทางเลยเวลาใช้งาน เวลา เวลาสอน หรือเวลาบอกต่อ (นอกจากต้องการให้มีความแม่นยำหรือให้เครดิตเขาอ่ะนะ ซึ่งนั่นอีกเรื่องนึง)

ตรงข้าม เวลาคุณย่อยข้อมูลไม่เสร็จ มันจะเป็นแบบ จำได้ลางๆ จำได้นิดๆ ขอย้อนกลับไปดูหน่อยว่าหลักการว่าไว้ยังไง จะได้ทำถูก

อันนั้นคือหลักการหรือข้อมูลที่คุณเรียน ยังไม่ได้ย่อยมาเป็นส่วนนึงของตัวคุณครับ

สิ่งที่ผมเห็นคนเข้าใจผิดบ่อยกับการเรียนรู้คือพยายามที่จะเรียนรู้ข้อมูลในแบบ Original form ให้ได้มากที่สุด

มันมีความเชื่อประมาณนึงที่ผมเห็นบ่อย ว่า การเรียนที่ดี ควรจะพยายามรักษาความ “บริสุทธิ์” ของทฤษฎีและหลักการไว้ และเข้าใจมันในแบบนั้นๆ ไม่ให้มันแปดเปื้อน

อันนี้มันเหมือนกับคุณพยายามทานข้าวโดยไม่เคี้ยวและบังคับให้กะเพราะไม่ย่อยเลยครับ

ซึ่งมันตรงข้ามกับธรรมชาติของการเรียนรู้ให้เข้าใจอย่างสิ้นเชิง

ความเข้าใจเกิดขึ้นเมื่อคุณย่อยความรู้มาเป็นส่วนนึงของตัวคุณสำเร็จ

ซึ่งแน่นอนมันจะไม่ตรงกับ Original Information ครับ

ผมอยากให้ดูรูปนี้

มีใครสามารถเรียนรู้สิ่งที่เขียนไว้ตรงนี้ได้ตรงตาม Original Information มั้ยครับ

ธรรมชาติของข้อมูล มันจะถูกส่งผ่าน Medium หรือตัวกลางบางอย่าง และการใช้ตัวกลางก็จำกัดความแม่นยำในการสื่อทิ้งไปแล้วประมาณนึงครับ

ความพยายามที่จะเก็บข้อมูลในรูปแบบ Original information ไม่ได้ทำให้เกิดสิ่งที่เรียกว่า “ความเข้าใจ” ครับ

ผมขอ Disclaimer ว่า ไม่ใช่เราไม่ควรจำ Original information นะครับ

อย่างเวลาผมสอนทฤษฎีไม่ว่าจะเป็น Software Architecture ผมก็จะอ้างอิง Original information มาพูดด้วยเสมอ

สิ่งนั้นไม่ใช่ไม่ดีครับ การเข้าใจจุดเริ่มต้นเพียวๆ ช่วยให้เราเข้าใจลึกขึ้นด้วยซ้ำ

แต่การเก็บข้อมูล Original information เข้าสมอง กับการทำความเข้าใจ มันคนละเรื่องกันครับ

ความเข้าใจเกิดจากการย่อยข้อมูลมาเป็นตัวเรา

และแน่นอนในกระบวนการนี้ มันจะมีส่วนของ “การตีความ” หรือ “การแปลงสาร” เกิดขึ้นครับ ซึ่งหลายๆ คนจะเกลียดและหลีกเลี่ยง

และมันทำให้คนนั้นเข้าใจอะไรยาก

โอเค งั้นกระบวนการย่อยข้อมูลมาเป็นตัวเราทำยังไง

ผมอยากจะยกตัวอย่างจากบทความภาคแรก

มีคนหลายคนบอกว่าบทความภาคแรกมันเข้าใจง่าย มันเห็นภาพ เพราะตัวอย่าง “หมูกะเทียม”

ผมจะอธิบายว่าทำไมการยกตัวอย่างหมูกะเทียม มันทำให้ข้อมูลที่ผมเขียนในบทความแรก ย่อยเข้าไปในตัวคุณง่ายครับ

ปกติคุณจะมีโลกทัศน์ของตัวเองอยู่แล้วชุดนึง

คุณมีความเข้าใจอยู่แล้วเป็นจำนวนมากในโลกทัศน์เดิมของคุณ หนึ่งในความเข้าใจเดิมที่คุณมีคือ “เชฟเข้าใจหมูกะเทียมหน้าตาเป็นยังงี้”

ผมให้ข้อมูลใหม่เข้าไปให้ คือ “การเรียนรู้ที่ดีหน้าตาเป็นยังงี้”

จังหวะที่คุณย่อยข้อมูลที่ผมเขียนในบล็อกที่แล้ว คือ จังหวะที่คุณสามารถเชื่อมโยงโลกทัศน์เดิมที่คุณมี เข้ากับข้อมูลใหม่ได้

แล้วพอคุณเชื่อมได้ ข้อมูลเรื่อง “การเรียนรู้ที่ดีทำอย่างไร” ก็จะเข้าไปอยู่ในโลกทัศน์เดิมที่คุณมีอย่างสมบูรณ์

และสิ่งนี้คือ คุณย่อยความรู้ใหม่สำเร็จแล้ว มันไปอยู่ในโลกทัศน์ของคุณแล้ว

และสาเหตุที่คุณย่อยข้อมูลที่ผมให้ง่าย เพราะตัวอย่าง “หมูกะเทียม” ทำให้ความเชื่อมต่อระหว่างสิ่งที่คุณรู้อยู่แล้วคือการทำอาหารง่ายๆ อันนึง กับข้อมูลใหม่คือวิธรการเรียนรู้ที่ดี มีจุดเชื่อมต่อที่ชัดเจนครับ

ข้อมูลใหม่นี้จึงถูกย่อยไปรวมในโลกทัศน์ภายในของคุณได้ง่าย

นี่เป็นสาเหตุนึงที่ทำไม Metaphor เป็นอะไรที่ช่วยให้เรียนเข้าใจได้ง่ายขึ้นมาก

ตรงข้ามครับ ถ้าเราย่อยไม่สำเร็จ ข้อมูลใหม่มันจะเป็นแบบนี้

สมองของเราจะต้องถือโลกทัศน์สองอย่างที่ไม่มีส่วนเชื่อมต่อกัน

ปัญหาคือ สมองของคนเรา ถือโลกทัศน์ได้ไม่กี่แบบครับ

สมองเราถือข้อมูลได้เยอะมากๆ ครับ ถ้าข้อมูมันอยู่ในโลกทัศน์หรือระบบความเชื่อแบบเดียวกัน

แต่สมองเราจะถือโลกทัศน์หรือระบบความเชื่อหลายๆ แบบพร้อมๆ กันได้น้อยมาก

ข้อมูลที่ตรงกับโลกทัศน์หรือระบบเดิมที่เราเคยเก็บไว้ในสมอง เราเก็บได้เยอะมากๆ ครับ แต่ข้อมูลที่ขัด เราจะเก็บได้น้อยมากๆ

ผมยกตัวอย่างง่ายๆ สุดเลยนะ

2 + 2 = 4

๒ + ๒ = ๔

เราสามารถเก็บข้อมูลว่า การบวกเลขสองเลขได้ผลลัพธ์อะไร ได้เป็น Infinite แบบผลลัพธ์ในสมองของเรา เพราะมันอยู่ในโลกทัศน์เดียวกัน ระบบเดียวกัน

เราเลยไม่ต้องจำเป็นตัวๆ ไงครับ

และพอแยกว่าเลขไทยกับเลขอารบิก เราก็ไม่ต้องสร้างโลกทัศน์ระบบใหม่มารองรับเพื่อสร้างผลลัพธ์ใหม่ในแบบฟอร์มของเลขไทย Infinite แบบอีก เราไม่จำเป็นต้องมาเรียนว่า “บวกเลขไทย” กับ “บวกเลขอารบิก” ใหม่ใช่มั้ยครับ

เพราะมันอยู่ในโลกทัศน์และระบบเดียวกัน

จะเห็นว่า ข้อมูลที่อยู่ในโลกทัศน์หรือระบบเดิมของเรา เราสามารถเก็บได้เยอะมาก

(การเก็บไม่จำเป็นต้องจำนะครับ การเก็บบางทีอาจจะเก็บในแบบฟอร์มที่เราจำแค่หลักการแล้ว compute สร้างข้อมูลใหม่ใน Real-time ก็ได้)

จริงๆ อันนี้มันเหมือนกับการเขียนโปรแกรมมากๆ ว่าเราสามารถ Embedded information การบวกเลขได้เข้าไปในคอมพิวเตอร์ได้อย่างน้อยสองวิธี

function add1(a,b) {
return a + b; // Remember how + work
}

function add2(a,b) {
// Remember each combination
if (a == 1 && b == 1) return 2;
if (a == 1 && b == 2) return 3;
if (a == 1 && b == 3) return 4;
// And so-on
}

การเก็บข้อมูลว่าเลขสองเลขบวกกันได้อะไรลงโปรแกรมเรา ในรูปแบบแรกมันมีประสิทธิภาพกว่ารูปแบบหลัง

เช่นกันครับ การเก็บข้อมูลในสมองของเรา ถ้าเราสามารถเก็บในรูปแบบที่เราสร้าง System หรือโลกทัศน์มาล้อมรอบมันได้ มันจะทำให้เราเข้าใจได้ง่ายกว่า

ดังนั้น ถ้าหากอยากเรียนรู้ให้เข้าใจ แล้วเรามั่นใจว่าข้อมูลที่เราเรียนคุณภาพดีแล้ว

สิ่งที่เราต้องโฟกัสคือการย่อย หรือการจัดเรียงและเชื่อมข้อมูลใหม่เข้าไปอยู่ในโลกทัศน์เดิมของเรา

กระบวนการที่ทำได้ มีหลายอย่าง เช่น

  1. เปรียบเทียบกับสิ่งที่เราเข้าใจอยู่แล้ว
  2. ปรับโครงสร้างของโลกทัศน์เดิมที่เราเข้าใจให้รองรับข้อมูลใหม่ได้พร้อมกัน (อันนี้จะใช้เวลาที่เราเรียน New Paradigm of thinking)

ตัวอย่างว่าจะประยุกต์ยังไง

  • Cap Theorem ให้เปรียบเทียบกับการมีธนาคารสองสาขาที่ต้องส่งข้อมูลกันผ่านกระดาษ และ Reception อาจจะไปเข้าห้องน้ำ อันนี้เราเชื่อมทฤษฎีเข้ากับอะไรที่เป็นประสบการณ์ของเรา
  • API Design แบบใหม่ เปรียบเทียบระหว่างของเดิมที่เราทำกับของเก่า แล้วดูโฟกัสว่ามันต่างกันตรงไหนเหมือนกันตรงไหน
  • ต้องไปแก้ Legacy system สมมติต้องไปทำงานปรับวิธีการแสดงราคา พอค้นคว้าข้อมูลไปซักพัก กลับมาเชื่อมตลอดว่า ที่เราเรียนมันจะไปใช้ปรับแสดงราคาได้ยังไงนะ แล้วตรงไหนต้องใช้ในงานประชุมพรุ่งนี้นะ
  • ถ้าไปเรียนทฤษฎีบริหารใหม่ กลับมาเชื่อมว่าเอ้อชีวิตประจำวันที่เราทำงาน ตรงไหนใช้ได้บ้างไม่ได้บ้างนะ

ใช่ครับ ถ้าอยากเรียนให้เข้าใจต้องเน้นกระบวนการย่อยตรงนี้ ย่อยข้อมูลมาเชื่อมกับโลกทัศน์ที่เราเคยเรียนรู้ จนสุดท้ายมันอยู่ในโลกทัศน์เดียวกัน มีเส้นเชื่อมมีจุดเชื่อมระหว่างกัน

จนมันเป็นส่วนนึงของโลกทัศน์เดิมที่เรามี

นั่นแหละครับเราถึงจะเริ่มเกิดสิ่งที่เรียกว่า “ความเข้าใจ” ครับ

และถ้าเราเชื่อมมันกับความรู้เดิมของเราบ่อยๆ

สำหรับโปรแกรมเมอร์บางคน มาถึงตรงนี้บางคนอาจจะเป็นห่วงว่า แล้วถ้าเดิมทีเราเข้าใจผิดเราจะไม่เชื่อมผิดๆ เหรอ เหมือนบางคนชอบ Methaphor ชุ่ยๆ เปรียบเทียบอะไรชุ่ยๆ คำตอบผมคือ ใช่ เกิดขึ้นได้

ตัวอย่างนึงที่เจอบ่อยคือคนเรียน Monad แล้วเข้าใจผิดๆ ไปไกล จนเขียนบล็อกมั่วซั่วไปหมด ก็เห็นเยอะ

แต่คุณลองสังเกตว่า การไม่ย่อยก็ไม่ใช่คำตอบของปัญหานี้เว้ย อย่าไปทางนั้น

คือคุณจะไม่ย่อยจะเอาแบบ Original เข้าใจแล้วท่องให้ขึ้นใจว่า A monad is just a monoid in the category of endofunctors, what’s the problem? เงี้ยเหรอ แม่งก็ไม่ได้เกิดประโยชน์อะไรเลยเหมือนกันนะเว้ย สุดท้ายคุณอาจจะต้องกลับมาเชื่อมอยู่ดีว่า Endofunctor แม่งคืออะไรที่คุณเคยเข้าใจอยู่แล้ว

ถ้าคุณจะหลักเลี่ยงการเข้าใจผิด คุณต้องปรับจัดเรียงโลกทัศน์เดิมของคุณให้รองรับข้อมูลใหม่ จะได้ย่อยมันได้ครับ ไม่ใช่ปฏิเสธการย่อยไปเลย

สุดท้าย ปัญหานึงที่เจอของคนที่ติด Rabbit hole เวลาทำงาน คือ สร้างโลกทัศน์ใหม่อย่างสนุกสนาน จนลืมกลับมาเชื่อมที่เก่าครับ จะเป็นภาพแบบนี้

แล้วผมเห็นทางแก้ที่หลายๆ คนใช้เวลาทำงาน ซึ่งผมว่ามันไม่ได้เป็นคำตอบระยะยาว จะมีสองแบบ

  1. จำกัดเวลา Timebox
  2. จำกัด Scope ที่เราจะเรียน

ซึ่งมันมักจะออกมาเป็นภาพยังงี้

คือในภาพนี้ เราก็เรียนหลายอย่างใน Timebox, Scope ที่เราวางแหละ ตามภาพสีเขียว

แต่ ไม่ได้ช่วยให้แก้ปัญหาในงานได้เลย เพราะไอ้ที่ต้องเรียนอ่ะมันคือสีแดง

ทางแก้จริงๆ คืองี้ครับ

ฝึกนิสัยในการเชื่อมต่อสิ่งที่เรารู้หรือเราต้องการ กับข้อมูลที่เราเรียน

ถ้ายังไม่คล่อง ตั้งเวลาไว้ทุกๆ 15 นาทีครับ แล้วถาม “ตกลงที่เราเรียนเนี่ยมันเกี่ยวกับสิ่งที่เราต้องทำยังไงนะ”

แล้วถ้าไม่เกี่ยว ตัดทิ้งเลยครับ ไม่ต้องเสียดาย

(ถ้าไม่กล้าตัดทิ้งก็จดไว้แล้วเก็บไว้ใน Archive ที่ไกลๆ ตา ไม่ต้องมองไปให้รกสมอง แล้วถามตัวเองว่า ไม่กล้าตัดทิ้งเพราะอะไรกันนะ)

เพราะสิ่งที่หาความเชื่อมโยงกับโลกทัศน์เดิมของเราไม่ได้ จะเป็น Overhead ในสมองครับ

ตามที่เรารู้ว่า สมองเราถือโลกทัศน์ได้ไม่กี่อย่างพร้อมๆ กันครับ

และนี่เป็นวิธีการฝึกฝนของคนทั่วไปที่ไม่ใช่โปรแกรมเมอร์ได้เหมือนกันครับ ว่าเวลาเรียนอะไรใหม่ๆ เอากลับมาย่อยเป็นระยะๆ ครับ

  1. กลับมาถามตัวเองว่าสิ่งนี้มันตรง ไม่ตรง กับสิ่งที่เราเคยรู้ยังไงบ้างนะ
  2. ถ้าไม่ตรง มีอะไรที่เราต้องเปลี่ยนความเชื่อพื้นฐานของเราเพื่อให้รับข้อมูลใหม่นี้ได้บ้างนะ หรือเราจะทิ้งข้อมูลใหม่ไปก่อนดีนะ
  3. เราจะเชื่อมสิ่งที่เรารู้และจำได้ขึ้นใจ กับสิ่งใหม่ได้ยังไงบ้างนะ

เราไม่ควรละทิ้งกระบวนการย่อยตรงนี้นะครับ

แล้วที่น่าเศร้าที่สุดคือ ผมว่าคนไทยหลายคนที่โตมาในรุ่นผม อาจจะถูกสอนว่า เวลาทวนให้ท่องซ้ำจะได้เข้าใจ ลองอ่านซ้ำเรื่อยๆ

แต่จริงๆ การทวนที่มีประสิทธิภาพคือแบบข้างบนนี้ครับ คือการย่อยข้อมูลมาเป็นตัวเราครับ

สุดท้ายกฎข้อสองของการเรียนรู้ให้เข้าใจคือ

“การเรียนรู้เกิดขึ้นที่โลกภายใน ตอนที่เราจัดเก็บข้อมูลในโลกภายในเข้ามาในตัวเราได้แล้ว”

ความเข้าใจไม่ได้เกิดจากการที่คุณเก็ตแล้วว่า Original Intent เจตนารมณ์เดิมของข้อมูลอยู่ตรงไหน แต่ความเข้าใจคือคุณสามารถเอาข้อมูลนั้นมาเป็นส่วนนึงของตัวคุณของโลกทัศน์คุณได้ แม้สุดท้ายสิ่งที่คุณนำเข้ามาเป็นส่วนนึงของคุณ มันจะห่างและแตกต่างจากของเดิมไปบ้างก็ตาม

และการเชื่อมสิ่งที่เรารู้อยู่แล้วเข้ากับสิ่งใหม่ เป็นจุดสำคัญในการย่อยครับ

(และใน Advance level เราอาจจะต้องปรับ “สิ่งที่เรารู้อยู่แล้ว” หรือ Existing belief ก่อนเพื่อให้รับข้อมูลใหม่ได้ครับ ถ้าเราเรียนอะไรที่มันแหก Paradigm เดิมที่เรารู้จักมากๆ แต่ข้อที่คนมักจะพลาดตรงนี้คือการพยายามรักษาสองโลกทัศน์พร้อมกันในสมอง อันนี้จะไม่เข้าหัวและไม่เกิดความเข้าใจครับ)

--

--

Chris

I am a product builder who specializes in programming. Strongly believe in humanist.