Writing
RClaude

การเรียนรู้ไปพร้อมกับ AI

การเรียนรู้ไปพร้อมกับ AI

ถ้าเคยรู้สึกว่า “เขียนโค้ดได้เร็วขึ้นมากตั้งแต่ใช้ AI แต่ทำไมรู้สึกว่าตัวเองไม่ได้เก่งขึ้นเลย” — ความรู้สึกนั้นไม่ได้เป็นแค่ความรู้สึก มันมีงานวิจัยรองรับ

Dr. Cat Hicks นักจิตวิทยาที่ศึกษาทีมซอฟต์แวร์มาหลายปี ได้สร้าง Learning Opportunities Skill ขึ้นมาเพื่อแก้ปัญหานี้โดยตรง ไม่ใช่แค่ “ฟีเจอร์เสริม” แต่เป็น Skill ที่มีรากฐานจากจิตวิทยาการเรียนรู้อย่างจริงจัง

🔗 DrCatHicks/learning-opportunities
🔗 DrCatHicks/learning-goal (Skill คู่หูที่ควรใช้ด้วยกัน)

Can you learn AND offload? Yes. We do it all the time across our days. You just cannot do every single thing at once, and have to think about the structural support for different (sometimes competing) goals. Self-regulation isn’t new, but it is a vital skill for developers now.

— Cat Hicks (@grimalkina.bsky.social) 15 กุมภาพันธ์ 2569 เวลา 22:51

ทำไม AI ถึงทำให้เราเรียนรู้ได้น้อยลง?

ก่อนพูดถึงวิธีแก้ ต้องเข้าใจปัญหาก่อน Cat Hicks อธิบายไว้ผ่าน 5 กลไกทางจิตวิทยา ที่ AI coding tools ทำให้เกิดขึ้นโดยไม่รู้ตัว

1. Generation Effect ถูกทำลาย

งานวิจัยด้านการเรียนรู้พบว่า การ สร้าง ข้อมูลขึ้นมาเองจากความจำหรือความเข้าใจ ให้ผลการจดจำที่ดีกว่าการ รับ ข้อมูลที่คนอื่นเตรียมมาให้อย่างมาก เรียกว่า generation effect

เมื่อเราขอโค้ดจาก AI แล้วกด Accept — กระบวนการ “คิดสร้าง” ถูกข้ามไปทั้งหมด โค้ดที่ได้อาจถูกต้อง แต่ไม่ได้สร้างความเข้าใจในหัวเรา

2. Fluency Illusion — โค้ดสวยทำให้เข้าใจผิดว่าตัวเองเข้าใจ

โค้ดที่ AI เขียนออกมาโดยทั่วไปสะอาด มีโครงสร้างชัด อ่านเข้าใจง่าย สิ่งนี้สร้าง ภาพลวงตาของความเข้าใจ เราอ่านผ่านแล้วรู้สึกว่า “โอเค เข้าใจแล้ว” ทั้งที่จริง ๆ ยังไม่ได้ เข้าใจ แต่แค่ อ่านผ่าน

ผลก็คือเมื่อต้องเขียนอะไรคล้ายกันในอีกสองอาทิตย์ต่อมา เราก็ไม่รู้จะเริ่มยังไง

3. Spacing Effect ถูกทำลาย

การเรียนรู้ที่ยั่งยืนต้องการ การหยุดพัก ระหว่างช่วงการเรียน งานวิจัยพิสูจน์ว่า spaced repetition ให้ผลดีกว่า cramming อย่างมีนัยสำคัญ

แต่ AI ผลักดัน velocity — เราทำงานต่อเนื่องยาวนานโดยไม่มีจังหวะหยุดคิด จังหวะที่สมองต้องการเพื่อ consolidate การเรียนรู้ถูกยกเลิกไปโดยปริยาย

4. Metacognition ถูกบดบัง

Metacognition คือความสามารถในการ “คิดเกี่ยวกับการคิดของตัวเอง” รู้ว่าตัวเองเข้าใจอะไร และยังขาดตรงไหน

Workflow ที่เร็วเกินไปไม่เปิดพื้นที่ให้สมองทำงานส่วนนี้ เราจึงสร้าง mental model ที่ผิดหรือไม่ครบ โดยไม่รู้ว่ามันผิด

5. Testing Effect ถูกยกเลิก

การ “ดึงความรู้ออกมาจากหัว” ผ่านการทดสอบตัวเองหรือการอธิบาย เป็นวิธีที่ทำให้ความรู้ฝังแน่นที่สุด วิทยาศาสตร์เรียกว่า retrieval practice

AI มักให้คำตอบเต็มโดยอัตโนมัติ เราไม่เคยต้องดิ้นรนดึงความรู้ออกมา และนั่นคือสิ่งที่ทำให้ความรู้ไม่ถูก “บันทึก” อย่างแน่นหนา


แนวคิดหลัก: Dynamic Textbook

Cat Hicks เรียก Skill ของเขาว่า “dynamic textbook” แนวคิดคือแทนที่จะให้ Claude ทำทุกอย่างแทนเรา Skill นี้ทำให้ Claude เปลี่ยนบทบาทเป็น โค้ชการเรียนรู้ ที่:

กฎเหล็กของ Skill นี้: Claude ถามคำถามแล้วหยุด ไม่ hint ไม่ให้ตัวอย่าง ไม่บอกคำตอบ รอให้เราตอบก่อนเท่านั้น


เมื่อไหร่ Skill จะ Activate

Claude จะเสนอ exercise หลังจากเราทำงานต่อไปนี้เสร็จ:

Claude จะถามว่า:

“Would you like to do a quick learning exercise on [หัวข้อนั้น]? About 10–15 minutes.”

เราสามารถปฏิเสธได้ตลอด และ Claude จะไม่เสนออีกในเซสชั่นนั้น (หรือถ้าทำ exercise ไปแล้ว 2 ครั้งในเซสชั่นเดียวกัน)


Exercise ทั้ง 6 แบบ พร้อมตัวอย่าง

แบบที่ 1: Prediction → Observation → Reflection

เหมาะสุดสำหรับการเรียนรู้ behavior ของโค้ด

ขั้นตอน:

  1. Claude ถาม: “What do you predict will happen when [scenario]?” แล้วหยุด
  2. เราตอบ (ถูกหรือผิดก็ได้ — ผิดยิ่งดีสำหรับการเรียนรู้)
  3. เดินผ่าน behavior จริงด้วยกัน
  4. Claude ถามอีก: “What surprised you? What matched your expectations?”

ตัวอย่างสำหรับคนใช้ R:

Claude: "You just created a function using group_by() and summarise().
What do you predict will happen if one of the grouping variables
has NA values? (Take your best guess — wrong predictions are useful data.)"

[รอคำตอบเรา]

[หลังเราตอบ]
Claude: เดินผ่าน behavior จริงของ dplyr กับ NA ใน group_by()
แล้วถาม: "What surprised you about how dplyr handles this?"

แบบที่ 2: Generation → Comparison

เหมาะสำหรับทำความเข้าใจว่าทำไมโค้ดถึงถูกเขียนแบบนั้น

ขั้นตอน:

  1. Claude ถาม: “Before I show you how we handle [X], sketch out how you’d approach it” แล้วหยุด
  2. เราเขียน approach ของตัวเอง (แค่ rough idea ไม่ต้อง code สมบูรณ์)
  3. Claude แสดง implementation จริง
  4. Claude ถาม: “What’s similar? What’s different, and why do you think we went this direction?”

ตัวอย่างสำหรับคนใช้ R:

Claude: "Before I show you how we're reading the GPS coordinates CSV,
sketch out how you'd approach validating that latitude is between
-90 and 90, and longitude between -180 and 180."

[รอคำตอบเรา — เราเขียน approach คร่าว ๆ]

[หลังเราตอบ]
Claude: แสดง implementation จริงที่ใช้ dplyr::filter() กับ between()
แล้วถาม: "What's similar to your approach? What did we handle differently?"

แบบที่ 3: Trace the Path

เหมาะสำหรับทำความเข้าใจ flow ของข้อมูลหรือ execution

ขั้นตอน:

  1. Claude ตั้ง scenario พร้อม specific values
  2. ถามว่าเกิดอะไรขึ้นที่จุดแรก แล้วหยุดรอ
  3. เดินต่อทีละ step จนจบ

ตัวอย่างสำหรับคนใช้ R:

Claude: "We have a data frame with 1,000 rice field observations.
Severity scores are 0–4. We run: df |> filter(severity > 2) |>
group_by(province) |> summarise(mean_sev = mean(severity))

The data enters filter(). What happens next?"

[รอคำตอบเรา]

[หลังตอบ]
Claude: "Now it enters group_by(). What does group_by() actually
do to the data frame at this point?"

[รอคำตอบเรา]
...และเดินต่อไปทีละขั้น

แบบที่ 4: Debug This

เหมาะสำหรับสร้างความเข้าใจเรื่อง edge cases และ failure modes

ขั้นตอน:

  1. Claude แสดง bug หรือ edge case ที่เป็นไปได้
  2. ถาม: “What would go wrong here, and why?” แล้วหยุด
  3. หลังเราตอบ ถามว่า “How would you fix it?”
  4. คุยเรื่อง approach ของเรา

ตัวอย่างสำหรับคนใช้ R:

# Claude แสดงโค้ดนี้:
calculate_disease_index <- function(incidence, severity) {
  (incidence * severity) / 100
}

Claude: "What would go wrong here if someone passes
incidence = 110 (which shouldn't be possible but might happen
from data entry errors)? Why is that a problem?"

[รอคำตอบเรา]

Claude: "How would you add input validation to prevent this?"

แบบที่ 5: Teach It Back

เหมาะที่สุดสำหรับ “ทดสอบ” ว่าเราเข้าใจจริงหรือแค่คิดว่าเข้าใจ

ขั้นตอน:

  1. Claude ถาม: “Explain how [component] works as if I’m a new developer joining the project”
  2. หยุดรอคำอธิบายของเรา
  3. ให้ feedback: อะไรที่เราอธิบายได้ดี และอะไรที่ควรเพิ่มเติม

ทำไมแบบนี้ถึงได้ผล: ถ้าเราอธิบายให้คนอื่นฟังไม่ได้ แสดงว่าเราไม่ได้เข้าใจจริง การ “สอน” ผลักดันให้สมองจัดระเบียบความรู้ใหม่

ตัวอย่าง:

Claude: "Explain how our spatial join between disease survey points
and province boundaries works — as if you're onboarding
a new research assistant who knows R but hasn't seen this code."

[รอคำอธิบายของเรา]

Claude: [ให้ feedback ว่าอธิบายได้ดีตรงไหน และขาดอะไร]

แบบที่ 6: Retrieval Check-in

เหมาะสำหรับต้น session เมื่อกลับมาทำงานต่อจากวันก่อน

ขั้นตอน:

  1. Claude ถาม: “Quick check — what do you remember about how [component] handles [scenario]?”
  2. หยุดรอ
  3. เติมช่องว่างหรือยืนยันสิ่งที่เราจำได้

นี่คือ spaced repetition ในทางปฏิบัติ — การดึงความรู้ออกมาจากหัวด้วยตัวเองครั้งหนึ่ง ให้ผลการจดจำระยะยาวดีกว่าการอ่านทบทวนหลายครั้ง


Skill คู่หู: Learning Goal

Learning Goal Skill ออกแบบมาทำงานคู่กับ Learning Opportunities โดยตรง ถ้า Learning Opportunities คือ “how to practice” ตัวนี้คือ “what to learn and why”

ใช้เทคนิคที่เรียกว่า MCII (Mental Contrasting with Implementation Intentions) ซึ่งเป็น intervention ที่ Cat Hicks ทดสอบกับคนหลายร้อยคนในที่ทำงานจริง และวัดผลได้ว่าเพิ่ม behavioral follow-through ได้จริง

กระบวนการ 7 ขั้น (ใช้เวลา 10–15 นาที)

ขั้นที่ 1: ตั้งเป้าหมาย ระบุทักษะหรือสิ่งที่อยากเรียนรู้ให้ชัดเจน Claude จะช่วยขัดเกลาให้ specific ขึ้น แต่ไม่เขียนแทน

ตัวอย่าง: จาก “อยากเก่ง Python”“อยากเขียน spatial analysis ด้วย geopandas ให้ได้ภายใน 3 เดือน โดยไม่ต้องดู documentation ทุกบรรทัด”

ขั้นที่ 2: Strengthen the Goal Claude ตรวจสอบเป้าหมายด้วย SMART framework เฉพาะมิติที่อ่อนแอที่สุด ถ้าเป้าหมายชัดแล้ว ขั้นนี้จะสั้นมาก

ขั้นที่ 3: Visualize the Outcome อธิบายสั้น ๆ ว่าทำไมเป้าหมายนี้ถึงสำคัญ และชีวิตหรือการทำงานเปลี่ยนไปอย่างไรเมื่อทำได้ ขั้นนี้คือการสร้าง “desired future” ในหัว ซึ่งเป็นส่วนสำคัญของ mental contrasting

ขั้นที่ 4: ระบุอุปสรรค Claude ขอให้เราระบุสถานการณ์จริงที่น่าจะทำให้เราไม่ไปถึงเป้า เช่น “เวลาถึงวันศุกร์บ่าย งานด่วนจะดูดเวลาที่ตั้งใจไว้เรียน” หรือ “เวลาเจอ error ยาว ๆ จะถามคนอื่นแทนที่จะลองคิดเอง”

สำคัญมาก: Claude ไม่แนะนำอุปสรรคแทน เพราะงานวิจัยพบว่าอุปสรรคที่เราคิดเองสร้าง mental association ที่แข็งแกร่งกว่าอย่างมีนัยสำคัญ

ขั้นที่ 5: สร้าง If-Then Plans สำหรับแต่ละอุปสรรค ให้สร้าง if-then plan ที่ชัดเจน:

“ถ้า [สถานการณ์อุปสรรค] → ฉันจะ [action ที่ชัดเจน]”

ตัวอย่าง:

“ถ้าวันศุกร์บ่ายมีงานด่วนเข้ามา → ฉันจะย้าย learning session ไปเช้าวันจันทร์ก่อนเปิด email”

“ถ้าติด error นานกว่า 20 นาที → ฉันจะเขียนสิ่งที่ลองไปแล้วก่อนที่จะขอความช่วยเหลือ”

ขั้นที่ 6: Reaffirm or Adjust หลังเผชิญกับอุปสรรคในใจแล้ว ทบทวนว่าเป้าหมายยังสมเหตุสมผลไหม ปรับถ้าจำเป็น ยืนยันถ้าใช่

ขั้นที่ 7: ออก Learning Goal Card Claude สร้าง markdown file สรุปเป้าหมาย เหตุผล if-then plans และ first step ที่ชัดเจน ไว้ใน project ได้เลย


วิธีติดตั้ง

ติดตั้ง Learning Opportunities

# 1. เพิ่ม marketplace
/plugin marketplace add https://github.com/DrCatHicks/learning-opportunities.git

# 2. ติดตั้ง plugin
/plugin install learning-opportunities@learning-opportunities

# 3. Restart Claude Code

Bonus: ตั้งให้ทำงานอัตโนมัติหลัง git commit (Linux/macOS)

/plugin install learning-opportunities-auto@learning-opportunities

เมื่อติดตั้งแล้ว Claude จะพิจารณาเสนอ exercise หลังแต่ละ git commit อัตโนมัติ

ติดตั้ง Learning Goal (คู่หู)

/plugin marketplace add https://github.com/DrCatHicks/learning-goal.git
/plugin install learning-goal@learning-goal

วิธีปรับ Skill ให้เข้ากับงานของตัวเอง

Cat Hicks เขียนไว้ชัดเจนใน README ว่า Skill นี้ออกแบบมาให้ปรับได้ มีแนวทางดังนี้:

บอก Claude เรื่องระดับความรู้ของตัวเอง เพื่อให้ exercise เริ่มที่ระดับที่เหมาะสม เช่น เพิ่มใน CLAUDE.md ของ project:

## Learning Context
- ภาษา R: เชี่ยวชาญ เน้น tidyverse และ spatial analysis
- ภาษา Python: กำลังเรียนรู้ ยังต้องการคำอธิบาย syntax
- เป้าหมาย: เขียน geopandas workflow ได้โดยไม่ดู documentation

ปรับ trigger conditions ถ้าอยากให้ Claude เสนอ exercise ต่างจาก default เช่น เฉพาะเมื่อสร้างไฟล์ใหม่ ไม่ใช่ทุก refactor

เพิ่มจำนวน exercise สูงสุดต่อ session default คือ 2 ครั้ง ถ้าอยากเรียนมากกว่านั้นก็ได้

ใส่ domain-specific retrieval questions เช่น ถ้าทำงานด้านระบาดวิทยาโรคพืช อาจบอก Claude ว่าให้ถาม check-in เรื่อง spatial stats หรือ disease incidence formula


ตัวอย่าง Session จริง: สำหรับนักวิจัยที่ใช้ R

สมมติว่ากำลังสร้าง function วิเคราะห์ข้อมูลความรุนแรงของโรคในแปลงนา และเพิ่งเขียนเสร็จ

Claude เสนอ:

“You just implemented a disease severity calculator using weighted incidence. Would you like a quick learning exercise on how R handles the NA values in your severity scores? About 10–15 minutes.”

เลือก Yes:

Claude: “Before we test it — what do you predict will happen when severity_score contains NA and you run mean(severity_score)? (Take your best guess — wrong predictions are useful data.)”

[เราตอบ: "น่าจะคืน NA กลับมา"]

Claude: “Correct. Now — what do you predict mean(severity_score, na.rm = TRUE) will return, and is that always the right choice for your disease index calculation?”

[เราตอบ]

Claude: [อธิบาย implication ของ na.rm = TRUE ในบริบทของ disease index และถามต่อ]
“What would you do differently if NA meant ‘field not surveyed’ vs ‘data entry error’?”

นี่คือ exercise แบบ Prediction → Observation → Reflection ที่เชื่อม concept ทั่วไปกับบริบทงานจริงของเรา


ทำไม Skill นี้ถึงพิเศษกว่า Skill อื่น

Skills ส่วนใหญ่ในโลกของ Claude Code ออกแบบมาเพื่อให้ Claude ทำงานได้ ดีขึ้น หรือ ถูกต้องขึ้น

Learning Opportunities Skill ออกแบบมาเพื่อให้ เรา เรียนรู้ได้มากขึ้นระหว่างใช้ AI — นั่นคือเป้าหมายที่ต่างกันโดยพื้นฐาน

Cat Hicks เขียนไว้ใน README อย่างตรงไปตรงมาว่า Skill นี้จะ “รู้สึกต่างจาก highly fluent agentic coding” และนั่นคือตั้งใจ เพราะความ “ลื่น” คือสิ่งที่ทำให้เราไม่ได้เรียนรู้

สำหรับนักวิชาการหรือนักวิจัยที่อยากใช้ AI เป็นเครื่องมือแต่ยังอยากรักษาและพัฒนาทักษะที่แท้จริงไปด้วย — อันนี้คือคำตอบที่มีหลักวิทยาศาสตร์รองรับมากที่สุดที่พี่เจอมา


อ้างอิง