Tags:
Topics: 
Node Thumbnail

วันที่ 26 ก.ค. 2562 คุณหญิงกัลยา โสภณพานิช รัฐมนตรีช่วยว่าการกระทรวงศึกษาธิการ (รมช.สธ.) ชี้แจงในรัฐสภาระบุว่า " ... ในฐานะที่เป็นนักวิทยาศาสตร์ จึงขอเพิ่มภาษาคอมพิวเตอร์ หรือ Coding ในอนาคตนักเรียนตั้งแต่ชั้นประถมศึกษาสามารถเรียนโคดดิ้ง เครื่องไม่เครื่องมือไม่มีผล เรามีครูมากกว่า 8 พันคนที่มีพื้นฐาน เพื่อเตรียมเด็กไทยสู่ศตวรรษที่ 21 หรือ 5G ที่เทคโนโลยีจะเปลี่ยนแปลงอย่างรวดเร็ว เมื่อพูดเรื่องภาษาที่ 3 ..." จากความเห็นดังกล่าว แสดงให้เห็นถึงความเข้าใจคลาดเคลื่อนของ รมช.ศธ. เกี่ยวกับการพัฒนาซอฟท์แวร์อย่างเห็นได้ชัด ในฐานะนักพัฒนาซอฟท์แวร์ ผู้เขียนจึงต้องการชี้แจงทำความเข้าใจ และให้ข้อมูลเพิ่มเติมดังนี้

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

2) การเขียนโค้ด ("การโค้ดดิ้ง" ตามสำนวนของ รมช.ศธ.) ถือเป็นกระบวนการหนึ่ง และเป็นกระบวนการพื้นฐานที่ขาดไม่ได้ของการพัฒนาซอฟท์แวร์ จากประสบการณ์ของผู้เขียน การเขียนโค้ดที่มีประสิทธิภาพ ประกอบด้วยอย่างน้อย 2 ส่วนคือ 2.1) ตรรกะกระบวนการคิด เป็นตรรกะในเชิงศาสตร์ ที่สามารถทำความเข้าใจได้ในเวลาอันจำกัด ไม่แตกต่างจากตรรกะในศาสตร์อื่น ๆ เช่น วิทยาศาสตร์ หรือ คณิตศาสตร์ 2.2) ทักษะความชำนาญในการเขียนโค้ด ซึ่งต้องใช้เวลาในการฝึกฝนทำความคุ้นเคย จึงจัดอยู่ในกลุ่มศิลป์ หรือพูดอีกอย่างหนึ่งก็คือ การเขียนโค้ดเป็นทั้งศาสตร์และศิลป์ในตัว (The Four Phases of Learning to Code )

ผู้เขียนเข้าใจว่า รมช.ศธ. กล่าวถึงในส่วนที่เป็นศาสตร์ของการเขียนโค้ด ที่ไม่จำเป็นต้องใช้เครื่องมือ ซึ่งผู้เขียนเห็นด้วยเพียงบางส่วน เนื่องจากการเขียนโค้ดแตกต่างจากศาสตร์อื่น ๆ ตรงที่ต้องแก้ปัญหาใหม่ ๆ ตลอดเวลา การเข้าใจตรรกะการเขียนโค้ดพื้นฐาน ก็จะช่วยได้เพียงบางส่วนเท่านั้น แต่ในความเป็นศิลป์ของการเขียนโค้ดนั้น จำเป็นเป็นอย่างยิ่งที่ต้องใช้เครื่องมือ อย่างน้อยที่สุดคือเครื่องคอมพิวเตอร์ และเครื่องมือในการพัฒนาซอฟท์แวร์ เนื่องจากแนวทางการเขียนโค้ด (หรือการพัฒนาซอฟท์แวร์ทั้งหมด) จะขึ้นอยู่กับสภาพแวดล้อมในการพัฒนาซอฟท์แวร์นั้น ๆ (Software Develepment Environement)ผู้ที่มีความชำนาญในการพัฒนาซอฟท์แวร์ในสภาพแวดล้อมหนึ่ง ไม่ได้มีความชำนาญในสภาพแวดล้อมอื่นโดยอัตโนมัติ (แม้จะเป็นภาษาเขียนโปรแกรมเดียวกันก็ตาม) ดังนั้น หากผู้เรียนการเขียนโค้ด ไม่มีเครื่องมือในการเรียนการสอน ก็จะไม่มีความชำนาญในสภาพแวดล้อมใดเลย ก็ถือได้ว่าไม่มีทักษะความชำนาญในการเขียนโค้ดเลย หรือพูดง่าย ๆ ว่าเขียนโค้ดไม่เป็น

3) ประเทศไทยขาดนักพัฒนาซอฟท์แวร์ เนื่องจากปัญหาบุคคลากรทางการศึกษาในระดับอุดมศึกษาของไทย (เสียงสะท้อนจากวงการพัฒนาซอฟท์แวร์ไทย : วิกฤตการณ์ Programmer เมืองไทย เพราะอะไร ทำไม ถึงวิกฤติได้ขนาดนี้) เป็นความจริงอันน่าเศร้าที่ว่า อาจารย์ในระดับมหาวิทยาลัย ที่มีทักษะการพัฒนาซอฟท์แวร์ มีไม่เพียงพอที่จะสร้างนักพัฒนาซอฟท์แวร์ให้เพียงพอกับความต้องการของตลาด มิพักต้องพูดถึงบุคคลากรที่จะสอนในระดับประถมศึกษา หรือมัทธยมศึกษา ต่อคำกล่าวที่ว่า "เรามีครูมากกว่า 8 พันคนที่มีพื้นฐาน" เป็นสิ่งที่ผู้เขียนมีข้อกังขา ว่ามีพื้นฐานในระดับใด และเพียงพอต่อการสอนทักษะในการพัฒนาซอฟท์แวร์หรือไม่ ดังที่ได้กล่าวไป การพัฒนาซอฟท์แวร์เป็นทั้งศาสตร์และศิลป์ ในส่วนที่เป็นศิลป์นั้น หากมีการวางรากฐานที่ผิดพลาด จะเกิดผลเสียมากกว่าผลดี ในหลายกรณี ที่ผู้เขียนต้องทำงานร่วมกับนักพัฒนาซอฟท์แวร์ที่มีทักษะพื้นฐานที่มีปัญหา การฝึกฝนให้สามารถพัฒนาซอฟท์แวร์ได้ จะยากและใช้เวลานาน เพราะต้องถอดรื้อทักษะพื้นฐานที่มีปัญหาเสียก่อน จึงจะสามารถประกอบสร้างทักษะที่ถูกต้องได้

4) ผู้เขียนสนับสนุน และเห็นด้วย ให้มีการเรียนการสอนการเขียนโค้ดตั้งแต่ระดับประถมศึกษา ทั้งนี้ด้วยข้อจำกัดในเรื่องบุคคลากร ผู้เขียนเห็นว่ายิ่งต้องลงทุนในเครื่องมือ การสอนการเขียนโค้ด ในระดับพื้นฐาน มีความเป็นไปได้อย่างมากในการใช้ Computer Based Training (CBT) โดยการสอนผ่าน Tutorial การทำตามทีละขั้นตอน ในสภาวะแวดล้อมที่กำหนด ทั้งนี้ กระบวนการทั้งหมดควรใช้ภาษาอังกฤษ เนื่องจากแหล่งข้อมูลการพัฒนาซอฟท์แวร์ในปัจจุบันสามารถหาได้โดยทั่วไปตามอินเทอร์เน็ต ซึ่งส่วนมากเป็นภาษาอังกฤษ นั่นหมายความว่า ระดับการศึกษาที่จำสามารถเรียนการเขียนโค้ดได้ ต้องมีพื้นฐานทางภาษาอังกฤษ และทางคณิตศาสตร์เป็นอย่างน้อย

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

6) นักพัฒนาซอฟท์แวร์ที่ดีและเก่ง ไม่จำเป็นต้องมีใบปริญญา เมื่อ ศธ. เริ่มคิดในเรื่องนี้แล้ว ผู้เขียนต้องการเสนอให้ ศธ. คิดต่อในเรื่องของการเปิดตลาดแรงงาน โดยเฉพาะทางด้านเทคโนโลยีสารสนเทศ (IT) ที่พึงพาใบปริญญาให้น้อยลง แต่เน้นทักษะที่สามารถใช้งานจริงได้มากขึ้น

Get latest news from Blognone

Comments

By: lew
FounderJusci's WriterMEconomicsAndroid
on 29 July 2019 - 21:48 #1121867
lew's picture

อันนี้อาจจะต้องประกาศตัวเองหน่อยนะครับว่าเป็น "ความเห็น" หรือบทความรวบรวมข้อมูล หรืออะไร

โดยทั่วไปอาจจะแนะนำให้ลง forum ชวนพูดคุยมากกว่านะครับ


lewcpe.com, @wasonliw

By: Architec
ContributorWindows PhoneAndroidWindows
on 30 July 2019 - 17:06 #1122007

สองลิงค์ข้างล่างนี้ไม่ใช้ผลจากการ coding เหรอครับ?

https://youtu.be/IvUU8joBb1Q

https://youtu.be/xs0mP2cOmJs