คำอธิบายรายวิชา (Course Description)
หลักสูตร Simple Software Engineer ออกแบบมาเพื่อเปลี่ยนมุมมองการเขียนโปรแกรมแบบเดิมๆ ให้ก้าวสู่การเป็น "วิศวกรซอฟต์แวร์" อย่างเต็มตัว เราเชื่อว่าซอฟต์แวร์ที่ดีต้อง "เรียบง่ายแต่ทรงพลัง" ผู้เรียนจะได้เรียนรู้ตั้งแต่กระบวนการคิดเชิงวิศวกรรม (Engineering Mindset), การออกแบบโครงสร้างที่ยืดหยุ่น, ไปจนถึงการบริหารจัดการโปรเจกต์ในโลกจริง
เนื้อหาจะครอบคลุมตั้งแต่พื้นฐานการเขียน Clean Code, การเลือกใช้ Architecture ที่เหมาะสม, การทดสอบซอฟต์แวร์ (Testing), และการทำ CI/CD เพื่อส่งมอบงานอย่างต่อเนื่อง โดยเน้นการตัดทอนความซับซ้อนที่ไม่จำเป็นออกไป เพื่อให้คุณสร้างผลงานที่ดูแลรักษาง่ายและเติบโตได้อย่างยั่งยืน
ผลการเรียนรู้ (Learning Outcomes: L1 - L5)
หลังจากจบหลักสูตรนี้ ผู้เรียนจะมีความสามารถตามระดับทักษะดังนี้:
L1: ความรู้ความจำ (Remembering)
-
สามารถอธิบายความแตกต่างระหว่าง Programmer และ Software Engineer ได้อย่างถูกต้อง
-
ระบุและจำแนกคำศัพท์พื้นฐานในวงการวิศวกรรมซอฟต์แวร์ เช่น SOLID Principles, DRY, และ KISS ได้
L2: ความเข้าใจ (Understanding)
-
อธิบายความสำคัญของการทำ Unit Testing และการเลือกใช้ Software Architecture แบบต่างๆ ได้
-
เข้าใจขั้นตอนการทำงานของ Software Development Life Cycle (SDLC) ในรูปแบบ Agile/Scrum
L3: การประยุกต์ใช้ (Applying)
-
ประยุกต์ใช้หลักการ Clean Code ในการเขียนโปรแกรมเพื่อให้อ่านง่ายและจัดการได้สะดวก
-
ใช้งานเครื่องมือพื้นฐานของวิศวกรซอฟต์แวร์ เช่น Git, Docker และ Automated Tools ต่างๆ ได้จริง
L4: การวิเคราะห์ (Analyzing)
-
วิเคราะห์ปัญหาในโค้ดเดิม (Legacy Code) และระบุจุดที่ควรทำการ Refactoring เพื่อเพิ่มประสิทธิภาพ
-
เปรียบเทียบข้อดี-ข้อเสียของเทคโนโลยีและ Stack ต่างๆ เพื่อเลือกใช้ให้เหมาะสมกับโจทย์ที่ได้รับ
L5: การประเมินและสร้างสรรค์ (Evaluating & Creating)
-
ออกแบบและวางโครงสร้างระบบ (System Design) สำหรับโปรเจกต์ขนาดเล็กถึงกลางได้อย่างเป็นระบบ
-
ประเมินความเสี่ยงและคุณภาพของซอฟต์แวร์ก่อนการ Deploy สู่สภาพแวดล้อมจริงได้อย่างมั่นใจ
ข้อมูลเบื้องต้นสำหรับผู้เรียน
-
ระดับความยาก: เริ่มต้น - กลาง (Beginner to Intermediate)
-
ระยะเวลาเรียน: 12-15 ชั่วโมง
-
พื้นฐานที่ควรมี: มีความเข้าใจการเขียนโปรแกรมเบื้องต้น (ภาษาใดก็ได้) มาบ้างเล็กน้อย
-
Question: จำเป็นต้องมีพื้นฐานการเขียนโปรแกรมภาษาอะไรเป็นพิเศษหรือไม่?
-
Answer: ไม่จำเป็นครับ หลักสูตรนี้เน้นที่แนวคิดเชิงวิศวกรรม (Engineering Mindset) และหลักการออกแบบซอฟต์แวร์ ผู้เรียนสามารถใช้ภาษาที่ตนเองถนัด เช่น Python, JavaScript, PHP หรือ Java ในการทำความเข้าใจเนื้อหาได้เลย