Skip to content

Instantly share code, notes, and snippets.

@yothinix
Last active January 10, 2024 04:28
Show Gist options
  • Save yothinix/3ee59938528bd09eae02b569551450b0 to your computer and use it in GitHub Desktop.
Save yothinix/3ee59938528bd09eae02b569551450b0 to your computer and use it in GitHub Desktop.
a-note-for-ite

1. จากที่ไปทำงานมา คิดว่าภาคเราตอนนี้ควรเพิ่มเติมวิชา หรือปรับเปลี่ยนวิชาอะไรยังไง บ้าง อะไรควรเป็นวิชาหลัก วิชาเลือก 2. อะไรที่เป็นวิชาพื้นฐานสำคัญที่ควรเรียน

  • ขอตอบ 1 กับ 2 รวมกันไปเลยนะ มันเรื่องใกล้เคียงกัน ไม่ได้ตามเลยว่าหลักสูตรปัจจุบันเป็นไง แต่ได้ยินแต่เรื่องลบมามาก จะเทียบกับหลักสูตรเราละกัน วิชาที่เรียนกับภาคอื่นจำเป็น ทั้ง Mechanics, Material ฯลฯ อย่างน้อยๆ มันปูพื้นฐานว่าเราจะเรียนสิ่งยากๆ ยังไง วิชาหลักสาขาเราอยากให้มีความหลากหลายเหมือนเดิม แต่อัดให้จบภายในปีสองสองได้จะดีมาก Hardware + Software Development + Network + Information theory ไม่รู้ว่าสาย Hardware กับ Network ต้องเรียนอะไรจะพูดแต่ Software Development ละกัน

    • Programming ถ้าปีหนึ่งเรียนภาษา C ของคณะกับอาจารย์ภาคคอมมาแล้ว (ซึ่งถ้าเป็นไปได้ควรจะเปลี่ยนเป็น Python ได้ละเพราะใช้ในชีวิตจริงได้หลากหลายกว่า) ควรจะต่อด้วย Data Structure & Algorithm อันนี้เป็นความรู้พื้นฐานที่ต้องมีถ้า implement list, stack ฯลฯ ด้วยภาษาที่ตัวเองถนัดยังไม่ได้ก็สัมภาษณ์งานยากละ

    • วิชาเลือกอยากให้เป็นวิชา Programming Paradigm ไปเลยอัดไปเลยทั้ง Imperative, OO, functional, metaprogramming etc. ไม่อยากระบุว่าต้องเป็น Paradigm ไหนเพราะเดี๋ยวนี้ก็ใช้มันผสมๆ กันนั้นแหละถ้าภาษามันทำได้ ไม่ต้องลงลึก แต่เข้าใจ Concept สำคัญ เวลาไปอ่าน lib ใช้ภาษา หรือ framework มันจะได้เข้าใจเร็วมากและที่ต้องเป็นวิชาเลือกเพราะเรื่องนี้ถ้าไม่อินจะเรียนยากมากๆ

    • วิชาเลือกอีกอย่างที่อยากให้มีคือ Software Architect ไม่รู้ว่ามันมีชื่อวิชาหรือมันเรียนในวิชาอื่นมั้ยแต่เด็กควรจะรู้เหตุผลว่าทำไมเราเขียน app ต้องวาง architech แบบนี้ ต้องคุยกันผ่าน REST + JSON ทำไมไม่ใช้ RPC หรือ. format อื่นๆ หรือมีอะไรแบบอื่นที่ทำแบบนี้แล้วมีข้อดีกว่ามั้ย หรือจะไป microservices หรือ serverless ไปเลย

    • วิชาที่เปลี่ยนไปตามเทคโนโลยีใหม่ๆ ได้ เราชอบวิชา select topic ของคณะไอทีมากที่ปรับไปเรื่อยๆ แล้วเอาคนข้างนอกมาสอน มันทำให้เรารู้สึกว่ามีประโยชน์จริงๆ ที่ได้เรียน ไม่ต้องกลัวที่จะเอาคนข้างนอกมาสอน อยากให้ช่วยบอกได้ อย่างทาง web/application development งี้ฝั่ง Frontend สมัยเราเรียน jQuery ยังมีคนใช้เต็มพอทำงานใหม่ๆ ก็เริ่มเป็นยุค Angular ทำงานไปสามปีอ่าวเห้ย React/Redux Vue ทาง ops เองก่อนหน้านี้ยังเป็น bare OS แล้วมาเป็น VM provision ตอนนี้เป็น Containerize เหี้ยไรเต็มไปหมดวงการนี้มันบ้า อยากอยู่รอดต้องวิ่งตามให้ทัน

    • Software Engineering อันนี้ก้ำกึ่งระหว่างหลักกับเลือก ต้องรู้ process ทั้งหมดว่าทำไปทำไม ตั้งแต่ planning ยัน deploy รู้ว่า process มีกี่แบบ iterative, waterfall ฯลฯ แต่ละแบบมันดียังไง มันมีนะเว้ย ที่ๆ ทำ Waterfall แล้วเวิร์คเพราะมันเหมาะกับงานเค้าไง

    • Agile Methodology & Practice อันนี้วิชาเลือกแน่นอนไปสอนเลย Extreme Programming, Scrum, Kanban, Lean มันมีทั้งเรื่องทาง management กับ Technical Practice ปนๆ กันไป แต่ใน Software Development ยุคใหม่ เรื่องพวกนี้ไม่ใหม่แล้ว TDD, CI/CD, User Story, version control, automate acceptance test พวกนี้จะเป็นเหมือน advanced software engineering แต่ลงเฉพาะทางมาก แล้ว practice พวกนี้จะมีประโยชน์ตอนทำโปรเจ็คมากจริง

    • Unix CLI, server ต่างๆ ควรจะรู้จักไว้บ้าง ที่ไปลงกันอยู่คณะไอทีที่พี่เดียร์สอนตอนเราอยู่ปีสี่อันนั้นก็น่าจะดีนะ มันทำให้เราเขียนโค้ดคำนึงถึง resource อย่างนี้มากขึ้นแล้วก็แก้เองได้ถ้ามีปัญหา ตอนนี้โลกไปทาง containerize กับ cloud แล้วเพราะมัน proof มาแล้วว่าประหยัดตังค์กว่า ทำให้ชีวิตง่ายกว่า แล้วเด๋วนี้ infra / network เขียนโค้ดหมดแล้วครับ shell script ต้องเขียนเป็น Ansible / Fabric พวก deployment tools ต้องใช้เป็นจะมารอ infra มาทำให้ตลอดไม่ได้ อันนั้นเค้ามีงานต้อง monitor / optimize performance อีกอะไรช่วยแบ่งเบาได้ก็ช่วยกัน

    • Database ควรจะยังเป็นวิชาพื้นฐานอยู่ การเข้าใจว่า SQL เกิดขึ้นได้ไงจากไอที่มันเขียนเป็นแบบ math ที่ต้องเรียนก่อนกลางภาคแล้วเราเขียนไม่ได้อันนั้นก็จำเป็น มันทำให้เราเข้าใจเหตุผลว่าควรใช้อะไร เพราะอะไร พอมาทำงานแล้ว คำตอบนึงมันมีได้หลายทาง ยกตัวอย่างเช่น จะหาของที่ใช้ข้อมูลจากสองตารางงี้ มันก็ทำได้ทั้ง join กับ sub query แต่ถามว่าอันไหนดีกว่ากันยังไง math นี่แหละจะเป็นตัวอธิบาย

3. ภาคเราเป็นอย่างไรเวลาไปทำงานเมื่อเปรียบเทียบกับคนจบสาขาอื่นๆ ที่มาทำงานด้วยกัน

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

ปล.หลักสูตรเราดีนะ แต่ที่ได้ยินมาขออย่างเดียว อย่าเอาคนท่องหนังสืออ่านมาสอน เอาคนไม่มีความรับผิดชอบมาสอน หาคนที่อยากสอนแล้วอินกับเรื่องนั้นๆ มาสอนจริงๆ จะดีกว่าเด็กสมัยนี้มันฉลาด มันเสียศรัทธาเร็ว และที่สำคัญมันด่าดัง เราไม่ชอบหรอกที่ได้ยินเรื่องแย่ๆ แบบนี้มีไรได้ก็ช่วยกันยังไงเราก็จบที่นี่อ่ะ ชื่อมันติดตัวไปอีกนาน :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment