พอดีว่าได้พูดคุยกับพี่ … (ไม่ขอเอยนาม) และได้เข้าไปอ่านในกระทู้มากมายเกี่ยวกับเรื่องพวกนี้มาเลยเก็บเอามาให้อ่านกันครับ
CS ไม่ได้เรียนเพื่อเป็น programmer
การเรียนที่แท้จริง มันคงไม่ได้อยู่ที่หลักสูตรนะครับ มหา’ลัยที่แท้จริง ก็คือโลกนี้แหละครับ ทุกคนเรียนกันทุกวันอยู่แล้ว ทำไมต้องไปยึดติดกับ มหา’ลัยเล็ก ๆ หลักสูตร เล็ก ๆ ที่ไปเรียนกันแค่ไม่กี่ปีด้วยล่ะครับ
ถ้าคุณเข้าใจที่ผมพูดเมื่อไหร่ คุณจะเข้าใจว่า CS มีไว้เพื่ออะไร ผมจะอธิบายเพิ่มเติมอีกหน่อย เขียนโปรแกรมได้กับเขียนได้ดีไม่เหมือนกัน
ในการเรียน CS จะต้องศึกษาเรื่อง algorithms โดยต้องมี 3 อย่าง
1) correctness โปรแกรมที่คุณเขียนจะต้องถูกต้องทุกกรณี ไม่มีความผิดพลาดเกิดขึ้น โดยต้อง ทำ math proof ได้ ว่าทำไมถึงถูกต้อง คุณเคยทำรึเปล่าครับ รึว่าใช้ sense เอาว่าอย่างนี้น่าจะถูกแล้ว
2) performance โปรแกรมที่เขียนจะต้องมีประสิทธิภาพใสการทำงานสูง ทำงานเร็ว โปรแกรมเปรียบเทียบบางโปรแกรมอาจจะใช้ O(n^2), O(n^3) แต่คนที่มีความรู้เรื่อง algorithms เป็นอย่างดี อาจจะสามารถเขียนให้โปรแกรมทำงานใน O(n log n) หรือ O(n) ได้ คุณเคยปรับ algorithms ให้ทำงานเร็วขึ้นรึเปล่าครับ
3) efficency โปรแกรมที่เขียนจะต้องทำงานได้ดีที่สุดโดยใช้หน่วยความจำน้อยที่สุด คุณเคยทำการประเมินบ้างมั้ยครับ ว่าโปรแกรมที่คุณเขียนใช้หน่วยความจำเท่าไหร่ และใช้ให้น้อยลงได้หรือไม่
นี่คือ ความแตกต่างระหว่าง โปรแกรมของคนที่เรียน CS กับคนที่ไม่ได้เรียนครับ
แล้วก็ computer science ไม่ได้เรียนเน้นไปทางเขียนโปรแกรม ถ้าอย่างนั้นจะมีความรู้ที่แคบ
มีอย่างอื่นที่ต้องเรียนอีกมาก เช่น OS เวลาเขียนโปรแกรมใหญ่ ๆ ที่ใช้ thread มากมาย ถ้าเขียนแล้วเกิด deadlock ขึ้นคุณจะแก้ปัญหายังไง คุณเคยเจอรึเปล่าครับ เรื่อง priority อีก ว่า thread ไหนจะได้ทำงานก่อน ถ้าคุณไม่เข้าใจเรื่องนี้ ก็อาจจะเขียน thread มั่ว ๆ ซึ่งอาจทำให้โปรแกรมทำงานช้า, เกิด deadlock ได้
เรื่อง data communication and network คุณเรียน cs มา ผมถามคุณหน่อยได้มั้ยครับ ว่า ในระบบ LAN คอมพิวเตอร์มันคุยกันได้ยังไงครับ ในเมื่อ IP address เป็นสิ่งที่สมมติขึ้นมา ในการที่เราจะวางระบบเครือข่าย เช่น ใน SW ขนาดใหญ่ เวลา implement อาจจะต้องดูเรื่อง network ด้วย ถ้าคุณไม่เข้าใจเรื่อง router, gateway, dns ต่าง ๆ คุณจะวางระบบได้มั้ยครับ
ความจริง CS ยังมีเรื่องอื่น ๆ อีกมากเช่น AI, IR
ถ้าคุณจะไปเป็นนักพัฒนา SW เกมส์ แล้วคุณไม่รู้จักเรื่อง AI คุณก็จะทำไม่ได้อีก นี่ก็เป็นอีกความแตกต่างระหว่างคนเรียน CS กับไม่ได้เรียนครับ
เรื่อง IR ก็เหมือนกัน ถ้าคุณไปเขียนระบบที่ต้องมี Full Text Search ถ้าคุณไม่มีความรู้เรื่อง IR ก็ทำไม่ได้อีก
แล้วผมขอถามคุณหน่อย CE ต่างกันยังไงครับ เห็นส่วนใหญ่ คนที่จบ CE ก็มาเป็น programmer กันเยอะแยะ เค้าก็เขียนโปรแกรมเหมือนกัน ไม่เห็นใช้ความรู้วิศว ที่เรียนมาเลย
ซึ่งก็เหมือนดังกลับที่ว่า คนเรียนวิทยาการคอมพิวเตอร์ ซึ่งแล้วพวกคุณเป็นนักคณิตศาสตร์หรือเปล่าล่ะ … ถ้าไม่ใช่ แล้วเรียนมันไปทำไมล่ะ cal น่ะ หรือว่า analysis น่ะ หรือว่าพวกเราทุกคน เป็นนักภาษาศาสตร์หรือเปล่าล่ะ … ถ้าไม่ใช่ แล้วเรียนมันไปทำอะไร ภาษาพูด ภาษาเขียนน่ะ อย่าตอบผมนะ ว่า มันต้องใช้นี่นา … เพราะว่าถ้างั้น ผมจะตอบแบบเดียวกัน แล้ว engineer ไม่ใช่ calculus หรือ physics ดังนั้น comsci ก็ไม่ใช่ programming ครับ
logic ง่ายๆ สบายๆ ครับ
ซึ่งผมเห็นด้วยอย่างมาเลยในเรื่องนี้ ……… อย่างแรงเลยครับ ผมคิดต่ออีกว่า
คนไทยมอง ผลก่อน แล้วตามด้วยเหตุ …….. และเป็นประเทศเดียวในโลกด้วยในตอนนี้ที่ย่ำอยู่กับที่ได้นานที่สุด
ผมจะเปรียบเทียบให้ดู นี่คือสิ่งที่ได้จากคนที่ไปคลุกคลีกับคนที่ไม่ได้มอง ผลก่อนเหตุ แต่มอง เหตุก่อนผล …..
“คนไทยถ้้าจะให้อยากจะเรียน นั้นเพราะว่าเงินมันดี หรือว่าหางานง่าย ไม่ได้ทำหรือว่าเรียน เพราะว่าสนใจอยากรู้อยากทำ เวลาเรียนรู้อะไร ก็จะเร่งรัดเอาผลให้ได้เร็วๆ แทนที่จะอยากรู้อยากเห็นอยากเข้าใจ เช่น .. เวลาหัดเขียนโปรแกรม ก็จะอยากให้เห็นผลเร็วๆ ลอก code เข้าไปเยอะๆ รีบๆ compile จะได้เห็นผล แทนที่จะเสียเวลานั่งคิด นั่งทำความเข้าใจกับหลักการ และแนวคิด และอะไรอีกหลายๆ อย่างที่จำเป็น ไม่มีความอยากรู้อยากเห็นใน code แต่ละบรรทัดที่พิมพ์เข้าไป”
และคนไทยนี่แปลกนะครับ ……. อ่านหนังสือกันยังจะเลือกภาษาในการอ่านเพื่อสะดวกสบาย แทนที่เลือกจะเสพความรู้ที่ดี และตรงประเด็น
ดังเช่นกระทู้นี้
ทำอะไรกันอยู่ …… เรียน Com กันแต่อ่าน ภาษาอังกฤษไม่ออกอีกเหรอ แถมไม่พยายามหรือขวนขวาย ผมเห็นนิสิตเดี่ยวนี้ช่าง ทำอะไรแคบๆ อ่านอะไรก็ยึดด้านนั้นด้านเดียว
อ่านอะไรก็อ่านแต่สิ่งไร้สาระ หาสาระในการเสริมสร้างความรู้ไม่
อย่างที่เห็นๆ กันง่ายๆ หนังสือด้านคอมฯ เกี่ยวกับ Com Sci จริงๆ หนังสือคอมฯ ในไทย ดีๆ มี 10% ของทั้งหมด นอกนั้นขยะดีๆ นี่เอง ……. (พูดเรื่องจริง) ทำไมหรือ เพราะทุกเล่มสอนให้ทำตาม แต่ไม่ “ให้คิด” คือ ทำได้ไง แต่ทำแบบใหม่ๆ แหวกแนวไม่เป็น ซึ่งก็ทำให้คิดว่าตัวเองทำได้ แต่จริงๆ แล้ว ทำไม่ได้หรอก ถ้าไม่มีสูตร ไม่มี step by step
ง่ายๆ หนังสือ c++ หรือ java คุณรู้ไหม ว่า include มันมายังไง มันต่างจาก require ยังไง
หรืออย่างพวก comment มันเอาไว้ทำไมมั้ง ควรมีไว้เพื่ออะไร จำเป็นมากไหม
อีกอย่างคือ พวกหนังสือพวกนี้สอน แนว concept การมองโปรแกรมอย่างเป็นเหตุเป็นผลไหม พวก logic พื้นฐานต่างๆ flowcontrol ต่างๆ หรือ concept พื้นฐานจริงๆ เลยที่ควรรู้อย่างพวก การทำงานของ cycle ใน cpu หรือ แนว com architect พวกนี้
ผมหามาทั้งตลาดหนังสือไทย มีอยู่ 1 – 2 เล่มนอกนั้น “ขยะ”
ถ้าใครจะเถียงว่า คนมันคิดไม่เหมือนกัน บางคนต้องการเร็ว งั้นก็ไม่ต้องเรียน ไม่มีอะไรที่ได้มาด้วยความรวดเร็วถ้าไม่มีพื้นฐานที่ดี พื้นฐานไม่ดี เดี่ยวก็ตันเองหล่ะ เชื่อผมไหมหล่ะ
หนังสือคอมฯ ที่ผมคิดว่ายังไงก็ต้องอ่านก็พวก “computation theory” ต่างๆ หรือ พวก Concept ต่างๆ พวก AI, Data Com, Data Structure, Logic Theory, Database System ฯลฯ พวกนี้ ผมไม่เห็นมันจะโดนแปลเป็นภาษาไทยเลย หรือถ้าแปลก็แปล แบบ ผิดๆ ซะมาก
นั้นมันทำให้เราต้องอ่านหนังสือ ภาษาอังกฤษ หรือ Text Book ซะ แต่เท่าที่ผมได้เห็น ได้เจอ กลับไม่มีใครกล้าอ่านมัน เพราะกลัวภาษาอังกฤษ หรืออ่านมันไม่ออก ทั้งๆ ที่หนังสือพวกนี้คือสิ่งที่จำเป็นอย่างมาก เพราะคอมพิวเตอร์มันสร้างมาจากพวกที่ใช้ภาษาอังกฤษนั้นเอง
ซึ่ง “ผมก็ไม่แน่ใจเหมือนกันว่า สอบ ent’ วิชา อังกฤษ เข้ามาได้ยังไง “
ถึงได้โง่ภาษาพวกนี้กันนัก ทั้งๆ ที่มันจำเป็นอย่างมากในการศึกษาระดับมหาวิทยาลัย และด้านคอมพิวเตอร์ หนังสือดีๆ concept เจ๋งๆ มากมายอยู่ในหนังสือพวกนี้ ที่แม้แต่คนระดับ ดร. ยังไม่กล้าแปล เพราะกลัวผิดแนว หรือผิด concept ไป เค้าเลยไม่แปลกัน อาจด้วยความรู้ไม่ถึง หรือไม่เข้าใจในสายงานนั้นๆ ซึ่งหนังสือบางเล่มที่แปลมาก็ออกแนว ผิดๆ หรือไม่ถูกตามหนังสือต้นแบบนัก
อยากให้อ่าน text book กันมากขึ้น ไม่ใช่มองคนอ่าน text เป็นพวกเทวดา หรือให้ อ. ท่านแปลให้ ……..
เรียนมหาลัย มันต้องหากันเองแล้ว แปลกันเป็นแล้ว ผมเห็น ม. เราแล้วเสียใจอย่างนึง คือหาคนอ่านพวกนี้ยากมาก พอให้อ่านก็บ่ายหน้าหนี บอกว่า “ไม่เข้าใจ เอาไปแปลก่อนดิเดี่ยวจะอ่าน” คือแทบจะหาคนคุยโดยใช้ ศัพท์เทคนิคได้ยาก คือมีแต่ก็คุยกันคนละภาษา มองอะไรแคบๆ ก็เยอะ แล้วอีกอย่างคือมองว่าตัวเองไร้ความสามารถ ไม่กล้าศึกษาอะไรเพิ่ม แล้วพวกเล่นรับ หรือป้อนให้อย่างเดียวไม่หาเอาเลย ความรู้เราต้องไปวิ่งขนมันไม่ใช่ให้มันมาวิ่งชนเรา
เด็กไทยสมัยนี้ก็แบบนี้หล่ะ ต้องป้อนๆๆๆ ถ้าไม่ป้อน คือไม่สอน พอไม่สอน คือไม่ออกสอบ พอไม่ออกสอบ คือไม่ได้เรียน พอไม่ได้เรียน ตอนทำงานก็บอกรายจ้างว่ามหาลัยไม่ได้สอน แต่พอนายจ้างก็ไล่ออก 555555 เพราะทำงานให้เค้าไม่ได้ ก็หาว่าเขี้ยว ไม่เข้าใจ ….. แต่จริงๆ แล้ว เค้าสอนมาแล้วแหละ แต่ว่ามันต้องอ่านเพิ่มเอง มันต้องศึกษาเองด้วย ….. ไม่ใช่ ป้อนๆๆ เหมือนเด็ก …..
ซึ่งส่วนหนึ่งเพราะไม่กล้าอ่านหนังสือ text นั้นเอง และไม่กล้าที่จะหาความรู้เพิ่มเติม
แล้วอย่างงี้จะพัฒนาได้ไหมเนี่ย โอ้ว !!! ประเทศชาติ ……
เป็นยังไงมั้ง สะใจไหมครับ กับข้อความพวกนี้ รับกันได้ไหมกับความเป็นจริงของเราเอง คนไทยเราเอง ผมไม่รู้ใครจะคิดยังไง แต่ผมคิด และเห็นด้วยกับสิ่งเหล่าน้อย่างแรงกล้า เช่นกัน ……….
เด็กเกลียด text เพราะภาษาอังกฤษ เด็กเชื่อภาษาไทยเพราะอ่านได้ แต่หนังสือคอมพิวเตอร์ส่วนใหญ่ที่มีสอน มันก็มีหลายระดับนะ เหมาะกับคนที่มีพื้นฐานแตกต่างกันออกไป เค้าอ่านเล่มไหน เข้าใจ เค้าก็ว่าดี บางเล่มเขียนง่าย ๆ simple คนที่คิดว่าตัวเองรู้มากกว่าก็ไม่อยากใช้เพราะคิดว่าง่าย เรื่องหนังสือคอมพิวเตอร์ต้องขอบคุณผู้ที่ผลิต จะว่าเค้าเขียนห่วยแตกแค่ไหนก็ตาม อย่างไรสะเค้าก็ให้วิทยาทานกับคนที่ไม่รู้ ส่วนเรื่องการเรียนการสอนคอมพิวเตอร์อ่านไปก็ไม่ใช่ว่าทุกคนจะทำได้น่ะ เพราะมันเกี่ยวกับพื้นฐาน โลจิก บางคนอ่านหนังสือที่สอนกันง่ายๆ แต่สามารถคิดอะไรได้ยากๆก็มี คอมพิวเตอร์เป็นอะไรที่แปลกคนที่มีโลจิก เห็นอะไรมาเยอะๆ จะเข้าใจเร็ว ดัดแปลงได้เร็ว คิดได้เอง แต่บางคนเห็นแทบตายก็คิดไม่ได้ ต้องใช้เวลา มันก็เหมือนความชำนาญที่หมั่นคิด หมั่นทำ หมั่นฝึก ก็ทำได้ เรื่องการเรียนการสอนคงเป็นเรื่องปกติ ไม่น่าจะต่างจากวิชาการด้านอื่นๆ สมองไม่หมั่นลับให้คม มันก็คงไม่ทันคนอื่น ไม่ว่าหนังสือประเภทไหน ก็สร้างคนให้คิดได้ คิดให้เลียนแบบ คิดให้แปลกไป คิดให้ดีกว่า หรือคิดให้ง่ายกว่า หนังสือไอ้ที่ว่ายากๆ มันก็ดีมันลึกดี แต่ไอ้ความยาก บางทีมันก็ไม่จำเป็นต้องทำให้ยากด้วยซ้ำก็อาจจะได้ คิดอัลกอริทึมซับซ้อน เอามาสอนกันแทบเป็นแทบตาย แต่สิ่งที่เรียนก็แค่จำมาจากสมการ แบบนี้มันก็ไม่เกิดประโยชน์อะไรเพราะประยุกต์ใช้ไม่เป็น กระบวนการเรียนการสอนก็เป็นส่วนหนึ่งที่เอามาใช้ในการพัฒนาคน มันคงไม่มีมุมหนึ่งมุมใดที่ทุกคนจะต้องเห็นเหมือนกัน แต่ยอมรับว่าหดหู่ใจกับระบบการศึกษาไทย ไม่รู้จะเรียนไปทำไมให้มันสูงล้นฟ้า จบตรี ก็ต้องต่อโท จบโทก็อยากจะเป็นด็อกกัน แต่ความงอกงามทางปัญญาไม่รู้จะมีเหรอเปล่าน่ะ แต่ก็อย่างว่าเรามัน developing country ผลประโยชน์มีสำหรับคนมีโอกาส โอกาสที่ไม่ได้เท่าเทียมกันทุกคน ชีวิตไม่ fair
เด็กหลงฟิวด์
ช่ายฮะ ผมเห้นแล้วไม่เข้าจายเหมือนกันว่า ทามมาย TEXTBOOK มันน่ากลัวมากหรอ
แหล่งหนังสือในไทยผมก็ขอบอกตรงๆได้ว่า สู้หนังสือนอกไม่ด้ายเลย
ตอนนี้ผมเพิ่งขึ้นม.6เองผมขวนขวายหาหนังสือนอกมาอ่านแต่ส่วนมากหาไม่เจอ
โดยเฉพาะเรื่องที่จะเรียนในอานาคต(ส่วนมากก็วาไรตี้ทั่วๆไปโดยเฉาพะนิยาย)
ทางออกของผมไม่มีจึงมาเลือกหนังสือพิมพ์BANGKOK POST ผมว่า
อย่างน้อยๆก็อ่านหนังสือพิมพ์บางมันก็ยังดีกว่าไม่อ่านเลยเพื่อซึบซับไวยากรณ์
หรือภาษาลงไปบ้างสำหรับเอาไปใช้งานพัฒนาสมองต่อไปจากเล่มอื่นๆ
เทคโนโลยี่ก็เป็นส่วนนึ่งที่ทำให้คนเราสบายขึ้น (และขี้เกียจขึ้นด้วย)
เด็กสมัยนี้ไม่ค่อยชอบคิดเอง ต้องให้ป้อนให้ทุกอย่างเลย
ไม่ไหวเลยจริง ๆ
เด็กไทยสมัยนี้กลายเป็นอะไรแล้วก็ไม่รู้ไม่เคยคิดถึงแต่เรื่องเรียนกลับติดแต่เรื่องแฟนเรื่องแฟชั่นกันเป็นส่วนใหญ่ไม่เคยคิดถึงผลที่ตามมาต่อตัวเองและพอเกิดเรื่องอะไรเกี่ยวกับเค้าเค้าก็จะเป็นคนเสียใจแทนและถึงแม้เราจะพูดยังไงเค้าก็ฟังไม่รู้เรื่องหรอกครับพ่อแม่และคนอื่นๆๆที่เค้ารู้จักเดี๋ยวนี้ไม่อยู่ในสายตาของเค้าแล้วครับ
เรื่องจริงจากชีวิตของเด็กสมองเป็นผู้ใหญ่
ผมอยู่ม.1แล้วตอนนี้ผมก็ยังทำตัวเป็นเด็กอยู่เลยแต่เพื่อนๆๆของผมนิสัยเปลี่ยนกันไปหมดแล้วละครับเดี๋ยวนี้เอาแต่เล่นโทรศัพท์คุยกับแฟนแล้วด้วยและนิสัยอารามณ์ก็เปลี่ยนไปด้วยเดี๋ยวนี้ผมกลายเป็นเด็กหลักลอยไม่มีเพื่อนเล่นเลยครับและคนที่ดีที่สุดที่ผมผ่านร้อนผ่านหนาวมาก็มีอยู่คนเดียวละครับที่ไม่เคยเปลี่ยนแปลงไปเลยก็คือ”แม่”ของผมเองนั่นแหละครับ
ป.ล.อยากให้เพื่อนของผมทุกคนกลับเป็นเหมือนเดิมได้มั้ย…..