40 คะแนน โดย spilist2 2022-12-30 | 3 ความคิดเห็น | แชร์ทาง WhatsApp

ประวัติศาสตร์ของการพัฒนา 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 ความคิดเห็น

 
devsepnine 2023-01-03

ตอนนี้เป็นนักพัฒนาระดับจูเนียร์ที่ทำงานมาครบ 3 ปีแล้ว รู้สึกชัดเลยว่า
ขึ้นอยู่กับความยากของงานและสภาพแวดล้อมในบริษัท บางอย่างก็ไม่ค่อยมีโอกาสได้ลองใช้จริงเท่าไร.. เลยค่อย ๆ สั่งสมตรงส่วนนั้นผ่าน side project แต่การจะทำอย่างสม่ำเสมอก็ไม่ง่ายเลยนะ... 555

 
hohpark 2023-01-02

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

 
spilist2 2023-01-02

ผมเขียนโดยคำนึงถึงทั้งฝั่งจูเนียร์และซีเนียร์ ดีใจที่มันน่าจะเป็นประโยชน์นะครับ ขอบคุณสำหรับคอมเมนต์ครับ!