Software Engineer ต้องเก่งอะไร

26 การดู

วิศวกรซอฟต์แวร์ต้องมีทักษะหลากหลาย ทั้งด้านเทคนิคและ soft skills เพื่อสร้างสรรค์และพัฒนาโปรแกรมที่มีประสิทธิภาพ

  • ทักษะจำเป็น: แก้ปัญหา, คิดวิเคราะห์, ปรับตัว
  • ทำงานร่วมกับผู้อื่น: ทำงานเป็นทีม, สื่อสารดี
  • สู่ความสำเร็จ: ทักษะเหล่านี้ช่วยให้รับมือความท้าทาย พัฒนาตนเอง และสร้างผลงานได้

ข้อเสนอแนะ 0 การถูกใจ

Software Engineer ต้องมีทักษะอะไรบ้าง?

โอเค เข้าใจละ Software Engineer ต้องมีสกิลอะไรบ้างใช่มะ? คือเอาจริงๆ มันเยอะมากกกก แต่ถ้าให้พูดแบบที่เจอมากับตัวนะ…

ทักษะการแก้ปัญหา นี่ขาดไม่ได้เลย! ตอนทำโปรเจคจบ (จำได้ว่าปั่นหัวแทบแตกช่วง พฤษภาคม ปี 62) เจอปัญหาโค้ดรันไม่ได้อยู่ 2 วันเต็มๆ สุดท้ายแก้ได้เพราะค่อยๆ ไล่ดูทีละบรรทัดนี่แหละ

ส่วน ทักษะการคิดวิเคราะห์ ก็สำคัญนะ ไม่ใช่แค่แก้ปัญหาเฉพาะหน้า แต่ต้องมองให้ออกว่าทำไมปัญหามันถึงเกิด แล้วจะป้องกันยังไงไม่ให้เกิดซ้ำอีก

เรื่อง ทักษะการปรับตัว นี่ก็สำคัญมากๆ เพราะเทคโนโลยีมันเปลี่ยนเร็วมากกกก เมื่อก่อนเขียนแต่ Java เดี๋ยวนี้ต้องมาเรียนรู้ Python อีกแล้ว เซงเป็ด!

แล้วก็ ทักษะการทำงานเป็นทีม นี่สำคัญสุดๆ เพราะไม่ค่อยมีใครทำงานคนเดียวได้หรอก ส่วนใหญ่ก็ต้องช่วยๆ กันทั้งนั้นแหละ เคยเจอเพื่อนร่วมทีมคนนึงไม่ฟังใครเลย สุดท้ายโปรเจคล่มจ้า!

สุดท้าย ทักษะการสื่อสาร นี่ก็สำคัญนะ ต้องอธิบายให้คนที่ไม่รู้เรื่องเทคนิคเข้าใจได้ด้วย ไม่ใช่พูดแต่ศัพท์ยากๆ แล้วไม่มีใครรู้เรื่อง

สรุปคือ… มันต้องมีหมดอะ! แต่ไม่ต้องเก่งทุกอย่างก็ได้ แค่รู้ว่าตัวเองถนัดอะไร แล้วพัฒนาตัวเองไปเรื่อยๆ ก็พอ

อ้อ! แล้วก็อย่าไปยึดติดกับแค่ที่เค้าบอกในเว็บ True Digital Academy มากนักนะ เพราะมันมีอะไรมากกว่านั้นเยอะ! ลองไปหาประสบการณ์จริงดู แล้วจะรู้เองว่ามันต้องมีอะไรอีกบ้าง

Software Engineer มีตําแหน่งอะไรบ้าง

เอ่อ วิศวกรซอฟแวร์เนี่ยนะ มันทำได้หลายอย่างนะแก หลังเรียนจบมาอ่ะ คือแบบมันเยอะมาก

  • วิศวกรซอฟต์แวร์ ตรงตัวเลย คือเขียนโปรแกรม ออกแบบระบบ ไรงี้
  • นักพัฒนาซอฟแวร์ อันนี้ก็เหมือนกัน แต่จะเจาะจงไปอีก เช่น Front-end (ทำส่วนหน้าบ้านที่เราเห็นๆ), Back-end (ทำส่วนหลังบ้านจัดการข้อมูล), Full stack (ทำหมดเลย), DevOps (ดูแลพวกระบบ infrastructure)
  • นักวิเคราะห์ระบบ อันนี้จะดูว่าระบบมันทำงานยังไง มีปัญหาตรงไหน แล้วก็หาทางแก้
  • วิศวกรข้อมูล เกี่ยวกับพวก big data จัดการข้อมูลเยอะๆ ไรงี้
  • นักวิเคราะห์ข้อมูล เอาข้อมูลมาวิเคราะห์ หา insight
  • นักทดสอบซอฟแวร์/QA Engineer คอยทดสอบว่าโปรแกรมมันมี bug ไหม ทำงานถูกต้องป่าว

แล้วก็มีตำแหน่งอื่นอีกเยอะแยะ แต่เอาแค่นี้ก่อนละกัน ขี้เกียจพิมพ์แล้ว555

เพิ่มเติมนะ:

  • เงินเดือน ก็แล้วแต่บริษัท ประสบการณ์ ความสามารถอ่ะ แต่โดยรวมคือดีนะวิศวะเนี่ย
  • ตลาดงาน ตอนนี้คือต้องการคนเยอะมาก หาคนเก่งๆ ยาก
  • skill ที่ต้องมี ก็พวกภาษาโปรแกรมมิ่ง (Java, Python, C++ อะไรก็ว่าไป), Data Structure, Algorithm, Database, Cloud, etc. คือเยอะะะะ
  • เรียนต่อ ก็มีหลายสาขาให้เลือกนะ เช่น Computer Science, Software Engineering, Data Science, AI อะไรพวกนี้
  • งาน freelance ก็มีเยอะนะ ถ้าเก่งจริง รับงานเองได้เลย

โปรแกรมเมอร์กับ Developer ต่างกันยังไง?

โปรแกรมเมอร์ กะ Developer หรอ… อืมมม ม่านหมอกจางๆ แสงแรกของวันลอดผ่านต้นไม้ใหญ่

  • Developer: นักสร้าง นักฝัน นักรังสรรค์ โลกใหม่ๆ โค้ดที่ไม่เคยมี… ต้องคิด ต้องแก้ ต้องทำให้เป็นจริง
  • Programmer: ทหารกล้า ผู้ซื่อสัตย์ ทำตามคำสั่ง แม่นยำ รวดเร็ว โค้ดที่สั่งมา… ต้องทำให้ดีที่สุด

Developer เหมือนสถาปนิก ออกแบบบ้านทั้งหลัง Programmer เหมือนช่างก่อสร้าง สร้างตามแบบที่สถาปนิกวางไว้… เข้าใจยัง?

แต่บางที… ช่างก่อสร้างก็เสนอไอเดียให้สถาปนิกได้นะ ชีวิตมันก็ไม่ได้ตรงไปตรงมาขนาดนั้นหรอก

สายลมพัดเบาๆ ใบไม้ร่วง… ทุกอย่างเปลี่ยนแปลงเสมอ ตำแหน่งงานก็เหมือนกัน

เพิ่มเติม: Developer ต้องเข้าใจภาพรวมของโปรเจกต์มากกว่า Programmer เพราะต้องตัดสินใจในเรื่องที่ Programmer ไม่จำเป็นต้องรู้

นักพัฒนาซอฟต์แวร์ต้องมีทักษะอะไรบ้าง?

เอ่อ… นักพัฒนาซอฟต์แวร์ต้องมีสกิลอะไรบ้างนะ? อืม… เยอะแยะเลยอ่ะ!

  • ภาษาโปรแกรมมิ่ง! ต้องแม่นซักภาษานึงเลย Python, Java, JavaScript อะไรก็ได้ที่ถนัด! (แต่ตอนนี้ JavaScript มาแรงนะ)

  • Object-Oriented Programming (OOP) อ่ะ เข้าใจคอนเซ็ปต์นะ ไม่ใช่แค่เขียนตามๆ เค้าไป ที่บ้านเลี้ยงหมา ชื่อ “โอเลี้ยง” เกี่ยวไหมเนี่ย?

  • โครงสร้างโค้ดสำคัญมาก! อ่านง่าย เข้าใจง่าย ไม่ใช่สปาเก็ตตี้โค้ด งงตายเลย!

  • Data Structures & Algorithms! ต้องรู้ดิ จะได้เลือกใช้ให้เหมาะกับงาน (เคยติด bubble sort ตอนสอบ เก็บกด!)

  • Git!!! สำคัญสุดๆ Version control คือชีวิต! (Commit message ต้องดีนะ ไม่ใช่ “แก้บั๊ก”)

  • Test! Unit tests, Integration tests… ต้องเขียนเทส! (ขี้เกียจเขียน แต่รู้ว่าสำคัญ T_T)

  • Database! SQL, NoSQL… ต้องรู้บ้างแหละ (แต่ไม่ชอบเขียน SQL เลย)

  • Cloud! AWS, Azure, GCP… ยุคนี้ต้อง Cloud แล้ว (เคย deploy ผิด region เสียเงินฟรี เซ็ง!)

  • Problem-solving! แก้ปัญหาเก่งคือจบ! (บางทีก็แก้ไม่ได้ ต้องไปถาม Stack Overflow แหะๆ)

  • Communication! สื่อสารกับทีมให้รู้เรื่อง (บางทีก็ไม่เข้าใจกันซักที!)

ข้อมูลเพิ่มเติม:

  • ภาษาโปรแกรมมิ่งยอดนิยมปี 2024: Python, JavaScript, Java, Go, C# (เรียงตามความนิยมแบบที่คิดเองนะ)
  • OOP: Encapsulation, Inheritance, Polymorphism… อย่าลืมนะ!
  • โครงสร้างข้อมูล: Arrays, Linked Lists, Trees, Graphs…
  • อัลกอริทึม: Sorting, Searching, Graph traversal…
  • Git: Branching, Merging, Pull requests…
  • Cloud: Docker, Kubernetes…
  • Database: Relational databases (MySQL, PostgreSQL), NoSQL databases (MongoDB, Cassandra)

(เยอะไปมั้ยเนี่ย? ช่างมันเหอะ!)

#การเขียนโปรแกรม #การแก้ปัญหา #ทักษะการทำงาน