โรดแมปสายอาชีพวิศวกร Frontend: 3 เส้นทางความเชี่ยวชาญสำหรับจูเนียร์
(steady-study.super.site)ประวัติศาสตร์ของการพัฒนา frontend ยังสั้น ทำให้องค์กรจำนวนมากต้องการวิศวกร frontend ระดับซีเนียร์ที่เก่ง แต่หาได้ยาก จน CTO ของสตาร์ทอัพขนาดเล็กและกลางหลายแห่งต้องเผชิญความกังวลคล้ายกัน
- ระดับทักษะที่คาดหวังจาก frontend ไม่ได้สูงมากนัก จึงมีแรงจูงใจในการพัฒนาความสามารถของวิศวกรค่อนข้างน้อย
- มี role model ที่เติบโตสายอาชีพได้ดีจากการเป็น frontend engineer อยู่รอบตัวไม่มาก ทำให้ออกแบบเส้นทางอาชีพได้ยาก
- เมื่อในองค์กรไม่มี senior frontend engineer วิศวกรระดับกลางจึงมักถูกคาดหวังเรื่องภาวะผู้นำมากขึ้น
บทความนี้เขียนขึ้นเพื่อ frontend engineer ที่กำลังกังวลเรื่องเหล่านี้ รวมถึงทีมลีดและ CTO ที่กำลังคิดว่าจะนำทางพวกเขาอย่างไร หวังว่าจะเป็นประโยชน์ในฐานะแนวทางว่า frontend engineer ควรต่อยอดความเชี่ยวชาญไปในทิศทางใด และจะสร้างเส้นทางอาชีพสู่ความเป็นซีเนียร์ได้อย่างไร
1. การเป็นวิศวกรที่ยอดเยี่ยม
ประโยคที่ว่า ‘ฉันอยากเป็น senior frontend engineer ที่ยอดเยี่ยม’ สามารถตีความได้ใน 3 มุม
- อยากเป็น วิศวกร ที่ยอดเยี่ยม (ในฐานะ senior frontend)
- อยากเป็น frontend engineer ที่ยอดเยี่ยม (ในฐานะ senior)
- อยากเป็น senior engineer ที่ยอดเยี่ยม (ซึ่งทำ frontend)
ตามงานวิจัย What Makes a Great Software Engineer? วิศวกรที่ยอดเยี่ยมคือคนที่เขียนโค้ดได้ดี เพิ่มคุณค่าปัจจุบันของงานให้สูงสุด ตัดสินใจบนพื้นฐานของข้อมูล ช่วยให้เพื่อนร่วมงานตัดสินใจได้อย่างมีประสิทธิภาพ และเรียนรู้อย่างต่อเนื่อง หากพยายามพัฒนาความสามารถทั้งห้าข้อนี้ ก็จะกลายเป็นวิศวกรที่ดีได้
เพิ่มเติมคือ เมื่อปัญญาประดิษฐ์มีบทบาทมากขึ้นเรื่อย ๆ ทักษะการสื่อสารและการเขียนจึงสำคัญยิ่งกว่าเดิม หากต้องการใช้งาน AI เป็นผู้ช่วยให้ทำงานได้อย่างมีประสิทธิภาพ แทนที่จะถูก AI เข้ามาแทนที่งานพัฒนา ก็ควรศึกษาเรื่องการเขียนภาษาอังกฤษหรือเทคนิคการสัมภาษณ์ในมุมมองของ Prompt Engineering
2. การเป็น frontend engineer ที่ยอดเยี่ยม
ต่อยอดจากพื้นฐานข้างต้น ผมลองสรุปไว้ 3 แทร็กว่าจูเนียร์ frontend engineer ควรสะสมความเชี่ยวชาญไปในทิศทางใด แต่ละแทร็กเกื้อหนุนกัน ดังนั้นคนที่มีความเชี่ยวชาญด้านหนึ่งมากพอ จะต่อยอดไปยังอีกแทร็กได้ง่ายขึ้นมาก และแน่นอนว่าเส้นทางอาชีพที่เป็นไปได้ในระดับซีเนียร์ของแต่ละแทร็กก็ทับซ้อนกันอยู่บางส่วน
(แทร็ก “สายปฏิบัติการ” รวมทั้งมุมมองแบบ DevOps และมุมมองด้านกระบวนการ/การดำเนินงานขององค์กรไว้ด้วยกัน แต่ทั้งสองความสามารถนี้ไม่จำเป็นต้องพัฒนาไปพร้อมกันเสมอถึงจะสร้างเส้นทางอาชีพที่ดีได้ ผมเองก็เคยลังเลว่าจะต้องแยก “แทร็กเน้นกระบวนการ” ออกมาต่างหากหรือไม่ แต่ตอนนี้ยังรู้สึกว่าความสามารถของตัวเองยังไม่พอจะทำให้แทร็กที่ 4 มีความหมายชัดเจน จึงขอรวมไว้ก่อน)
แทร็กเชี่ยวชาญด้านเว็บ (Software Engineer)
- ลักษณะเด่น
- เข้าใจและใช้งานอินเทอร์เน็ต เว็บเบราว์เซอร์ HTML/CSS/JS ได้อย่างลึกซึ้ง
- รู้ข้อดีข้อเสียของเครื่องมือแต่ละตัวใน ecosystem ของเว็บ และมีประสบการณ์ troubleshooting ในสภาพแวดล้อมที่หลากหลาย
- ไวต่อเทคโนโลยีใหม่ ๆ ที่เกิดขึ้นบนเว็บ และลองนำมาใช้ด้วยตัวเอง
- ข้อดีข้อเสีย
- ในระดับหนึ่งสามารถยกระดับความสามารถได้ด้วยตัวเองค่อนข้างง่าย
- หากอยู่ในองค์กรที่ความซับซ้อน/ความเป็นผู้ใหญ่ของผลิตภัณฑ์ยังไม่มาก ก็อาจมีโอกาสน้อยที่จะได้แสดงความเชี่ยวชาญจนเป็นที่ยอมรับ
- วิธีพัฒนาความสามารถ
- ศึกษาจากหนังสือและคอนเทนต์บนอินเทอร์เน็ตตามคีย์เวิร์ดใน roadmap แล้วลองใช้กับ side project
- สมัครรับ newsletter มีส่วนร่วมกับ open source ทดสอบเทคโนโลยีใหม่ ทำความเข้าใจหลักการทำงานและข้อจำกัดของเครื่องมือที่ใช้ และบางครั้งก็สร้างเครื่องมือขึ้นมาเอง
- ลอง troubleshooting ในสภาพแวดล้อมที่หลากหลายและปรับปรุงประสิทธิภาพให้ดีขึ้น
- เส้นทางอาชีพที่เป็นไปได้เมื่อเป็นซีเนียร์
- ผู้สอนคอร์สที่ช่วยยกระดับทักษะด้านเว็บ
- software engineer (ในองค์กรที่สร้างเครื่องมือสำหรับ ecosystem ของเว็บ)
- software engineer (ในองค์กรที่ดูแลผลิตภัณฑ์ซับซ้อนสูง)
- frontend tech lead
แทร็กเชี่ยวชาญด้านผลิตภัณฑ์ (Product Engineer)
- ลักษณะเด่น
- ใช้โค้ดไม่มากก็สามารถผสมผสานหลายเครื่องมือเพื่อสร้างผลลัพธ์ให้ผลิตภัณฑ์ระยะแรกได้
- เข้าใจตลาดและลูกค้าอย่างลึกซึ้ง และรู้วิธีนำแนวทางต่าง ๆ มาใช้ในงานจริงเพื่อเพิ่มความเข้าใจนั้น
- สื่อสารกับทีมการตลาดและฝ่ายขายบ่อยครั้งเพื่อช่วยให้เข้าใจผลิตภัณฑ์
- ข้อดีข้อเสีย
- เป็นที่ต้องการอย่างมากในสตาร์ทอัพระยะเริ่มต้นที่กำลังพยายามพิสูจน์ผลิตภัณฑ์ในตลาด
- หากอยู่แต่ในพื้นที่ปลอดภัยของตัวเอง ก็อาจถูกองค์กรผลิตภัณฑ์ที่ตัวเองช่วยสร้างทิ้งไว้ข้างหลังได้
- วิธีพัฒนาความสามารถ
- ใช้งานผลิตภัณฑ์ที่ยอดเยี่ยมในโดเมนของตนอย่างมีการวิเคราะห์ สังเกตลูกค้า และพัฒนา product sense
- อย่ายึดติดกับการผสมผสานเครื่องมือแบบเดิม ๆ แต่ปรับปรุงกล่องเครื่องมือของตัวเองอย่างต่อเนื่อง
- เมื่อผลิตภัณฑ์ระยะแรกที่ตนเป็นผู้นำเริ่มประสบความสำเร็จ และถึงเวลาที่ต้องรื้อโครงสร้างกับโค้ดใหม่ ก็ต้องอดทนผ่านช่วงเปลี่ยนล้อขณะรถยังวิ่งไปด้วยกันให้ได้
- เส้นทางอาชีพที่เป็นไปได้เมื่อเป็นซีเนียร์
- software engineer (ในทุกองค์กรที่กำลังมองหา PMF)
- growth engineer, growth consultant
- frontend tech lead, technical program manager
- PM, PO, CPO
แทร็กเชี่ยวชาญด้านปฏิบัติการ (Full-Stack Engineer)
- ลักษณะเด่น
- สนใจเรื่องโครงสร้างโปรเจกต์ การรวมระบบ การทดสอบ และการ deploy อย่างมาก
- สร้าง API แบบง่าย ๆ ได้เอง และสามารถจัดวาง infrastructure ที่จำเป็นได้ด้วยตัวเอง
- เมื่อองค์กรเติบโตขึ้นก็สามารถมองเห็นช่องโหว่และความไม่มีประสิทธิภาพที่เกิดขึ้น ลงมืออุดช่องว่างเอง และปรับปรุงกระบวนการ
- ข้อดีข้อเสีย
- มีโอกาสได้รับการยอมรับจากการครอบคลุมงานกว้างและร่วมงานกับผู้คนจำนวนมาก
- หากไม่ตั้งใจพัฒนาตัวเองอย่างมีสติ ทักษะเชิงเทคนิคอาจถดถอย และอาจหมดไฟจากการทำแต่งานซ้ำ ๆ
- วิธีพัฒนาความสามารถ
- ขยายขอบเขตงานด้วยการทำ admin backend API และจัดวาง frontend infrastructure เป็นต้น
- รับมือกับทราฟฟิกขนาดใหญ่และเหตุขัดข้องในองค์กรที่เติบโตแบบก้าวกระโดด
- เจาะลึกกระบวนการปฏิบัติการและแนวปฏิบัติของบริษัทใหญ่ หรือเรียนรู้จากการ mentorship/การบรรยาย แล้วนำมาปรับใช้ให้เหมาะกับองค์กรของตัวเอง
- เส้นทางอาชีพที่เป็นไปได้เมื่อเป็นซีเนียร์
- software engineer (ในองค์กรขนาดใหญ่ที่มีผลิตภัณฑ์หลากหลาย)
- frontend tech lead, technical program manager
- engineering manager, agile coach, VP of Engineering
- CTO
3. การเป็น senior engineer ที่ยอดเยี่ยม
แล้วคนที่สั่งสมความเชี่ยวชาญตามแนวทางข้างต้น จะกลายเป็น senior engineer ที่ยอดเยี่ยมได้อย่างไร? จากประสบการณ์ว่าผมได้มารับบทบาทซีเนียร์อย่างไร และวิศวกรซีเนียร์ที่ยอดเยี่ยมที่ผมเคยพบเป็นคนแบบไหน ผมขอชี้ 3 ประเด็นสำคัญสำหรับการเป็น senior engineer ที่ยอดเยี่ยม
- พยายามยึดมั่นในพื้นฐาน: ความสามารถ 5 ข้อของวิศวกรที่ยอดเยี่ยมนั้น แน่นอนว่านำมาใช้กับ senior engineer ได้เหมือนกันทุกประการ
- แม้ไม่ใช่ผู้นำโดยตำแหน่ง ก็จงทำตัวเหมือนผู้นำ: ภาวะผู้นำสามารถแสดงออกได้เต็มที่แม้ไม่ได้เป็นผู้นำอย่างเป็นทางการ และบางครั้งการกระทำที่เป็นแบบอย่างของเพื่อนร่วมงานเพียงครั้งเดียว ก็ส่งอิทธิพลได้มากกว่าคำพูดนับไม่ถ้วนของผู้นำอย่างเป็นทางการเสียอีก หากพยายามสร้างผลกระทบเชิงบวกต่อผลิตภัณฑ์ ทีม และองค์กรทั้งหมด โดยไม่ยึดติดกับบทบาทที่ได้รับ วันหนึ่งก็จะได้รับการยอมรับว่าเป็นซีเนียร์เอง
- สร้างผลกระทบขนาดใหญ่ได้ในทุกสถานการณ์: แม้แต่การกระทำเล็ก ๆ อย่างการ debug ซีเนียร์ก็สร้างอิทธิพลได้มากกว่าจูเนียร์อย่างชัดเจน หากไม่พอใจแค่ทำงานที่ได้รับมอบหมายให้เสร็จ แต่ยังมองบริบทก่อนหลังและสื่อสารกับหลายฝ่ายเพื่อสร้างผลกระทบที่ใหญ่กว่า ก็จะเติบโตเป็นซีเนียร์ที่สามารถไว้วางใจให้ดูแลส่วนสำคัญได้ ไม่ว่าจะในผลิตภัณฑ์ ทีม หรือบริษัท
3 ความคิดเห็น
ตอนนี้เป็นนักพัฒนาระดับจูเนียร์ที่ทำงานมาครบ 3 ปีแล้ว รู้สึกชัดเลยว่า
ขึ้นอยู่กับความยากของงานและสภาพแวดล้อมในบริษัท บางอย่างก็ไม่ค่อยมีโอกาสได้ลองใช้จริงเท่าไร.. เลยค่อย ๆ สั่งสมตรงส่วนนั้นผ่าน side project แต่การจะทำอย่างสม่ำเสมอก็ไม่ง่ายเลยนะ... 555
เป็นบทความที่ดีมากเลยครับ ไม่รู้ตัวเหมือนกันว่าเข้ามาอยู่ในสายเว็บฟรอนต์เอนด์ และตอนนี้ก็ผ่านไปเกิน 10 ปีแล้ว แม้ว่าผมเองจะมีความกังวลเรื่องเส้นทางอาชีพอยู่เหมือนกัน แต่การให้คำแนะนำเรื่องอาชีพกับรุ่นจูเนียร์นั้นยากมากจริงๆ คิดว่าน่าจะนำไปใช้เป็นแนวทางได้ดีในการไกด์ด้วยโรดแมปสายอาชีพครับ
ผมเขียนโดยคำนึงถึงทั้งฝั่งจูเนียร์และซีเนียร์ ดีใจที่มันน่าจะเป็นประโยชน์นะครับ ขอบคุณสำหรับคอมเมนต์ครับ!