สำหรับ Software Developers มีบทบาทและเป็นตำแหน่งที่ถูกเรียกแตกต่างกันมากมาย ในฐานะ Developer มือใหม่ คุณอาจสับสนว่า ตำแหน่งประเภทใด ที่คุณอาจมีคุณสมบัติหรือสามารถสมัครงานได้ และเส้นทางอาชีพไหนที่คุณควรคาดหวังหรือสามารถปักธงเส้นชัยไว้ ว่าสักวันหนึ่งจะก้าวไปอยู่ ณ จุดนั้น บทความนี้ ISM จึงรวบรวม Career Roadmap สำหรับ Software Developer มาให้ เรามาดูกันว่ามีอะไรบ้าง
ในความเป็นจริงของ Software Development คือ มีทักษะหลายด้านที่คุณสามารถเรียนรู้และเชี่ยวชาญได้ เช่น Frontend, Backend, Security, DevOps และ Full-stack เป็นต้น แม้จะมีความเชี่ยวชาญมากมายใน Software Development แต่ละเส้นทาง ก็มีบทบาทหลักและความก้าวหน้าที่คล้าย ๆ กัน ที่พบบ่อยที่สุดคือ Intern, Junior Developer, Software Developer และ Senior Software Developer มาดูกันว่าคุณอยู่ในระดับไหน
เกร็ดความรู้: เกี่ยวกับคำว่า Developer / Engineer / Programmer
ใน Tech Industry คำว่า Developer, Engineer และ Programmer มักใช้แทนกันได้ ถึงแม้จะมีบางคนโต้แย้งว่า มีความแตกต่างกันชัดเจน แต่โดยทั่วไปแล้วเป็นที่รู้กันดีว่า ทั้ง 3 คำนี้มีความหมายเหมือนกัน
Intern (นักศึกษาฝึกงาน หรือ พนักงานฝึกหัด)
สำหรับ Developers ที่เพิ่งจะเริ่มต้น บทบาทแรกที่พวกเขาจะได้รับ คือ พนักงานฝึกหัด โดยทั่วไปแล้วพนักงานที่ฝึกหัดเกี่ยวกับการพัฒนา Software จะใช้เวลาฝึกประมาณ 3 – 6 เดือน ซึ่งพวกเขาจะได้ทำงานร่วมกับ Developers คนอื่น ๆ ใน Project ขนาดเล็กจนถึงขนาดกลาง เพราะมันสามารถช่วยให้พวกเขาได้เรียนรู้และมีประสบการณ์ในภาษา Programmings และ Technologies ที่บริษัทนั้น ๆ ใช้ โดยปกติการฝึกงานจะเริ่มในช่วงฤดูร้อน ที่นักศึกษาส่วนใหญ่ปิดเทอม และฤดูการรับสมัครงานสำหรับ Developers ใหม่กำลังจะสิ้นสุด
บริษัทส่วนใหญ่ มักใช้การฝึกงานเหล่านี้เพื่อค้นหา Developers ที่เหมาะสมหรือสามารถทำงานกับองค์กรได้ นักศึกษาฝึกงานหลายคน อาจได้งานในตำแหน่งเดียวกันกับ Entry-level Developers ของบริษัท เช่น Associate Developer หรือ Junior Developer อีกด้วยนะ (ถือเป็นโอกาสที่ดีมาก ๆ เลย)
Junior / Associate Software Developer
Junior/Associate Software Developer เป็นชื่อที่มักใช้สำหรับ Developers ที่เพิ่งเริ่มต้นและยังคงต้องหาความรู้เพิ่มเติม ความเชี่ยวชาญ รวมถึงต้องการเวลาที่มากขึ้น เพื่อให้ได้ผลลัพธ์ เทียบเท่า Developer ทั่วไป
คำว่า Junior Developer มักใช้เรียกในหลาย ๆ บริษัท เพื่อเป็นตัวกำหนดตำแหน่ง Entry-level สำหรับ Software Development ซึ่งชื่ออาจแตกต่างกันเล็กน้อยขึ้นอยู่กับแต่ละบริษัท
บางบริษัทอาจใช้ชื่อตำแหน่งว่า Entry Level *อาจเพิ่มคำว่า Language หรือ Framework* Developer
แม้จะมีความคาดหวังของผลลัพธ์ที่ต่ำกว่า แต่ในช่วงปีแรกในตำแหน่งนี้ ก็จะถูกคาดหวังสูง เพื่อให้คุณได้เรียนรู้ทักษะที่จำเป็นต่าง ๆ เพื่อก้าวสู่บทบาทต่อไป นั้นคือ Software Developer
บทความแนะนำ การเป็น Junior Developer มันดีแบบนี้นี่เอง คลิกอ่านเลย
Software Developer
Software Developer คือ ผู้ที่มีประสบการณ์ด้าน Software Development มากกว่า 1 ปี และสามารถจัดการและรับผิดชอบงานต่าง ๆ ได้ด้วยตัวเอง
สิ่งที่แตกต่างระหว่าง Junior Developers และ Developers คือ Developers จะมีความสามารถในการจัดการงาน “ส่วนใหญ่” ได้ด้วยตัวเอง อาจมีบางครั้งที่จำเป็นต้อง Pair Programming บ้าง แต่ส่วนใหญ่ Software Developers มักสามารถจัดการงานของตนเองได้โดยไม่ต้องพึ่งความช่วยเหลือจากผู้อื่น ซึ่งแตกต่างกับ Junior Developers ที่ยังต้องมีคนให้คำแนะนำ
บางบริษัทอาจใช้ชื่อตำแหน่งว่า Software Engineer, *อาจเพิ่มคำว่า Language หรือ Framework* Developer หรือเพียงแค่ Developer เท่านั้น (ขึ้นอยู่กับแต่ละบริษัท) บริษัทใหญ่ ๆ บางแห่ง จะกำหนดค่าตัวเลขให้กับ Developers เพื่อแสดงให้เห็นว่าพวกเขามีประสบการณ์มามากน้อยเพียงใด เช่น Software Engineer I, Software Engineer II เป็นต้น
เกร็ดความรู้: ยังคงมีข้อถกเถียงกัน ระหว่าง 2 ชื่อนี้ ว่า Software Developers กับ Software Engineers นั้นมีความแตกต่างกัน แต่คนส่วนใหญ่ก็ยอมรับว่าทั้ง 2 ชื่อนี้ มีความหมายเหมือน ๆ กันและสามารถใช้แทนกันได้เลย
บทความแนะนำ ถอด 10 บทเรียน จาก Software Engineer ที่เก่ง ๆ คลิกอ่านเลย
Senior Software Developer
Senior Software Developer เป็นตำแหน่งที่ Developer หลายคนใฝ่ฝัน ซึ่งชื่อตำแหน่งก็มักจะแตกต่างกันไปในแต่ละบริษัท แต่หมายความของ Senior Software Developer จะแสดงให้เห็นว่า คุณเป็น Developer ที่มีทักษะและความสามารถในขั้นสูง และส่วนใหญ่แล้วถ้าคุณจะก้าวเป็น Senior Developers ได้ คุณควรมีประสบการณ์ด้าน Software Development มาอย่างน้อย 5 ปีขึ้นไป
บางบริษัทอาจใช้ชื่อตำแหน่งว่า Senior *อาจเพิ่มคำว่า Language หรือ Framework* Developer
บทความแนะนำ เมื่อไร? คุณถึงจะสามารถเรียกตัวเองว่า Senior Developer ได้ คลิกอ่านเลย
เมื่อคุณได้เป็น Senior Developer แล้ว คุณสามารถเลือกเส้นทางอาชีพได้ 2 ทาง ดังนี้
หากคุณต้องการก้าวหน้าในสายอาชีพของคุณต่อไป)
เส้นทางที่ 1: Individual Contributor (IC) Career Path
สำหรับผู้ที่ชอบเขียน Code และต้องการลงมือทำด้าน Software Development ต่อไป ในขณะเดียวกันก็ยังสามารถได้ค่าตอบแทนที่เพิ่มขึ้นและมีความก้าวหน้าในอาชีพได้อีกด้วย ดังนั้นการเป็น Individual Contributor (IC) นั้นอาจเป็นตัวเลือกที่ดี
โดยรวมแล้ว IC มุ่งเน้นที่การพัฒนา Skillsets ที่มีอยู่ และมีความรับผิดชอบเพิ่มเติมภายในทีม Developer แม้ว่าจะไม่ได้เลือก เส้นทางที่ 2 (Management Path) ก็ตาม แต่ IC ก็ยังคงถูกคาดหวังให้เป็นผู้นำและเป็นที่ปรึกษา สำหรับ Developers ทั้งภายในทีมและในองค์กร ดังนั้น สำหรับ Individual Contributor (IC) มี 2 บทบาท ที่สามารถเติบโตและมีความก้าวหน้าทางอาชีพได้
บทบาทที่ 1: Team Lead
Team Leads แค่ชื่อก็บอกถึงสถานะความเป็นผู้นำแล้ว ดังนั้น พวกเขาจึงมีความรับผิดชอบที่เพิ่มมากขึ้นกว่าตอนที่เป็น Developer ซึ่งต้องรับผิดชอบในส่วนของการดำเนินงานด้าน Technical ของ Project ซึ่งเกี่ยวข้องกับการตรวจสอบ Code และช่วยดูว่า Features ต่าง ๆ จะมารวมกันอย่างไร เป็นต้น
บางบริษัทอาจใช้ชื่อตำแหน่งว่า Project Lead และ Lead Developer เป็นต้น
บทความแนะนำ ถอด 7 บทเรียน จาก Tech Lead มือใหม่ คลิกอ่านเลย
บทบาทที่ 2: Software Architect
สำหรับผู้ที่สนใจและอยากเรียนรู้เกี่ยวกับ Software Development และ Design ให้ลึกซึ้งมากขึ้น ขั้นต่อไปสำหรับพวกเขา หลังจาก Senior Developer คือ Software Architect ซึ่ง Architects มักจะจัดการกับ Structure ของ Systems ที่มีความซ้ำซ้อนมากขึ้น และดูว่า Systems นั้น Interact และทำงานร่วมกันเป็นอย่างไร? ดังนั้น พวกเขามักจะต้องตัดสินใจสิ่งสำคัญ ๆ เช่น เลือก Technologies ที่จะนำใช้ใน Projects (ความรับผิดชอบอาจแตกต่างกันไป ขึ้นอยู่กับขนาดของบริษัท)
ทั้ง Team Lead และ Software Architect สามารถเป็นจุดเปลี่ยน ให้คุณก้าวสู่ตำแหน่งผู้บริหารระดับสูง (Upper Management) เนื่องจากทั้ง 2 ตำแหน่งนี้ ต้องมีทั้งความน่าเชื่อถือ ทักษะและความสามารถต่าง ๆ รวมถึงประสบการณ์
ถ้าคุณไม่ต้องการที่จะก้าวสู่ตำแหน่งผู้บริหารระดับสูง (Upper Management) ตำแหน่ง Team Lead หรือ Software Architect มักจะเป็นระดับที่สูงที่สุดแล้วในสายอาชีพนี้ ซึ่งคุณยังคงเป็น Software Developer และได้ลงมือทำจริงอยู่
เส้นทางที่ 2: People Management Career Path
People Management ครอบคลุมบทบาททุกประเภทที่เกี่ยวข้องกับความเป็นผู้นำ และการดำเนินการของทีม ซึ่งนอกเหนือจากการ Development แล้ว ยังสามารถเป็นบันไดก้าวสู่ Management Career ได้
สำหรับผู้ที่สนใจตำแหน่งเกี่ยวกับ Leadership หรืออยากทำงานด้าน Company Management เส้นทางนี้อาจเหมาะกับคุณ ซึ่ง People Management ครอบคลุมบทบาทต่าง ๆ ดังนี้
บทบาทที่ 1: Software Development Manager
Software Development Manager เป็นบทบาทที่สามารถเห็นได้ทั่วไปในบริษัทขนาดใหญ่ หน้าที่หลัก คือ การจัดการและช่วยเหลือ Software Developers เช่น
-
- Hiring/Training สำหรับ Developers
- กำหนด/จัดการ เป้าหมาย สำหรับ ทีม Development
- ติดตามและมอบหมายงาน
- จัดทำ Plans, Reports และคอยช่วยเหลือ ทั้งทีม Software Development และ ทีม Management ระดับสูง
- ในบางกรณี Managers จะต้องรับผิดชอบในการติดต่อสื่อสารกับลูกค้าด้วย
บทบาทที่ 2: Project / Product Manager
คล้ายกันกับ Software Development Managers เนื่องจาก Project / Product Managers มีหน้าที่หลายอย่างที่เหมือนกัน ซึ่งความรับผิดชอบหลักของ Project / Product Managers คือ การเป็นผู้นำทีมหรือ Project ที่กำหนด แบ่งงานให้ทีม จัดการและดำเนินการให้ Project นั้น ๆ สำเร็จ
โดยคุณจะเป็นตัวกลางที่จะคอยสื่อสารกับลูกค้า และทีม Development เช่น สื่อสารคำถามของทีม Development ให้กับลูกค้า และในขณะเดียวกัน ต้องสื่อสารสิ่งที่ลูกค้ากังวลและคำถามต่าง ๆ ให้กับทีม Development และที่สำคัญที่สุดคือ Project / Product Managers มีหน้าที่รับผิดชอบต่อ ความสำเร็จหรือความล้มเหลว ของทีมและ Project นั้น ๆ ด้วย
บทบาทที่ 3 และ 4: Upper Management (CTO, Director of Engineering, etc.)
สำหรับผู้ที่ต้องการความก้าวหน้า และมีความรับผิดชอบเพิ่มมากขึ้น กว่าตอนที่เป็น Manager ขั้นต่อไป ก็คือ การก้าวขึ้นสู่ตำแหน่งผู้บริหารระดับสูง (Upper Management) และอย่าลืมว่าหนึ่งในหนทางเพื่อก้าวสู่ตำแหน่งผู้บริหารระดับสูง (Upper Management) คือ การเป็น Software Architect
ประเภทของตำแหน่งผู้บริหารระดับสูง (Upper Management) ขึ้นอยู่กับขนาดของบริษัท ซึ่งในบริษัทขนาดเล็ก (พนักงาน <200 คน) คุณมักจะเห็น Chief Technology Officer เป็นบทบาทหลัก (ซึ่งบางบริษัทอาจไม่มีตำแหน่งนี้)
อย่างไรก็ตาม ในบริษัทขนาดใหญ่ มีโอกาสต่าง ๆ มากมาย เช่น Director of Engineering หรือ Director สำหรับแผนกต่าง ๆ ในบริษัท และบางบริษัทอาจใช้ชื่อ “Vice President of Engineering” เป็นต้น ตำแหน่งเหล่านี้มักขึ้นอยู่กับโครงสร้างของบริษัท ซึ่งบทบาทและความรับผิดชอบของตำแหน่งเหล่านี้ มีความคล้ายคลึงกันมาก แม้ชื่อตำแหน่งจะแตกต่างกันก็ตาม
ตำแหน่ง VP และ Director มักจะต้องรับผิดชอบแทบทุกเรื่องที่เกี่ยวกับ Software Development ที่เกิดขึ้นภายในบริษัท ซึ่งพวกเขามักทำงานร่วมกับ Product/Project Managers เพื่อให้แน่ใจว่า Project ต่าง ๆ กำลังดำเนินงานไปได้อย่างราบรื่น และต้องสามารถระบุสิ่งที่ควรปรับปรุงภายในบริษัทอีกด้วย
ในทางกลับกัน CTO มักจะทำงานกับตำแหน่งระดับ C-Level คนอื่น ๆ และผู้ถือหุ้นเป็นส่วนใหญ่ ความรับผิดชอบของพวกเขาคือ เปรียบเสมือนผู้ประกาศข่าวในบริษัท และสิ่งที่ต้องทำในแต่ละวันของพวกเขานั้น มักจะเกี่ยวข้องกับการสร้างความสัมพันธ์ และการประชุมกับคณะกรรมการ โดยมี VP และ Director of Engineering จะคอยรายงานสถานการณ์ให้กับ CTO ซึ่งจะแจ้งให้ทราบทุก ๆ เรื่องที่เกิดขึ้นเกี่ยวกับ Software Development
แต่หากเป็นบริษัทขนาดเล็ก บ่อยครั้งคุณจะเห็น CTO มีหน้าที่รับผิดชอบทุกเรื่องที่ได้ระบุไว้สำหรับ VP และ Director ซึ่งในหลาย ๆ ครั้ง คุณจะเห็น CTO ในบริษัท Startups ยังคงมีส่วนเกี่ยวข้องกับ Development ของ Products อยู่ และยังต้องลงมือปฏิบัติจริงด้วย ซึ่งหมายความว่าพวกเขายังต้องมีส่วนร่วมในทุก ๆ ขั้นตอนในการสร้าง Products แต่ละตัว แต่เมื่อใดที่บริษัท Startups เติบโตขึ้นเป็นบริษัทขนาดใหญ่ ความรับผิดชอบประเภทนี้ก็จะถูกส่งต่อไปยังผู้อื่น เนื่องจาก Scope ที่พวกเขาต้องโฟกัสนั้นจะกว้างมากขึ้น
บทความแนะนำ DevOps เป็นแนวคิด (ที่ทุกคน) ยอมรับว่า “ดี” แต่ไม่มีใคร ยอมรับว่า “ไม่ได้ทำ” คลิกอ่าน
และทั้งหมดนี้คือ Career Roadmap สำหรับ Software Developer หากคุณกำลัง หางาน IT สามารถส่ง Resume มาสมัครงานกับเราได้ที่ https://www.ismtech.net/submit-your-resume และให้ ISM Technology Recruitment เป็นอีกหนึ่งตัวช่วย ให้คุณได้ “ชีวิตการทำงานในแบบที่คุณต้องการ”
ISM เชี่ยวชาญในธุรกิจ IT Recruitment & IT Outsourcing โดยเฉพาะ เปิดทำการมากว่า 30 ปี มีพนักงานทุกสายและทุกระดับทางด้าน IT ที่ได้ร่วมงานกับลูกค้าองค์กรใหญ่ที่มีชื่อเสียงและบริษัทข้ามชาติมากมาย
Source: https://levelup.gitconnected.com/