สำหรับ Programmer นอกจากทักษะการเขียนโค้ด หรือ ภาษาเขียนโปรแกรมจะเป็นทักษะสำคัญที่โปรแกรมเมอร์ต้องมีแน่นอนอยู่แล้ว ยังมีทักษะอื่น ๆ ที่สำคัญในเชิงการทำงานเป็นทีมในระดับองค์กรทั้ง Technical skill และ Soft skill ต่าง ๆ ที่จำเป็นไม่แพ้กัน ช่วยให้โปรแกรมเมอร์ทำงานได้อย่างมีประสิทธิภาพ และมีความเป็นมืออาชีพมากยิ่งขึ้น จะมีทักษะอะไรบ้าง ไปดูกันได้เลยครับ
Technical skills ของ Programmer
1. API (Application Programming Interface)
คือตัวกลางการรับส่งข้อมูลระหว่าง Frontend และ Backend เช่นการเรียกรับส่งข้อมูลระหว่าง website หรือ application กับ server โดยรูปแบบ API ที่นิยมในปัจจุบันได้แก่ RESTFul API และ GraphQL เป็นต้น
2. Clean code
แนวคิดการเขียนโค้ดที่นอกจากจะต้องสามารถทำงานได้ตามที่คาดหวังแล้ว โค้ดที่เขียนจะต้องเขียนออกมาเป็นรูปแบบโครงสร้างไม่ซ้ำซ้อน ผู้อื่นสามารถอ่านโค้ดที่เราเขียนได้เข้าใจง่าย สามารถทำการทดสอบ, แก้ไข หรือพัฒนาต่อยอดได้ง่าย
3. Automate Testing
การทดสอบในรูปแบบอัตโนมัติโดยการเขียนโค้ดที่มีหน้าที่ในการทำ Testing โค้ดชุดหลักที่ต้องการทดสอบผลลัพธ์ว่าเป็นไปตามจุดประสงค์หรือไม่ การเขียนโค้ดสำหรับทำ Automate Testing จะช่วยให้ประหยัดเวลาและมีประสิทธิภาพมากกว่า Manual Testing โดยเฉพาะระบบขนาดใหญ่ที่มีฟังก์ชันจำนวนมาก ตัวอย่างรูปแบบการทำ Automate Testing ได้แก่ Unit test, Integration test และ End to end test เป็นต้น
4. Version control
อีกหนึ่งสิ่งที่จะช่วยคุณพัฒนาซอฟต์แวร์ร่วมกับผู้อื่นได้ดียิ่งขึ้น เครื่องมือที่จะช่วยบริหารจัดการกระบวนการพัฒนาซอฟต์แวร์ของทีมที่ทำงานร่วมกันหลาย ๆ คน โดยเครื่องมือ Version control ที่นิยมในปัจจุบันได้แก่ Git และ GitHub
5. Code reviews
เมื่อมีการเขียนโค้ด หรือ แก้ไข เพื่อที่จะใช้ในระบบ ก่อนที่จะมีการอัปโหลดโปรเจคจะต้องให้โปรแกรมเมอร์ในทีมที่ไม่ใช่ผู้ที่เขียนโค้ดนั้น ๆ ได้ทำการตรวจสอบความถูกต้องของโค้ดชุดนั้นก่อนที่จะนำขึ้นระบบ เพื่อตรวจสอบมาตราฐานและลดความผิดพลาดที่เกิดขึ้นกับระบบได้ การทำ Code review นั้นเป็นส่วนรับผิดชอบร่วมกันของทีมที่จะต้องช่วยกัน Discussion ตรวจสอบโค้ดของกันและกัน เนื่องจากบางครั้งแต่ละคนสามารถมองเห็นจุดผิดพลาดของโค้ดที่ผู้อื่นอาจจะมองข้ามได้
6. Software delivery
การทำ Software delivery หรือ การ Deploy โค้ดขึ้นระบบ ในปัจจุบันในองค์กรที่มีระบบขนาดใหญ่นิยมทำแบบ Automate Deploy โดยมีกระบวนการที่นิยมทำในองค์กรคือ CI/CD กระบวนการ CI/CD จะช่วยให้โปรแกรมเมอร์สามารถลดระยะเวลาการ Deploy ให้รวดเร็วขึ้นมีความถูกต้องมากขึ้นเมื่อทำการรวมโค้ดที่เขียนเข้ากับโค้ดหลัก
Soft skills ของ Programmer
1. Business mindset
สำหรับโปรแกรมเมอร์สามารถปรับมุมมองโดยให้มองทักษะของตัวเองเป็นเสมือน ธุรกิจ หรือ การบริการรูปแบบหนึ่งที่องค์กรซื้อต่อจากคุณ ทำให้ต้องมีการพัฒนาการบริการหรือทักษะให้ดีขึ้นอยู่เสมอ เหมือนธุรกิจที่จะต้องปรับปรุงสินค้าให้มีคุณภาพตอบโจทย์ลูกค้าอยู่เสมอเช่นกัน
2. Product mindset
ในการทำงานพัฒนาซอฟต์แวร์นอกจากจะต้องคำนึงถึง Technical ต่าง ๆ ในการพัฒนาแล้ว อีกสิ่งหนึ่งที่สำคัญเช่นเดียวกันคือการคำนึงถึงตัว Product ที่ต้องการพัฒนาออกมาให้ตอบโจทย์ผู้ใช้งานหรือลูกค้าด้วย
3. People skill
อีกหนึ่งสิ่งสำคัญที่จะช่วยให้คุณจะประสบความสำเร็จได้ คือการสร้างมนุษย์สัมพันธ์ที่ดีกับผู้ร่วมงาน เห็นถึงความสำคัญของผู้ร่วมงานทุกคน ไม่ว่าจะเป็นเพื่อนร่วมงาน หัวหน้า รวมไปถึงน้องภายในทีม ให้การทำงานราบรื่นและมีการส่งเสริมศักยภาพการทำงานในทีมกันและกัน สร้างผลงานได้ดีขึ้น
4. Communication skill
ในการทำงานในองค์กร ที่ต้องทำงานร่วมกันกับหลาย ๆ ทีม ปัญหาอันดับต้น ๆ ของการทำงานคือการสื่อสารที่เข้าใจไม่ตรงกัน โดยเฉพาะผู้ร่วมงานที่อาจจะไม่ได้เข้าใจในส่วนงานที่คุณทำอยู่ ดังนั้นถ้าคุณพัฒนา Communication skill สามารถสื่อสารอธิบายเรื่อง Technical ยาก ๆ ให้เข้าใจได้ง่ายขึ้น ช่วยให้ผู้ร่วมงานเห็นภาพตรงกันมากขึ้น
5. Making Tough Decision
บ่อยครั้งที่โปรแกรมเมอร์ต้องตัดสินใจแก้ปัญหาในรูปแบบต่าง ๆ ทักษะการตัดสินใจปัญหายาก ๆ จึงเป็นสิ่งสำคัญมากสำหรับการทำงานเมื่อจะก้าวขึ้นไปเป็น Senior หรือ Tech Lead ที่จะต้องวิเคราะห์ปัญหาตรงหน้า และคิดตัดสินใจว่าจะแก้ปัญหาอย่างไรในสถาณการณ์ต่าง ๆ
6. Career path
ถ้าคุณอยากที่จะเติบโตและประสบความสำเร็จในสายงาน Programmer คุณควรตั้งเป้าหมายว่า ใน 5-10 ปี คุณต้องการเติบโตในสายงานแบบไหน? และแตกหัวข้อสิ่งที่ควรจะต้องทำว่ามีอะไรบ้าง? เพื่อไปให้ถึงเป้าหมายของคุณได้ ช่วยให้คุณเห็นเส้นทางที่คุณสามารถก้าวไปในสายงานได้อย่างชัดเจนขึ้น
และนี่คือ 12 ทักษะ Technical skills & Soft skills สำคัญที่คุณสามารถเรียนรู้ได้ในคอร์สออนไลน์ How to Become a Better Programmer สมัครเรียนเลย
มาเรียนรู้ Technical skills & Soft skills ที่สำคัญสำหรับการเติบโตในสายงาน Programmer และองค์ประกอบของการพัฒนาซอฟต์แวร์ระบบขนาดใหญ่ในระดับองค์กร รู้จักกับเครื่องมือ และ Keyword ต่าง ๆ ที่ใช้ทำงานร่วมกัน
สอนโดย คุณบอย วรายุทธ เลิศกัลยาณวัตร – อดีต Software Development Engineer ที่ Amazon สมัครเลย 👉 คอร์สออนไลน์ How to Become a Better Programmer