จะเรียนเกี่ยวกับคอมพิวเตอร์

ผมขอแยกออกเป็น 3 ด้าน ด้วยกัน
1. Software Production, Algorithm & Theory ซึ่งคือด้าน Computer Engineering, Computer Science, Information Science เป็นการศึกษา เรื่องของ

  • correctness โปรแกรมที่คุณเขียนจะต้องถูกต้องทุกกรณี ไม่มีความผิดพลาดเกิดขึ้น โดยต้อง ทำ math proof ได้ ว่าทำไมถึงถูกต้อง
  • performance โปรแกรมที่เขียนจะต้องมีประสิทธิภาพใสการทำงานสูง ทำงานเร็ว โปรแกรมเปรียบเทียบบางโปรแกรมอาจจะใช้ O(n2), O(n3) แต่คนที่มีความรู้เรื่อง algorithms เป็นอย่างดี อาจจะสามารถเขียนให้โปรแกรมทำงานใน O(n logn) หรือ O(n) ได้
  • efficency โปรแกรมที่เขียนจะต้องทำงานได้ดีที่สุดโดยใช้หน่วยความจำน้อยที่สุด
  • OS เวลาเขียนโปรแกรมใหญ่ ๆ ที่ใช้ thread มากมาย ถ้าเขียนแล้วเกิด deadlock ขึ้นคุณจะแก้ปัญหายังไง แก้ปัญหาเรื่อง priority อีก ว่า thread ไหนจะได้ทำงานก่อน ถ้าคุณไม่เข้าใจเรื่องนี้ ก็อาจจะเขียน thread มั่ว ๆ ซึ่งอาจทำให้โปรแกรมทำงานช้า, เกิด deadlock ได้
  • data communication and network ในระบบ LAN คอมพิวเตอร์มันคุยกันได้ยังไงครับ ในเมื่อ IP address เป็นสิ่งที่สมมติขึ้นมา ในการที่เราจะวางระบบเครือข่าย เช่น ใน SW ขนาดใหญ่ เวลา implement อาจจะต้องดูเรื่อง network ด้วย ถ้าคุณไม่เข้าใจเรื่อง router, gateway, dns ต่าง ๆ คุณจะวางระบบไม่ได้
  • AI ปัญญาประดิษฐ์ ถ้าคุณจะไปเป็นนักพัฒนาเกมส์ แล้วคุณไม่รู้จักเรื่อง AI คุณก็จะทำไม่ได้อีก
  • IR ก็เหมือนกัน ถ้าคุณไปเขียนระบบที่ต้องมี Full Text Search นั้นเอง
  • etc …. อื่นๆ อีกนิดหน่อย

ซึ่งศึกษาในเชิงลึกในส่วนของ S/W รวมถึงการจัดการระบบงานต่างๆ และในแนวกว้างในส่วนของ H/W

2. Hardware Design หรือพวกที่เรียนด้าน Electronic และ Physic, Physic (Micro) Controller เป็นการทำงานร่วมกับพวกที่อยู่กับข้อที่ 1 ในการทำ คิดค้นหาอุปกรณ์ใหม่ๆ เพื่อให้ พวกข้อที่ 1 นำไปแก้ปัญหา และตอบ Requestment ของผู้ใช้ต่างๆ ให้ออกมาใช้งานได้ตามที่ลูกค้า หรือผู้ใช้ต้องการ โดยศึกษาในเชิงลึกในด้าน H/W และแนวกว้างในส่วนของ S/W

3. Technical หรือ Consult ต่างๆ เป็นผู้ให้คำปรึกษาต่างๆ แบ่งได้ 3 ระดับคือ

  • Administrator คือผู้ดูแลระบบต่างๆ บางครั้งอาจใช้คำว่า System Director, System Administrator หรือ System Management ติดตั้ง และดูแลในด้านจัดการระบบทรัพยากรระบบงานขององค์กรต่างๆ ดูแล Server หรือเครื่องแม่ข่ายให้อยู่ดี มีสุข
  • Technical Support เป็นคนที่คอยดูแลระบบงานต่างๆ ไม่ว่าเครื่องเสีย เครื่องมีปัญหา ต่างๆ ที่เป็นเครื่องลูกค่ายต่างๆ จะลงไปแก้ไขปัญหา
  • Consult เป็นคนดูแลในด้านการจัดการ ให้คำปรึกษา และแก้ปัญหาในด้านสินค้า นั้นๆ

โดยในด้านที่ 1 และ 2 ต้องมีพื้นฐานทางความคิดมาจากการจัดการความคิดแบบเป็นระบบมากๆ และการเรียนจะเน้นไปในทางการทำงานร่วมกัน เรียนในด้านทฤษฎี และทำการปฎิบัติไปพร้อมๆ กัน ส่วนในด้านที่ 3 นั้นเป็นงานเชิงช่างเทคนิคมากกว่าครับ

ส่วนใหญ่ด้านที่ 1 และ 2 นั้นคนที่จบ ม.ปลายจะสามารถเข้าไปศึกษาได้ง่ายกว่า แต่ก็มีสายอาชีพมาศึกษาเหมือนกันแต่ต้องเก่งจริงๆ
ส่วนด้านที่ 3 นั้น ส่วนใหญ่จะเป็นคนที่ศึกษามาจากด้านสายอาชีพครับ

แต่ไม่ขอฝันธงว่าด้านไหนดี เพราะว่าทุกด้านต้องทำงานร่วมกันอยู่แล้วครับ

จากกระทู้ยอดนิยม “Com Sci & Com Eng แตกต่างกันอย่างไร”

สาขาวิทยาการคอมพิวเตอร์
—>เน้นการศึกษาวิชาการที่เป็นแก่นแท้ของวิทยาการคอมพิวเตอร์ ที่จะนำไปใช้ทางใดก็ได้ เช่น สถาปัตยกรรมด้านฮาร์ดแวร์และซอฟต์แวร์ algorithm (กรรมวิธีในการแก้ปัญหา) ภาษาคอมพิวเตอร์ (คิดค้นภาษาใหม่ หรือปรับปรุงภาษาเก่าให้ดีขึ้น) การสร้างตัวแปลภาษาคอมพิวเตอร์ (Compiler, Interpreter) เทคนิคในการเชื่อมต่อระหว่างฮาร์ดแวร์ และซอฟต์แวร์ เทคนิคในการติดต่อกับมนุษย์หรือผู้ใช้ทั่วไป เทคนิคในการเขียนโปรแกรม เทคนิคในการสร้างระบบปฏิบัติการ (Operating system) เป็นต้น สิ่งเหล่านี้เป็นเครื่องมือที่สำคัญที่สุดที่จะทำให้สาขาอื่นสามารถนำไปใช้พัฒนางานต่างๆ ได้ตามวิธีการหรือศาสตร์และศิลป์ที่เป็นของตนเอง

สิ่งที่คุณเห็นและใช้อยู่ในคอมพิวเตอร์ทุกวันนี้ เช่น ระบบปฏิบัติการ Windows, ภาษา C++, ภาษา Java, Visual BASIC, Pentium 4 CPU, การใช้เมาส์ชี้วัตถุบนจอเพื่อสั่งคอมพิวเตอร์ เทคนิคในการเขียนและพัฒนาโปรแกรมเชิงวัตถุ หรือ Object Oriented (OO) เหล่านี้เป็นผลพวงของการพัฒนาวิชาการทางด้านวิทยาการคอมพิวเตอร์ทั้งสิ้น

วิศวกรรมคอมพิวเตอร์
—>เป็นสาขา ที่แตกตัวมาจาก วิศวกรรมไฟฟ้า วิชาสาขานี้จะใช้หลักการทาง Logic เป็น หลักในการปูพื้นฐานการสร้าง Logic ที่ได้มา นอกจากการเรียนรู้เรื่องกฏทาง ไฟฟ้า คณิตศาสตร์ และ Logic พื้นฐานเริ่มตั้งแต่ AND NAND OR XOR เป็น หลัก เพื่อ สร้างกฏแบบแผนใหม่ที่จะนำไปสู่ ผลทาง Logic อีกเช่นกันในการสร้าง ถามว่า เรียนแล้วเป็นไง พื้นก็ จะ เสริมเรื่องวิฃาพื้นฐานคณิตศาสตร์ ฟิสิกส์เป็นหลัก แต่ไม่เน้นมากนัก เพราะว่า จะเอาเฉพาะส่วนที่สำคัญ ในการจุดเกิด ประกายการเหนี่ยวนำให้ เกิดการ เรียนรู้ศึกษาแผนใหม่ของระบบคอมพิวเตอร์ ส่วนนี้จะเรียนรู้เกี่ยว Hardware เป็นหลัก มีการเขียนโปรแกรมมั้ย มี แต่ จะเน้นแนวคิดที่ใช้งานได้จริงเป็นหลัก ส่วน Human Interface ไม่ลงลึกเน้นเหมือน Computer Science ที่จะเน้นภาษาที่ใช้ในการสร้างการสื่อสารกะมนุษย์ซึ่งเป็นผู้ใช้

พูดง่ายๆ อุปกรณ์ใหม่ๆ เทคโนโลยีใหม่เกิด จาก ฟิสิกส์ กลายมาเป็น ไฟฟ้า กลายต่อมาเป็น อิเส็กค์ทรอนิคส์ และ นำส่วนต่างๆมาประกอบกันตาม Logic พื้นฐานสร้าง Hardware หรือ เครื่องมือใหม่ที่จับต้องได้ เป็นส่วนใหญ่ แต่ Computer Science จะสร้าง ในส่วนของ Software / Data Structure / System Information เพื่อ กำหนด รูปแบบการรวมการประกอบการใช้เทคโนโลยีต่างๆ ทั้งที่จับต้องได้ และ จับต้องไม่ได้(Software) ที่นำมาสรุปให้เกิดงานที่ดีขึ้น

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

พื้นฐานของ ComEN ที่ ComSci ก็มีเล็กน้อย
พื้ฯฐานของ ComSci ที่ ComEn ก็มีเล็กน้อย

คุณสามารถเอาพื้นฐานเหล่านั้นมาพัฒนาได้
ปล.ถ้าคุณมีการพัฒนาตัวเองอยู่เสมอ

ต่างประเทศ เห็นหลายๆที่ เขารวม ComSci กับ ComEN เป็นสาขาเดียวกันหลายที่แล้ว แต่มี แขนงที่ให้ศึกษาหลายแขนง

Computer Science and Engineering

ชื่อปริญญา ก็คือ

ป.ตรี : Bachelor of Technology ชื่อย่อ B.Tech
ป.โท : Master of Technology ชื่อย่อ M.Tech
ป.เอก : Ph.D

เช่น

Bachelor of Technology in Computer Science and Engineering
Bachelor of Technology in Computer Systems
Bachelor of Technology in Technology Management
Bachelor of Technology in Information Technology

แต่ถ้าในไทยจะเป็น Bachelor of Science หรือ Engineering ขึ้นอยู่กับแต่ละมามหาวิทยาลัย

เมืองไทยปัจจุบัน หลักสูตรของ com sci มัน เน้นไปด้าน com eng ครับ

สำหรับบทความข้างล่างจะพูดถึงด้านของ เป้าหมาย ของศาสตร์ com sci และ com eng มากกว่านะคับ

=================================================

Computer Science เป็น Science จริงหรือ ?

คำตอบคือ ไม่เป็น คำว่า Science นั้น มีความหมายว่า การศึกษาธรรมชาติ โดยการสังเกตุ หรือ การใช้เหตุผล จากตรงนี้ เราจะเห็นได้ว่า Computer science นั้น จริง ๆ แล้ว ไม่ใช่ Science เพราะ Computer ไม่ใช่ ธรรมชาติ ไม่ใช่สิ่งที่พระเจ้าสร้างขึ้นมา ดังนั้น ด้วยเหตุผลที่ Computer Science ยังเป็นการศึกษาเกี่ยวกับ Computer ซึ่งก็คล้าย ๆ ว่า จะเป็น Science ได้ จึงมีการตั้งให้ Computer Science อยู่ในกลุ่มของ Applied Science สิ่งที่เราต้องแยกให้ออกคือ ทุกอย่างที่เกิดขึ้นใน Computer Science ไม่ใช่สิ่งที่เราค้นพบ แต่เป็นสิ่งที่เราคิดค้นมันขึ้นมา ซึ่งต่างกับ Science เช่น ทุกอย่างใน Physics เกิดจากการค้นพบธรรมชาติ และนั้นแหละจึงเป็นเหตุผลที่เราอยู่ใน Applied Science แต่ไม่อยู่ใน Science

Computer Science ต่างกับ Computer Engineering อย่างไร ?

สิ่งที่แยกของ Computer Science ออกจาก Computer Engineering อย่างชัดเจนคือ Computer Science นั้น เป็นศาสตร์ที่เกี่ยวกับ การคิดค้น การก่อตั้ง ทฤษฏี ที่เกี่ยวกับ Computer ส่วน Computer Engineering นั้น เป็นศาสตร์ที่ศึกษา ทฤษฎีเหล่านั้น และนำไปประยุกต์ใช้กับโลกความเป็นจริง งานที่ Computer Science ทำนั้น จะเกี่ยวกับการวิจัยซะมากกว่า เช่น ศึกษาว่า โปรแกรมสามารถทำอะไรได้บ้าง หรือทำอะไรไม่ได้บ้าง, หาวิธีการแก้ไขปัญหาต่าง ๆ บนโลกนี้, โปรแกรมควรจะเก็บข้อมูลในรูปแบบใด เพื่อที่จะทำให้ค้นหาข้อมูลได้เร็วที่สุด และอื่น ๆ ซึ่ง Computer Science จะศึกษาเรื่องเหล่านี้ และพัฒนาทฤษฏีขึ้นมาเรื่อย ๆ เพื่อให้ Computer Engineering นำไปใช้

ทำไมคนที่เรียน Computer Science กับ Computer Engineering ถึงมักจะทำได้ทั้งสองอย่าง ?

เหตุผลแรก คือ ทุกอย่างที่ Computer Science คิดขึ้นมา มีเป้าหมายเพราะต้องการประสิทธิภาพที่ดีที่สุด เช่น ถ้าเราใช้วิธีการตามทฤษฎีนี้แล้ว เราจะได้ประสิทธิภาพสูงสุด ไม่เหมือนกับ Physics ที่ทุกทฤษฏีที่ค้นพบคือความจริงทางธรรมชาติ เช่น บนโลกของทุกอย่างต้องตกลงสู่พื้น เราจะเห็นว่า ทฤษฎีใน Computer Science นั้นเปลี่ยนแปลงไปเสมอ หากมีคนสามารถสร้างทฤษฏีใหม่ที่มีประสิทธิภาพมากกว่าของเก่าได้ และ เนื่องจาก Computer Engineering เป็นผู้ที่ใช้ทฤษฎีเหล่านี้ เป็นผู้ที่เข้าใจปัญหาในโลกจริงนั้นได้ดีกว่า คนที่เรียน Computer Engineering จึงมักจะคิดทฤษฎีของตนเองด้วย ส่วนคนที่เรียนด้าน Computer Science ก็จำเป็นที่จะต้องรู้ทั้งปัญหาในโลกจริง และทฤษฎีต่าง ๆ เกี่ยวกับ Computer Science ด้วย ดังนั้นคนจากทั้งสองศาสตร์จึงมักจะทำงานแทนกันได้ เพียงแต่มีความรู้หนักไปคนละทางเท่านั้นเอง ในอินเตอร์เน็ทมักจะมีคนกล่าวว่า “Computer Science ไม่ศึกษาเกี่ยวกับ Hardware” คำกล่าวนั้นไม่เป็นความจริงแต่อย่างใด Computer Science มีความเกี่ยวข้องกับทุกอย่างเกี่ยวกับ Computer เช่น com-sci นั้นศึกษาเกี่ยวกับโครงสร้างของวงจร Computer โครงสร้างของ CPU สร้าง โครงสร้าง CPU ใหม่ที่มีประสิทธิภาพ ซึ่งเรื่องเหล่านั้นก็เกี่ยวกับ Hardware ไม่ใช่เหรอ ? เหตุผลที่สอง คือ เนื่องจากประเทศไทยเป็นประเทศที่ด้อยพัฒนา เราจะเห็นได้ว่า คนที่จบมาเพื่อเป็นนักวิทยาศาสตร์ มักจะไม่มีงานทำ เพราะในประเทศไทย ไม่มีบริษัท หรือ องค์กรที่ทำวิจัยเกี่ยวกับ Computer ดังนั้น Computer Science ในประเทศไทย จึงมักจะสอนให้นักเรียนมีความรู้ด้าน Computer Engineering เป็นส่วนใหญ่ จึงทำให้กลุ่มคนที่เรียน Computer Science และ กลุ่มคนที่เรียน Computer Engineering ไม่แตกต่างกันมาก จริง ๆ แล้วเป้าหมายสูงสุดของ Computer Science ค่อนข้างชัดเจนนะครับ คือเราเรียน Computer Science เพื่อที่จะเป็น นักวิทยาศาสตร์คอมพิวเตอร์ หรือ Computer Scientist นะครับ ไม่ใช่ Programmer อย่างที่หลาย ๆ คนเข้าใจ

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

รวบรวม และเรียบเรียงจาก

http://www.pantip.com/tech/comsci/topic/CT1952225/CT1952225.html

Computer Science != Programming and Programmer

Found this on Lambda the Ultimate weblog entry, about what George E. Forsythe (founder of Stanford’s Computer Science Department) thought about Computer Science. This is originally written in Stanford technical report, number 26. Quote here:

“I consider computer science to be the art and science of exploiting automatic digital computers, and of creating the technology necessary to understand their use. It deals with such related problems as the design of better machines using known components, the design and implementation of adequate software systems for communication between man and machine, and the design and analysis of methods of representing information by abstract symbols and of processes for manipulating these symbols. Computer science must also concern itself with such theoretical subjects supporting this technology as information theory, the logic of the finitely constructable, numerical mathematical analysis, and the psychology of problem solving. Naturally, these theoretical subjects are shared by computer science with such disciplines as philosophy, mathematics, and psychology.”

พบข้อความนี้จาก Lambda the Ultimate weblog ซึ่ง George E. Forsythe คือผู้ก่อตั้ง ภาควิชา Computer Science ที่มหาวิทยาลัย Stanford ได้กล่าวเกี่ยวกับ Computer Science ไว้ได้อย่างน่าสนใจ ซึ่งนี่คือข้อความที่เขียนไว้ใน Stanford technical report หมายเบข 26 มีข้อความว่า

“ฉันคิดว่า Computer Science เป็น ศิลป์ และ ศาสตร์ ของการทำงานของเครื่องดิจิตัลคอมพิวเตอร์อัตโนมัติ และเป็นการสร้างสรรค์เทคโนโลยี เพื่อทำความเข้าใจในสิ่งที่เราจะใช้มัน มันเป็นการนำปัญหาต่างๆ มาออกแบบเพื่อให้เครื่องทำงานได้ดีกว่าเดิมเพื่อรู้จักส่วนประกอบต่างๆ การออกแบบผลของสำหรับระบบซอฟต์แวร์ที่เพียงพอต่อการสื่อสารระหว่างมนุษย์ กับเครื่องจักร และเป็นการออกแบบ และวิเคราะห์ขั้นตอนของข้อมูลที่เป็นตัวแทนของสิ่งที่อุปมาณขึ้นมา ด้วยสัญลักษณ์ที่ก่อกำหนดขึ้นจากผลของก ารประมวลผลของข้อมูลที่จับต้องได้ทางสัฐลักษณ์ Computer Science น่าจะเหมือนกับการนำหัวของทฤษฎีที่สนับสนุนเทคโนโลยีต่างๆ เหมือนกับทฤษฎีสารสนเทศ, ตรรกะของขอบเขตข้อมูล ,ระบบจำนวนตัวเลขในการวิเคาะห์ทางคณิตศาสตร์ และปรัญญาด้านการแก้ปัญหาต่างๆ โดยตัวของมันเองแล้ว Computer Science คือหัวข้อของทฤษฎีที่ว่าด้วยเรื่องของการเชื่อมโยงกันโดยหลักของปรัญญา, คณิตศาสตร์ และจิตศาสตร์”

จะเห็นได้ว่า concept ของ Computer Science มิได้สร้างมาเพื่อเป็น Programmer แต่ประการใด แต่เป็นการ “ศึกษาขั้นตอนการแก้ปัญหา วิเคราะห์ และออกแบบการแก้ปัญหาโดยใช้หลักของปรัญญา, คณิตศาสตร์ และจิตศาสตร์ ในการแก้ปัญหาต่างๆ”

ผู้แปลเป็นภาษาไทย Ford AntiTrust
ผู้นำเสนอถึงผู้แปล Rawitat Pulam @ Tsukuba University in Japan

REF :http://rawitatpulam.blogspot.com

ปล. ไม่รู้ว่าแปลตรงความหมายมากแค่ไหนนะครับ พอดีว่าฝึกแปล ……. :P

จบคณะวิทยาการคอมพิวเตอร์จะไปทำอะไร

คำถาม : อยากรู้ครับ ว่าจบคณะวิทยาศาสตร์ คอมพิวเตอร์ แล้วไปสมัครงานอะไรได้ครับ จะหาสมัครงานได้จากที่ไหน แล้วก็ ทำไมคนถึงไม่นิยมเรียนคณะวิทยาศาสตร์กันครับ

ถ้าจบไปจะไปต่อยอดหรือทำงานอะไร นั้น ในสาย Science นั้น มีทางเลือกได้มาก เพราะว่า Science คือศาสตร์ที่ว่าด้วยการทำงานที่เป็นระบบ ขั้นตอน ซึ่งคือการจัดการนั้นเอง หรือ Managment ครับ คุณต้องมีคุณลักษณะใน Sci’ method ที่มาก (ขั้นตอนทางวิทยาศาสตร์) จริงๆ คุณต้องได้รับมาก การทำงานเป็นขั้นเป็นตอน ทำงานด้านวิจัยจะไปได้ดีกว่าครับ คนจบวิทย์มา จะได้เปรียบมากๆ เพราะว่าเรียนมาขั้นตอนมันสอนครับ แล้วไปเรียนต่อยอดด้าน SA หรือ NS ก็ได้

ต่อมาครับ การทำงานในระดับ Com Sci นั้นเป็นการนำขั้นตอน ทั้งปรัญญาศาสตร์, จิตศาสตร์ และคณิตศาสตร์ มารวมกันให้เกิดการตอบโจทย์ของคำถามที่ส่งมา

คุณต้องใช้ ปรัญญาศาสตร์และจิตศาสตร์เพื่อทำให้เกิดการทำงานร่วมกัน ระหว่างโปรแกรม รวมถึงระหว่างคน และทีมงานด้วย (วิทย์ต้องทำงานเป็นทีม และทำงานเป็นระบบครับ ซึ่งใช้ใน การเชื่อมโยงให้คุยกันได้ระหว่างระบบ หรือขั้นตอนนั้นๆ) และใช้คณิตศาสตร์ในการทำขั้นตอนในการ ตอบคำถามในแต่ละส่วนทั้งแนว condition หรือinteration ต่างๆ เป็นต้น

ผม intro มานาน ต่อในเรื่องทำงานต่อนะครับ

นั้นหมายความว่าคนที่จบวิทย์มานั้นทำงานในสายจัดการระบบ หรือทำงานในสายคิดค้นก็ได้ เพราะได้พื้นฐานจากความรู้และขั้นตอนทางวิทยาศาสตร์ มาครับ ซึ่ง ส่วนมากที่ได้เรียนกันก็มีในส่วนของ Computation, Algorithm, Data Stucture, Software Engineering (อันนี้สาย CS เรียนนะครับ ชื่อบอกวิศวะ แต่จริงๆ คอร์สมันเป็นของ CS ครับ), Software Analye ฯลฯ จริงๆ มีอีกหลายตัวครับ

ผมมองว่าการทำอาชีพมันจะไล่อันดับไปเรื่อยๆ ครับ จากคน Coding -> Team Leader -> Team Director -> Brand Manament -> Software Leader -> Corp Mangament ครับ จริงๆ มีมากกว่านี้แต่ไล่คร่าวๆ ครับ

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

แล้วทำไมคนไม่ชอบเรียนผมบอกไว้เลยว่า เป็นเฉพาะที่ไทยมากกว่ามั้งครับ

ตอบตรงๆ นะ

“คณะนิยม”

ต่อการทำงานนิดนึงครับ จริงๆ แล้วทำงานได้เยอะนะครับสาบวิทย์

สายบริหาร, สายจัดการระบบ, สายค้นคว้าวิจัย, สาย Coding ครับ เอาแค่นี้ก่อนดีกว่าครับ

จริงๆ CS ไม่ได้จบออกมาแค่เขียนโปรแกรมนะครับ แต่ทำด้านอื่นได้อีก แต่ใช้สิ่งต่างๆ ที่เรียนมา นำมาประยุกต์ใช้ครับผม

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

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

ผมว่าสบายกว่ากันตั้งเยอะครับ แถมได้เจอปัญหาใหม่ๆ ทั้งคน ทั้งงานเยอะมากครับ มีประโยชน์ในอนาคตแน่นอนครับ

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

ปล. คิดในทางที่ดีไว้ครับ ชีวิตจะได้ไม่ทุกข์มากครับ

เราเรียนเพื่ออะไร กันแน่ ……. และทำไม เด็กไทยสมัยนี้ถึงได้แขยง Text Book กันนัก

พอดีว่าได้พูดคุยกับพี่ … (ไม่ขอเอยนาม) และได้เข้าไปอ่านในกระทู้มากมายเกี่ยวกับเรื่องพวกนี้มาเลยเก็บเอามาให้อ่านกันครับ

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 นั้นเอง และไม่กล้าที่จะหาความรู้เพิ่มเติม

แล้วอย่างงี้จะพัฒนาได้ไหมเนี่ย โอ้ว !!! ประเทศชาติ ……

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