#1 tech recruiter in thailand

9 คำแนะนำ เพื่อความก้าวหน้าในอาชีพ Software Engineer

บทความนี้เป็นคำแนะนำจากประสบการณ์ตรงของ Nikhil Gupta ซึ่งทำงานในฐานะ Software Development Engineer ที่บริษัท Amazon โดยเขาได้รวบรวมสิ่งที่ทำให้เขาก้าวหน้าและประสบความสำเร็จ ในฐานะ Software Engineer ในช่วง 5 ปีที่ผ่านมา กับ คำแนะนำ เพื่อความก้าวหน้าในอาชีพ Software Engineer มาดูกันเลย มีอะไรบ้าง

คุณ Nikhil Gupta ทำงานในอุตสาหกรรมไอที ครบ 5 ปี ในฐานะ Software Engineer เขาได้เริ่มทำงานเป็นพนักงานบริษัทอย่างเต็มตัว ตั้งแต่เดือนกรกฎาคม ปี 2560 แม้ว่าก่อนหน้านี้ ในช่วงเรียนมหาวิทยาลัย เขามีประสบการณ์ในการทำงานกับบริษัท Startups เล็ก ๆ และทำงานเป็นฟรีแลนซ์บ้าง แต่ต้องยอมรับว่าการทำงานในบริษัทข้ามชาติขนาดใหญ่ เป็นประสบการณ์ที่แตกต่างไปจากเดิมอย่างสิ้นเชิง และมีหลายอย่างที่เขาได้เรียนรู้ในช่วง 5 ปีที่ผ่านมา ซึ่ง Nikhil จะมาแบ่งปันประสบการณ์เหล่านั้นให้กับคุณในบทความนี้

1. Technical Skills (ทักษะทางด้านเทคนิค)

Technical Skills เป็นทักษะที่สำคัญที่สุดในบรรดาทักษะทั้งหมดในบทความนี้ และหากคุณมีความเชี่ยวชาญใน Technical Skills ก็เปรียบเสมือนมีรากฐานที่ดีในการทำงาน ไม่ว่าจะเป็น Solving Data Structure, Algorithms Problem บน Leetcode ก็เป็นอีกหนึ่งทักษะที่สำคัญ

แต่เมื่อคุณทำงานบน Application หรือ Microservice ที่ใช้งานจริงแล้วล่ะก็ จะมีหลายสิ่งที่คุณต้องคิดขณะเขียน Code ยกตัวอย่างเช่น การเขียน Code, Unit Tests, Integration Test, Production Deployment, การใช้ Design Patterns ที่เหมาะสม, การได้รับการตรวจสอบ Code, การตรวจสอบ Code ของเพื่อนร่วมงาน, การสร้าง High & Low Level Design และอื่น ๆ

คุณ Nikhil ได้แนะนำหนังสือบางเล่มที่ช่วยเขาในการพัฒนา Technical Skills ได้แก่ Data Structures & AlgorithmsCracking the coding interviewDesign Patterns & Clean Code

2. Stakeholder Management (การทำงานและจัดการกับผู้มีส่วนได้ส่วนเสีย)

เมื่อคุณทำงานเป็นทีม คุณต้องรับมือกับคนในหลากหลายบทบาทและมีมุมมองที่แตกต่างกัน

    • เมื่อคุณทำงานกับ Product Manager คุณต้องคิดจากมุมมองของลูกค้า และคิดว่าอะไรจะเป็นประสบการณ์ที่ดีที่สุดสำหรับลูกค้า และวิธีที่คุณสามารถส่งมอบสิ่งนั้นด้วย Technical Skills ของคุณ
    • เมื่อคุณทำงานกับ Project Manager คุณต้องคิดว่าคุณจะปรับปรุงการส่งมอบ Project ที่มีประสิทธิภาพได้อย่างไร เพื่อให้มีปัญหาหรือจุดบกพร่องให้น้อยที่สุด และสามารถทำ Project สำเร็จภายในระยะเวลาที่คาดไว้

3. Ownership (ความเป็นเจ้าของ)

หากการที่คุณเป็น Software Engineer แล้วคิดว่า งานของคุณถูกจำกัดอยู่แค่การเขียน Code และการ Deploy สำหรับ Production เท่านั้น นั่นอาจเป็นความคิดที่ไม่ถูกต้องสักเท่าไหร่ หากคุณต้องการเติบโตก้าวหน้าในอาชีพการงานของ คุณควรคิดว่า คุณกำลังเป็นเจ้าของในงาน หรือ Project ที่คุณกำลังทำอยู่อย่างครบวงจร

คุณต้องมีส่วนร่วมแบบเชิงรุกใน Project ให้มากขึ้น อย่างเช่น คิดว่าคุณจะปรับปรุงการ Delivery, Design, Operational Load, Cost และอื่น ๆ ได้อย่างไร โดยทุกคนต้องทำงานเป็นทีม และมีส่วนร่วมในเชิงรุกเพื่อลดการหยุดชะงักของการทำงานในทีม สิ่งนี้จะแสดงถึงทักษะความเป็นผู้นำของคุณ และจะเป็นประโยชน์อย่างมากในอนาคต หากคุณต้องการเริ่มต้นบริษัทของคุณเอง

4. Work life balance (การสร้างสมดุลให้ชีวิตและการทำงาน)

ข้อนี้อาจเรียกว่า Time Management เพราะเราทุกคนล้วนมีเวลา 24 ชั่วโมง ใน วัน และเราเป็นเจ้าของเวลานั้น ๆ ในทุกวินาที ดังนั้น หากเราต้องการมีความสมดุลระหว่างงานกับการใช้ชีวิต คุณต้องจัดการเวลาของคุณ โดยแบ่งเวลาให้กับงานและชีวิตส่วนตัวด้วย

นอกจากนี้ยังหมายความว่า ถ้าคุณรู้สึกว่า คุณมีภาระหรืองานที่มากเกินไป ขอแนะนำให้บอกกับ Manager และอธิบายให้เขาฟังว่า มีงานอะไรบ้างที่อยู่ในมือคุณตอนนี้ และบอกว่าอาจจะไม่สามารถโฟกัสกับงานทั้งหมดนี้ได้ เนื่องจากปริมาณงานเยอะเกินไป เป็นต้น ซึ่งสิ่งนี้จะช่วยคุณได้เป็นอย่างมาก

คำแนะนำ: คุณสามารถทำ To-DList เขียนในสิ่งที่ต้องทำในแต่ละวัน ไม่ว่าจะเกี่ยวข้องกับ งานของบริษัทหรืองานส่วนตัว นอกเหนือจาก To-DList ที่ต้องทำ คุณอาจจะเหลือเวลาว่างในแต่ละวัน โดยที่ไม่มีการวางแผนใด ๆ เพราะเราเป็นมนุษย์และเราต้องการความยืดหยุ่นในเรื่องเวลาและทางเลือกของเรา โดยเทคนิคนี้ คุณ Nikhil ได้เริ่มทำมาตั้งแต่เดือนกรกฎาคม 2560 ซึ่งผ่านมากว่า ปีแล้ว ที่เขาสามารถทำตาม To-DList ได้สำเร็จ ทำให้เขามีชีวิตการทำงานและชีวิตส่วนตัวที่เขาพึงพอใจ

5. Bottom up Innovation (ไอเดียของการพัฒนานวัตกรรมและแก้ไขปัญหา ที่มาจากพนักงานที่ทำงานนั้น ๆ)

การทำงานเป็น Software Engineer คุณต้องสวมหมวกหลายใบหรือรับผิดชอบหลายบทบาท คุณต้องมีทั้งความรู้เกี่ยวกับ ตรรกะทางธุรกิจ ความต้องการของลูกค้า ต้นทุนของทรัพยากรที่เราใช้เพื่อ Develop และ Maintain สำหรับ Software Applications และการทำงานใน Project เหล่านั้น ยังมีหลายส่วนที่สามารถระบุปัญหาได้ หรือช่องว่างที่ยังสามารถปรับปรุงได้ ซึ่งจะช่วยทำให้การส่งมอบ Project เป็นไปได้เร็วขึ้น หรือช่วยในการปรับปรุงธุรกิจ หรือประสบการณ์ของลูกค้า

เชื่อเถอะว่า การมีส่วนร่วมในเชิงรุกเป็นสิ่งที่น่าชื่นชม ไม่ว่าองค์กรที่คุณทำงานอยู่นั้น จะมีขนาดใหญ่หรือเล็ก ทุกคนทำงานใน Project ที่ได้รับมอบหมายจาก Manager แต่การทำงานในสิ่งที่คุณต้องการนั้น มันจะสร้างความแตกต่างในเรื่องของความภาคภูมิใจหรือความพึงพอใจ

6. Interviewing (การสัมภาษณ์งาน)

คุณ Nikhil ได้มีโอกาสสัมภาษณ์พนักงานหลังจากที่เขาได้สั่งสมประสบการณ์มาประมาณ 2 ปี จนถึงตอนนี้ เขาได้สัมภาษณ์คนอื่นมาแล้วกว่า 150 คน ในบทบาทและตำแหน่งงานต่าง ๆ การสัมภาษณ์ใครสักคนถือเป็นความสามารถพิเศษ และต้องฝึกฝนบ่อย ๆ ซึ่งเขาไม่ได้มีเทคนิคเฉพาะในการสัมภาษณ์คนอื่นแต่อย่างใด

เขาบอกว่า ในช่วงแรก ๆ ของการเริ่มสัมภาษณ์คนอื่น เขารู้สึกว่ามันยากมาก คุณจะกลืนไม่เข้าคายไม่ออก ว่าจะรับผู้สมัครคนไหนดี แต่เมื่อมีประสบการณ์และผ่านการสัมภาษณ์มาแล้วหลายครั้ง คุณจะเริ่มมองออกมากขึ้นว่าจะให้คะแนนผู้สมัครเท่าไหร่ และผู้สมัครคนไหนเหมาะสมกับองค์กรของคุณ คุณเพียงแค่ต้องอดทน พยายามฝึกฝน รับข้อเสนอแนะเกี่ยวกับทักษะการสัมภาษณ์ของคุณ และปรับปรุงให้ดีขึ้น

7. Mentoring (การให้คำปรึกษา)

เมื่อคุณสั่งสมประสบการณ์มาได้สัก 2 ปี ไม่ว่าจะในอุตสาหกรรมใด ๆ ก็ตาม คุณควรจะสามารถแนะนำ และให้คำปรึกษาแก่รุ่นน้องในเส้นทางอาชีพของพวกเขาได้

ทักษะการคิดแบบเป็นเหตุเป็นผล ที่คุณ Nikhil ทำในขณะที่ได้รับคำปรึกษา คือ การจดจำปัญหาต่าง ๆ จากที่ปรึกษา และพยายามเอาชนะสิ่งเหล่านั้นเมื่อต้องให้คำปรึกษาใครสักคน และแน่นอนว่า เราจะได้เรียนรู้จากที่ปรึกษาของเราถึงวิธีการให้คำปรึกษาใครสักคน เราควรเรียนรู้และจดจำข้อดีจากที่ปรึกษาของเรา และนำไปประยุกต์ใช้ด้วยเช่นกัน

8. Networking (การสร้างความสัมพันธ์)

เนื่องจากเราทุกคนต่างทำงานเป็นทีม และมีหลายทีมในองค์กร เราต้องเรียนรู้วิธีการทำงานร่วมกัน และการทำงานร่วมกับผู้อื่น ดังนั้น การสร้างความสัมพันธ์อันดีกับเพื่อนร่วมงานและสมาชิกในทีมนั้น จะเป็นตัวช่วยที่ดีให้กับคุณ

วันหนึ่งคุณอาจจะต้องการขอความช่วยเหลือ ในการตรวจสอบ Design ของคุณ, การตรวจสอบ Code, การแก้ไขปัญหา Production หรือหารือเกี่ยวกับปัญหาอื่น ๆ และไม่เพียงแต่ภายในองค์กรเท่านั้น คุณยังสามารถสร้างเครือข่ายกับบุคคลภายนอกองค์กรได้เช่นกัน อย่างเช่น ผ่าน Linkedin, การประชุมศิษย์เก่ามหาวิทยาลัยหรือโรงเรียน เป็นต้น ซึ่งสิ่งเหล่านี้จะทำให้คุณมองเห็นสิ่งที่เกิดขึ้นในวงกว้าง ได้รู้ถึงสิ่งที่คนอื่นกำลังทำอยู่ และอาจเป็นไปได้ว่า คุณจะได้รับโอกาสใหม่ ๆ ในขณะที่ได้ทำงานกับพวกเขา

9. Continuous Learning (การเรียนรู้อย่างต่อเนื่อง)

แม้ว่าคุณ Nikhil จะมีประสบการณ์ในอุตสาหกรรมนี้มากว่า 5 ปีแล้ว และได้เรียนรู้สิ่งต่าง ๆ มากมาย แต่เขาก็ยังรู้สึกว่า ยังมีอะไรให้เรียนรู้อีกมาก และยังต้องเรียนรู้ต่อไป ดังนั้น สำหรับเราทุกคน จะมีสิ่งใหม่ ๆ ที่เกิดขึ้นเพื่อให้เราได้เรียนรู้อยู่เสมอ

คุณ Nikhil ยังกล่าวอีกว่า ขอให้อดทน แต่ก็อย่าแบกภาระหรืองานที่หนักจนเกินไป ค่อย ๆ ก้าวไปทีละก้าว และในท้ายที่สุด ก็จะเกิดการเปลี่ยนแปลงที่น่าประทับใจ สิ่งสำคัญที่ต้องโฟกัสก็คือ วิธีที่คุณจะพัฒนาสิ่งที่คุณทำในแต่ละวันเพื่อการเติบโตและก้าวหน้าอย่างต่อเนื่อง

และทั้งหมดนี้คือ คำแนะนำ เพื่อความก้าวหน้าในอาชีพ Software Engineer หวังว่าคำแนะนำในบทความนี้จะเป็นตัวช่วยให้คุณก้าวหน้าในอาชีพการทำงานได้ตามที่หวังไว้นะคะ

ISM ช่วยคุณหางานที่ใช่ เพียงส่ง Resume มาที่ https://www.ismtech.net/submit-your-resume ให้ทีมงานมืออาชีพช่วยคุณไปถึงเป้าหมาย ให้เร็วขึ้นเหมือนติดจรวด

หางาน IT ให้ ISM Technology Recruitment เป็นอีกหนึ่งตัวช่วย ให้คุณได้ “ชีวิตการทำงานในแบบที่คุณต้องการ”

ISM เชี่ยวชาญในธุรกิจ IT Recruitment & IT Outsourcing โดยเฉพาะ เปิดทำการมากว่า 30 ปี มีพนักงานทุกสายและทุกระดับทางด้าน IT ที่ได้ร่วมงานกับลูกค้าองค์กรใหญ่ที่มีชื่อเสียงและบริษัทข้ามชาติมากมาย

Source: https://nikhilgupta1.medium.com/

th