ในการทำงานของ Developer ไม่ว่าจะอยู่ในระดับใด ย่อมเกิดข้อผิดพลาดได้เสมอ และสิ่งหนึ่งที่คุณต้องทำก็คือ ยอมรับในความผิดพลาดนั้น, แก้ไขข้อผิดพลาด, เรียนรู้จากความผิดพลาด และ แบ่งปันข้อผิดพลาดให้คนอื่นได้รู้ และในบทความนี้ คุณ Ravi Shankar Rajan จะมาบอกว่า หากคุณอยากเป็น Senior Developer ที่ดี ต้องทำอย่างไรบ้าง
ความผิดพลาดต่าง ๆ ที่เกิดขึ้น จะกลายเป็นประสบการณ์อันมีค่าของคุณ และการเรียนรู้จากประสบการณ์ ถือเป็นกุญแจสำคัญในการเป็น Senior Developer ที่ประสบความสำเร็จ สิ่งที่ควรรู้เกี่ยวกับการเป็น Senior Developer ก็คือ Developer ที่ดี ไม่เพียงแค่สามารถเขียน Code ที่ดีเท่านั้น แต่ยังต้องมีคุณสมบัติอื่น ๆ ที่ทำให้พวกเขาเป็นที่ต้องการของนายจ้างและ Industry อีกด้วย เพราะ Senior Developer ที่ยอดเยี่ยม จะสามารถสร้างมูลค่าเพิ่มให้กับบริษัทได้ และสามารถส่งมอบ Value ให้กับลูกค้าได้
นี่คือคุณสมบัติที่น่าจะเป็นประโยชน์ต่อ Senior Developer ซึ่งจะทำให้พวกเขาแตกต่างจาก Developer คนอื่น ๆ
1. มีความใฝ่รู้
จากการวิจัย ระบุว่า ความสามารถในการเรียนรู้และจดจำข้อมูลของคุณจะเพิ่มขึ้น เมื่อคุณมีความใฝ่รู้ เมื่อคุณมีความใฝ่รู้ Limbic Reward System (ระบบการให้รางวัล) ของสมองจะเริ่มทำงาน เมื่อระบบการให้รางวัลเปิดใช้งาน สมองของเราจะปล่อยสารเคมีที่เรียกว่า Dopamine (โดปามีน) ซึ่งทำให้เรารู้สึกดีและทำให้การเรียนรู้ของเรารวดเร็วยิ่งขึ้นแม้ว่าจะเป็นเรื่องที่ดูน่าเบื่อก็ตาม
Senior Developer ที่ดี จะพยายามถีบตัวเองให้พัฒนาขึ้น พวกเขาจะรู้จักจัดการกับความใฝ่รู้ของพวกเขาแบบมีโครงสร้างเพื่อให้พวกเขาสามารถดึงข้อมูลที่สั่งสมไว้มาใช้ในช่วงที่จำเป็นได้ อีกวิธีหนึ่งก็คือ การลงลึกลงไปในภาษา Programming ที่สนใจก่อนแล้วค่อยขยับขยายความรู้ออกไป
2. เรียนรู้ Platform ที่เลือกใช้ อย่างทะลุปรุโปร่ง
ปัญหาทางด้าน Programming เป็นสิ่งที่ล้วนต้องเจออยู่เสมอ มีเพียงไม่กี่บริษัท ที่สามารถสร้างสิ่งใหม่ ๆ ที่ยังไม่เคยมีใครทำมาก่อน นั่นหมายถึง สิ่งที่คุณทำโดยส่วนใหญ่ ล้วนเคยถูกแก้ไขโดยภาษาหรือ Platform ที่คุณอาจกำลังใช้งานอยู่แล้ว ตัวอย่างเช่นคุณ Ravi เอง ก็เคยสร้าง SAP ABAP Module ที่มี Code 30,000 บรรทัด ลงใน Class โดยใช้ Object Oriented Classes ของ SAP ที่สามารถใช้งานได้อย่างสะดวก การที่เขาสามารถเพิ่ม Value เหล่านี้ได้ ก็เพราะเขาเชี่ยวชาญใน ABAP ก่อนที่จะเจาะลึกเข้าไปใน SAP Module อื่น ๆ แม้เขาจะรู้ว่าอาจต้องใช้เวลามาก แต่มันก็คุ้มค่ากับความพยายาม
3. เป็นที่ปรึกษาที่ดี
ในปี 2008 Google ได้ทำการศึกษาเกี่ยวกับประเด็นนี้ ทีม Project Oxygen ใน People Innovation Lab ของ Google ใช้เวลาในการประเมินประสิทธิภาพ Data-Mining, สำรวจความคิดเห็นพนักงาน, มีการเสนอชื่อเพื่อรับรางวัล Top-Manager เพื่อประเมินความแตกต่างระหว่าง Manger นักสถิติของพวกเขารวบรวมข้อมูลต่าง ๆ กว่า 10,000 ครั้งเกี่ยวกับ Manager โดยมีตัวแปรกว่า 100 รายการ ซึ่งทำให้ได้ข้อสรุปที่สำคัญ 2 ประการ การศึกษาครั้งนี้:
Activity ที่สำคัญที่สุดของความสำเร็จในการบริหารจัดการ ก็คือ “การเป็นที่ปรึกษาที่ดี” Manager ที่ประสบความสำเร็จจะรู้วิธีให้คำปรึกษาแก่ทีมของพวกเขา เพื่อให้งานสำเร็จลุล่วง
ความสำคัญน้อยที่สุดของ Manager ก็คือ ทักษะทางด้าน Technical ซึ่งสิ่งนี้พิสูจน์ได้ว่า Developer ที่ยอดเยี่ยม ไม่จำเป็นต้องเป็น Manager ที่ยอดเยี่ยม เสมอไป
ดังนั้น Google จึงเปลี่ยน Feedback Surveys เพื่อให้สะท้อนคุณลักษณะเหล่านี้ โดยแทนที่จะทำการวัดผลว่า Manager ประสบความสำเร็จมากน้อยแค่ไหน มาเป็นการสำรวจว่า Manager ได้มุ่งเน้นไปที่การใช้เวลาในการ Coaching ทีมมากน้อยแค่ไหน
มีคนกล่าวว่า ความคาดหวังที่อยากได้ Senior Developer ทุกคน ก็คือ พวกเขาควรจะสามารถมีปฎิสัมพันธ์กับลูกค้าและบุคคลที่เกี่ยวข้อง ทั้งภายในและภายนอกองค์กรได้เป็นอย่างดี ศัพท์แสงด้าน Technical อาจใช้ไม่ได้เสมอไปเมื่อคุณต้องสื่อสารกับผู้คนที่ไม่มีความรู้ทางด้าน Technical นั่นเป็นเหตุผลที่ว่า Senior Developer ที่ยอดเยี่ยม อาจเป็นคนที่ไม่ได้เก่งด้านเทคโนโลยีมาก ๆ เสมอไป
ดังนั้น คุณควรฝึกฝนทักษะในการอธิบายแนวคิดทางด้าน Technical ที่ซับซ้อนให้เป็นภาษาที่เรียบง่าย โดยอาจใช้ตัวอย่างในชีวิตจริง และประเมินอย่างรวดเร็วว่า ผู้ฟังของคุณรู้สึกเข้าใจในศัพท์ที่คุณพูดหรือไม่
การให้คำปรึกษา เป็นการเชื่อมโยงที่มีประสิทธิภาพระหว่างผู้ที่มีประสบการณ์น้อย ๆ และคนที่มีประสบการณ์มากกว่า ซึ่งสิ่งนี้ไม่เพียงใช้แค่สำหรับการพัฒนาด้านอาชีพเท่านั้น แต่ยังพัฒนาทางด้านความคิดของคุณอีกด้วย ดังนั้น จงแบ่งปันความรู้ แบ่งปันประสบการณ์ และก้าวไปข้างหน้าอยู่เสมอ
4. ไม่ใช่คนที่เห่อใช้แต่เทคโนโลยีใหม่ ๆ (shiny-toy syndrome)
ในความเป็นจริง Developer ส่วนใหญ่มักจะมีลักษณะเช่นนี้ คือ อยากที่จะรู้เทคโนโลยีที่เพิ่งออกมาใหม่อยู่ตลอดเวลา โดยไม่คำนึงถึงความต้องการในทางปฏิบัติหรือการใช้งานจริง และพร้อมที่จะเปลี่ยนใจไปใช้เทคโนโลยีที่ออกมาใหม่กว่าอยู่เสมอ
Senior Developer ที่ดี ควรรู้เท่าทันในเรื่องนี้ พวกเขารู้อย่างแม่นยำว่าเมื่อไรที่ไม่ควรทำอะไร รู้ว่าการ Rewrite Library ตั้งแต่เริ่มต้นเพียงเพื่อให้อ่านง่ายขึ้น หรือเปลี่ยนจากของเดิมไปใช้ Framework ใหม่ล่าสุด ก็อาจไม่ใช่การตัดสินใจที่ดีเสมอไป ไม่ใช่ว่าพวกเขาไม่ชอบความเสี่ยง แต่เพราะพวกเขาระมัดระวังในการเลือกสิ่งที่ต้องจัดการในภายหลังต่างหาก
ในที่สุดแล้ว สิ่งที่ต้องพิจารณาก็คือ ตัว Code โดยปกติ Code ควรทำในสิ่งที่ต้องทำ วัตถุประสงค์ของ Code ควรชัดเจนเพียงพอที่จะเข้าใจได้ภายในไม่กี่นาทีหรือวินาที หรือคนอื่นสามารถเรียนรู้มันได้อย่างไม่ยากเย็น
5. ยอมรับในสิ่งที่ตนเองไม่รู้
คุณจะรับมือกับสิ่งที่เกิดขึ้นโดยที่คุณไม่ได้ตั้งใจจะให้เกิดได้อย่างไร? คุณอาจพูดคุยกับคนอื่นอย่างมั่นใจเกี่ยวกับความสำเร็จของคุณ แต่หากมีใครที่ถามคุณเกี่ยวกับสิ่งที่…คุณไม่รู้จริง ๆ ล่ะคุณจะทำอย่างไร?
แม้มันอาจจะรู้สึกเจ็บปวดไปบ้าง แต่มันก็ดีกว่าที่จะปกปิด ว่าคุณยังขาดความรู้หรือทักษะบางอย่างอยู่ สิ่งสำคัญคือ การรู้ว่าคุณจะแก้ไขปัญหาได้อย่างไร ไม่ว่าจะเป็นปัญหาจากการถามของคนอื่น หรือเจาะลึกลงไปในปัญหาที่กำลังเจอ
วิธีที่คุณตอบคำถามจะเป็นตัวบ่งบอกว่าคุณอยู่ในระดับ Senior แล้วหรือยัง คุณสามารถหาสาเหตุที่เกี่ยวข้องกับปัญหาเหล่านั้นได้หรือไม่ และสิ่งนั้นมันช่วยได้จริงหรือไม่? คุณสามารถเสนอตัวเอง เพื่อช่วยหาคำตอบไปพร้อม ๆ กับพวกเขาไหม? รวมทั้ง คุณสามารถวิเคราะห์และติดตามผลพวกเขาหรือไม่?
การเป็น Senior Developer ไม่ได้หมายความว่า คุณต้องรู้ไปหมดทุกอย่าง แต่หมายถึง คุณสามารถช่วยหาคำตอบหรือแก้ไขปัญหาบางอย่างได้หรือไม่ต่างหาก
6. สามารถรับรู้ได้ถึง Code Smell
Senior Developer ที่ดีจะมีความสามารถในการรับรู้ได้ถึง Code Smell แม้แต่ Developer ที่มีประสบการณ์มาแล้วก็สามารถผิดพลาดได้ แน่นอนว่าคุณเองก็ยากที่จะหลีกเลี่ยงมัน
เมื่อเราสร้างอะไรก็ตามบน Solution ที่มีอยู่แล้ว เราก็ควรพยายามปรับปรุง Codebase และไม่ทำให้มันแย่ลงไปกว่าเดิม ดังนั้น เมื่อคุณถามว่า “ใครที่เป็นคนเขียน Code นี้?” คำถามที่ตามมาคือ “แล้วเราจะทำอย่างไร เพื่อให้มันดีขึ้นกว่าเดิมได้บ้าง?”
ก่อนอื่น คุณควรต้องรู้ว่า คุณจะต้องปรับปรุง “อะไร” ก่อนที่จะสามารถหา”วิธี” ที่ใช้ปรับปรุงได้อย่างเหมาะสม คุณควรเรียนรู้ว่า Code ที่ดีและไม่ดี มีลักษณะอย่างไร อย่าง นักฟุตบอลเก่ง ๆ จะใช้เวลาเพื่อศึกษาแนวทางของผู้เล่นคนอื่นที่เก่ง(หรือเก่งกว่า) ด้วยเช่นกัน ซึ่งแน่นอนว่า Developer ก็ควรทำเช่นนั้นด้วย
Smelly Code เป็น Code ที่คุณอาจจะไม่สามารถอธิบายได้ชัดเจนว่าทำไม คุณอาจแค่รู้สึกว่า มันไม่ถูกต้อง มันจะต้องถูกลบออกไป นั่นถือเป็นจุดขายสำคัญของ Senior Developer ที่จะทำให้คุณแตกต่างจากคนอื่น ๆ ดังนั้น จงทำในสิ่งที่ถูกต้อง แม้ว่ามันจะไม่ใช่สิ่งที่ทำได้ง่ายก็ตาม
ISM Technology Recruitment Ltd. (#1 Tech Recruiter in Thailand) เราเชี่ยวชาญในธุรกิจ IT Recruitment & IT Outsourcing โดยเฉพาะ เปิดทำการกว่า 28 ปี มีพนักงานทุกสายและทุกระดับทางด้าน IT ที่ได้ร่วมงานกับลูกค้าองค์กรใหญ่ที่มีชื่อเสียงและบริษัทข้ามชาติมากมาย หากคุณเป็นคน IT ที่อยากทำงานท้าทายและร่วมงานกับองค์กรชั้นนำ สามารถฝากประวัติการทำงาน (Resume) ของคุณไว้กับ ISM ได้ที่ https://www.ismtech.net/submit-your-resume แล้วคุณจะพบว่าอนาคตและโอกาสก้าวหน้ากำลังรอคุณอยู่
Source: https://medium.com/