หลายวันก่อนมีคนถามผมว่าอะไรที่เค้าควรจะใช้เป็นแนวทางในการหานักพัฒนาที่ยอดเยี่มมเข้าสู่ทีมงาน
เลยมีโอกาสได้นั่งคิดตอนอยู่บนเครื่องบินหลังจากกลับจากงาน อไจล์สิงคโปร์ ความยากคือเค้าไม่ต้องการนักพัฒนาธรรมดาแต่ต้องการนักพัฒนาที่ยอดเยี่ยม
นอกเหนือจากคุณลักษณะพื้นฐานที่นักพัฒนาทุกคนควรมี โดยน้อง Weerasak
ในฐานะที่ต้องสัมภาษณ์พี่ๆน้องๆ และเพื่อนๆที่ทำงานด้วยกัน เลยอยากแบ่งปันซักสามข้อที่จะทำให้เป็นนักพัฒนาที่ใครก็อยากให้ไปทำงานด้วย
1. ทำงานเป็นทีมได้ ฟังดูเหมือนง่าย แต่การทำงานเป็นทีม คือการยอมรับข้อแตกต่างของทีมให้ได้ และยอมที่สละจุดยืนของตัวเองบ้างเพื่อให้เพื่อนๆได้มีโอกาสนำเสนอผลงานที่ทกคนสามารถยอมรับได้ ในโลกทุกวันนี้หมดยุคของโคดที่ดีที่สุดเพราะเหตุว่า ความเร็วของฮาร์ดแวร์ที่ทำให้โคดที่เร็วและเจ๋งที่สุด ไม่ได้เร็วไปกว่าโคดที่ทุกคนในทีมยอมรับได้ และทำงานต่อเนื่องกันอย่างคล่องแคล่ว
2. มีความสามารถในการเขียนโคดได้หลากหลาย จากประสบการณ์ตรงนักพัฒนาที่ดีมีอาวุธที่ใครๆอาจมองไปเรื่องของความเก่งกาจ แต่หากแท้จริงในการแก้ปัญหาของนักพัฒนานั้น ต้องสามารถเขียนโคดได้หลากหลาย เพื่อตอบสนองความต้องการที่แตกต่างกัน ความหลากหลายในที่นี้คือ ควรจะเขียนรูปแบบของภาษาได้อย่างน้อยสามรูปแบบ ได้แก่
- ภาษาที่ต้อง Compile ให้ความเร็วสูง และสามารถสเกลได้ง่าย เช่น C/C++, C#, Java ภาษาเหล่านี้จะทำคุณขยายขอบเขตความสามารถของ Application แบบก้าวกระโดดได้
- ภาษาไดนามิค/ฟังชัน หรือ Scripting เช่น PHP, Pearl, Python, Ruby ภาษาเหล่านี้เป็นภาษาที่เขียนได้เร็ว ใช้งานได้ง่าย และทำการทดลองไอเดียได้แบบกระดิกนิ้ว และภาษาเหล่านี้แหล่ะทีจะตอบสนอนตัณหาของ business เวลาที่เค้าอยากเป็นอะไรแบบไวๆ
- ภาษา SQL หรือ ภาษาที่ใช้ในการทำงานบนฐานข้อมูล หลายคนอาจมองว่าแค่ Query ธรรมดาใครๆก็น่าจะทำได้ แต่ในความเป็นจริงแล้วการใช้ภาษาบนฐานข้อมูลต้องมีความสามารถในเรื่องการ Tuning Query ให้ทำงานได้เร็วและ ดูแลได้ง่ายอีกด้วย
- ภาษา ที่ใช้ในการคิด Artificial Intelligence หรือภาษาที่เราใช้ในการเขียนอัลกอริทึ่มในการหาทางเดินของตัวละครในเกม หรือ การควานหาลักษณะเหมือนของสินค้าเพื่อแนะนำสินค้าที่เกี่ยวข้อง ภาษานี้ส่วนใหญ่เรียนแล้วโยนทิ้งเพราะว่าพอทำงานจริงไม่ค่อยได้ใช้ แต่หากเราจะเป็นนักพัฒนาที่ยอดเยี่ยม ภาษาเหล่านี้จะประหยัดเวลาเรามากเวลาที่ใช้ในการพิสูจน์ ภาษาเหล่านี้เช่น Lips, Prolog
- ภาษาเวป เช่น HTML, JavaScript, ASP เป็นต้น (อันนี้คงไม่ต้องยกตัวอย่างเพราะว่าชัดมาก)
3. นักพัฒนาที่ดีต้องโยนตัวเองให้ไปมองภาพรวมได้ว่าเราทำไปแล้วลูกค้าได้ประโยชน์อะไร หรือ เป็นคนที่ตะเกียกตะกายหาเหตุผลว่าทำไมทีมเราต้องทำมันด้วย
Leave a Reply