โปรแกรมเมอร์ต้องมีประสบการณ์?
เชื่อว่าหลายๆคนคงต้องผ่านช่วงชีวิตหนึ่งที่ต้องนั่งดูประกาศรับสมัครงานเป็นสิบๆที่ หลายต่อหลายวัน
วันนี้ผมนั่งหางาน Java Programmer ใน jobDB.com ดู (ไม่ได้กะจะสมัครหรอกครับ แค่ว่าง)
หลักจากอ่านไปอ่านมาสักพัก พบสิ่งที่ทำให้หงุดหงิดเล็กน้อย
- ชื่อเรียกมันเยอะมาก ทั้งๆที่อ่าน job description แล้ว มันก็งานเดียวกัน ได้แก่ Programmer, Developer, System Analysis (จริงๆแล้ว ถ้าอ่านดูคือ Senior Programmer), Analyst Programme, Software Engineer (เอาเข้าไป)
- 95 % requirement ประสบการณ์ ทั้งๆที่บางตำแหน่งเป็นแค่ junior
- หลายๆที่ require ประสบการณ์สูงมาก (4ปี/5ปี) ทั้งๆที่ Job Description น้อยกว่าอันที่ Require แค่ 1-2 ปี
- หลายๆอันอ่านแล้วรู้เลย ว่าคนที่เขียนประกาศ ไม่รู้เรื่องเกี่ยวกับงานที่เขากำลังหาอยู่ (เป็นประกาศที่เขียนโดย HR จริงๆ ไม่มีโปรแกรมเมอร์หรือคนทีเ่กี่ยวข้องกับทาง IT ยุ่งเกี่ยวด้วยเลย)
- หลายๆที่ require ความสามารถหลายอย่างมากเสียจนผมไม่รู้เลยครับ ว่าพี่แกจะให้ทำงานอะไร
ส่วนที่ผมจะตั้งข้อสังเกตคือเรื่องประสบการณ์ครับ
ในความเข้าใจของผมนั้น
การกำหนดไว้ 1 ปี อย่างต่ำ น่าจะสื่อความหมายเป็นนัยว่าต้องการคนรู้งาน ไม่ต้องการเทรนใหม่หมด
การกำหนดไว้ 2-3 ปี อย่างต่ำ น่าจะสื่อความหมายเป็นนัยว่าต้องการคนที่ผ่านประสบการณ์มามาก และเพียงพอที่จะนำคนอื่นได้
การกำหนดไว้ 4-5 ปี อย่างต่ำ อันนี้คงต้องการพวกโคตรเซียนล่ะมั้ง
ี
สำหรับงานระดับการจัดการ ผมเชื่อมั่นว่าประสบการณ์เป็นสิ่งที่สำคัญมาก (บางครั้งต้องมีอายุด้วย ไม่งั้นคุมไม่อยู่เอา)
ดังนั้น ขอออกตัวก่อนว่า ประเด็นที่จะพูดต่อไปนี้ หมายถึง งาน programmer จริงๆ (เฉพาะ Implementation Phase) เท่านั้นนะครับ อาจลามถึงส่วน Design Phase นิดหน่อย แต่ไม่นับ Requirement/Testing/Release แน่ๆ
คำถามของผมคือ
1. การกำหนดว่าต้องมีประสบการณ์อย่างน้อย XX ปี เอาตัวเลขอะไรมาวัด?
2. โปรแกรมเมอร์ที่ทำงานมา 5 ปี เก่งกว่าโปรแกรมเมอร์ที่ทำงานมาแค่ 1 ปีเสมอไปเหรอ?
สำหรับข้อแรก น่าจะมีงานวิจัยรองรับนะครับ ว่าคนที่ทำงานมาครบ XXX ปี จะมีการกระโดดขึ้นของประสิทธิภาพในการทำงานแบบพรุ่งพรวด เหมือนการเลเว่ลอัพในเกมออนไลน์ !! (หรือประมาณว่าอัพจ๊อบสอง)
… ผมประชดน่ะครับ …
สำหรับข้อสอง อันนี้ผมสงสัยจริงๆ ว่าจริงเหรอครับ? เพราะผมเชื่อว่า
ประสบการณ์เป็นสิ่งที่จำเป็นสำหรับการเป็นโปรแกรมเมอร์ที่ดี แต่ไม่ได้แปรผันตรงกับความสามารถ
ปกติแล้วไม่ว่าคุณจะเป็นใคร หรือทำงานอะไร เราแบ่งการทำงานอย่างหยาบๆ ออกได้เป็น 3 ช่วงครับ
- ช่วงเรียนรู้ ช่วงนี้คือการที่คุณยังทำงานได้ productivity ต่ำๆ ใช้เวลาส่วนใหญ่ไปกับการเรียนรู้เนื้องาน และสิ่งแวดล้อม
- ช่วงทำงาน ช่วงนี้คือช่วงที่ productivity คุณเริ่มเสถียร คุณทำงานได้เต็มที่ สมกับเงินค่าจ้างที่คุณได้รับ (หรืออันที่จริง คุณต้องทำงานให้เขาได้มากกว่าเงินที่คุณได้รับ)
- ช่วงพัฒนาปรับปรุง ช่วงนี้คือช่วยที่คุณเริ่มเข้าใจทุกอย่างที่จำเป็นในการทำงานแล้ว และสามารถนำสิ่งเหล่านั้นมาประยุกต์ต่อยอด และหาช่องทางในการพัฒนา ให้สภาพแวดล้อมขององค์กรดียิ่งขึ้นไป และเพิ่ม productivity ขึ้นได้อีก
แน่นอนว่างานแต่ละงาน และคนแต่ละคน ก็คงจะมีช่วงเวลาต่างๆ ต่างกันไป แต่โปรแกรมเมอร์ที่มีความสามารถสูง จะมีช่วงเรียนรู้ที่สั้น และเริ่มทำประโยชน์ต่อองค์กรได้เร็ว ส่วนคนที่มีแนวโน้มที่จะเติบโตไม่ว่าในสายงานใดๆ ควรจะต้องไปถึงช่วงที่สาม
ผมรู้สึกว่าเป็นเรื่องที่น่าเศร้ามากครับ ถ้า HR จะใช้ประสบการณ์เป็นเกณฑ์หลัก (เพราะ HR เองไม่รู้ลักษณะงานของ Programmer และหาเกณฑ์อื่นวัดไม่ได้) ในการเปรียบเทียบและคัดเลือกโปรแกรมแกรมเมอร์ ถึงแม้จะในระดับการสกรีน Resume ก็เถอะ
เพราะนั่นเป็นการตัดโอกาสที่บริษัทจะได้โปรแกรมเมอร์ระดับหัวกะทิที่ยังไม่มีประสบการณ์ (ซึ่งอีกสักห้าเดือน เขาอาจจะเก่งกว่าหลายๆคนที่ทำงานกันมาเป็นปีแล้ว)
ปล. ว่าแต่ จริงๆอาจจะมีงานเขียนโปรแกรมบางอย่าง ที่ต้องใช้เทคโนโลยีที่มีช่วงเรียนรู้ถึง 4-5 ปีหรือเปล่า?
Reference:
Why IT Managers Are Hiring Based On
Filed under: job | Leave a Comment
ค้นหา
-
You are currently browsing the เรื่องของวิศวกรรมซอฟท์แวร์ weblog archives.
No Responses Yet to “โปรแกรมเมอร์ต้องมีประสบการณ์?”