coding ไม่ใช้คอม (อีกครั้ง และครั้งสุดท้าย)
โพสที่แล้วผมพูดเรื่อง coding ไม่ใช้คอม คนแชร์ไปเยอะ จนเริ่มรู้สึกชีวิตไม่สงบแล้ว จะเปลี่ยนเป็น Friend only ก็เกรงใจหลายท่านที่แชร์ไปแล้ว
ผมไม่ชอบดราม่า ผมไม่สนใจว่าใคร หรือพรรคไหนเป็นคนพูดประเด็นนี้ มันไม่ใช่สาระ ผมสนใจแค่ context ที่ debate กันอยู่ในสังคมเท่านั้น
ย้ำว่าโพสนี้ไม่ใช่โพสการเมือง และผมก็เลือกอนาคตใหม่ ดังนั้นพวกที่ด่าผมเป็น <ขนมหวานหลากสี> กรุณาเข้าใจเสียใหม่
ผมเคยตั้งใจว่าจะไม่โพสการเมืองอีก แต่ประเด็นนี้ผมเลี่ยงไม่โพสไม่ได้ เพราะเรากำลังทะเลาะกันถึงวิธีการเรียนรู้ของลูกหลานของเรา ซึ่งเป็นอนาคตของประเทศนี้ ผมยอมปล่อยวางให้ผ่านไปเฉยๆ ไม่ได้จริงๆ
โพสที่ผ่านมา แปลกดี
โปรแกรมเมอร์อาชีพส่วนใหญ่เห็นด้วยกับผม (p->q)
คนที่ด่าส่วนใหญ่ไม่ใช่โปรแกรมเมอร์อาชีพ (!q->!p)
(อันนี้ตรรกศาสตร์พื้นฐาน Transposition rule นะครับ ย้ำว่าผมใช้คำว่าส่วนใหญ่ ผมไม่ได้ stereotype มีโปรแกรมเมอร์อาชีพบางคนไม่เห็นด้วยกับผม และก็มีคนที่ไม่ใช่โปรแกรมเมอร์เห็นด้วยกับผมจำนวนมาก (!p->q) เขียนกันไว้ก่อนโดนด่าอีก เพราะผมไม่ชอบดราม่านะ)
สรุปประเด็นคำถามหลายๆ คนที่เห็นแย้งกับโพสของผม
**************************************
Q: บางคนบอกว่า coding ไม่เขียนโปรแกรมจะเรียก coding ได้ไง..?
A: coding ไม่ได้ตีความว่าต้องเขียนโปรแกรมเป็นบรรทัดๆ ด้วยภาษาคอมพิวเตอร์ อย่างเดียว Lego Mindstorm ก็ coding ด้วย drap and drop, Scratch ของ MIT เป็นแพลตฟอร์มสอนเด็กให้เข้าใจ coding ด้วย GUI (ลองเข้าไปดูที่ https://scratch.mit.edu) ทั้งหมดคือการสอน coding โดยไม่ใช้ภาษาโปรแกรมทั้งนั้น และทั้งหมดนั้นสามารถทำอะไรที่คล้ายๆ กันได้โดยไม่ต้องใช้คอมพิวเตอร์ คอมพิวเตอร์เป็นเพียง "tool" ในการอำนวยความสะดวกเท่านั้น ซึ่งมันก็จะตามมาด้วย "ข้อเสีย" แบบที่ผมเคยได้พูดไปแล้ว)
ภาษาโปรแกรมเป็นแค่ 1 วิธีในการสร้างกระบวนการแก้ไขปัญหาอย่างเป็นระบบเท่านั้น
**************************************
Q:บางคนบอกว่า ถ้าอยากฝึกวิธีคิด วิธีแก้ปัญหา มีวิชา math และ logic แล้วนี่ จะเรียนซ้ำซ้อนทำไม..?
A: ถ้าจะพูดแบบนี้ทุกวิชาในโลกนี้เรียนเพื่อฝึกคิดและแก้ปัญหาทั้งนั้น ไม่ใช่เฉพาะ math หรือ logic
แต่เราไม่ได้เรียน coding เพื่อแก้ปัญหาแบบตรงๆ แต่เราเรียน coding เพื่ออธิบายปัญหาและวิธีแก้ "อย่างเป็นระบบ" (อันนี้เอามาจากคำตอบของคนในทีมผมเอง ขออนุญาตไม่ระบุนาม) ซึ่งวิชา math และ logic ไม่ได้เน้นเรื่องนี้
**************************************
Q: เรียน coding ด้วยกระดาษ โปรแกรมบั้กก็แก้ไม่ได้ รันโปรแกรมก็ไม่ได้ จะไปมีประโยชน์อะไร
A: สมัยพวกผมเรียน พวกผมคอมไพล์ด้วยตา เช็คบั้กด้วยสมองคิด ซึ่งสิ่งเหล่านั้นบ่มเพาะให้พวกผมเป็นโปรแกรมเมอร์ที่ดีขึ้น รอบคอบขึ้น ละคิดละเอียดขึ้น
**************************************
Q: ถ้างั้นก็อย่าใช้คำว่าวิชา coding ให้คนเข้าใจผิด จะใช้คำว่าวิชา computational thinking หรืออะไรก็ใช้ไป
A: ผมก็ยังยืนยันว่า ตำราฝรั่งทั้งจาก MIT, google จากมหาวิทยาลัยดังๆ หนังสือเด็กของฝรั่ง ส่วนใหญ่ก็ใช้คำว่า coding อย่าตีความ coding เป็นการเขียนภาษาคอมพิวเตอร์เพียงอย่างเดียว
และถ้าคุณเลือกใช้คำอื่น ต่อให้มันจะเป็นคำที่ตรงเป๊ะๆ อย่าง computational thinking หรืออะไรก็ตามแต่ ก็จะยิ่งยากที่จะทำให้สังคมเข้าใจมากยิ่งขึ้นไปอีก "ลองจินตนาการรมต พูดว่า เราต้องให้เด็กเรียนวิชา computational thinking" ในสภาดูสิครับ
**************************************
Q: เป้าหมายของการเรียน coding คืออะไร
A: สำหรับผม ผมไม่ได้คิดว่าเด็กที่เรียน coding จะต้องเขียนโปรแกรมคอมพิวเตอร์เป็น รันโปรแกรม python หรือ java ได้ ไม่จำเป็นเลย
ที่ผ่านมาเราให้เด็กเรียนวิชาอ่าน เขียน ไม่ได้เพื่อเรียนจบไปเป็นนักอ่านข่าวอาชีพ หรือนักเขียนอาชีพใช่ไหมครับ แต่เราให้เค้าเรียนเพื่อให้มี skill พื้นฐานในการสื่อสารปฏิสัมพันธ์
เช่นเดียวกันเราให้เด็กเรียน coding ไม่ได้เพื่อไปเป็นโปรแกรมเมอร์อาชีพ แต่เราให้เค้าเรียนเพื่อมี skill พื้นฐานในการคิดแก้ปัญหาอย่างเป็นระบบ
สุดท้ายนี้ ผมไม่ได้บังคับให้ทุกคนเห็นด้วย ความเห็นของผมเป็นแค่ความเห็นหนึ่งของโปรแกรมเมอร์ที่เขียนโปรแกรมมา 25 ปี (ผมเริ่มเขียนโปรแกรมตั้งแต่อยู่ม. 3) ผ่านอะไรมาในระดับนึงที่น่าจะพอให้ความเห็นกับสังคมได้
ทุกคนมีสิทธิ์เห็นต่าง แต่ไม่ใช่การเห็นต่างที่จะมาด่า หรือดูถูกความคิดของฝ่ายตรงข้าม แบบที่ผมเห็นมาในโพสที่แล้ว (บางคน)
ผมสรุปปิดท้ายตรงนี้ และจะเลิกพูดเรื่องนี้แล้ว ถ้าจะโพสประเด็นนี้หลังจากนี้ผมจะไม่เปิด public และจะเขียนเฉพาะให้เพื่อนๆ ใน Facebook อ่านเท่านั้นเพื่อหลีกเลี่ยงดราม่า
ขอบคุณครับ