เคยเจอหัวข้อ Rails ที่ไม่เข้าใจไหม? คิดว่ารู้ เขียนโค้ดแล้วผลออกมาแตกต่างสิ้นเชิง หรือ "รู้ประมาณ" พอได้โดย แตก Debug Edge Cases นานจนเรียนรู้จริงเร็วกว่า?
ดีกว่ามั้ยถ้าเข้าใจจริงๆ ว่ามันทำงานยังไง? มี Mental Model ที่มั่นคง ตัดสินใจได้ถูก เขียนโค้ดได้ถูก
ตอนเรียน Web Dev ตอนแรก Sessions เป็น "That Thing" คิดว่ารู้ประมาณ แตความเข้าใจผิดก่อให้เกิด Bugs มเยอะจนถูกตีวิพากษ์
จึงต้องหาเวลาเข้าใจ Sessions จริงจัง Demystify ให้ไม่ตกใจ ไม่แปลกประหลาด ทายพฤติกรรมได้ถูกต้อง
Sessions แค่ตัวอย่าง Data Modeling, Caching, Metaprogramming ก็เหมือนกัน - "ทำงานได้ประมาณ" แต Debug ยากมากถ้าไม่เข้าใจลึก
ใน Practicing Rails เขียนเกี่ยว T-Shaped Learning: รู้พื้นฐานกว้าง แล้ว Deep Dive หัวข้อเฉพาะเมื่อจำเป็น Deep Dive เหล่านี้ช่วยแก้ปัญหาใหญ่ตลอดอาชีพ
เมื่อไหร่ควร Deep Dive?
ก่อนอื่น ต้องรู้ว่า "ดำน้ำลงไปในอะไร" Deep Dive คุ้มค่าที่สุดตอนจัดการกับ Single Topic (คำเดียว/วลีสั้น: SQL Query Performance, Sessions, HTTP Caching) Specific เกินไปพลาด Interaction, General เกินไปกลาย Deep Dive "Programming" (ใช้ตลอดอาชีพ)
สถานการณ์ 2 กรณีที่ควร Deep Dive:
- คิดว่ารู้ แตเกิดเหตุการณ์ที่คาดไม่ถึง - คิดว่ากดปุ่มเขียวไฟห้องนอกติด แตกดแล้วห้องพังทลาย
- รู้ว่าไม่เข้าใจ แตพอใช้ได้... จนแก้บั๊กแล้วเกิดบั๊กใหม่เรื่อยๆ แก้หนึ่งเจอใหม่ วนลูปไม่รู้จบ
ทั้งคู่มีจุดร่วม: เริ่มรู้สึกว่าทิศทางผิด หวังว่าจะกลับมาถูก แต่ว่าจะเสียเวลามาก ควรหยุด รวบรวมตัว และเรียนรู้ลึกๆ เรื่องที่ตอนนี้รู้ว่ายังไม่เข้าใจ
ครั้งหน้าที่วนลูป Debug Edge Cases หรือโค้ดทำงานแปลก ให้จดจำความรู้สึกนั้น ใช้อารมณ์นั้นเป็นสัญญาณว่า: หยุด เรียนรู้ลึก
แต่มาแล้ว Deep Dive ยังไง? (ติดตามในบทความต่อไป)