ทุกสิ่งทุกอย่างล้วนต้องมีการพัฒนา
นักพัฒนาซอฟแวร์ก็เช่นกัน!
มาดูกันว่าลักษณะของนักพัฒนาซอฟแวร์ในแต่ละขั้น ของเส้นทางสู่การเป็นนักพัฒนาซอฟแวร์ตามรูปแบบของ Dreyfus (Dreyfus Model) เป็นเช่นไร,
1. มือใหม่(Novice)
- ไม่มีประสบการณ์ หรือมีประสบการณ์น้อย
- จำเป็นต้องมีตัวอย่าง ระเบียบแบบแผน เพื่อช่วยในการเรียนรู้
- ต้องการจุดมุ่งหมายในระยะสั้นเพื่อพัฒนาตัวเอง
- จำเป็นต้องมีคนแนะนำในทุกๆ ขั้นตอน
2. ผู้ริเริ่ม (Advance Beginner)
- เริ่มตัดสินใจด้วยตนเองได้
- ชอบเรียนรู้อะไรไวๆ แต่ไม่จำเป็นต้องรูที่มา เช่น โปรแกรมเมอร์แบบตัดแปะ (copy & paste)
- เริ่มเห็นภาพรวมของขั้นตอน และโครงสร้างของซอฟแวร์
- ยังจำเป็นต้องมีคนแนะนำในบางส่วน
3. ผู้มีประสบการณ์ (Competent)
- เริ่มมีคำถามกับตัวเอง เช่น เขียนโค้ดแบบนี้เพื่ออะไร หรือทำไม?
- มองผลกระทบต่างๆ ของการออกแบบและำพัฒนาซอฟแวร์ได้กว้างขึ้น
- สามารถแก้ปัญหาส่วนใหญ่ได้ด้วยตัวเอง
- เริ่มเรียนรู้สิ่งใหม่ๆ ด้วยตัวเองได้
- จำเป็นต้องมีผู้เชี่ยวชาญให้การปรึกษาในบางเรื่อง
- สามารถให้คำแนะนำนักพัฒนารุ่นน้องได
4. ผู้ชำนาญเจนจัด (Proficient)
- มีทักษะระดับสูงในการวิเคราะห์
- รู้จักจุดแข็งและข้อด้อยของตัวเอง และปรับปรุงตัวเองได้ดียิ่งขึ้น
- สามารถวิเคราะห์ปัญหาได้ถูกจุดและรวดเร็วมากกว่าเดิม
- เริ่มศึกษาหลักการออกแบบซอฟแวร์ที่ดี (Design Pattern) และประยุกต์ใช้ในการพัฒนาซอฟแวร์
5. ผู้เชี่ยวชาญ (Expert)
- ระดับผู้เชี่ยวชาญ มีความกระตือรือร้นอย่างสูงในการค้นหา และพัฒนาสิ่งใหม่ๆ
- สามารถเขียนหนังสือเพื่อถ่ายทอดความรู้ให้แก่ผู้อื่น
- เริ่มจะมีจินตการที่เหนือเหตุผล ดั่งเช่นที่ไอส์ไตน์เคยพูดไว้ว่า จินตาการสำคัญกว่าความคิด
- ดูทุกๆ อย่างเป็นของง่าย
- มีความเชี่ยวชาญสูง บางสิ่งสามารถทำโดยไม่ต้องคิด เหมือนนักกีฬาที่ฝึกตนจนคล่องแคล่วแล้ว ร่างกายจะทำงานเองโดยไม่ขึ้นกับสมอง
มือใหม่ ผู้ริเริ่ม ผู้มีประสบการณ์ ผู้ชำนาญเจนจัด ผู้เชี่ยวชาญ
รวมเป็น 5 ขั้นสู่การเป็นสุดยอดนักพัฒนา
อ่านจบแล้ว เพื่อนๆ ล่ะ คิดว่าตัวเองอยู่ในขั้นไหน ??
ผมน่าจะ Competent ครับ