Author: Shinin Varongchayakul

  • What I Learned From Writing in 2025: สรุป 7 ประเด็นที่ผมเรียนรู้จากการเขียน post ทุกสัปดาห์มา 1 ปี

    What I Learned From Writing in 2025: สรุป 7 ประเด็นที่ผมเรียนรู้จากการเขียน post ทุกสัปดาห์มา 1 ปี

    ผมเขียนบทความนี้ เพื่อเป็น reflection session กับตัวเองเกี่ยวกับการเขียนบทความใน 1 ปีที่ผ่านมา (2025)

    เพื่อช่วยให้ผมได้ตกผลึกกับตัวเอง บทความนี้เลยเขียนเป็นเหมือนบทสัมภาษณ์ที่มีการถามตอบทั้งหมด 7 ส่วน

    ลองไปดูกันว่า ผมเรียนรู้อะไรจากการเขียนบทความมา 1 ปีบ้าง


    1. 🏁 Q&A 1: ทำไมถึงเริ่มเขียนบทความ?
    2. 😅 Q&A 2: ก่อนหน้านี้ เคยเขียน blog มาก่อน แต่ทำไมถึงเลิกไป?
    3. 🤔 Q&A 3: แล้วครั้งนี้ทำไมถึงเขียนได้นานกว่าครั้งก่อน?
    4. 💪 Q&A 4: ปกติมีวิธีเขียนยังไงบ้าง?
    5. ✏️ Q&A 5: จากที่เขียนบทความมา 1 ปี ได้เรียนรู้อะไรบ้าง?
    6. 🔥 Q&A 6: มีอะไรที่คิดว่าปรับปรุงได้ในการเขียนในอนาคต?
    7. 😌 Q&A 7. มีอะไรอย่างทิ้งท้ายบ้าง?

    🏁 Q&A 1: ทำไมถึงเริ่มเขียนบทความ?

    ผมเริ่มเขียน post บน WordPress อย่างจริงจังตั้งแต่ต้นปี 2025 ที่ผ่านมา หลังจากได้ร่วมคอร์ส Web for Impact ของพี่ทอย DataRockie ตอนปลายปี 2024

    Web for Impact (2024)

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

    แต่การมีเว็บไซต์อย่างเดียวไม่พอ เว็บไซต์จะต้องมี content ที่ดี ที่เป็นประโยชน์กับคนอ่านด้วย เพราะ content ที่ดีจะทำให้เว็บไซต์ของเรามีโอกาสติด search engine และมีคนเข้าถึงเว็บไซต์และรู้จักเรามากขึ้น


    😅 Q&A 2: ก่อนหน้านี้ เคยเขียน blog มาก่อน แต่ทำไมถึงเลิกไป?

    ผมคิดว่า มีอยู่ 2 ปัจจัย:

    .

    ข้อ 1. เนื้อหาที่เขียน:

    Blog แรกที่ผมเขียนบน Blogdit เป็นบทความเกี่ยวกับจิตวิทยา ซึ่งผมพยายามเขียนเป็นแนววิชาการ (เพราะเป็นแนวเขียนที่ผมถนัด) ซึ่งเป็นการเขียนที่ใช้เวลานาน เพราะต้องหา references ต่าง ๆ

    และผมเป็นคนที่อ่าน journal เพราะความสนใจส่วนตัว พอไม่ใช่เรื่องที่สนใจ ผมจะไม่ได้อ่าน และทำให้ไม่มีเนื้อหามาเขียนเป็นบทความ

    Blogdit ที่ผมเขียนลงบทความ

    .

    ข้อ 2. ผลตอบรับ:

    ซึ่งเป็นประเด็นที่สำคัญกว่า เพราะเราเขียนเพื่อให้เกิด impact แต่พอบทความที่เขียนใช้เวลาเขียน 2–3 วัน หรือ 1 สัปดาห์ไม่ได้มีคนอ่านหรือเข้าถึง ผมก็รู้สึกว่า การเขียนไม่ใช่การลงทุนที่คุ้มค่าเท่าไร


    🤔 Q&A 3: แล้วครั้งนี้ทำไมถึงเขียนได้นานกว่าครั้งก่อน?

    เพราะ 2 อย่างเหมือนเดิม

    .

    ข้อ 1. เนื้อหาที่เขียน:

    ผมเปลี่ยนจากการเขียนเกี่ยวกับจิตวิทยา มาเขียนเกี่ยวกับการเขียน code แทน

    ผมเลือก topic นี้ เพราะช่วงนั้น ผมเพิ่งเรียน Data Science Bootcamp ของพี่ทอยจบใหม่ ๆ และอยากฝึกทักษะการเขียนภาษา R, Python มากขึ้น ผมเลยเลือกสรุปเนื้อหา R, Python ที่ผมกลับมาทบทวนเป็นบทความรายสัปดาห์

    ตัวอย่างบทความที่ผมลงในช่วงแรก ๆ

    ถ้าเป็นเมื่อก่อน ผมคงไม่กล้าเขียนเรื่องอื่นนอกจากจิตวิทยา เพราะไม่ใช่ domain expertise ของผม แต่ผมจำข้อคิดจาก Web for Impact ได้ว่า เราจะเขียนอะไรก็ได้ และถ้าไม่รู้จะเขียนอะไร ก็เขียนในสิ่งที่เราสนใจก่อน ซึ่งในตอนนั้นก็เลยเป็น coding

    .

    ข้อ 2. ผลตอบรับ:

    ข้อนี้เป็นข้อสำคัญ

    หลังจากจบ Data Science Bootcamp รุ่น 10 แล้ว ผมได้ทุนเรียนรุ่น 11 ต่อ ทำให้ผมได้เข้าไปอยู่ใน bootcamp community ที่อยู่บน Discord ซึ่งเป็นช่องทางหนึ่งที่ผมแชร์บทความที่ผมเขียนลงไป

    เพราะเนื้อหาในบทความเกี่ยวข้องกับ bootcamp โดยตรง ทำให้มีคนเข้ามาอ่านบทความค่อนข้างมาก ปกติบทความ 1 จะมีคนเข้ามาอ่านอย่างมากก็ 10 คนในวันแรก (post แรก ๆ ของผมไม่มีคนอ่านเลย 😂) แต่มีอยู่บทความหนึ่งที่ผมเขียนสรุปสูตร Google Sheets แล้วมีคนเข้ามาอ่านวันแรกเกือบ 80 คน พอเห็นตัวเลขแล้วยังตกใจไม่หาย เพราะไม่เคยมีคนเข้ามาอ่านเยอะขนาดนี้มาก่อน และบทความนั้นเพิ่งเป็นบทความที่ 3 ที่ผม post ในปีนั้น (ก่อนหน้านั้น ผมเอา post บทความเก่า ๆ จาก Blogdit มาใส่ไว้ใน WordPress)

    บทความสรุปสูตร Google Sheets

    ตั้งแต่นั้น ผมเลยเรียนรู้ว่า ถ้าเราเขียน content ที่ตอบโจทย์ ก็จะมีคนอ่านงานของเราจริง ๆ และการเขียนไม่ได้เสียเวลาเปล่า และแม้ว่า post หลัง ๆ อาจจะไม่ได้ผลตอบรับดีเหมือนกับบทความ Google Sheets แต่ผมก็ยังมีกำลังเขียนอยู่เรื่อย ๆ

    พอเขียนไปได้สักพัก ก็เริ่มมีคนเข้าถึงบทความและรู้จักเรามากขึ้น

    เช่น มีเพื่อนใน bootcamp ที่ติดตามผลงาน และช่วยให้กำลังใจ (และเช็กคำผิดให้ 😂🙏)

    น้องที่เคยเรียน bootcamp รุ่น 10 ด้วยกันแล้วมาฝึกงานที่บริษัทก็จำผมได้จากบทความที่ลงทุกสัปดาห์

    มีน้องฝึกงาน AI ในบริษัทที่เข้ามาแล้ว search เจอบทความการใช้ AI ของผม

    และพี่ทอยที่จำผมได้จากการลงบทความลงใน Discord ทุกสัปดาห์

    ตัวอย่าง post บน Discord

    (เลยได้เปิด domain ทุกครั้งที่ถ่ายรูปกับพี่ทอย 🤞😂)

    รูปจากงาน WebPresso (Dec 2025)

    💪 Q&A 4: ปกติมีวิธีเขียนยังไงบ้าง?

    ในช่วงแรก ผมไม่ได้มีหลักการอะไรมาก นอกจากเขียนทุกอย่างที่อยากเขียน

    ผมพอรู้หลักการเขียนบ้าง จาก Web for Impact และที่เขียนได้ยินคนอื่นพูดถึงการเขียน content ในเว็บ

    เช่น เราควรจะกำหนด target audience ก่อนว่า เราจะเขียนให้ใครอ่าน

    ผมพยายามใช้ technique นี้แล้ว แต่ปัญหาที่เจอคือ ผมไม่รู้ว่ากำลังเขียนให้ใครอ่าน เพราะผมก็เพิ่งเริ่มเขียน และไม่ได้เป้าหมายชัดเจนว่าอยากจะเข้าถึงคนกลุ่มไหน

    Solution ที่ผมชอบมาจากข้อคิดใน Web for Impact คือ ให้เขียนให้ตัวเองอ่าน ซึ่งพอเป็น mindset แบบนี้ ทำให้ผมเขียนได้ง่ายขึ้น เพราะผมรู้ว่า ผมอยากจะเห็นงานเขียนแบบไหน และแบบไหนที่ผมเรียกว่าอ่านง่ายอ่านได้เข้าใจ

    .

    ผมไม่ได้เขียนโดยไม่มี structure เลย แต่ผมไม่ได้ให้ความสำคัญมากจนกระทั่งอ่านหนังสือ Writing Is Not Magic, It’s Design ของ João Batalheiro Ferreira ที่แนะนำว่า การเขียนก็เหมือน creative work อื่น ๆ อย่างการออกแบบ furniture ที่มีกระบวนการ 4 ขั้นตอน (NODE):

    1. Note: เก็บรวบรวมข้อมูล
    2. Organise: จัดเรียงข้อมูล เพื่อเป็นโครงในการเขียน
    3. Draft: ร่าง
    4. Edit: แก้ไข
    หนังสือ Writing Is Not Magic, It’s Design จาก Amazon

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

    ทั้งนี้ ผมไม่ได้ยึดโครงที่เขียนตั้งแต่แรกตลอด พอเขียนไปได้สักพัก (อย่างบทความที่ทุกคนกำลังอ่านอยู่) ผมก็ปรับเปลี่ยนโครงไปเรื่อย ๆ เพราะบางทีการเขียนจะทำให้เราได้เห็นมุมมองและความคิดใหม่ ๆ ที่เราอยากจะใส่ลงไปในบทความ ซึ่งทำให้เราต้องปรับเปลี่ยนโครง (note → organise → draft) อีกครั้ง

    .

    อีกบทเรียนที่ได้จากหนังสือ Writing Is Not Magic, It’s Design คือ modular writing หรือการเขียนแบบแบ่งท่อน แทนที่เราจะเขียนทั้งบทความในครั้งเดียว ตั้งแต่ต้นจนจบ เราสามารถแบ่งเขียนได้ เช่น บทความมี 5 ส่วน เราเริ่มเขียนส่วน 3 ที่ง่ายสุดก่อน แล้วค่อยเขียน 2, 4 ที่อยู่ประกอบหัวท้าย แล้วจัดการ 1, 5 หลังสุด เพราะเรามีเนื้อหาตรงกลางครบแล้ว

    Modular writing ทำให้การเขียนง่ายขึ้น เพราะเราสามารถเลือกเขียนจากส่วนที่ง่ายที่สุดก่อนได้ เป็นการลด friction ที่เราจะเริ่มเขียนงานในตอนแรก และทำให้เราสามารถเขียนงานออกมาได้เรื่อย ๆ

    นอกจากนี้ modular writing ยังทำให้เราถอดประกอบบทความได้ด้วย เช่น บทความ mental models ที่ผมเขียนส่งท้ายปี 2025 ตอนแรกผมคิดว่าจะเขียนเป็นบทความเดียว แต่พอลองเขียนแล้ว เห็นว่า น่าจะแยกเรื่องกันได้ เลยแยกเป็น 2 บทความแทนที่จะเป็น 1 บทความใหญ่

    การเขียนแบบ modular writing ช่วยให้เรามีอิสระในการจัดการไอเดีย และจับเอาไอเดียมาลงบนหน้ากระดาษมากขึ้น

    .

    ผมได้ใช้ NODE และ modular writing จริง ๆ จัง ๆ ตอนเขียนหนังสือ R Book for Psychologists ที่เป็นหนังสือสอนใช้ภาษา R เพื่อวิเคราะห์ข้อมูลสำหรับนักจิตวิทยา (เป็นผลงานผสม domain: จิตวิทยา + coding) เพราะหนังสือมีเนื้อหาหลายส่วน ถ้าผมไม่ได้ NODE ก่อน ผมจะเขียนไม่ได้ตั้งแต่แรก และถ้าไม่ใช้ modular writing ผมก็อาจจะเขียนไม่จบ เพราะไปเขียนติดอยู่ที่บทใดบทหนึ่งของหนังสือ พอใช้ modular writing บทเขียนจากบทที่ง่ายก่อน และในแต่ละบทก็เขียนในส่วนที่เขียนได้ก่อน พอเขียนเสร็จก็ค่อยไปต่อที่ส่วนที่ยากขึ้นมาเรื่อย ๆ

    หนังสือ R Book for Psychologists ที่วางขายบน meb (ฝากอุดหนุนหนังสือเล่มด้วยนะครับ 😆🙏)

    ✏️ Q&A 5: จากที่เขียนบทความมา 1 ปี ได้เรียนรู้อะไรบ้าง?

    ข้อ 1. “Just do it” is real:

    เราเริ่มได้แค่ลงมือทำ เราไม่จำเป็นต้องพร้อมก่อนก็ลงมือทำได้ อย่างตอนแรกที่ผมเขียนบทความ coding แรกสุด ผมก็ไม่ได้คิดว่าตัวเองพร้อมที่จะเขียน 100% แต่ก็เขียนไป เพราะตั้งใจว่าจะเขียนออกมาให้ได้

    แล้วพอได้บทความแรก บทความอื่นก็ตามมาเอง

    .

    ข้อ 2. Writing helps with understanding:

    การเขียนช่วยให้เราได้ใช้เวลาคิดในสิ่งที่เขียนมากขึ้น ทำให้เราเข้าใจ concept ต่าง ๆ มากขึ้น

    ผมจะเห็นผลชัดกับการเขียน code ภาษา R จากตอนแรกที่เรียน bootcamp จบ ผมยังรู้สึกว่า เขียน R ไม่ได้คล่องมาก แต่พอเขียนบทความเกี่ยวกับ R ไปสักพักก็มีความรู้มากขึ้น เข้าใจมากขึ้น และมั่นใจมากขึ้น เพราะในการเขียนแต่ละบทความ ผมไม่ได้แค่เขียน code ขึ้นมาเฉย ๆ แต่ต้อง run code จริงด้วย เพื่อให้แน่ใจว่า code ที่เขียนไปไม่ผิด และพอ run แล้วเจอ error ผมก็เช็กว่า ผิดพลาดเพราะอะไร และจะแก้ยังไง ทำให้ได้เรียนรู้มากกว่าที่เรียนใน bootcamp

    .

    ข้อ 3. NODE และ modular writing:

    ถ้าอยากเขียนงานให้ดี ควรทำตาม 4 steps: note → organise → draft → edit

    และเขียนโดยแบ่งเขียนเป็น module


    🔥 Q&A 6: มีอะไรที่คิดว่าปรับปรุงได้ในการเขียนในอนาคต?

    ผมคิดว่า มีอยู่ 3 ข้อ:

    .

    ข้อ 1. Write consistently:

    แม้ว่าผมจะ post บทความได้ทุกสัปดาห์ แต่ผมไม่ได้เขียนงานทุกสัปดาห์

    ช่วงแรก ๆ ผมเขียนงานสัปดาห์ต่อสัปดาห์ และพยายามสะสมบทความ เผื่อช่วงที่ผมไม่มีเวลาว่างเขียนจริง ๆ จะได้มีบทความลงไม่ขาดตอน

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

    แต่ข้อเสียก็คือ ผมไม่ได้เขียนอย่างสม่ำเสมอ ผมจะเขียนก็ต่อเมื่อมีเวลาหรืออยากจะเขียนจริง ๆ

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

    .

    ข้อ 2. QA before publishing:

    สิ่งที่ผมเจอบ่อยก็คือ การสะกดคำผิดหรือใช้คำผิด

    แม้ว่า ผมจะอ่านทวนบทความของตัวเองก่อน post แล้ว แต่ผมเพิ่งเจอว่า การอ่านของมนุษย์ไม่ได้ process ทุกตัวอักษร ทำให้เราสามารถมองข้ามการสะกดผิดหรือการใช้คำผิดได้ในบทความตัวเองได้

    สิ่งที่ผมทำได้ คือ ใช้ AI ให้เป็นประโยชน์

    ในช่วงหลัง ๆ ผมเริ่มโยนบทความที่เขียนเสร็จแล้วให้กับ AI และถามหา 3 อย่าง:

    1. การสะกดผิด หรือการใช้คำผิด
    2. ความไม่สอดคล้องในการใช้คำและเนื้อหา (เช่น ใช้คำไทยที อังกฤษที)
    3. ตรวจสอบความถูกต้องของเนื้อหา (สิ่งที่เขียนไปเป็น inaccurate หรือเปล่า)

    ซึ่งพบว่า AI ช่วยผมตรวจพบข้อผิดพลาดเหล่านี้ได้เร็วกว่าและครบถ้วนมากกว่าถ้าเราอ่านเองมาก

    แต่ก็ยังพบ limitation ของ AI อยู่ว่า AI จะไม่ได้ตรวจเจอทุกข้อผิดพลาด เช่น พิมพ์คำผิด จาก “รู้จักหนังสือ” เป็น “รู้สึกหนังสือ”

    แสดงว่า นอกจากการใช้ AI แล้วผมยังควรจะต้องตรวจสอบเนื้อหาด้วยตัวเองอีกครั้งก่อนจะ publish งานออกไป

    .

    ข้อ 3. Deliver to a wider audience:

    จุดอ่อนหนึ่งของผมคือการทำ marketing เพราะถ้าไม่นับการอ่านหนังสืออย่าง How to Grow Your Small Business ในปีนี้ ผมก็ไม่เคยเรียนหรือทำ marketing อย่างจริงจังมาก่อน

    ตอนนี้ การเข้าถึงบทความของผมส่วนใหญ่มาจากการ post ลงใน Discord ของ bootcamp ซึ่งถ้า bootcamp จบแล้ว ผมก็จะขาดการเข้าถึงกลุ่มคนอ่านส่วนใหญ่ไป

    ผมจะต้องหาช่องทางอื่นที่จะส่งบทความไปให้ถึงกลุ่มคนอ่านอื่น ๆ ให้ได้มากขึ้น ซึ่งตอนนี้ ผมเริ่มแล้วจากการเปิด Facebook page, Instagram, และ Threads

    Facebook page ของผม: Svaron Solution (ฝากติดตามและกด like กันหน่อยนะครับ 😆🙏)

    😌 Q&A 7. มีอะไรอยากทิ้งท้ายบ้าง?

    สำหรับคนที่อยากเริ่มเขียน ผมแนะนำว่า:

    1. Start right away: เริ่มเขียนเลย ไม่ต้องห่วงว่า เขียนไม่เก่ง เพราะฝึกเขียนไปก็จะเขียนดีขึ้นเรื่อย ๆ เอง
    2. Write for yourself: เริ่มจากเขียนให้ตัวเองอ่านก่อน
    3. Modular writing: เริ่มเขียนทีละส่วน ไม่ต้องเขียนทั้งหมดทีเดียว
    4. NODE: อย่าลืมหาข้อมูลและร่างโครงก่อนเขียน จะทำให้เขียนได้ง่ายขึ้นมาก
    5. Share: เขียนแล้วแชร์ให้คนอื่นฟัง เพื่อรับ feedback มาใช้เขียนงานต่อไปให้ดีขึ้น
  • Basic R—รวบรวม 13 บทความสอนทำงานกับ data ในภาษา R: Intro to R, Importing Data, Data Manipulation, และ Data Visualisation

    Basic R—รวบรวม 13 บทความสอนทำงานกับ data ในภาษา R: Intro to R, Importing Data, Data Manipulation, และ Data Visualisation

    ในปีนี้ ผมเริ่มหันมาฝึกใช้ภาษา R อย่างจริงจังมากขึ้น หลังจากเรียนคอร์สออนไลน์จาก DataRockie และ DataCamp มา

    และเพื่อช่วยให้ผมเข้าใจภาษา R มากขึ้น ผมได้เขียนสรุปการใช้งานภาษา R เบื้องต้นไว้ ทั้งหมด 13 บทความ ซึ่งผมได้รวบรวมไว้เป็น 4 กลุ่ม ดังนี้:

    1. Introduction to R: แนะนำภาษา R และการทำงานกับ R เบื้องต้น
    2. Importing data: การนำเข้าข้อมูลในภาษา R
    3. Data manipulation: การแปลงข้อมูลดิบให้พร้อมสำหรับการวิเคราะห์
    4. Data visualisation: การแสดงข้อมูลในรูปแบบกราฟ

    .

    Group 1. Introduction to R (3 บทความ):

    1. R foundation: แนะนำภาษา R—ความแตกต่างระหว่าง R และ Python, data types, และ data structures ในภาษา R
    2. R control flow: สอนใช้ if, for, while เพื่อควบคุมการทำงานของภาษา R
    3. R functions (รอลงบทความนะครับ 😆): สอนสร้างและใช้งาน functions ในภาษา R

    .

    Group 2. Importing data (5 บทความ):

    1. Working with data frame: แนะนำ 10 วิธีในการทำงานกับ data frame ซึ่งเป็น data structure ที่พบบ่อยที่สุดในภาษา R
    2. Working with data frame using SQL: สอนการทำงานกับ data frame ด้วย SQL
    3. Working with flat files (รอลงบทความนะครับ 😆): แนะนำการใช้ 3 packages สำหรับ import ข้อมูลจาก flat files
    4. Working with Excel: แนะนำ 2 packages สำหรับทำงานกับ Excel
    5. Working with database: แนะนำวิธีทำงานกับ database ผ่าน DBI package

    .

    Group 3. Data manipulation (4 บทความ):

    1. dplyr package: แนะนำ 5 functions ยอดนิยมสำหรับ data manipulation
    2. dbplyr package: แนะนำการใช้ dplyr functions เพื่อทำงานกับ database
    3. dtplyr package: แนะนำการใช้ dplyr functions เพื่อทำงานกับข้อมูลขนาดใหญ่
    4. data.table package: แนะนำ package ยอดนิยมสำหรับทำงานกับข้อมูลขนาดใหญ่

    .

    Group 4. Data visualisation (1 บทความ):

    1. ggplot2 package: แนะนำวิธีใช้ package เพื่อสร้าง data viz แบบองค์กรระดับโลก

    👉 Tie-In: Machine Learning in R

    สำหรับคนที่สนใจ machine learning ในภาษา R สามารถดู 13 บทความการทำ machine learning ในรูปแบบต่าง ๆ ได้ที่นี่


    ✅ R Book for Psychologists: หนังสือภาษา R สำหรับนักจิตวิทยา

    📕 ขอฝากหนังสือเล่มแรกในชีวิตด้วยนะครับ 😆

    🙋 ใครที่กำลังเรียนจิตวิทยาหรือทำงานสายจิตวิทยา และเบื่อที่ต้องใช้ software ราคาแพงอย่าง SPSS และ Excel เพื่อทำข้อมูล

    💪 ผมขอแนะนำ R Book for Psychologists หนังสือสอนใช้ภาษา R เพื่อการวิเคราะห์ข้อมูลทางจิตวิทยา ที่เขียนมาเพื่อนักจิตวิทยาที่ไม่เคยมีประสบการณ์เขียน code มาก่อน

    ในหนังสือ เราจะปูพื้นฐานภาษา R และพาไปดูวิธีวิเคราะห์สถิติที่ใช้บ่อยกัน เช่น:

    • Correlation
    • t-tests
    • ANOVA
    • Reliability
    • Factor analysis

    🚀 เมื่ออ่านและทำตามตัวอย่างใน R Book for Psychologists ทุกคนจะไม่ต้องพึง SPSS และ Excel ในการทำงานอีกต่อไป และสามารถวิเคราะห์ข้อมูลด้วยตัวเองได้ด้วยความมั่นใจ

    แล้วทุกคนจะแปลกใจว่า ทำไมภาษา R ง่ายขนาดนี้ 🙂‍↕️

    👉 สนใจดูรายละเอียดหนังสือได้ที่ meb:

  • สรุป 34 ข้อคิด (5 กลุ่ม) จากงาน What the Duck 2025: How to Survive, Thinking, How to Grow, Agency, และ Last Message

    สรุป 34 ข้อคิด (5 กลุ่ม) จากงาน What the Duck 2025: How to Survive, Thinking, How to Grow, Agency, และ Last Message

    ในบทความนี้ ผมจะมาสรุป 34 ข้อคิดจากงาน What the Duck 2025 ของเพจ DataRockie ซึ่งเป็นงานที่จะขึ้นทุกปี และปีนี้เป็นปีแรกที่จัดแบบออนไลน์

    ข้อคิดทั้ง 34 ข้อ จัดได้เป็น 5 กลุ่มดังนี้:

    1. How to survive
    2. Thinking
    3. How to grow
    4. Agency
    5. Last message

    ถ้าพร้อมแล้ว เราไปดูสรุปทั้ง 34 ข้อคิดกัน


    1. 🔥 Group 1. How to Survive
    2. 😌 Group 2. Thinking
    3. 🚀 Group 3. How to Grow
    4. 🧑‍💼 Group 4. Agency
    5. 💪 Group 5. Last Message
    6. 📚 Sources
    7. 📄 References

    🔥 Group 1. How to Survive

    8 ข้อคิดเกี่ยวกับการเอาตัวรอด:

    1. Get closer to the reality
    2. Accept reality
    3. No one’s there to save you, but yourself
    4. Become a better version
    5. Road less travelled
    6. Mountain without top
    7. The best investment is in yourself
    8. Skill is anything we can learn, even happiness

    .

    ข้อ 1. Get closer to the reality

    ไม่มีใครรู้ว่า อนาคตจะเกิดอะไรขึ้น (เช่น economic crisis, AI disruption, new pandemic) และถ้าเราจะอยู่รอด เราจะต้องเข้าใกล้ความจริง (reality) ให้ได้มากที่สุด

    You can only make progress when you’re starting with the truth. — Naval Ravikant

    .

    ข้อ 2. Accept reality

    เราจะเข้าใกล้ความจริงได้ ก็ต้องยอมรับความจริงอย่างที่เป็น

    Accept everything just as the way it is. — Miyamoto Musashi

    .

    ข้อ 3. No one’s there to save you, but yourself

    ไม่มีใครจะช่วยเราได้ นอกจากตัวเราเอง

    Seek nothing outside of yourself. — Miyamoto Musashi

    .

    ข้อ 4. Become a better version

    เราจะ save ตัวเองได้ด้วยการพัฒนาตัวเองให้เป็น version ที่ดีที่สุด

    .

    ข้อ 5. Road less travelled

    การพัฒนาตัวเองอาจไม่ใช่ทางที่ง่าย มักไม่ใช่ทางที่คนส่วนใหญ่เลือกกัน (เช่น ตื่นเข้ามาอ่านหนังสือแทนที่จะเล่น TikTok) แต่เป็นทางที่เราควรเลือกถ้าเราอยากจะอยู่รอด

    .

    ข้อ 6. Mountain without top

    เราอาจจะไม่สามารถเป็น version ที่ดีที่สุดของเราได้ แต่เราก็ยังต้องเลือก road less travelled เพราะแม้เราจะไม่กลายเป็น best version แต่เราจะเป็น better version ของตัวเองในทุก ๆ วัน

    You can be wiser, but never the wisest.

    .

    ข้อ 7. The best investment is in yourself

    การลงทุนที่ดีที่สุด คือ การลงทุนในตัวเอง

    Work harder on yourself than you do on your job. — Jim Rohn

    .

    ข้อ 8. Skill is anything we can learn, even happiness

    Skill คือ ทุกอย่างที่เราสามารถเรียนรู้ได้

    แม้กระทั่งความสุขก็เป็น skill อย่างหนึ่ง


    😌 Group 2. Thinking

    5 ข้อคิดเกี่ยวกับการคิด:

    1. Think → doing → becoming
    2. Thinking is a road less travelled
    3. Think exponential
    4. Think for yourself
    5. Think: leverage

    .

    ข้อ 9. Think → doing → becoming

    ทุกอย่างเริ่มจากความคิด เราควรจะใช้เวลาว่างคิดตกผลึกเกี่ยวกับชีวิตของตัวเอง

    .

    ข้อ 10. Thinking is a road less travelled

    การคิดไม่ใช่เรื่องง่าย และไม่ใช่สิ่งที่เราทำบ่อย แต่เป็นสิ่งที่เราควรทำ

    Two percent of the people think; three percent of the people think they think; and ninety-five percent of the people would rather die than think. — George Bernard Shaw

    .

    ข้อ 11. Think exponential

    ในโลกที่มีความซับซ้อน การคิดเป็นเส้นตรงอาจใช้ไม่ได้อีกต่อไป ถ้าเราจะอยู่รอด เราจะต้องคิดให้แตกต่างไปจากเดิม

    .

    ข้อ 12. Think for yourself

    เราสามารถเริ่มพัฒนาตัวเอง โดยการคิดด้วยตัวเองเพื่อตัวเองมากขึ้น

    Think for yourself, by yourself — Ad Toy

    .

    ข้อ 13. Think: leverage

    Leverage คือ สิ่งที่ช่วยขยาย impact ของ effort ของเรา

    เราไม่จำเป็นต้องทำทุกอย่าง เราแค่ต้องทำสิ่งที่ถูกต้อง (do the right thing)

    เราสามารถเริ่มได้ด้วยการถามตัวเองว่า:

    What is the one thing you can do today that has the highest leverage?


    🚀 Group 3. How to Grow

    12 ข้อคิดเกี่ยวกับการสร้าง wealth:

    1. Three lanes to wealth
    2. Sidewalk
    3. Slowlane
    4. Slowlane, too slow
    5. Fastlane
    6. CENTS
    7. Control
    8. Entry
    9. Need
    10. Time
    11. Scale
    12. The law of effection

    .

    ข้อ 14. Three lanes to wealth

    การสร้าง wealth มีอยู่ 3 ทาง:

    1. Sidewalk
    2. Slowlane
    3. Fastlane

    .

    ข้อ 15. Sidewalk

    Sidewalk = income + debt

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

    .

    ข้อ 16. Slowlane

    Slowlane = income + investment

    เป็นการสร้าง wealth ผ่านการทำงานที่มั่นคง ร่วมกับการออมเงินหรือลงทุนเพื่อให้มีเงินใช้หลังเกษียณ

    .

    ข้อ 17. Slowlane, too slow

    การสร้าง wealth แบบ Slowlane ขึ้นอยู่กับเวลา: ถ้าจะหาเงินได้มากขึ้น ก็ต้องใช้เวลามากขึ้น (เช่น ทำ OT) ถ้าจะได้ผลตอบแทนจากการลงทุนมากขึ้น ก็ต้องใช้เวลามากขึ้นเช่นกัน (ดอกเบี้ยทบต้น) ทำให้ Slowlane เป็นการสร้าง wealth ที่ช้าเกินไป

    .

    ข้อ 18. Fastlane

    Fastlane = net profit + asset value

    เป็นการสร้าง wealth โดยสร้าง value ที่มี impact ต่อคนในวงกว้าง

    เช่น แก้ปัญหาให้กับคน 1 ล้านคน แทนที่จะแค่ 100 คน

    .

    ข้อ 19. CENTS

    ธุรกิจแบบ Fastlane ต้องมีลักษณะ 5 อย่าง (CENTS):

    1. Control
    2. Entry
    3. Need
    4. Time
    5. Scale

    .

    ข้อ 20. Control

    Control หมายถึง เราจะต้องสามารถควบคุมธุรกิจของเราได้โดยตรง

    เช่น สามารถตั้งราคาสินค้า/บริการ เพื่อควบคุมกำไรที่ต้องการได้

    เราจะต้องเป็น driver ไม่ใช่แค่ passenger ในธุรกิจของตัวเอง

    .

    ข้อ 21. Entry

    Entry หมายถึง เราควรทำธุรกิจที่คนอื่นลอกเลียนแบบได้ยาก เพราะจะทำให้มี competition น้อย

    .

    ข้อ 22. Need

    Need หมายถึง ธุรกิจจะต้องตอบโจทย์หรือแก้ปัญหาที่มีอยู่จริงในตลาด

    .

    ข้อ 23. Time

    Time หมายถึง ธุรกิจที่สามารถสร้างรายได้ให้เราโดยไม่ขึ้นอยู่กับเวลา เช่น สร้างรายได้ในขณะที่เรากำลังนอนหลับหรือพักร้อน

    .

    ข้อ 24. Scale

    Scale หมายถึง ธุรกิจจะต้องเติบโตและขยับขยายเพื่อตอบโจทย์ความต้องการของตลาดในวงกว้างได้

    .

    ข้อ 25. The law of effection

    Wealth = scale * magnitude

    ยิ่งเราแก้ปัญหาให้คนจำนวนมากได้เยอะเท่าไร เราก็ยิ่งสร้าง wealth ได้มากขึ้นเท่านั้น


    🧑‍💼 Group 4. Agency

    8 ข้อคิดเกี่ยวกับการสร้าง agency:

    1. Agency (by Dan Koe)
    2. Agency (by Jonathan Jerkins)
    3. The 5 laws of agency
    4. Control the frame
    5. Energy beats time
    6. Direction beats speed
    7. Externalise cognition
    8. Asymmetry or death

    .

    ข้อ 26. Agency, by Dan Koe

    Agency คือ ความสามารถในการเลือกทางเดินของชีวิตด้วยตัวเอง แทนการตกเป็นทาสของชะตาชีวิต

    .

    ข้อ 27. Agency, by Jonathan Jerkins

    Agency คือ การเป็นตัวของตัวเอง แม้ว่าสภาพแวดล้อมจะชักชวนให้เราออกห่างจากตัวเอง

    Agency is the ability to remain yourself in the conditions designed to pull you away from yourself. — Jonathan Jerkins

    .

    ข้อ 28. The 5 laws of agency

    Agency มีกฎอยู่ 5 ข้อ:

    1. Control the frame
    2. Energy beats time
    3. Direction beats speed
    4. Externalise cognition
    5. Asymmetry or death

    .

    ข้อ 29. Control the frame

    Frame คือ lens ที่เราใช้มองโลกและตีความสถานการณ์ต่าง ๆ

    Agency หมายถึง เราสามารถเลือก frame ในการมองโลกและตอบสนองต่อเหตุการณ์ต่าง ๆ ได้ด้วยตัวเอง

    .

    ข้อ 30. Energy beats time

    เวลาเป็นสิ่งที่เราควบคุมไม่ได้ แต่เราควบคุม energy ที่เราใช้ได้

    Agency หมายถึง เราสามารถเลือกได้ว่า เราจะทุ่มเทให้กับกิจกรรมไหน และเก็บ energy ไว้สำหรับกิจกรรมไหนบ้าง

    .

    ข้อ 31. Direction beats speed

    ความเร็วไม่มีความสำคัญ ถ้าไม่มีทิศทาง เหมือนกับการขับรถด้วยความเร็วสูง แต่วนเป็นวงกลม

    Agency หมายถึง เราสามารถเลือกทิศทางและความเร็วได้ว่า เราจะขับรถไปทางไหนและด้วยความเร็วเท่าไร

    .

    ข้อ 32. Externalise cognition

    สมองไม่ได้ออกแบบมาให้จดจำ แต่เพื่อคิดและสร้างสรรค์

    Agency หมายถึง เราควรสร้างระบบ (second brain) เพื่อ free up สมอง ให้สมองสามารถคิดและประมวลผลข้อมูลได้อย่างเต็มที่

    .

    ข้อ 33. Asymmetry or death

    เลือกทำกิจกรรมที่ให้ผลลัพธ์มาก และมีผลเสียน้อย

    เช่น ใช้เวลา 4–5 ปีสร้างระบบที่จะช่วยให้เราไม่ต้องทำงานไปอีก 30 ปี


    💪 Group 5. Last Message

    1 ข้อคิดทิ้งท้าย:

    1. One-person business philosophy

    .

    ข้อ 34. One-person business philosophy

    Work less, earn more, enjoy life.


    📚 Sources

    เนื้อหาใน session มาจากหนังสือ 3 เล่มหลัก ได้แก่:

    1. Purpose & Profit
    2. The Millionaire Fastlane
    3. The 5 Laws of Agency

    หนังสือเล่มอื่น ๆ ที่ถูกพูดถึงใน session ได้แก่:

    1. Dokkōdō
    2. The Company of One
    3. The Almanack of Naval Ravikant

    📄 References

    Miyamoto Musashi:

    Fastlane:

    Agency:

  • สรุป 5 Life Mental Models ที่ผมเรียนรู้จากการใช้ชีวิตในปี 2021–2025: Time Is Finite, Compound Interest, Diminishing Returns, Negative Returns, และ Sunk-Cost Fallacy

    สรุป 5 Life Mental Models ที่ผมเรียนรู้จากการใช้ชีวิตในปี 2021–2025: Time Is Finite, Compound Interest, Diminishing Returns, Negative Returns, และ Sunk-Cost Fallacy

    ในบทความนี้ ผมจะมาสรุป 5 mental models ในการใช้ชีวิตที่ผมได้เรียนรู้ในปี 2021–2025:

    1. Time is finite
    2. Compound interest
    3. Diminishing returns
    4. Negative returns
    5. Sunk-cost fallacy

    ถ้าพร้อมแล้ว ไปเริ่มกันเลย


    1. ⌛ Model #1. Time Is Finite
    2. 💰 Model #2. Compound Interest
    3. 📉 Model #3. Diminishing Returns
    4. ❎ Model #4. Negative Returns
    5. ⚓ Model #5. Sunk-Cost Fallacy
    6. 📄 References

    ⌛ Model #1. Time Is Finite

    “Time is money” เพราะเราสามารถใช้เวลาหาเงินได้ ทุกวันเราสละเวลา 8 ชั่วโมงหรือมากกว่าให้กับบริษัท เพื่อรับผลตอบแทนตอนสิ้นเดือน

    แต่จริง ๆ แล้ว เวลาเป็นมากกว่าเงิน เพราะเราหาเงินเพิ่มได้เรื่อย ๆ แต่เราสร้างเวลาเพิ่มไม่ได้

    โดยเฉลี่ย เรามีเวลาประมาณ 4,000 สัปดาห์ในการใช้ชีวิต และทุก ๆ วัน เวลาของเราลดลงเรื่อย ๆ

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

    ยิ่งกว่าเงิน และยิ่งกว่าทรัพย์สินใด ๆ


    💰 Model #2. Compound Interest

    Compound interest หรือดอกเบี้ยทบต้น หมายถึง การที่เราได้ดอกเบี้ยเพิ่มขึ้นทุก ๆ ปี เพราะในแต่ละปีเงินต้นของเราจะเพิ่มขึ้น

    เช่น ในปีแรก เราฝากเงิน 100 บาท และได้ดอกเบี้ย 10% (10 บาท) แสดงว่าในปีถัดไป เราจะได้ดอกเบี้ย 10% จากเงิน 110 บาท แทนที่จะเป็น 100 บาท (11 บาท) ถ้าทำอย่างนี้ไป 10 ปี เราจะมีเงิน 259.37 บาทในบัญชีจากเงินต้นแค่ 100 บาท

    Compound interest เป็น concept ที่พูดถึงบ่อยในหนังสือหลาย ๆ เล่ม (อย่าง The Almanack of Naval Ravikant) เพราะนอกจากจะใช้ในทางการเงินได้แล้ว ยังใช้กับแง่อื่น ๆ ในชีวิตได้อีกด้วย

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

    หรือการพัฒนาตัวเอง ถ้าเราเรียนรู้สิ่งใหม่ ๆ ทุกวัน ภายใน 1 ปี เราจะเป็นคนที่มีความสามารถมากขึ้น เพราะเราจะไม่ได้มีแต่ความรู้ที่เรียนมา (เช่น พูดภาษาโปรตุเกส) แต่ยังมีความรู้ที่เราต่อยอดจากความรู้ที่มีอีกด้วย (เช่น รู้ภาษาสเปนที่มีรากภาษาเดียวกันกับโปรตุเกส)

    ถ้าเราสั่งสมอะไรอย่างสม่ำเสมอและเป็นเวลานานพอ เราก็จะได้ผลลัพธ์ที่ทวีคูณจากความพยายามของเรา


    📉 Model #3. Diminishing Returns

    ไม่ใช่ว่าทุกความพยายามจะให้ผลทวีคูณทุกครั้ง

    Diminishing returns หมายถึง การที่ผลลัพธ์ที่เราได้ลดลงเรื่อย ๆ

    ยกตัวอย่างเช่น ตอนที่เราหิวและกินข้าวจานแรก เราจะรู้สึกว่าข้าวอร่อย แต่พอทานจานที่ 2, 3, 4, … ข้าวจะอร่อยน้อยลงเรื่อย ๆ

    ในลักษณะเดียวกัน เมื่อเราเริ่มเรียนรู้อะไรใหม่ ๆ (เช่น ภาษาอังกฤษ) เราจะรู้สึกว่า เราได้เรียนรู้เยอะมาก แต่พอนานไป สิ่งที่เราเรียนรู้ก็จะน้อยลง (เราจะเจอแต่คำศัพท์และไวยากรณ์เดิม ๆ ที่เรารู้อยู่แล้ว และได้เรียนรู้อะไรใหม่ ๆ ไม่มาก)

    Diminishing returns สอนให้เรารู้ว่า ความพยายามอาจให้ผลลัพธ์ไม่เท่ากัน และเมื่อผลลัพธ์เริ่มน้อยลง เราอาจจะตัดสินใจใช้เวลาไปกับสิ่งอื่น (เช่น เรียนรู้ภาษาใหม่) เพราะจะทำให้เราใช้เวลาที่มีอยู่อย่างจำกัดได้คุ้มค่ามากที่สุด


    ❎ Model #4. Negative Returns

    Negative returns เกิดขึ้นได้ 2 แบบ:

    แบบที่ 1. Negative returns ที่เกิดขึ้นหลังเราผ่านจุด diminishing returns มาแล้ว

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

    แบบที่ 2. Negative returns ที่เกิดจาก compound interest ของสิ่งไม่ดี

    ตัวอย่างเช่น เราซื้อ Bitcoin ในช่วงราคาขาลง ถ้าเราไม่ขาย Bitcoin ทิ้ง (cut loss) เราก็จะขาดทุนไปเรื่อย ๆ

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


    ⚓ Model #5. Sunk-Cost Fallacy

    Sunk-cost fallacy หมายถึง การที่เสียดายสิ่งที่เราลงทุนไปแล้ว ทำให้เราไม่ยอมปล่อยวางจากสิ่งที่เป็น diminishing returns หรือ negative returns

    ยกตัวอย่างเช่น เราอาจจะไม่อยากเปลี่ยนงาน แม้ว่าเราจะไม่ค่อยได้เรียนรู้อะไรใหม่เพราะทำงานมานาน (diminishing returns) และมีความรู้สึก burnout (negative returns) เพราะเราอาจจะเสียดายเวลาและผลงานที่เคยทำไว้ ถ้าได้งานใหม่ เราจะต้องใช้เวลาสร้างตัวขึ้นมาใหม่อีกครั้ง

    ทางออกของ sunk-cost fallacy คือ:

    1. Acceptance: ยอมปล่อยวางสิ่งที่ผ่านไปแล้ว เช่น ยอมรับว่าเราไม่สามารถเอาเวลาที่ทุ่มเทไปกับงานกลับมาได้
    2. Focus on the future: โฟกัสไปกับโอกาสที่ดีกว่า เช่น ในขณะที่เรายังอยู่กับงานเดิม เราได้พัฒนาตัวเองน้อยลงและมีสุขภาพที่แย่ลงเมื่อเทียบกับการหางานใหม่ที่เราอาจได้เรียนรู้สิ่งใหม่ ๆ และได้เจอกับสภาพการทำงานที่ดีต่อสุภาพมากขึ้น

    📄 References

  • Python for AI: รวบรวม 8 บทความการทำงานกับ AI ใน Python

    Python for AI: รวบรวม 8 บทความการทำงานกับ AI ใน Python

    ในช่วงที่ผ่านมา ผมมีโอกาสแชร์การใช้ Python เพื่อทำงานกับ AI จากการที่ผมได้ทำงานเกี่ยวกับ AI มากขึ้น

    เพื่อช่วยในการแชร์ ผมได้สรุปเนื้อหาไว้ใน 8 บทความ (5 กลุ่ม) ซึ่งทุกคนสามารถอ่านตามได้ดังนี้:

    🐍 Session #1. Intro to Python:

    • Intro to Python: แนะนำการใช้งานและประเภทข้อมูลใน Python

    🔁 Session #2. Control flow:

    • Control flow: สอนใช้ statement เช่น if, for, while เพื่อควบคุมการทำงานของ Python

    💻 Session #3. Functions:

    • Functions: สอนการสร้าง function ใน Python

    📦 Session #4. Packages and files:

    • open(): สอนการทำงานกับไฟล์ด้วย base Python
    • json package: สอนการทำงานกับ JSON ด้วย json package
    • pd.read_csv(): สอนการทำงานกับ CSV ด้วย pandas package

    🤖 Session #5. AI packages:

    • openai package: สอนการทำงานกับ AI API ผ่าน openai package
    • google-genai package: สอนการใช้ google-genai เพื่อทำงานกับ Gemini API
  • สรุป 5 Work Mental Models ที่ผมได้เรียนรู้จากการทำงานในปี 2021–2025: Modular Thinking, Input-Process-Output, Triple Constraints, Pareto Principle, และ Usage

    สรุป 5 Work Mental Models ที่ผมได้เรียนรู้จากการทำงานในปี 2021–2025: Modular Thinking, Input-Process-Output, Triple Constraints, Pareto Principle, และ Usage

    ในบทความนี้ ผมจะมาสรุป 5 mental models ที่ผมเรียนรู้จากการทำงานในปี 2021–2025:

    1. Modular thinking
    2. Input-process-output (IPO)
    3. Triple Constraints
    4. Pareto principle
    5. Usage

    ถ้าพร้อมแล้ว ไปเริ่มกันเลย


    1. 🤏 Model #1. Modular Thinking
    2. ➡️ Model #2. Input-Process-Output (IPO)
    3. 📐 Model #3. Triple Constraints: Time, Resource, Quality
    4. 💪 Model #4. Pareto Principle
    5. ✂️ Model #5. Usage
    6. 📄 References

    🤏 Model #1. Modular Thinking

    Mental model แรกที่ผมเรียนรู้ คือ modular thinking: ถ้าเราแตกงานเป็นส่วนย่อย ๆ เราก็จะทำงานได้ง่ายขึ้น

    ยกตัวอย่างเช่น การเขียนรายงานส่งลูกค้า แทนที่เราจะบอกว่า “เขียนรายงาน” เราสามารถแยกงานออกเป็นส่วน ๆ ได้แบบนี้:

    1. รวบรวมข้อมูลที่จะเป็นเนื้อหาในรายงาน
    2. ขึ้นโครงรายงาน (เช่น บทนำ, บทที่ 1, บทที่ 2, …)
    3. ร่างรายงาน
    4. ปรับแต่ง
    5. ตรวจทาน
    6. แก้ไข
    7. พิมพ์รูปเล่ม
    8. ส่งรายงาน

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

    นอกจากการจัดการงาน modular thinking ยังช่วยในการแก้ปัญหาอีกด้วย

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


    ➡️ Model #2. Input-Process-Output (IPO)

    อีก mental model ที่ผมเรียนรู้ตั้งแต่เริ่มทำงานใหม่ ๆ คือ input-process-output หรือ IPO

    เช่นเดียวกับ modular thinking, IPO เป็น model ที่ช่วยให้เราจัดการงานและแก้ปัญหาในการทำงานได้

    IPO มองงานต่าง ๆ เป็น 3 ส่วน ได้แก่:

    1. Input: ข้อมูลหรือวัตถุดิบตั้งต้น
    2. Process: ขั้นตอนหรือกระบวนการที่จะแปลง input ให้เป็น output
    3. Output: ผลลัพธ์หรือผลิตภัณฑ์ที่เราจะได้รับ

    เราสามารถใช้ IPO เพื่อจัดงานที่ได้รับมอบหมายได้

    ยกตัวอย่างการเขียนรายงาน ซึ่งเราแบ่งเป็น 3 ส่วนนี้ได้แบบนี้:

    1. Input: ข้อมูล, โครงร่าง
    2. Process: การร่าง, การขัดเกลา, การตรวจทาน, การแก้ไข
    3. Output: รูปเล่มรายงานที่ส่งมอบให้ลูกค้า

    เมื่อเรามองงานเป็น 3 ส่วนแบบนี้ เราจะมองเห็นว่า ถ้างานเราจะทำงานสำเร็จ (output) เราจะเตรียมอะไรบ้าง (input) และต้องทำอะไรบ้าง (process)

    ในลักษณะเดียวกัน ถ้างานมีปัญหา เราสามารถใช้ IPO เพื่อหาสาเหตุได้ เช่น ลูกค้าตรวจรายงานและไม่ผ่านอาจเกิดจาก:

    • Input ไม่ครบ เช่น ขาดข้อมูล หรือยังไม่มีโครงร่าง
    • Process ไม่เพียงพอ เช่น ขาดการตรวจทานและแก้ไข ทำให้รายงานมีคำผิดเยอะ

    ทั้งนี้ เราสามารถใช้ modular thinking คู่กับ IPO ได้:

    1. Modular thinking: แยกงานเป็นส่วน ๆ (เช่น รวบรวมข้อมูล)
    2. IPO: ดูว่า ถ้าแต่ละงานจะสำเร็จได้ จะต้องมี input, process, output อะไรบ้าง (เช่น ข้อมูล → นำข้อมูลมาจัดเก็บ → ได้ข้อมูลพร้อมใช้งาน)

    📐 Model #3. Triple Constraints: Time, Resource, Quality

    เมื่อพูดถึงความสำเร็จในการทำงาน เราจะต้องพูดถึง Triple Constraints หรือ 3 ปัจจัยที่ส่งผลต่อการทำงาน ได้แก่:

    1. Time: ระยะเวลา
    2. Resource: งบประมาณ แรงงาน และเครื่องมือ/วัสดุ
    3. Quality: คุณภาพหรือขอบเขตงาน

    ทุกการทำงานจะขึ้นอยู่กับ Triple Constraints ยกตัวอย่างเช่น ถ้าเราอยากทำ presentation ให้ดูดีและสื่อสารได้อย่างมีประสิทธิภาพ (quality) เราอาจจะต้องใช้เวลา 2 วัน (time) ถ้าเราทำคนเดียว (resource)

    ถ้าเรามีเวลาน้อยลง เช่น เหลือ 1 วัน (time) เราอาจจะต้องหาคนมาช่วย (resource) หรือยอมลดความสวยงามของ presentation ลง (quality)

    จะเห็นได้ว่า ทั้ง 3 ปัจจัยใน Triple Constraints จะต้องมีสมดุลซึ่งกันและกัน ถ้าเราเพิ่มอย่างใดอย่างหนึ่ง เราจะต้องเพิ่มปัจจัยอื่น ๆ หรือถ้าเราลดปัจจัยหนึ่ง เราก็จะต้องยอมลดอีก 2 ปัจจัยที่เหลือด้วย

    ในการทำงาน ถ้าเราสามารถหาสมดุลระหว่าง Triple Constraints ได้ เราก็จะทำงานได้อย่างมีประสิทธิภาพมากขึ้น


    💪 Model #4. Pareto Principle

    ในการทำงาน เราไม่จำเป็นต้องทำงานเต็ม 100% เพื่อให้ได้ผลลัพธ์ที่ต้องการ

    ถ้าเราอยาก work smart, not hard เราจะต้องเลือกทำแค่ 20% ที่ส่งผลต่อ 80% ของงาน ซึ่งก็คือแก่นหลักของ Pareto principle

    Pareto principle มีที่มาจากข้อสังเกตของนักเศรษฐศาสตร์ชาวอิตาลี Vilfredo Pareto ว่า ที่ดิน 80% ถูกครอบครองด้วยกลุ่มคนแค่ 20% ของประชากรทั้งหมด

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

    นั่นคือ มองหา 20% ของงานที่จะส่งผลต่อ 80% ของผลลัพธ์

    ยกตัวอย่างเช่น เรามี issue log ที่เก็บ bug บนระบบเอาไว้:

    • Bug ส่วนใหญ่ (80%) อาจจัดได้เป็น low ถึง medium priority เพราะมีผลกระทบต่อระบบน้อย (เช่น แสดงคำผิดบนระบบ; ส่งผลต่อการใช้งานระบบ 20%)
    • และมี bug ส่วนน้อย (20%) ที่จัดเป็น high priority เพราะส่งผลกระทบต่อระบบมาก (เช่น ทำให้ผู้ใช้งานเข้าสู่ระบบไม่ได้; ส่งผลต่อการใช้งานระบบ 80%)

    ถ้าเราเลือกแก้ bug กลุ่มแรกก่อน แม้ว่าเราจะทำงานหนัก (แก้ bug ถึง 80%) แต่ระบบอาจจะใช้งานไม่ได้เหมือนเดิม เพราะ bug ส่วนนี้ส่งผลต่อระบบแค่ 20%

    ในทางกลับกัน ถ้าเราแก้ high-priority bug ที่เป็นส่วนน้อยก่อน (20%) เราจะทำให้ระบบใช้งานได้ปกติ เพราะ bug ส่วนนี้ส่งผลต่อการใช้งานถึง 80%

    ดังนั้น ในการทำงานตาม Pareto principle เราจะต้องหาให้เจอว่า งานอะไรที่มี impact มากที่สุด และทุ่มเทไปกับงานส่วนนั้น เพื่อให้เราประสบความสำเร็จได้อย่างมีประสิทธิภาพมากขึ้น


    ✂️ Model #5. Usage

    Usage เป็น mental model จากแนวคิดการออกแบบ product ของ ดร.ไปรมา อิศรเสนา ณ อยุธยา อาจารย์คณะสถาปัตยกรรม จุฬาลงกรณ์มหาวิทยาลัย

    Usage หรือการใช้งาน เป็นตัวเชื่อมระหว่าง value หรือคุณค่าที่เราต้องการส่งมอบ และ solution หรือผลิตภัณฑ์/feature ที่เราใช้ส่งมอบ value

    ยกตัวอย่างเช่น เครื่องซักผ้า ซึ่งมี value, usages, และ solutions ดังนี้:

    Usage สามารถปรับใช้กับการออกแบบอื่น ๆ ได้เช่น ออกแบบนโยบายสุขภาพให้กับพนักงาน:

    ถ้าทีมงานต้องการส่งมอบ value คือ “สุขภาพที่ดี” usage ที่ถอดออกมาได้อาจเป็น “เอื้อให้พนักงานได้ออกกำลังกาย” ซึ่งภายใต้ usage เราสามารถ brainstorm เพื่อหากิจกรรมที่จะช่วยให้พนักงานมีสุขภาพที่ดีขึ้นได้ เช่น:

    • แข่งเก็บระยะวิ่ง
    • มีสวัสดิการให้เบิกเงินซื้ออุปกรณ์กีฬา
    • จัดตั้งชมรมกีฬา
    • จัดแข่งกีฬาระหว่างแผนก

    นอกจากนี้ เรายังสามารถใช้ usage ในการทำงานในแต่ละวันได้อีกด้วย เช่น หัวหน้าขอให้ส่งงานเป็น PDF แต่เรามีปัญหาในการสร้างไฟล์ PDF ถ้าเรารู้ว่า หัวหน้าต้องการ PDF เพราะหัวหน้าชอบ comment งานบนไฟล์ (usage คือ “เอื้อให้เขียน comment ลงในงานได้”) เราอาจจะขอหัวหน้าส่งงานเป็นรูป ซึ่งหัวหน้าสามารถ comment ผ่าน LINE ได้เช่นกัน

    จะเห็นได้ว่า usage ไม่เพียงแต่ช่วยในการออกแบบ product และงาน แต่ยังช่วยให้เราแก้ปัญหาในการทำงานได้อย่างมีประสิทธิภาพอีกด้วย


    📄 References

    Modular thinking:

    IPO:

    Pareto Principle:

    Usage:

  • สรุป 3 ประเด็นหลัก จาก 2 sessions ในงาน WebPresso (รอบเดือนธันวาคม 2025): How to Survive, Future Trends, และ What We Need for a Successful Business

    สรุป 3 ประเด็นหลัก จาก 2 sessions ในงาน WebPresso (รอบเดือนธันวาคม 2025): How to Survive, Future Trends, และ What We Need for a Successful Business

    ในบทความนี้ ผมจะมาสรุป 3 ประเด็นจาก 2 sessions ในงาน WebPresso (รอบเดือนธันวาคม 2025) ได้แก่:

    1. Web Is the Way โดย คุณทอย กษิดิศ สตางค์มงคล (แอดทอย) กรรมการสมาคมผู้ดูแลเว็บไซต์และสื่อออนไลน์ไทย และผู้เชี่ยวชาญด้าน Data เจ้าของเพจและเว็บไซต์การศึกษา DataRockie
    2. The System Behind Successful Lone Creators โดย คุณพลอย อนัญญา สหัสสะรังษี (พลอย – Anunya พา Learn)

    โดยเนื้อหาทั้ง 3 ประเด็นได้แก่:

    1. How to survive: วิธีทำให้เว็บไซต์ของเรารอดในยุคของ AI
    2. Future trends: trends ของเว็บไซต์ในโลกอนาคต
    3. What we need for a successful business: สิ่งที่เราต้องการเพื่อทำธุรกิจให้ประสบความสำเร็จ

    ถ้าพร้อมแล้ว ไปเริ่มกันเลย


    1. 🌐 How to Survive
      1. 1️⃣ Quality Content
      2. 2️⃣ Information Gain
      3. 3️⃣ Structure
      4. 4️⃣ llms.txt
      5. 5️⃣ JSON-LD
      6. 6️⃣ Trust
    2. 🔮 Future Trends
      1. 1️⃣ Cozy Web
      2. 2️⃣ Headless CMS
      3. 3️⃣ Zero UI
      4. 4️⃣ Query Fanout
    3. 🚀 What We Need for a Successful Business
      1. 💫 What We Need Is Systems
      2. 🤖 Examples
    4. 📄 References

    🌐 How to Survive

    .

    AI content มีเพิ่มมากขึ้นเรื่อย ๆ ในอินเทอร์เน็ต แต่การสร้างเว็บไซต์เป็นของตัวเองก็ยังเป็นสิ่งสำคัญ เพราะมีการเว็บไซต์จะช่วยสร้างตัวตนบนอินเทอร์เน็ตที่จะทำให้คนรู้จักเรามากขึ้น

    ถ้าเว็บไซต์เราจะอยู่รอด เราจะต้องทำเว็บไซต์ที่ตอบโจทย์ทั้ง 2 ส่วน คือ:

    1. Human: คนอ่าน content
    2. Machine: bot และ AI ที่เข้าถึงเว็บไซต์ของเรา

    ซึ่งเราทำได้ 6 วิธี ดังนี้:

    1. Quality content
    2. Information gain
    3. Structure
    4. llms.txt
    5. JSON-LD
    6. Trust

    .

    1️⃣ Quality Content

    เราจะต้องสร้าง content ที่มีคุณภาพ ซึ่งมีลักษณะ 4 อย่าง ได้แก่:

    1. Experience: เขียน/สร้างจากประสบการณ์ตรง
    2. Expert: เขียน/สร้างจากความเชี่ยวชาญ
    3. Authority: แสดงความเป็นผู้เชี่ยวชาญในหัวข้อนั้น ๆ
    4. Trustworthiness: มีความน่าเชื่อถือ (ไม่ใช่ click bait)

    .

    2️⃣ Information Gain

    Content ของเราจะต้องให้ข้อมูลใหม่/เพิ่มเติมจากสิ่งที่มีอยู่

    ยกตัวอย่างเช่น:

    • สิ่งที่ไม่ควรเขียน: What is data science?
    • สิ่งที่ควรเขียน: How I apply data science in my job as a data analyst at Samsung

    เราไม่ควรเขียน “What is data science?” เพราะเป็น content ที่มีอยู่มากมายบนอินเทอร์เน็ตแล้ว และไม่ช่วยเพิ่มข้อมูลให้กับคนอ่าน

    ในทางกลับกัน “How I apply data science in my job as a data analyst at Samsung” เป็น topic ที่อาจจะยังไม่เคยมีใครเขียนมาก่อน และทำให้คนอื่นได้ข้อมูลที่แปลกใหม่ไปจากเดิม ดังนั้น เราควรจะเขียนหัวข้อนี้มากกว่า “What is data science?”

    .

    3️⃣ Structure

    เราควรออกแบบโครงสร้าง content (เช่น บทความ) ให้ดี:

    1. Atomic content: แบ่ง content เป็นส่วน ๆ เช่น แบ่งเป็น 3 ส่วน แต่ละส่วนตอบคำถาม 1 ข้อ
    2. เขียน content เช่น “10 ที่เที่ยวแนะนำในกรุงเทพฯ”, “5 คำแนะนำสำหรับคนหางานใหม่”, หรือ “7 นิสัยที่คนรุ่นใหม่ควรมี”
    3. เขียน content แบบเปรียบเทียบ เช่น “เปรียบเทียบกล้อง Samsung Galaxy S25 และ iPhone 17”

    .

    4️⃣ llms.txt

    llms.txt เป็นไฟล์บนเว็บไซต์ของเรา ซึ่งจะบอก AI ที่วิ่งเข้ามาหาเว็บไซต์ว่า เว็บไซต์ของเราเกี่ยวกับอะไร มีโครงสร้างเว็บไซต์ยังไงบ้าง

    เราควรปรับไฟล์นี้เพื่อช่วยให้ AI เข้าใจเว็บไซต์ของเราได้มากขึ้น และนำเนื้อหาของเว็บไซต์ไปสู่ target audience ของเรา

    ตัวอย่าง llms.txt:

    .

    5️⃣ JSON-LD

    JSON-LD (LD คือ linked data) เป็นไฟล์ที่ช่วยบอก AI ว่า เรามี asset อะไรบ้าง เช่น บอกว่า:

    • YouTube ของเราชื่ออะไร
    • Instagram ชื่ออะไร
    • Facebook page ชื่ออะไร

    JSON-LD ช่วยให้ AI เข้าใจ online profile ของเรามากขึ้น

    ตัวอย่าง JSON-LD:

    .

    6️⃣ Trust

    สุดท้าย สิ่งที่ขาดไม่ได้ คือ trust เพราะ human เป็นคนที่จะเข้าถึงเว็บไซต์ของเรา และคนอื่นจะไม่เข้ามาดู content บนเว็บไซต์ของเราถ้าเราไม่สามารถสร้างความไว้ใจให้กับเขาได้


    .

    1️⃣ Cozy Web

    เว็บไซต์จะเปลี่ยนจาก public space ที่ทุกคนสามารถเข้าถึงและใช้งานได้ มาเป็น community-based หรือเว็บไซต์ที่เป็นแหล่งรวมของคนที่มีความสนใจเหมือนกันมากขึ้น

    ตัวอย่าง cozy web เช่น:

    • WhatsApp
    • Discord
    • Snapchat

    .

    2️⃣ Headless CMS

    เว็บไซต์จะแยกส่วนระหว่าง:

    1. ส่วนจัดเก็บข้อมูล (database)
    2. ส่วนการแสดงผล (UI หรือ head ของเว็บไซต์)

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

    .

    3️⃣ Zero UI

    Zero UI เป็นแนวคิดการออกแบบ user interface (UI) ให้ seamless สำหรับ user โดยแทนที่จะมีกล่องและปุ่ม user อาจสั่งการผ่านเสียงหรือพิมพ์ natural language ลงไปเพื่อใช้งานเว็บไซต์ได้

    ด้วยความสามารถในการเขียน code ของ AI เราสามารถออกแบบเว็บไซต์ที่แตกต่างและเหมาะสมกับ target audience และเข้าใกล้ zero UI ได้มากขึ้น

    .

    4️⃣ Query Fanout

    การค้นหาจะเปลี่ยนจาก search engine อย่าง Google มาเป็น AI search ซึ่งใช้การค้นหาแบบ query fanout หรือการแยกหัวข้อจากคำค้นหาของ user มากขึ้นเรื่อย ๆ

    เราสามารถดูตัวอย่าง query fanout ได้ใน ChatGPT โดยทำตามวิดีโอด้านล่าง:

    หรือใช้เครื่องมืออย่าง Query Fanout Analysis Tool

    เมื่อเรารู้ว่า AI จะแตกหัวข้อออกมาเป็นอะไรบ้าง เราสามารถสร้าง content ที่ตอบโจทย์หัวข้อเหล่านี้ เพื่อทำให้ content เรามีโอกาสติดอันดับของ AI search มากขึ้น


    🚀 What We Need for a Successful Business

    .

    💫 What We Need Is Systems

    จากประสบการณ์ของคุณพลอย เราไม่จำเป็นต้องใช้คนจำนวนมาก หรือ business model ที่ใช่ เพื่อทำให้ธุรกิจประสบความสำเร็จ:

    สิ่งที่เราต้องการ คือ system ที่ดี

    With great systems and the right tools, we can all scale. — Anunya Pa Learn

    .

    🤖 Examples

    ในปัจจุบัน เรามีเครื่องมือต่าง ๆ มากมายที่ช่วยให้เราสร้างระบบการทำงานที่ดีได้

    ยกตัวอย่างเช่น:

    ตัวอย่างที่ 1. Matt Gray ที่ออกแบบ content โดย:

    1. แบ่ง 1 long content เป็น 3 โพสต์ย่อย เพื่อสามารถโพสต์บน platform ต่าง ๆ ได้
    2. มี template สำหรับสร้าง content และโพสต์บนที่ต่าง ๆ เพื่อให้ทุกโพสต์มี mood and tone เดียวกัน
    3. วางระบบ automated DM เพื่อตอบรับและเก็บข้อมูล lead ผ่านทาง social media โดยอัตโนมัติ

    ตัวอย่างที่ 2. Payper ที่เป็น AI ที่คุณพลอยพัฒนาขึ้นมา เพื่อแก้ pain point การจัดเก็บใบเสร็จสำหรับทำบัญชี ซึ่งทำงานใน 3 ขั้นตอน:

    1. เก็บข้อมูลใบเสร็จที่อัปโหลดลงใน LINE ไว้ใน Google Sheet
    2. สร้าง Google Drive folder เพื่อเก็บรูปใบเสร็จ
    3. ค้นหาและเก็บข้อมูลใบเสร็จที่อยู่ในอีเมล
    4. ออกใบแทนใบเสร็จในกรณีที่ใบเสร็จไม่มีหัวบิล

    สำหรับคนที่สนใจทดลองใช้งาน Payper สามารถติดต่อได้ตามรูปด้านล่าง:


    📄 References

    EEAT:

    Cozy web:

    Headless CMS:

    Zero UI:

    Query fanout:

  • สรุป 10 วิธีในการทำงานกับ data frame ในภาษา R: creating, indexing, subsetting, filtering, sorting, และอื่น ๆ — ตัวอย่างการทำงานกับ Jujutsu Kaisen data frame

    สรุป 10 วิธีในการทำงานกับ data frame ในภาษา R: creating, indexing, subsetting, filtering, sorting, และอื่น ๆ — ตัวอย่างการทำงานกับ Jujutsu Kaisen data frame

    Data frame เป็นหนึ่งใน data structure ที่พบบ่อยที่สุดในการทำงานกับข้อมูล

    Data frame เก็บข้อมูลในรูปแบบตาราง โดย:

    • 1 row = 1 รายการ (เช่น ข้อมูลของ John)
    • 1 column = 1 ประเภทข้อมูล (เช่น อายุ)

    ตัวอย่าง data frame:

    ในบทความนี้ เราจะมาสรุป 10 วิธีในการทำงานกับ data frame กัน:

    1. Creating: การสร้าง data frame
    2. Previewing: การดูข้อมูล data frame
    3. Indexing: การเลือก columns ที่ต้องการ
    4. Subsetting: การเลือก rows และ columns ที่ต้องการ
    5. Filtering: การกรองข้อมูล
    6. Sorting: การจัดลำดับข้อมูล
    7. Aggregating: การสรุปข้อมูล
    8. Adding columns: การเพิ่ม columns ใหม่
    9. Removing columns: การลบ columns
    10. Binding: การเชื่อมข้อมูลใหม่เข้ากับ data frame

    ถ้าพร้อมแล้ว ไปเริ่มกันเลย


    1. 1️⃣ Creating
    2. 2️⃣ Previewing
      1. 👀 View()
      2. 🙊 head()
      3. 🐒 tail()
      4. 🏗️ str()
      5. 🧮 summary()
      6. 💠 dim()
      7. 🚣 nrow()
      8. 🏦 ncol()
    3. 3️⃣ Indexing
      1. 💰 Using $
      2. 🔳 Using [[]]
    4. 4️⃣ Subsetting
      1. 🍽️ df[rows, cols]
      2. 🔪 subset()
    5. 5️⃣ Filtering
      1. 🍽️ df[rows, cols]
      2. 🔪 subset()
    6. 6️⃣ Sorting
      1. ⬇️ Ascending
      2. ⬆️ Descending
      3. ↔️ Sort by Multiple Columns
    7. 7️⃣ Aggregating
    8. 8️⃣ Adding Columns
    9. 9️⃣ Removing Columns
    10. 🔟 Binding
      1. 🤝 rbind()
      2. 🤲 cbind()
    11. 😺 GitHub
    12. 📃 References
    13. ✅ R Book for Psychologists: หนังสือภาษา R สำหรับนักจิตวิทยา

    1️⃣ Creating

    เราสามารถสร้าง data frame ด้วย data.frame() ซึ่งต้องการ ชื่อ column และ vector ที่เก็บข้อมูลของ column นั้น ๆ:

    # Create a data frame
    jjk_df <- data.frame(
      ID = 1:10,
      Name = c("Yuji Itadori", "Megumi Fushiguro", "Nobara Kugisaki", "Satoru Gojo",
               "Maki Zenin", "Toge Inumaki", "Panda", "Kento Nanami", "Yuta Okkotsu", "Suguru Geto"),
      Age = c(15, 16, 16, 28, 17, 17, 18, 27, 17, 27),
      Grade = c("1st Year", "1st Year", "1st Year", "Special", "2nd Year",
                "2nd Year", "2nd Year", "Special", "Special", "Special"),
      CursedEnergy = c(80, 95, 70, 999, 60, 85, 75, 200, 300, 400),
      Technique = c("Divergent Fist", "Ten Shadows", "Straw Doll", "Limitless",
                    "Heavenly Restriction", "Cursed Speech", "Gorilla Mode",
                    "Ratio Technique", "Rika", "Cursed Spirit Manipulation"),
      Missions = c(25, 30, 20, 120, 35, 28, 40, 90, 55, 80)
    )
    
    # View the result
    jjk_df
    

    ผลลัพธ์:

       ID             Name Age    Grade CursedEnergy                  Technique Missions
    1   1     Yuji Itadori  15 1st Year           80             Divergent Fist       25
    2   2 Megumi Fushiguro  16 1st Year           95                Ten Shadows       30
    3   3  Nobara Kugisaki  16 1st Year           70                 Straw Doll       20
    4   4      Satoru Gojo  28  Special          999                  Limitless      120
    5   5       Maki Zenin  17 2nd Year           60       Heavenly Restriction       35
    6   6     Toge Inumaki  17 2nd Year           85              Cursed Speech       28
    7   7            Panda  18 2nd Year           75               Gorilla Mode       40
    8   8     Kento Nanami  27  Special          200            Ratio Technique       90
    9   9     Yuta Okkotsu  17  Special          300                       Rika       55
    10 10      Suguru Geto  27  Special          400 Cursed Spirit Manipulation       80
    

    2️⃣ Previewing

    เรามี 8 functions สำหรับดูข้อมูล data frame:

    No.FunctionFor
    1View()ดูข้อมูลทั้งหมด
    2head()ดูข้อมูล 6 rows แรก
    3tail()ดูข้อมูล 6 rows สุดท้าย
    4str()ดูโครงสร้างข้อมูล
    5summary()ดูสถิติข้อมูล
    6dim()ดูจำนวน rows และ columns
    7nrow()ดูจำนวน rows
    8ncol()ดูจำนวน columns

    เราไปดูตัวอย่างทั้ง 8 functions กัน

    .

    👀 View()

    View() ใช้ดูข้อมูลทั้งหมดใน data frame:

    # View the whole data frame
    View(jjk_df)
    

    เราจะเห็นผลลัพธ์ในหน้าต่างใหม่:

    Note: เนื่องจาก View() แสดงข้อมูลทั้งหมด จึงเหมาะกับการใช้งานกับ data frame ขนาดเล็ก

    .

    head() ใช้ดูข้อมูล 6 rows แรกใน data frame:

    # View the first 6 rows
    head(jjk_df)
    

    ผลลัพธ์:

      ID             Name Age    Grade CursedEnergy            Technique Missions
    1  1     Yuji Itadori  15 1st Year           80       Divergent Fist       25
    2  2 Megumi Fushiguro  16 1st Year           95          Ten Shadows       30
    3  3  Nobara Kugisaki  16 1st Year           70           Straw Doll       20
    4  4      Satoru Gojo  28  Special          999            Limitless      120
    5  5       Maki Zenin  17 2nd Year           60 Heavenly Restriction       35
    6  6     Toge Inumaki  17 2nd Year           85        Cursed Speech       28
    

    .

    🐒 tail()

    tail() ใช้ดูข้อมูล 6 rows สุดท้ายใน data frame:

    # View the last 6 rows
    tail(jjk_df)
    

    ผลลัพธ์:

       ID         Name Age    Grade CursedEnergy                  Technique Missions
    5   5   Maki Zenin  17 2nd Year           60       Heavenly Restriction       35
    6   6 Toge Inumaki  17 2nd Year           85              Cursed Speech       28
    7   7        Panda  18 2nd Year           75               Gorilla Mode       40
    8   8 Kento Nanami  27  Special          200            Ratio Technique       90
    9   9 Yuta Okkotsu  17  Special          300                       Rika       55
    10 10  Suguru Geto  27  Special          400 Cursed Spirit Manipulation       80
    

    .

    🏗️ str()

    str() ใช้ดูโครงสร้างข้อมูลของ data frame:

    # View the data frame structure
    str(jjk_df)
    

    ผลลัพธ์:

    'data.frame':	10 obs. of  7 variables:
     $ ID          : int  1 2 3 4 5 6 7 8 9 10
     $ Name        : chr  "Yuji Itadori" "Megumi Fushiguro" "Nobara Kugisaki" "Satoru Gojo" ...
     $ Age         : num  15 16 16 28 17 17 18 27 17 27
     $ Grade       : chr  "1st Year" "1st Year" "1st Year" "Special" ...
     $ CursedEnergy: num  80 95 70 999 60 85 75 200 300 400
     $ Technique   : chr  "Divergent Fist" "Ten Shadows" "Straw Doll" "Limitless" ...
     $ Missions    : num  25 30 20 120 35 28 40 90 55 80
    

    จากผลลัพธ์ เราจะเห็นข้อมูล 5 อย่าง ได้แก่:

    1. จำนวน rows (obs.)
    2. จำนวน columns (variables)
    3. ชื่อ columns (เช่น ID)
    4. ประเภทข้อมูลของแต่ละ column (เช่น int)
    5. ตัวอย่างข้อมูลของแต่ละ column (เช่น 1 2 3 4 5 6 7 8 9 10)

    .

    🧮 summary()

    summary() ใช้สรุปข้อมูลใน data frame เช่น:

    • ค่าเฉลี่ย (Mean)
    • จำนวนข้อมูล (Length)
    # View the summary
    summary(jjk_df)
    

    ผลลัพธ์:

           ID            Name                Age           Grade            CursedEnergy     Technique            Missions     
     Min.   : 1.00   Length:10          Min.   :15.00   Length:10          Min.   : 60.00   Length:10          Min.   : 20.00  
     1st Qu.: 3.25   Class :character   1st Qu.:16.25   Class :character   1st Qu.: 76.25   Class :character   1st Qu.: 28.50  
     Median : 5.50   Mode  :character   Median :17.00   Mode  :character   Median : 90.00   Mode  :character   Median : 37.50  
     Mean   : 5.50                      Mean   :19.80                      Mean   :236.40                      Mean   : 52.30  
     3rd Qu.: 7.75                      3rd Qu.:24.75                      3rd Qu.:275.00                      3rd Qu.: 73.75  
     Max.   :10.00                      Max.   :28.00                      Max.   :999.00                      Max.   :120.00 
    

    .

    💠 dim()

    dim() ใช้แสดงจำนวน rows และ columns ใน data frame:

    # View the dimensions
    dim(jjk_df)
    

    ผลลัพธ์:

    [1] 10  7
    

    .

    🚣 nrow()

    nrow() ใช้แสดงจำนวน rows ใน data frame:

    # Get the number of rows
    nrow(jjk_df)
    

    ผลลัพธ์:

    [1] 10
    

    .

    🏦 ncol()

    ncol() ใช้แสดงจำนวน columns ใน data frame:

    # Get the number of columns
    ncol(jjk_df)
    

    ผลลัพธ์:

    [1] 7
    

    3️⃣ Indexing

    Indexing หมายถึง การเลือก columns ที่ต้องการ ซึ่งเราทำได้ 2 วิธี:

    1. ใช้ $ (นิยมใช้)
    2. ใช้ [[]]

    💰 Using $

    เราสามารถใช้ $ ได้แบบนี้:

    df$col
    

    ยกตัวอย่างเช่น เลือก column Name:

    # Index with $
    jjk_df$Name
    

    ผลลัพธ์:

     [1] "Yuji Itadori"     "Megumi Fushiguro" "Nobara Kugisaki"  "Satoru Gojo"      "Maki Zenin"      
     [6] "Toge Inumaki"     "Panda"            "Kento Nanami"     "Yuta Okkotsu"     "Suguru Geto"   
    

    .

    🔳 Using [[]]

    เราสามารถใช้ [[]] ได้แบบนี้:

    df[["col"]]
    

    ยกตัวอย่างเช่น เลือก column Name:

    # Index with [[]]
    jjk_df[["Name"]]
    

    ผลลัพธ์:

     [1] "Yuji Itadori"     "Megumi Fushiguro" "Nobara Kugisaki"  "Satoru Gojo"      "Maki Zenin"      
     [6] "Toge Inumaki"     "Panda"            "Kento Nanami"     "Yuta Okkotsu"     "Suguru Geto"   
    

    4️⃣ Subsetting

    Subsetting คือ การเลือก rows และ columns จาก data frame ซึ่งเราทำได้ 2 วิธี:

    1. ใช้ df[rows, cols] syntax
    2. ใช้ subset()

    .

    🍽️ df[rows, cols]

    เราสามารถใช้ df[rows, cols] ได้ 3 แบบ:

    1. เลือก rows
    2. เลือก columns
    3. เลือก rows และ columns

    แบบที่ 1. เลือก rows อย่างเดียว:

    # Subset rows only
    jjk_df[1:5, ]
    

    ผลลัพธ์:

      ID             Name Age    Grade CursedEnergy            Technique Missions
    1  1     Yuji Itadori  15 1st Year           80       Divergent Fist       25
    2  2 Megumi Fushiguro  16 1st Year           95          Ten Shadows       30
    3  3  Nobara Kugisaki  16 1st Year           70           Straw Doll       20
    4  4      Satoru Gojo  28  Special          999            Limitless      120
    5  5       Maki Zenin  17 2nd Year           60 Heavenly Restriction       35
    
    

    แบบที่ 2. เลือก columns อย่างเดียว:

    # Subset columns only
    jjk_df[, "Name"]
    

    ผลลัพธ์:

     [1] "Yuji Itadori"     "Megumi Fushiguro" "Nobara Kugisaki"  "Satoru Gojo"      "Maki Zenin"      
     [6] "Toge Inumaki"     "Panda"            "Kento Nanami"     "Yuta Okkotsu"     "Suguru Geto" 
    
    

    แบบที่ 3. เลือก rows และ columns:

    # Subset rows and columns
    jjk_df[1:5, c("Name", "Technique")]
    
    

    ผลลัพธ์:

                  Name            Technique
    1     Yuji Itadori       Divergent Fist
    2 Megumi Fushiguro          Ten Shadows
    3  Nobara Kugisaki           Straw Doll
    4      Satoru Gojo            Limitless
    5       Maki Zenin Heavenly Restriction
    

    .

    🔪 subset()

    เราสามารถ subset ข้อมูลได้ด้วย subset() ซึ่งต้องการ 2 arguments:

    subset(x, select)
    
    1. x = data frame
    2. select = columns ที่ต้องการเลือก
    # Subset using susbet() - select conlumns only
    subset(jjk_df, select = c("Name", "Technique"))
    

    ผลลัพธ์:

                   Name                  Technique
    1      Yuji Itadori             Divergent Fist
    2  Megumi Fushiguro                Ten Shadows
    3   Nobara Kugisaki                 Straw Doll
    4       Satoru Gojo                  Limitless
    5        Maki Zenin       Heavenly Restriction
    6      Toge Inumaki              Cursed Speech
    7             Panda               Gorilla Mode
    8      Kento Nanami            Ratio Technique
    9      Yuta Okkotsu                       Rika
    10      Suguru Geto Cursed Spirit Manipulation
    

    ในกรณีที่เราต้องการเลือก rows ด้วย เราจะต้องกำหนด rows ใน x:

    # Subset using susbet() - select both rows and columns
    subset(jjk_df[1:5, ], select = c("Name", "Technique"))
    

    ผลลัพธ์:

                  Name            Technique
    1     Yuji Itadori       Divergent Fist
    2 Megumi Fushiguro          Ten Shadows
    3  Nobara Kugisaki           Straw Doll
    4      Satoru Gojo            Limitless
    5       Maki Zenin Heavenly Restriction
    

    5️⃣ Filtering

    เราสามารถกรองข้อมูลใน data frame ได้ 2 วิธี:

    1. ใช้ df[rows, cols] syntax
    2. ใช้ subset()

    .

    🍽️ df[rows, cols]

    เราสามารถกรองข้อมูลด้วย df[rows, cols] โดยกำหนดเงื่อนไขการกรองใน rows

    เช่น กรองข้อมูลตัวละครที่อยู่ปี 1:

    # Filter using df[rows, cols] - 1 condition
    jjk_df[jjk_df$Grade == "1st Year", ]
    

    ผลลัพธ์:

      ID             Name Age    Grade CursedEnergy      Technique Missions
    1  1     Yuji Itadori  15 1st Year           80 Divergent Fist       25
    2  2 Megumi Fushiguro  16 1st Year           95    Ten Shadows       30
    3  3  Nobara Kugisaki  16 1st Year           70     Straw Doll       20
    

    ในกรณีที่เรามีมากกว่า 1 เงื่อนไข เราสามารถใช้ logical operators ช่วยได้:

    OperatorMeaning
    &AND
    |OR
    !NOT

    ยกตัวอย่างเช่น กรองข้อมูลตัวละครที่อยู่ปี 1 และมีอายุ 15 ปี:

    # Filter using df[rows, cols] - multiple conditions
    jjk_df[jjk_df$Grade == "1st Year" & jjk_df$Age == 15, ]
    

    ผลลัพธ์:

      ID         Name Age    Grade CursedEnergy      Technique Missions
    1  1 Yuji Itadori  15 1st Year           80 Divergent Fist       25
    

    .

    🔪 subset()

    เราสามารถใช้ subset() เพื่อกรองข้อมูลได้แบบนี้:

    # Filter using subset() - 1 condition
    subset(jjk_df, Grade == "1st Year")
    

    ผลลัพธ์:

      ID             Name Age    Grade CursedEnergy      Technique Missions
    1  1     Yuji Itadori  15 1st Year           80 Divergent Fist       25
    2  2 Megumi Fushiguro  16 1st Year           95    Ten Shadows       30
    3  3  Nobara Kugisaki  16 1st Year           70     Straw Doll       20
    

    เราสามารถเพิ่มเงื่อนไขการกรองได้ด้วย logical operator เช่น:

    # Filter using subset() - multiple conditions
    subset(jjk_df, Grade == "1st Year" & Age == 15)
    

    ผลลัพธ์:

      ID         Name Age    Grade CursedEnergy      Technique Missions
    1  1 Yuji Itadori  15 1st Year           80 Divergent Fist       25
    

    6️⃣ Sorting

    สำหรับการเรียงข้อมูล เราจะใช้ order() ซึ่งเพื่อเรียงข้อมูลได้ 3 แบบ:

    1. Ascending (A–Z)
    2. Descending (Z–A)
    3. Sort by multiple columns: จัดเรียงด้วยหลาย columns

    .

    ⬇️ Ascending

    ยกตัวอย่างเช่น เรียงลำดับตามจำนวนภารกิจ (Missions):

    # Sort ascending (default)
    jjk_df[order(jjk_df$Missions), ]
    

    ผลลัพธ์:

       ID             Name Age    Grade CursedEnergy                  Technique Missions
    3   3  Nobara Kugisaki  16 1st Year           70                 Straw Doll       20
    1   1     Yuji Itadori  15 1st Year           80             Divergent Fist       25
    6   6     Toge Inumaki  17 2nd Year           85              Cursed Speech       28
    2   2 Megumi Fushiguro  16 1st Year           95                Ten Shadows       30
    5   5       Maki Zenin  17 2nd Year           60       Heavenly Restriction       35
    7   7            Panda  18 2nd Year           75               Gorilla Mode       40
    9   9     Yuta Okkotsu  17  Special          300                       Rika       55
    10 10      Suguru Geto  27  Special          400 Cursed Spirit Manipulation       80
    8   8     Kento Nanami  27  Special          200            Ratio Technique       90
    4   4      Satoru Gojo  28  Special          999                  Limitless      120
    

    .

    ⬆️ Descending

    เราสามารถเรียงข้อมูลแบบ descending ได้ 2 วิธี:

    1. ใช้ decreasing
    2. ใช้ -

    วิธีที่ 1. ใช้ decreasing:

    # Sort descending with decreasing
    jjk_df[order(jjk_df$Missions, decreasing = TRUE), ]
    

    ผลลัพธ์:

       ID             Name Age    Grade CursedEnergy                  Technique Missions
    4   4      Satoru Gojo  28  Special          999                  Limitless      120
    8   8     Kento Nanami  27  Special          200            Ratio Technique       90
    10 10      Suguru Geto  27  Special          400 Cursed Spirit Manipulation       80
    9   9     Yuta Okkotsu  17  Special          300                       Rika       55
    7   7            Panda  18 2nd Year           75               Gorilla Mode       40
    5   5       Maki Zenin  17 2nd Year           60       Heavenly Restriction       35
    2   2 Megumi Fushiguro  16 1st Year           95                Ten Shadows       30
    6   6     Toge Inumaki  17 2nd Year           85              Cursed Speech       28
    1   1     Yuji Itadori  15 1st Year           80             Divergent Fist       25
    3   3  Nobara Kugisaki  16 1st Year           70                 Straw Doll       20
    

    วิธีที่ 2. ใช้ -:

    # Sort descending with -
    jjk_df[order(-jjk_df$Missions), ]
    

    ผลลัพธ์:

       ID             Name Age    Grade CursedEnergy                  Technique Missions
    4   4      Satoru Gojo  28  Special          999                  Limitless      120
    8   8     Kento Nanami  27  Special          200            Ratio Technique       90
    10 10      Suguru Geto  27  Special          400 Cursed Spirit Manipulation       80
    9   9     Yuta Okkotsu  17  Special          300                       Rika       55
    7   7            Panda  18 2nd Year           75               Gorilla Mode       40
    5   5       Maki Zenin  17 2nd Year           60       Heavenly Restriction       35
    2   2 Megumi Fushiguro  16 1st Year           95                Ten Shadows       30
    6   6     Toge Inumaki  17 2nd Year           85              Cursed Speech       28
    1   1     Yuji Itadori  15 1st Year           80             Divergent Fist       25
    3   3  Nobara Kugisaki  16 1st Year           70                 Straw Doll       20
    

    .

    ↔️ Sort by Multiple Columns

    เราสามารถจัดเรียงข้อมูลได้มากกว่า 1 column ด้วยการเลือก columns ที่ต้องการจัดเรียงเพิ่ม

    เช่น จัดเรียงด้วย:

    • Grade
    • จำนวนภารกิจ (Missions)
    # Sort by multiple columns
    jjk_df[order(jjk_df$Grade, jjk_df$Missions), ]
    

    ผลลัพธ์:

       ID             Name Age    Grade CursedEnergy                  Technique Missions
    3   3  Nobara Kugisaki  16 1st Year           70                 Straw Doll       20
    1   1     Yuji Itadori  15 1st Year           80             Divergent Fist       25
    2   2 Megumi Fushiguro  16 1st Year           95                Ten Shadows       30
    6   6     Toge Inumaki  17 2nd Year           85              Cursed Speech       28
    5   5       Maki Zenin  17 2nd Year           60       Heavenly Restriction       35
    7   7            Panda  18 2nd Year           75               Gorilla Mode       40
    9   9     Yuta Okkotsu  17  Special          300                       Rika       55
    10 10      Suguru Geto  27  Special          400 Cursed Spirit Manipulation       80
    8   8     Kento Nanami  27  Special          200            Ratio Technique       90
    4   4      Satoru Gojo  28  Special          999                  Limitless      120
    

    7️⃣ Aggregating

    เราสามารถสรุปข้อมูลโดยใช้ statistics functions เช่น:

    FunctionFor
    mean()หาค่าเฉลี่ย
    median()หาค่ามัธยฐาน
    min()หาค่าต่ำสุด
    max()หาค่าสูงสุด
    sd()หาค่า standard deviation

    ยกตัวอย่างเช่น หาค่าเฉลี่ย Cursed Energy (CursedEnergy):

    # Find average Cursed Energy
    mean(jjk_df$CursedEnergy)
    

    ผลลัพธ์:

    [1] 236.4
    

    8️⃣ Adding Columns

    เราสามารถเพิ่ม columns ใหม่ได้ด้วยแบบนี้:

    df$new_col <- value
    

    ยกตัวอย่างเช่น เพิ่ม column Ranking:

    # Add a column
    jjk_df$Ranking <- ifelse(jjk_df$CursedEnergy > 100, "High", "Low")
    
    # View the result
    jjk_df
    

    ผลลัพธ์:

       ID             Name Age    Grade CursedEnergy                  Technique Missions Ranking
    1   1     Yuji Itadori  15 1st Year           80             Divergent Fist       25     Low
    2   2 Megumi Fushiguro  16 1st Year           95                Ten Shadows       30     Low
    3   3  Nobara Kugisaki  16 1st Year           70                 Straw Doll       20     Low
    4   4      Satoru Gojo  28  Special          999                  Limitless      120    High
    5   5       Maki Zenin  17 2nd Year           60       Heavenly Restriction       35     Low
    6   6     Toge Inumaki  17 2nd Year           85              Cursed Speech       28     Low
    7   7            Panda  18 2nd Year           75               Gorilla Mode       40     Low
    8   8     Kento Nanami  27  Special          200            Ratio Technique       90    High
    9   9     Yuta Okkotsu  17  Special          300                       Rika       55    High
    10 10      Suguru Geto  27  Special          400 Cursed Spirit Manipulation       80    High
    

    9️⃣ Removing Columns

    เราสามารถลบ columns ได้ด้วยวิธีเดียวกันกับการเพิ่ม columns:

    df$col <- NULL
    

    ยกตัวอย่างเช่น ลบ column Ranking:

    # Remove a column
    jjk_df$Ranking <- NULL
    
    # View the result
    jjk_df
    

    ผลลัพธ์:

       ID             Name Age    Grade CursedEnergy                  Technique Missions
    1   1     Yuji Itadori  15 1st Year           80             Divergent Fist       25
    2   2 Megumi Fushiguro  16 1st Year           95                Ten Shadows       30
    3   3  Nobara Kugisaki  16 1st Year           70                 Straw Doll       20
    4   4      Satoru Gojo  28  Special          999                  Limitless      120
    5   5       Maki Zenin  17 2nd Year           60       Heavenly Restriction       35
    6   6     Toge Inumaki  17 2nd Year           85              Cursed Speech       28
    7   7            Panda  18 2nd Year           75               Gorilla Mode       40
    8   8     Kento Nanami  27  Special          200            Ratio Technique       90
    9   9     Yuta Okkotsu  17  Special          300                       Rika       55
    10 10      Suguru Geto  27  Special          400 Cursed Spirit Manipulation       80
    

    🔟 Binding

    เราสามารถเชื่อม data frame ได้ 2 แบบ:

    1. rbind(): เชื่อม row
    2. cbind(): เชื่อม column

    .

    🤝 rbind()

    rbind() ใช้เชื่อม data frame กับ row ใหม่ และต้องการ 2 arguments:

    rbind(df1, df2)
    
    1. df1 = data frame ที่ 1
    2. df2 = data frame ที่ 2

    ยกตัวอย่างเช่น เพิ่มชื่อตัวละครใหม่ (Hajime Kashimo):

    # Create a new data frame
    new_sorcerer <- data.frame(
      ID = 11,
      Name = "Hajime Kashimo",
      Age = 25,
      Grade = "Special",
      CursedEnergy = 500,
      Technique = "Lightning",
      Missions = 60
    )
    
    # Bind the data frames by rows
    jjk_df <- rbind(jjk_df, new_sorcerer)
    
    # View the result
    jjk_df
    

    ผลลัพธ์:

       ID             Name Age    Grade CursedEnergy                  Technique Missions
    1   1     Yuji Itadori  15 1st Year           80             Divergent Fist       25
    2   2 Megumi Fushiguro  16 1st Year           95                Ten Shadows       30
    3   3  Nobara Kugisaki  16 1st Year           70                 Straw Doll       20
    4   4      Satoru Gojo  28  Special          999                  Limitless      120
    5   5       Maki Zenin  17 2nd Year           60       Heavenly Restriction       35
    6   6     Toge Inumaki  17 2nd Year           85              Cursed Speech       28
    7   7            Panda  18 2nd Year           75               Gorilla Mode       40
    8   8     Kento Nanami  27  Special          200            Ratio Technique       90
    9   9     Yuta Okkotsu  17  Special          300                       Rika       55
    10 10      Suguru Geto  27  Special          400 Cursed Spirit Manipulation       80
    11 11   Hajime Kashimo  25  Special          500                  Lightning       60
    

    .

    🤲 cbind()

    cbind() ใช้เชื่อม data frame กับ column ใหม่ และต้องการ 2 arguments ได้แก่:

    cbind(df, vector)
    
    1. df = data frame
    2. vector = vector ที่เก็บข้อมูลของ column ใหม่

    ยกตัวอย่างเช่น เพิ่ม column ที่บอกว่าตัวละครเป็นครูหรือไม่ (IsTeacher):

    # Bind a column
    jjk_df <- cbind(
      jjk_df,
      IsTeacher = c(FALSE, FALSE, FALSE, TRUE, FALSE,
                    FALSE, FALSE, TRUE, FALSE, TRUE, FALSE)
    )
    
    # View the result
    jjk_df
    

    ผลลัพธ์:

       ID             Name Age    Grade CursedEnergy                  Technique Missions IsTeacher
    1   1     Yuji Itadori  15 1st Year           80             Divergent Fist       25     FALSE
    2   2 Megumi Fushiguro  16 1st Year           95                Ten Shadows       30     FALSE
    3   3  Nobara Kugisaki  16 1st Year           70                 Straw Doll       20     FALSE
    4   4      Satoru Gojo  28  Special          999                  Limitless      120      TRUE
    5   5       Maki Zenin  17 2nd Year           60       Heavenly Restriction       35     FALSE
    6   6     Toge Inumaki  17 2nd Year           85              Cursed Speech       28     FALSE
    7   7            Panda  18 2nd Year           75               Gorilla Mode       40     FALSE
    8   8     Kento Nanami  27  Special          200            Ratio Technique       90      TRUE
    9   9     Yuta Okkotsu  17  Special          300                       Rika       55     FALSE
    10 10      Suguru Geto  27  Special          400 Cursed Spirit Manipulation       80      TRUE
    11 11   Hajime Kashimo  25  Special          500                  Lightning       60     FALSE
    

    😺 GitHub

    ดูตัวอย่าง code ในบทความนี้ได้ที่ GitHub


    📃 References


    ✅ R Book for Psychologists: หนังสือภาษา R สำหรับนักจิตวิทยา

    📕 ขอฝากหนังสือเล่มแรกในชีวิตด้วยนะครับ 😆

    🙋 ใครที่กำลังเรียนจิตวิทยาหรือทำงานสายจิตวิทยา และเบื่อที่ต้องใช้ software ราคาแพงอย่าง SPSS และ Excel เพื่อทำข้อมูล

    💪 ผมขอแนะนำ R Book for Psychologists หนังสือสอนใช้ภาษา R เพื่อการวิเคราะห์ข้อมูลทางจิตวิทยา ที่เขียนมาเพื่อนักจิตวิทยาที่ไม่เคยมีประสบการณ์เขียน code มาก่อน

    ในหนังสือ เราจะปูพื้นฐานภาษา R และพาไปดูวิธีวิเคราะห์สถิติที่ใช้บ่อยกัน เช่น:

    • Correlation
    • t-tests
    • ANOVA
    • Reliability
    • Factor analysis

    🚀 เมื่ออ่านและทำตามตัวอย่างใน R Book for Psychologists ทุกคนจะไม่ต้องพึง SPSS และ Excel ในการทำงานอีกต่อไป และสามารถวิเคราะห์ข้อมูลด้วยตัวเองได้ด้วยความมั่นใจ

    แล้วทุกคนจะแปลกใจว่า ทำไมภาษา R ง่ายขนาดนี้ 🙂‍↕️

    👉 สนใจดูรายละเอียดหนังสือได้ที่ meb:

  • Machine Learning in R: รวบรวม 13 บทความสอนสร้าง Machine Learning ในภาษา R

    Machine Learning in R: รวบรวม 13 บทความสอนสร้าง Machine Learning ในภาษา R

    ภาษา R มี packages จำนวนมาก สำหรับสร้าง machine learning models

    ในบทความนี้ ผมรวบรวม 13 บทความสอนทำ machine learning ซึ่งแบ่งได้เป็น 4 กลุ่ม ดังนี้:

    1. Supervised learning models หรือการ train models แบบมีเฉลย
    2. Tree-based models หรือการสร้าง model ที่ใช้ decision trees
    3. Unsupervised learning models หรือการ train models แบบไม่มีเฉลย
    4. All-in-one packages หรือ packages สำหรับทำ machine learning แบบครบครัน ตั้งแต่การเตรียมข้อมูลไปจนถึงการประเมินประสิทธิภาพ รวมทั้งใช้ model ได้ตามต้องการ

    กลุ่มที่ 1. Supervised learning models (4 บทความ):

    1. KNN
    2. Naïve Bayes
    3. Linear regression
    4. Logistic regression
    5. Generalised linear models

    กลุ่มที่ 2. Tree-based models (3 บทความ):

    1. ภาค 1: Single tree และ random forest 1
    2. ภาค 2: Random forest 2
    3. ภาค 3: Boosted trees

    กลุ่มที่ 3. Unsupervised learning models (3 บทความ):

    1. k-means
    2. Hierarchical clustering analysis (HCA)
    3. Principal component analysis (PCA)

    กลุ่มที่ 4. All-in-one packages (2 บทความ):

    1. caret (เป็น package ที่เก่ากว่า)
    2. tidymodels (เป็น package ที่ใหม่กว่า)
  • สรุป 3-Phase Marketing ที่จะทำให้ลูกค้าซื้อ จาก Webinar ของ Donald Miller: “The 5 Simple Soundbites That Will Grow Your Business”

    สรุป 3-Phase Marketing ที่จะทำให้ลูกค้าซื้อ จาก Webinar ของ Donald Miller: “The 5 Simple Soundbites That Will Grow Your Business”

    ในวันก่อน ผมมีโอกาสได้เข้าร่วม webinar “The 5 Simple Soundbites That Will Grow Your Business” ของ Donald Miller เจ้าของ Business Made Simple ธุรกิจที่คนทั่วไปเข้าถึงความรู้ทางธุรกิจได้มากขึ้น และช่วยให้ธุรกิจอื่นเติบโต

    ในบทความนี้ ผมจะมาสรุปเนื้อหาของ webinar ซึ่งพูดถึงแนวคิดและเครื่องมือ marketing ที่แบ่งเป็น 3 ส่วน ซึ่งจะทำให้ลูกค้าหันมาสนใจและทำธุรกิจกับเรา

    ถ้าพร้อมแล้ว ไปเริ่มกันเลย


    1. 😘 Three Phases of a Relationship
    2. 🏡 House Analogy
      1. 🪜 Front Steps: Curiosity
      2. 🪑 Front Porch: Enlightenment
      3. 🚪 Front Door: Commitment
    3. 💪 Summary
    4. 📄 References

    😘 Three Phases of a Relationship

    Marketing เป็นการสร้างความสัมพันธ์ระหว่างเรา (ธุรกิจ) และลูกค้า

    ความสัมพันธ์ในโลกนี้ประกอบด้วย 3 phases ได้แก่:

    1. Curiosity
    2. Enlightenment
    3. Commitment

    ยกตัวอย่างทั้ง 3 phases ในความสัมพันธ์แบบคู่รักและ marketing:

    PhaseLoveMarketing
    Curiosityสนใจในตัวอีกฝ่ายสนใจในสินค้า/บริการ
    Enlightenmentออกเดททำความรู้จักกันศึกษาเพิ่มเติม (เช่น อ่านรีวิว)
    Commitmentขอแต่งงานกดสั่งสินค้า/บริการ
    Source: The 5 Simple Soundbites That Will Grow Your Business webinar by Donald Miller (2025)

    ทุกความสัมพันธ์จะต้องก้าวข้ามแต่ละ phase ตามลำดับ เช่น ถ้าเราอยากจะแต่งงาน เราจะขอแต่งงาน (commitment) เลยไม่ได้ แต่ต้องทำให้อีกฝ่ายสนใจ (curiosity) และทำความรู้จักกัน (enlightenment) ก่อน

    Marketing ก็เช่นกัน ถ้าเราอยากให้ลูกค้าซื้อ เราจะขอให้ลูกค้าซื้อของเลยไม่ได้ แต่เราจะต้องค่อย ๆ พาลูกค้าผ่านทีละ phase: ทำให้ลูกค้าสนใจเรา, ช่วยให้ลูกค้ารู้จักเรามากขึ้น, และขอให้ลูกค้าทำธุรกิจกับเรา

    ถ้าเราอยากให้ลูกค้าซื้อของกับเรา ในขั้นแรก เราจะต้องทำให้ลูกค้าสนใจเราให้ได้ก่อน


    🏡 House Analogy

    ความสัมพันธ์เปรียบเหมือนบ้านที่เราต้องการชวนให้ลูกค้าเข้ามาอยู่ด้วย

    นั่นคือ ลูกค้าจะเข้าบ้านได้ (เข้ามาอยู่ในความสัมพันธ์กับเรา) จะต้องก้าวผ่าน 3 ส่วนของบ้าน:

    1. บันไดหน้าบ้าน (curiosity)
    2. ระเบียงหน้าบ้าน (enlightenment)
    3. ประตูหน้าบ้าน (commitment)
    Source: The 5 Simple Soundbites That Will Grow Your Business webinar by Donald Miller (2025)

    บ้าน (marketing) ที่ดีควรจะมีทั้ง 3 ส่วน เพื่อทำให้ลูกค้าเข้าถึงบ้านได้ง่าย

    ถ้าขาดส่วนใดส่วนหนึ่งไป ไม่ได้หมายความว่า ลูกค้าจะไม่ซื้อของกับเรา แต่ลูกค้าจะซื้อของกับเราได้ยากขึ้น (ลูกค้าต้องปีนขึ้นระเบียงบ้านโดยไม่มีบันได)

    (Note: การที่เรามี marketing ไม่ครบ 3 ส่วน แต่ยังมีลูกค้า ก็แสดงว่า สินค้า/บริการของเราเป็นที่ต้องการของตลาด จนขนาดลูกค้ายอมก้าวข้ามความยากลำบากในการซื้อสินค้า/บริการได้)

    .

    🪜 Front Steps: Curiosity

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

    Marketing ที่จะทำให้ลูกค้าหันมาสนใจได้ คือ ทำให้ลูกค้ารู้ว่าสินค้า/บริการจะทำให้เขาอยู่รอด (survive) ได้ยังไง

    ในขั้นนี้ ลูกค้ายังไม่ต้องการรู้ว่า สินค้าเรามี features อะไรบ้าง หรือบริการของเราทำอะไรได้บ้าง เขาแค่ต้องการรู้ว่า เราจะช่วยให้มีชีวิตที่ดีขึ้นได้ยังไง เช่น:

    • ช่วยสร้างรายได้เพิ่มไหม?
    • ช่วยลดรายจ่ายหรือเปล่า?
    • ช่วยรักษาสุขภาพไหม?
    • ช่วยให้มีชื่อเสียงมากขึ้นหรือเปล่า?

    ถ้าเราสามารถทำให้ลูกค้าเห็นใจความหลักนี้ได้ เขาก็จะหันมาสนใจเรา

    เราสามารถสื่อสารใจความนี้ผ่าน 5 survival soundbites หรือข้อความสั้น ๆ ที่เราสามารถพูดทวนซ้ำ ๆ เพื่อให้ลูกค้าจำขึ้นใจได้ ซึ่งย่อได้สั้น ๆ ว่า PEACE ดังนี้:

    1. P: problem – ปัญหาที่ลูกค้ามี (และเราสามารถแก้ได้)
    2. E: empathy – ความเข้าใจในความรู้สึกของลูกค้า
    3. A: answer – คำตอบของปัญหา (นั่นคือ สินค้า/บริการของเรา)
    4. C: change – การเปลี่ยนแปลงที่จะเกิดขึ้น
    5. E: end result – ผลลัพธ์ที่ลูกค้าจะได้รับ

    ยกตัวอย่างบริษัทขายแว่นแฟชั่นราคาถูกเพื่อตอบโจทย์แว่นแฟชั่นราคาแพง:

    Source: The 5 Simple Soundbites That Will Grow Your Business webinar by Donald Miller (2025)
    1. Problem: Designer eyewear is outrageously expensive.
    2. Empathy: We know how painful it is to spend $300-500 for a pair of glasses.
    3. Answer: Get high-quality, affordable glasses delivered to your home, risk-free.
    4. Change: Don’t be one of the fools who pays too much for a pair of glasses.
    5. End result: Look great in your new glasses and still have plenty of money in the bank.

    แปลไทย:

    1. Problem: แว่นแฟชั่นมีราคาแพงเว่อร์
    2. Empathy: เรารู้ว่า มันน่าเจ็บใจขนาดไหนที่ต้องจ่ายเงิน $300-500 เพื่อแว่นอันเดียว
    3. Answer: ซื้อแว่นคุณภาพ ราคาถูก จัดส่งแบบไร้ความเสี่ยงถึงหน้าบ้าน
    4. Change: ไม่ต้องเป็นคนโง่ที่หลงจ่ายเงินซื้อแว่นราคาแพง
    5. End result: เปลี่ยน look ให้ดูดีกับแว่นใหม่ และยังมีเงินเก็บในธนาคารอีกเพียบ

    จะสังเกตว่า ทั้ง 5 soundbites ร้อยเรียงเป็นเรื่องราวที่ชวนให้ลูกค้าหันมาสนใจได้ โดย:

    1. Problem เปิดเรื่องให้ลูกค้าอยากรู้อยากเห็น
    2. Empathy ทำให้ลูกค้ารู้ว่าเราเข้าใจปัญหาของเขา
    3. Answer ชี้ทางสว่างให้กับลูกค้า (เชื่อมโยงสินค้าเข้ากับปัญหาที่ลูกค้าต้องการแก้)
    4. Change ชวนมองสิ่งที่จะเปลี่ยนแปลงไปในทางที่ดีขึ้น
    5. End result วาดภาพชีวิตที่ดีขึ้นให้ลูกค้าเห็น

    เมื่อเราใช้ทั้ง 5 soundbites สำเร็จ ลูกค้าก็เหมือนก้าวขึ้นมาตามขั้นบันไดทั้ง 5 ขึ้นมายืนบนระเบียงหน้าบ้านของเรา

    .

    🪑 Front Porch: Enlightenment

    ถ้าลูกค้ามาอยู่บนระเบียงหน้าบ้านแล้ว แสดงว่า เขาอยากทำความรู้จักสินค้า/บริการของเราเพิ่มเติม

    หน้าที่ของเราใน phase นี้ คือ ให้ข้อมูลที่เพียงพอต่อการตัดสินใจของลูกค้า ซึ่งเราสามารถทำได้ผ่าน due diligence documents หรือเอกสาร marketing ที่เราส่งให้กับลูกค้า เช่น:

    • Lead generator: PDF ให้ความรู้ที่เปิดให้โหลดได้ฟรี
    • Social campaign: campaign ที่ชวนให้ลูกค้าโพสต์รูปสินค้า และติด hashtags ลงใน Instagram
    • Educational content: อีเมลหรือบทความให้ความรู้เกี่ยวกับปัญหาที่ลูกค้ามีและทางแก้ปัญหา

    หลังจากได้รับข้อมูลแล้ว และลูกค้ารู้สึกว่าสินค้า/บริการตอบโจทย์ เขาก็พร้อมที่จะก้าวผ่านประตูหน้าบ้าน

    .

    🚪 Front Door: Commitment

    ในจุดนี้ เราจะไม่ปล่อยให้ลูกค้าเดินเข้าบ้านเอง แต่จะต้องเชิญชวนให้ลูกค้าอยากก้าวเข้าไปด้วย

    การที่เราไม่มีประตูบ้าน ก็เหมือนร้านค้าที่ไม่มี cashier เก็บเงิน ลูกค้าอาจจะหยิบสินค้าใส่ตะกร้าแล้ว แต่ถ้าไม่มี cashier ลูกค้าก็จ่ายเงินซื้อของไม่ได้ และเราจะปิดการขายไม่ได้

    Marketing ที่เราจะต้องทำในจุดนี้ คือ call to action

    เหมือนกับการแต่งงาน เราจะแต่งงานกับคนที่เรารักไม่ได้ถ้าไม่ขอแต่งงานกัน การขายก็เช่นกัน ถ้าเราไม่ขอให้ลูกค้าซื้อ เขาก็อาจจะไม่ซื้อของกับเรา

    ตัวอย่าง call to action ที่เราสามารถทำได้ เช่น:

    • ปุ่มสั่งซื้อบนหน้าเว็บ: “Buy now”, “Get one today”
    • ข้อความตอนหน้าสั่งซื้อ: “ส่งฟรี”, “ไม่พอใจ ยินดีคืนเงิน”
    • Time-sensitive offer: โปรโมชั่นลดเวลาในช่วงเวลาที่กำหนด

    ถ้า call to action ของเราได้ผล ลูกค้าก็จะก้าวเข้ามาในบ้านของเรา ซึ่งหมายถึงเราได้พาลูกค้าผ่านมาทั้ง 3 phases ได้สำเร็จ

    ถ้าเราทำ marketing ได้ครบทั้ง 3 phases เราก็จะเห็นจำนวนลูกค้าและยอดขายที่เพิ่มมากขึ้น เพราะเราทำให้ลูกค้าเข้ามาหาเราได้ง่ายขึ้น


    💪 Summary

    Marketing เป็นการสร้างความสัมพันธ์ระหว่างเรา (ธุรกิจ) และลูกค้า และประกอบด้วย 3 phases ซึ่งเปรียบได้เหมือนหน้าบ้านของเรา:

    1. Curiosity – บันไดหน้าบ้าน
    2. Enlightenment – ระเบียงหน้าบ้าน
    3. Commitment – ประตูหน้า

    ถ้าเราต้องการปิดการขาย เราจะต้องพาลูกค้าผ่านทั้ง 3 phases โดยใช้เครื่องมือเหล่านี้:

    1. Curiosity – 5 survival soundbites หรือ 5 ข้อความสั้น ๆ ที่เชื่อมสินค้า/บริการเข้ากับปัญหาที่ลูกค้าต้องการแก้
    2. Enlightenment – due diligence documents เช่น PDF ให้ความรู้
    3. Commitment – call to action เช่น โปรโมชั่นลดราคาในเวลาจำกัด

    เมื่อเราทำ marketing ตามกรอบแนวคิดนี้แล้ว เราจะเห็นลูกค้าและยอดขายที่เพิ่มขึ้น เพราะลูกค้าสังเกตเห็น ทำความรู้จัก และตอบรับสินค้า/บริการของเราได้ง่ายขึ้น


    📄 References

  • สรุป 7 ประเด็น AI Transformation จาก 7 Speakers ในงาน DigiTech ASEAN Thailand 2025

    สรุป 7 ประเด็น AI Transformation จาก 7 Speakers ในงาน DigiTech ASEAN Thailand 2025

    ในบทความนี้ ผมจะมาสรุป 7 ประเด็น AI transformation จาก 7 speakers บนเวที Global Tech Conference ในงาน DigiTech ASEAN Thailand 2025 เมื่อวันที่ 19 พ.ย. ที่ผ่านมา:

    1. Future trends: แนวโน้ม AI ในโลกอนาคต
    2. How to AI transformation: แนวคิดในการทำ AI transformation ในองค์กร
    3. Factors to consider: ปัจจัยที่ควรพิจารณาในการทำ AI transformation
    4. People management: การบริหารพนักงานในองค์กรในยุคของ AI
    5. Risks to consider: ความเสี่ยงในการทำ AI transformation
    6. AI solution showcases: ตัวอย่าง AI solutions จาก SCBX และ KBTG
    7. Surviving in the age of AI: แนวคิดในการเอาตัวรอดในยุค AI

    ถ้าพร้อมแล้ว ไปเริ่มกันเลย


    1. 🚀 Topic 1. Future Trends
      1. 🤖 AI Is Here to Stay.
      2. 😎 AI, More Agentic
      3. 🤝 Human-AI Collaboration
    2. 👷 Topic 2. How to AI Transformation
      1. 🫨 Pain Points
      2. 💪 Prioritise, Relentlessly
      3. ⛰️ Set Goal & Plan
      4. 👄 Communicate
      5. 📋 Track Success
    3. ☝️ Topic 3. Factors to Consider
    4. 🤠 Topic 4. People Management
      1. ♥️ Mindset
      2. 😈 Building Culture
      3. 👶 Generation Gap
    5. 🚨 Topic 5. Risks to Consider
    6. 👾 Topic 6. AI Solution Showcases: SCBX & KBTG
      1. 🟣 SCBX
    7. 🟢 KBTG
    8. 💡 Topic 7. Surviving in the Age of AI
    9. 🎤 List of Sessions
    10. 🔗 Related Links

    ประเด็นในเรื่อง future trends มีอยู่ 3 เรื่อง ได้แก่:

    1. AI is here to stay
    2. AI, more agentic
    3. Human-AI collaboration

    .

    🤖 AI Is Here to Stay.

    AI ก็เหมือนกับคอมพิวเตอร์ในยุคก่อน เราไม่มีทางที่จะย้อนกลับไปในยุคที่ไม่มี AI อีกแล้ว และเราต้องเรียนรู้ที่จะอยู่ร่วมกับ AI

    .

    😎 AI, More Agentic

    การใช้งาน AI เปลี่ยนจากการใช้ GenAI มาเป็น agentic AI มากขึ้นเรื่อย ๆ (สอดคล้องกับเวทีในปีก่อนที่บอกว่า การใช้ AI ในปี 2025 จะกลายมาเป็น agentic AI)

    .

    🤝 Human-AI Collaboration

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


    👷 Topic 2. How to AI Transformation

    แนวคิดในการทำ AI transformation ในองค์กรมีอยู่ 5 ขั้นตอน ได้แก่:

    1. Pain points
    2. Prioritise, relentlessly
    3. Set goal and plan
    4. Communicate
    5. Track success

    .

    🫨 Pain Points

    เราไม่ควร transform เพียงเพราะองค์กรอื่นทำได้ เพราะแต่ละองค์กรมีบริบทที่แตกต่างกัน การที่ Amazon ทำได้ ไม่ได้หมายความว่า Google หรือเราจะทำได้ด้วยวิธีการเดียวกัน

    AI transformation ไม่มี one-size-fits-all และสิ่งที่เราต้องการหา pain point ให้เจอ: อะไรคือปัญหาที่เราต้องการแก้ในองค์กรของเรา?

    วิธีหนึ่งที่ช่วยให้เรามองเห็นปัญหาได้ คือ การลงไปดูหน้างานจริง

    ยกตัวอย่าง Makro ที่พบว่า พนักงานมีปัญหาในการยกถุงผงซักฟองลงจากชั้นวาง เพราะพนักงานส่วนใหญ่เป็นผู้หญิงและถุงผงซักฟองมีน้ำหนักมาก Makro จะไม่เห็นปัญหานี้เลยถ้าผู้จัดการนั่งอยู่แต่ในออฟฟิศ เพราะบนรายงานการขาย เราจะเห็นแค่ว่าผงซักฟองเป็นสินค้าขายดี

    .

    💪 Prioritise, Relentlessly

    ในองค์กร เราอาจจะมีปัญหามากมายที่เราต้องการแก้ไข:

    • เพิ่ม productivity
    • พัฒนา product ใหม่
    • เพิ่ม engagement กับลูกค้า

    แต่ด้วยเวลาและงบประมาณ เราจะต้องเลือกว่าจะจัดการปัญหาไหนก่อน

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

    เรามี 3 frameworks ที่ช่วยเราได้:

    Framework #1. Impact: ดูว่า AI solution ที่เราจะทำ สามารถใช้ได้ทั้งในระดับกลุ่ม (group level) และบริษัท (company level) ไหม

    Framework #2. Priority: ดูความเป็นไปได้ในการประยุกต์ใช้ (feasibility) และคุณค่าทางธุรกิจ (business value) ที่เราจะได้รับ

    Framework #3. Innovation: ดูว่า AI solution ที่เราต้องการมีคนทำอยู่แล้วไหม (off-the-shelf solution) และระดับความต้องการของเรา (need)

    .

    ⛰️ Set Goal & Plan

    เมื่อเราได้ปัญหาที่เราต้องการแก้ไขแล้ว สิ่งต่อไปที่เราต้องทำ คือ กำหนดเป้าหมายและวางแผน

    เราอาจจะวางแผน 1 ปี, 3 ปี, 5 ปี ซึ่งยิ่งแผนระยะยาวเท่าไร ก็ยิ่งมีโอกาสจะเปลี่ยนได้ง่าย เพราะเทคโนโลยีมีการเปลี่ยนแปลงอย่างรวดเร็ว อย่างแผน 5 ปีในปีนี้อาจแตกต่างกันอย่างสิ้นเชิงกับแผน 5 ปีในปีหน้า

    แต่มีแผนดีกว่าไม่มีแผน เพราะอย่างน้อย เราจะรู้ว่าเราจะต้องทำอะไร และแม้แผนจะเปลี่ยน แต่เป้าหมายเรายังเหมือนเดิม

    .

    👄 Communicate

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

    ถ้าเราทำให้ทุกคนเห็นเป้าหมายเดียวกันได้ แม้ต่างคนต่างจะมี job to be done ที่แตกต่างกัน แต่ทุกคนก็จะยังเดินไปในทิศทางเดียวกัน

    .

    📋 Track Success

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


    ☝️ Topic 3. Factors to Consider

    เรามีปัจจัยที่ต้องพิจารณาในการทำ AI transformation มีอยู่ 4 อย่าง ได้แก่:

    1. People: พนักงานและลูกค้าของเรา
    2. Culture: วัฒนธรรมขององค์กร
    3. Systems/tools/tech: ระบบ เครื่องมือ และเทคโนโลยี
    4. Finance: เงิน (เพราะองค์กรอยู่ได้ด้วยเงินทุน)

    People เป็นสิ่งที่เราต้องให้ความสำคัญเป็นอันดับแรก เพราะถ้าเราโฟกัสที่ technology แต่พนักงานหรือลูกค้าไม่พร้อมที่จะใช้เครื่องมือใหม่ เราอาจจะได้ AI solution ที่ไม่มีใครใช้


    🤠 Topic 4. People Management

    การบริหารพนักงานในยุคของ AI มีอยู่ 3 หัวข้อ ได้แก่:

    1. Mindset
    2. Building culture
    3. Generation gap

    .

    ♥️ Mindset

    สิ่งที่เราต้องการในพนักงาน คือ mindset เพราะถ้าขาด mindset ที่เหมาะสม ไม่ว่าเราจะทำ AI transformation ดีขนาดไหน ก็อาจจะไม่สำเร็จ

    Mindset อาจจะเริ่มที่ตัวเราก่อน เช่น ถ้าเราอยากทำ AI transformation แต่เราไม่ชอบ AI เราต้องหันกลับมามองว่า ถ้า AI เป็นสิ่งที่หลีกเลี่ยงไม่ได้ เป็นเราหรือเปล่าที่จะต้องเปลี่ยน

    ถ้าเราไม่เปลี่ยน โลกก็จะเคลื่อนไปข้างหน้าโดยไม่มีเรา

    .

    😈 Building Culture

    สิ่งที่เราต้องการในองค์กร คือ diversity

    เราไม่ต้องการพนักงานที่มีลักษณะนิสัยเหมือนกันหมด เพราะ culture ที่มีคนแบบเดียวกัน คือ culture ที่จะหยุดนิ่ง เปลี่ยนแปลงได้ยาก

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

    นอกจากนี้ เราควรบอกว่า คนที่เป็น “ขบถ” หรือแตกต่าง มากกว่ามองหา “ขนมเปี๊ยะ” หรือคนที่ดูภายนอกหน้าตาเหมือนกันไปหมด

    .

    👶 Generation Gap

    Generation gap เป็นสิ่งที่หลีกเลี่ยงได้ยาก โดยเฉพาะในองค์กรขนาดใหญ่

    แต่ละ generation มีมุมมอง จุดแข็งและจุดอ่อนที่แตกต่างกันไป ซึ่งบางทีก็ทำให้เกิด conflict ระหว่างพนักงานได้

    ถ้าเราอยากทำให้เกิด collaboration แทน เราจะต้องโฟกัสไปที่จุดแข็งของแต่ละ generation เช่น:

    • Generation ที่อายุมากกว่า อาจจะไม่เชี่ยวชาญเทคโนโลยีเท่ากับรุ่นใหม่ แต่มีประสบการณ์และความเชี่ยวชาญมากกว่า
    • Generation ที่อายุน้อยกว่า แม้จะไม่มีประสบการณ์เท่ากับคนรุ่นก่อน แต่ก็มีความเชี่ยวชาญและคุ้นชินกับเทคโนโลยีใหม่ ๆ มากกว่า

    ถ้าเราสามารถดึงจุดแข็งของแต่ละรุ่นขึ้นมา เราก็จะทำให้เกิด collaboration ระหว่างพนักงานในองค์กรได้


    🚨 Topic 5. Risks to Consider

    ความเสี่ยงในการทำ AI transformation มีอยู่ 8 ข้อ ได้แก่:

    1. Cybersecurity threat: ความปลอดภัยของระบบ
    2. Employee resistance: การต่อต้านของพนักงาน
    3. Cost overrun: ใช้งบประมาณเกินกำหนด
    4. Data loss: การสูญเสียข้อมูล โดยเฉพาะข้อมูลที่สำคัญต่อองค์กร
    5. Vendor lock-in: การพึ่งพา vendor แค่เจ้าเดียว
    6. Compliance issues: ปัญหาการปฏิบัติตามกฎ ระเบียบ และข้อบังคับต่าง ๆ
    7. System downtime: ระบบหยุดทำงานและส่งผลต่อการทำงานของพนักงาน
    8. Integration challenges: ความท้าทายในการเชื่อมต่อกับระบบอื่น ๆ

    👾 Topic 6. AI Solution Showcases: SCBX & KBTG

    .

    🟣 SCBX

    SCBX นำเสนอ 2 ตัวอย่างการใช้ AI เพื่อแก้ปัญหาในองค์กร ได้แก่:

    1. ARIS (Advanced Reputation Intelligence System)
    2. PITAG (Predictive Intelligence for Tactical Anti-fraud Guardian)

    Case 1. ARIS เป็นระบบตรวจจับ incident หรือเหตุการณ์ที่อาจสร้างความเสียหายต่อชื่อเสียงขององค์กร ซึ่งช่วยให้ SCBX สามารถรับรู้และรับมือ incident ต่าง ๆ (เช่น ข่าวว่าแอป SCB ถูกแฮ็ก) ได้อย่างทันท่วงที

    ARIS มีการทำงาน 4 ขั้นตอน:

    1. Data pruning: คัดกรอง content บนอินเทอร์เน็ตที่เกี่ยวข้องกับ SCBX (เช่น แอป SCB)
    2. Sentiment analysis: แยกประเภท content เป็นเขียว เหลือง และแดง พร้อมจับกลุ่ม content ที่อยู่ในหัวข้อเดียวกัน (เช่น แอป SCB ขัดข้อง)
    3. Incident detection: ประเมินว่า แต่ละหัวข้อ (แอป SCB ขัดข้อง) เป็น incident ไหม และถ้าใช่ เป็น incident ระดับไหน
    4. Real-time dashboard: แสดงผลบนหน้าจอ เพื่อให้พนักงานรับรู้ถึง incident ได้แบบ real-time

    Case 2. PITAG เป็น agentic AI สำหรับตรวจจับ fraud และแบ่งการทำงานเป็น 4 ขั้นตอน:

    1. Data collector agent: รวบรวมข้อมูลเกี่ยวกับลูกค้า ทั้งข้อมูลบนระบบ และข้อมูลจากแหล่งอื่น ๆ (เช่น หน่วยงานทางการเงินที่เกี่ยวข้อง)
    2. Investigator agent: ตรวจสอบข้อมูลและประเมินแนวโน้มที่จะเป็น fraud
    3. Executor agent: จัดการกับเคสความเสี่ยง (เช่น โทรขอข้อมูลเพิ่มเติมจากลูกค้า หรือจำกัดวงเงินในการใช้งาน)
    4. Governance agent: กำกับการทำงานของ agents ให้เป็นไปตามกฎระเบียบข้อบังคับ

    .

    🟢 KBTG

    KBTG นำเสนอ 6 AI use cases ในองค์กร ได้แก่:

    1. Increase revenue: เพิ่มรายได้ให้กับองค์กร เช่น เพิ่มยอด sales leads, เพิ่มยอด conversion ผ่าน product และ promotion recommendation
    2. Reduce risk: ลดความเสี่ยงในการทำธุรกรรม เช่น การประเมิน credit score
    3. Streamline operation: ลดเวลาในการทำงาน เช่น ใช้ AI ช่วยประเมินความเสียหายของรถยนต์ และปรับแต่งรูปอสังหาริมทรัพย์เพื่อลงประกาศขาย
    4. Protect customers: รักษาความปลอดภัยให้กับลูกค้า เช่น AINU ระบบยืนยันตัวตนด้วย AI
    5. Improve productivity: เพิ่ม productivity เช่น ใช้ AI ช่วยเขียน code ซึ่งลดเวลาจากหลายชั่วโมงเหลือไม่กี่นาที
    6. New products/services: พัฒนา products ใหม่ ๆ เช่น แอปเหมียวจด และ Future You แอปสำหรับพัฒนาตัวเองผ่านการพูดคุยกับตัวเองในอนาคต

    💡 Topic 7. Surviving in the Age of AI

    ผมขอทิ้งท้ายบทความด้วย 10 ข้อคิดดี ๆ ในการเอาตัวรอดในยุค AI:

    1. Focus on one problem at a time. If you focus on many problems, a year from now you’ll still be where you are now.
    2. Break your goal into smaller ones. Get the small wins first.
    3. Don’t be afraid to fail; if you are, you’ve already failed.
    4. ผิดพลาดได้ แต่สิ่งที่สำคัญ คือ จะทำยังไงให้ไม่ผิดซ้ำ
    5. Be resilient, be persistent.
    6. เราไม่ต้องกลัว AI แทนที่เรา ถ้าเรายังพัฒนาตัวเองอยู่เสมอ
    7. คนที่จะมาแทนที่เราไม่ใช่ AI แค่คือคนที่ใช้ AI เก่งกว่าเรา
    8. สร้าง blue ocean ของตัวเอง ด้วยการทำสิ่งที่ไม่เหมือนใคร
    9. ทำงานเร็วจะต้องตั้งอยู่บนความเป็นจริงและตรงเป้าหมาย ไม่อย่างนั้น ก็จะเป็นความเร็วไร้ทิศทางที่ทำให้เราพังเร็วขึ้น
    10. ความเร็วไม่ใช่ทุกอย่าง แต่ละคนเก่งไม่เหมือนกัน เราจะต้องหาให้เจอว่า ใครทำอะไรได้ดีและหางานนั้นให้เขาทำ

    🎤 List of Sessions

    7 หัวข้อบนเวที Global Tech Conference:

    1. ดิจิทัลไม่ใช่แค่ฝ่าย IT แต่คือภารกิจของ CEO ในการขับเคลื่อนองค์กร โดย คุณสุธีรพันธุ์ สักรวัตร, ประธานเจ้าหน้าที่ฝ่ายการตลาด, SCBX
    2. จากวิสัยทัศน์สู่ความเร็ว: คู่มือทรานส์ฟอร์มองค์กรสู่ยุคเรียลไทม์ โดย ดร.ธีรเดช ดำรงค์พลาสิทธิ์, หัวหน้าคณะผู้บริหารด้านกลุ่มธุรกิจองค์กร, True Corporation
    3. Technology & Talent Transformation โดย คุณ Shaun Wong, Chief Corporate Planning Officer, CP Axtra
    4. พลิกมุมคิด ผู้นำ ธุรกิจยุคใหม่: ทรานส์ฟอร์มองค์กรอย่างไรให้รอดในปี 2030 โดย คุณกานติมา เลอเลิศยุติธรรม, รองประธานเจ้าหน้าที่บริหาร ด้านธุรธิจองค์กร, AIS
    5. Smart CEO in AI Era: ผู้นำองค์กรต้องปรับตัวอย่างไรในโลกที่ AI วิ่งเร็วกว่าเรา โดย ดร.ธรรม์ธีร์ สุกโชติรัตน์, CEO, JIB AI
    6. จากดิจิทัลสู่ความอัจฉริยะ: ก้าวต่อไปของเทคโนโลยีธุรกิจยุคใหม่ โดย ดร.ทัดพงศ์ พงศ์ถาวรกมล, กรรมการผู้จัดการ, KBTG
    7. The New Corporate DNA: สร้างองค์กรไว ปรับง่ายโตได้ทุกจังหวะ โดย คุณเปา พีรดนย์ เหมยากร, ประธานเจ้าหน้าที่บริหารและผู้ก่อตั้ง, iHAVECPU

  • สรุป 2 บทเรียนจาก workshop “Compassionate Leadership in the Age of AI” โดยคุณดามพ์ (มงคล หงษ์ชัย) ในงาน PMAT 60th: Compassion และ DEMO — 2 เครื่องมือเพื่อความสำเร็จในการพัฒนา AI solution ในองค์กร

    สรุป 2 บทเรียนจาก workshop “Compassionate Leadership in the Age of AI” โดยคุณดามพ์ (มงคล หงษ์ชัย) ในงาน PMAT 60th: Compassion และ DEMO — 2 เครื่องมือเพื่อความสำเร็จในการพัฒนา AI solution ในองค์กร

    ในบทความนี้ ผมจะมาสรุปเนื้อหาจาก workshop “Compassionate Leadership in the Age of AI” ของคุณดามพ์ (มงคล หงษ์ชัย) ผู้เชี่ยวชาญ agile leadership และ AI for future skills ในงาน PMAT 60th เมื่อวันที่ 12 พ.ย. ที่ผ่านมา

    โดยเนื้อหาจะแบ่งเป็น 3 ส่วน ได้แก่:

    1. Issues with AI adoption: ปัญหาการพัฒนา AI solution
    2. Compassion: เครื่องมือทำความเข้าใจคน
    3. DEMO: เครื่องมือทำความเข้าใจ process

    ถ้าพร้อมแล้ว ไปเริ่มกันเลย


    1. 😭 The Issue With AI Solutions
    2. 🫂 Compassion: Tool for Understanding the People
      1. ❤️ Empathy
      2. 🫂 Compassion
      3. 🧘 How to Develop Compassion
    3. 🦾 DEMO: Tool for Understanding Process
      1. 📊 Why DEMO?
      2. 👷 What Is DEMO?
      3. 🤖 DEMO & AI Solution
      4. 📋 How to DEMO
    4. 💪 Summary
    5. 📚 Further Reading

    😭 The Issue With AI Solutions

    95% ขององค์กรล้มเหลวในการสร้าง AI solution ที่สร้างกำไรได้จริง (The GenAI Divide: State of AI in Business 2025)

    สาเหตุหลักของความล้มเหลวมีอยู่ 2 ข้อ ได้แก่:

    1. People: ขาดความเข้าใจในผู้ที่เกี่ยวข้องกับการเปลี่ยนแปลง (เช่น พนักงานที่ต้องใช้ AI)
    2. Process: ขาดความเข้าใจใน process งานที่นำ AI มาประยุกต์ใช้

    ซึ่งทำให้ AI solution ที่ออกแบบไม่ตอบโจทย์คนใช้งานและไม่สามารถสร้างรายได้ให้กับองค์กรได้

    เราสามารถแก้ทั้ง 2 สาเหตุนี้ได้ด้วย 2 เครื่องมือนี้:

    1. Compassion: ช่วยทำความเข้าใจคน
    2. DEMO: ช่วยทำความเข้าใจ process

    🫂 Compassion: Tool for Understanding the People

    .

    ❤️ Empathy

    ถ้าเราจะเข้าใจคนอื่นได้ เราจะต้องมี empathy

    Empathy เป็นคำที่มีคนพูดถึงอยู่บ่อย ๆ โดยเฉพาะในองค์กรที่ทำงานกับ design thinking ซึ่งใช้ empathy เป็นเครื่องมือหลักในการทำความเข้าใจปัญหาของ user เพื่อออกแบบ solution ที่ตอบโจทย์ user อย่างแท้จริง

    Empathy ยังเป็น 1 ใน 4 ลักษณะสำคัญของ leader ในยุค VUCA (volatile, uncertain, complex, ambiguous) เคียงข้างกับ problem solving, relationship management, และ motivation อีกด้วย

    Empathy เป็นสิ่งจำเป็น เพราะทำให้เราเข้าใจความรู้สึกและมุมมองของคนอื่นได้ เพราะ leader ที่ไม่มี empathy จะไม่สามารถ engage คนอื่นได้ เพราะไม่สามารถสร้าง motivation ให้กับคนอื่นได้ (Connect with Empathy, But Lead with Compassion)

    แต่ empathy อย่างเดียวอาจไม่พอ และสิ่งที่เราต้องการจริง ๆ คือ compassion

    .

    🫂 Compassion

    ในขณะที่ empathy ช่วยให้เรารับรู้ความรู้สึกและมุมมองของคนอื่น compassion ไม่เพียงแต่ช่วยให้เราเข้าถึงความรู้สึกของคนอื่น แต่ยังรวมไปถึงความต้องการที่จะช่วยคนอื่นอีกด้วย

    Compassion แปลไทยได้ว่า “กรุณา” ซึ่งหมายถึง การช่วยให้คนอื่นพ้นทุกข์ และคำที่มักมาคู่กัน คือ “เมตตา” ซึ่งแปลว่า การทำให้คนอื่นมีความสุข (Buddhist beliefs – Edexcel)

    Empathy เป็นสิ่งจำเป็นที่จะช่วยให้เรา connect กับคนอื่นได้ แต่ถ้าเราจะเป็น leader ที่ดี เราจะต้องมี compassion ด้วย เพราะ empathy อย่างเดียวอาจทำให้เราตัดสินใจผิดพลาดได้ ตามคำของ Paul Polman อดีต CEO ของ Unilever:

    If I led with empathy, I would never be able to make a single decision. Why? Because with empathy, I mirror the emotions of others, which makes it impossible to consider the greater good.”

    แปล:

    ถ้าผมนำด้วย empathy ผมจะตัดสินใจไม่ได้สักอย่าง ทำไมหรอ? เพราะ empathy ทำให้ผมรู้สึกความรู้สึกของคนอื่น ซึ่งทำให้ผมคิดถึงประโยชน์ของส่วนรวมไม่ได้

    มีงานวิจัยที่แสดงให้เห็นถึงข้อเสียของ empathy

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

    ผู้เข้าร่วมกลุ่มแรกเลือกที่จะลัดคิวให้เด็กมากกว่าผู้เข้าร่วมในกลุ่มหลัง แม้ว่าผู้เชี่ยวชาญด้านการแพทย์จะคัดค้าน แม้ว่าการตัดสินใจลัดคิวจะเป็นผลดีต่อเด็ก แต่ทำให้ผู้ป่วยอื่น ๆ ที่อาจต้องการการรักษามากกว่าอยู่ในอันตรายได้ (Connect with Empathy, But Lead with Compassion)

    ดังนั้น เราไม่ควรมีแต่ empathy แต่ควรมี compassion ด้วย

    .

    🧘 How to Develop Compassion

    เราสามารถพัฒนา compassion ได้ 2 วิธี:

    วิธีที่ 1. ฝึกอยู่กับปัจจุบันทั้งกายและใจ

    แม้ว่าเวลาคุยกับคนอื่น เราอาจจะคิดว่าเราฟังอยู่ แต่จริง ๆ แล้วใจเราอาจไปอยู่ที่อื่น หรือเสียงในหัวเราอาจจะดังกลบเสียงคนที่กำลังพูด

    เราสามารถฝึก compassion ได้โดยกลับมาอยู่กับสิ่งที่เกิดขึ้นในปัจจุบัน ซึ่งจะช่วยให้เราอยู่กับสิ่งที่คนอื่นกำลังพูดได้มากขึ้น

    เราสามารถฝึกอยู่กับปัจจุบันได้ผ่านการนั่งสมาธิ หรือง่ายกว่านั้น คือ การสังเกตสิ่งที่กำลังเกิดขึ้นรอบตัวเรา เช่น:

    • ลมหายใจเข้าออกของเรา
    • ผิวของเนื้อผ้าที่เราสวมใส่
    • แอร์หรือลมที่ตกกระทบผิวของเรา

    แค่เราฝึกสังเกตสิ่งที่เกิดขึ้นในแต่ละช่วงขณะ เราก็จะค่อย ๆ พัฒนา compassion ของเราขึ้นทีละนิด เพราะเราสามารถอยู่กับคนที่ต้องการความช่วยเหลือจากทั้งกายและใจ

    วิธีที่ 2. ให้ AI ช่วย

    เราสามารถให้ AI ช่วยพัฒนา compassion ได้ เช่น:

    • เล่าสถานการณ์ที่เราพูดคุยกับคนอื่นให้ AI ฟัง เพื่อให้ AI ให้มุมมองใหม่ ๆ กับเรา พร้อมแนะนำวิธีแสดง compassion เพิ่มเติมได้ (Using AI to Make You a More Compassionate Leader)
    • ให้ AI ช่วย role-play กับเรา ให้เราได้ฝึก compassion เหมือนในหน้างานจริง

    🦾 DEMO: Tool for Understanding Process

    .

    📊 Why DEMO?

    ทุกองค์กรมี chart มากมายสำหรับแสดงข้อมูลต่าง ๆ เช่น flow chart สำหรับแสดงขั้นตอนการทำงานในองค์กร และ organisation chart ที่แสดงผังองค์กร

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

    ยกตัวอย่างเช่น flow chart แสดงการเบิกจ่ายค่าเดินทางให้พนักงาน:

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

    • แต่ละขั้นตอนมีใครเกี่ยวข้องบ้าง
    • มีเอกสารอะไรที่ต้องการใช้บ้าง
    • แต่ละขั้นตอนใช้เวลาเท่าไร

    ถ้าเราต้องการเห็นภาพรวมของการทำงานในองค์กร เราจะใช้ DEMO

    .

    👷 What Is DEMO?

    DEMO (ย่อมาจาก Design & Engineering Methodology for Organisations) เป็นหลักการในการออกแบบองค์กร ซึ่งมีวิธีการเขียน process ในระดับ high level ที่ช่วยให้ทำความเข้าใจและตัดสินใจได้ง่าย

    ยกตัวอย่างการเขียน process การเบิกค่าเดินทางแบบ DEMO:

    DEMO แสดง process ในรูปแบบของ transaction หรือการแลกเปลี่ยนระหว่าง 2 ฝ่าย ได้แก่:

    1. Initiator: คนที่เริ่มการแลกเปลี่ยน (เช่น พนักงานที่ขอเบิกค่าเดินทาง)
    2. Executor: คนที่ทำให้เกิดผลลัพธ์บางอย่างในระบบ (เช่น ฝ่ายบัญชีที่อนุมัติจ่าย)

    ในแผนภาพแบบ DEMO (เรียกว่า OCD หรือ Organisation Construction Diagram) เราจะเห็นว่า:

    1. การเบิกจ่ายเงินมีกี่ transaction (ดูจาก T01, T02, …)
    2. แต่ละ transaction มีใครที่เกี่ยวข้องบ้าง
    3. แต่ละ transaction ใช้เวลาเท่าไร (ตัวเลขใต้ T0x เช่น T01 ใช้เวลา 1 วัน)

    OCD มาพร้อมกับตารางที่ให้ข้อมูลเพิ่มเติมเกี่ยวกับ transaction เช่น:

    TransactionDurationDocuments
    T01. ส่งเอกสาร1 วันฟอร์มเบิกค่าเดินทาง, หลักฐานการเดินทาง, สำเนาบัตรประชาชน
    T02. อนุมัติเบิก1 วันฟอร์มเบิกค่าเดินทาง, หลักฐานการเดินทาง
    T03. ส่งเรื่องเบิก2 วันฟอร์มเบิกค่าเดินทาง, หลักฐานการเดินทาง
    T04. เบิกจ่าย3 วันอีเมลแจ้งการเบิกจ่าย

    เมื่อเราดู OCD และตารางประกอบกัน เราจะสามารถระบุปัญหาและจุดที่ควรแก้ไขได้ในทันที เช่น:

    1. เราตัดขั้นตอน T03 ออกได้ไหม? ให้ฝ่ายบัญชีจ่ายตรงให้พนักงานเลย
    2. ทำไม T03 ใช้เวลานาน? ลดเหลือ 1 วันได้ไหม?
    3. T01 ต้องใช้เอกสาร 3 อย่างเลยหรอ? ตัดสำเนาบัตรประชาชนออกได้หรือเปล่า?

    ถ้าเรามองย้อนกลับไปที่ flow chart ก่อนหน้านี้ เราจะเห็นความแตกต่างอย่างชัดเจนว่า เราไม่สามารถตั้งคำถามเหล่านี้ได้ในทันที เพราะ flow chart ไม่ได้ให้ข้อมูลที่เพียงพอหรือจำเป็นต่อการตัดสินใจในการเปลี่ยนแปลง process งาน

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

    .

    🤖 DEMO & AI Solution

    เราสามารถนำ DEMO มาประยุกต์ใช้ในการออกแบบ AI solution ให้เหมาะกับองค์กรได้

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

    แต่ถ้าเราพัฒนา AI เพื่อมาช่วยฝ่ายบัญชีส่งต่อเอกสารให้กับฝ่ายการเงิน (T03) หรือช่วยฝ่ายการเงินตั้งจ่ายและส่งอีเมลยืนยันการจ่าย (T04) เราจะสามารถลดเวลาได้มากขึ้น เพราะทั้ง 2 จุดนี้ใช้เวลามากที่สุดในขั้นตอนทั้งหมด ถ้าเราพัฒนา AI เพื่อช่วย T03 และ T04 แล้ว เราจะลดเวลาในการทำงานลงไปกว่าครึ่งของ process ทั้งหมด (5 จาก 7 วัน)

    .

    📋 How to DEMO

    การเขียน OCD มีอยู่ 3 ขั้นตอน ได้แก่:

    1. Gather data: เก็บข้อมูล process งานจากฝ่ายที่เกี่ยวข้อง (เช่น ฝ่ายบัญชี) โดยใช้ empathy และ compassion เพื่อช่วยให้เราเข้าใจและอยากช่วยเหลือ
    2. Categorise data: จัดกลุ่มข้อมูลได้เป็น 3 ส่วน ได้แก่:
      1. Forma: วิธีการสื่อสาร (เช่น อีเมล, แบบฟอร์ม)
      2. Informa: สิ่งที่ต้องการสื่อสาร (เช่น คำขออนุมัติเบิกค่าเดินทาง)
      3. Performa: สิ่งที่ทำให้เกิดผลลัพธ์ (เช่น การอนุมัติเบิก)
    3. Convert to transaction: เปลี่ยนข้อมูลให้เป็น transaction ที่มี 3 องค์ประกอบ ได้แก่:
      1. Actors: initiator และ executor
      2. Documents: เอกสารที่เกี่ยวข้อง (เช่น ฟอร์มเบิกค่าเดินทาง, ใบเสร็จ)
      3. Duration: ระยะเวลาที่ใช้สำหรับ transaction นั้น ๆ (เช่น 1 วัน)

    💪 Summary

    องค์กรส่วนใหญ่ล้มเหลวในการพัฒนา AI solution ให้ตอบโจทย์ เพราะขาดความเข้าใจ 2 อย่าง ได้แก่:

    1. People: ความเข้าใจในคนที่เกี่ยวข้อง
    2. Process: ความเข้าใจในกระบวนการทำงานที่จะเอา AI solution เข้าไปช่วย

    เราสามารถแก้ทั้ง 2 สาเหตุนี้ได้ โดยใช้:

    1. Compassion เพื่อทำความเข้าใจคน
    2. DEMO เพื่อทำความเข้าใจกระบวนการทำงาน

    📚 Further Reading

    สำหรับคนที่สนใจศึกษาเชิงลึกเกี่ยวกับหัวข้อในบทความนี้ สามารถอ่านเพิ่มเติมได้ตามนี้

    Compassion:

    DEMO:

    Bonus — สรุปงาน PMAT 60th: