CodeGym /จาวาบล็อก /สุ่ม /การเป็นนักพัฒนาอาวุโสเป็นอย่างไร คำแนะนำสั้น ๆ เกี่ยวกับบ...
John Squirrels
ระดับ
San Francisco

การเป็นนักพัฒนาอาวุโสเป็นอย่างไร คำแนะนำสั้น ๆ เกี่ยวกับบทบาท

เผยแพร่ในกลุ่ม
ตามธรรมเนียมแล้ว นักพัฒนาในอุตสาหกรรมเทคโนโลยีจะแบ่งออกเป็นสี่ระดับตามระดับคุณสมบัติ: จูเนียร์ กลาง อาวุโส และหัวหน้าทีม ในสองบทความก่อนหน้านี้ เราได้กล่าวถึงพื้นฐานทั้งหมดของการเป็น Developer ระดับจูเนียร์และระดับกลางแล้ว ตอนนี้ได้เวลาย้ายไปยังการไล่ระดับสีถัดไป Senior Developer การเป็นหนึ่งเป็นอย่างไร และ Senior แตกต่างจาก Coder ระดับกลางอย่างไร ลองหากัน การเป็นนักพัฒนาอาวุโสเป็นอย่างไร  คำแนะนำสั้น ๆ เกี่ยวกับบทบาท - 1

ใครคือนักพัฒนาอาวุโส?

ในบทความดังกล่าวเกี่ยวกับวิชาชีพและความเชี่ยวชาญเฉพาะทางในการพัฒนาซอฟต์แวร์ เราจำเป็นต้องปฏิเสธความรับผิดชอบเสมอ โดยอธิบายว่าการรับรู้และความเข้าใจในตำแหน่งงานหนึ่งอาจแตกต่างกันไปมาก ขึ้นอยู่กับบริษัท อุตสาหกรรมที่ดำเนินการ และปัจจัยอื่นๆ . คนบางคนซึ่งส่วนใหญ่ค่อนข้างเป็นคนหัวโบราณเชื่อว่าคุณได้รับอนุญาตให้เรียกตัวเองว่าเป็นผู้อาวุโสได้ก็ต่อเมื่อคุณมีประสบการณ์ในการเขียนโค้ดมากกว่า 10 ปี ซึ่งเป็นเรื่องที่รับผิดชอบ หมายความว่า เฉพาะปีที่คุณเขียนโค้ดในฐานะพนักงานเต็มเวลาจริง ๆ คุณไม่สามารถเริ่มนับได้ตั้งแต่ตอนที่คุณพยายามเขียนโปรแกรมขั้นพื้นฐานตอนอายุ 12 ปี (อย่างที่นักเขียนโค้ดรุ่นเยาว์หลายคนมักจะทำกัน สร้างความไม่พอใจให้โปรแกรมเมอร์อาวุโสจริง ๆ ). อนุรักษ์นิยมน้อยลง หลายคนเชื่อว่าการทำงานเต็มเวลามากกว่าห้าปีในฐานะนักพัฒนาซอฟต์แวร์ทำให้คุณสามารถเรียกตัวเองว่าเป็นผู้อาวุโสได้ ในทางกลับกัน ประสบการณ์หลายปีเป็นเพียงตัวเลข สิ่งที่สำคัญจริงๆ คือความรู้ ทักษะ และประสบการณ์ที่เกี่ยวข้อง นี่คือที่ที่คุณต้องทำงานจริงเพื่อให้สมควรได้รับตำแหน่ง Senior เนื่องจาก Senior Developer มักถูกมองว่าเป็นวิซาร์ดการเขียนโค้ดที่รอบรู้รอบด้าน ในการรับรู้ของผู้บริหาร โดยปกติแล้ว Senior คือผู้ที่รู้วิธีแก้ปัญหางานที่เกี่ยวข้องกับโครงการหรือวิธีเขียนโค้ดที่จำเป็น แต่หน้าที่ที่สำคัญที่สุดอย่างหนึ่งของนักพัฒนาอาวุโสในโครงการพัฒนาซอฟต์แวร์เฉพาะคือความรู้ของตัวโครงการเองกับปัญหา ความต้องการ ความแตกต่าง และอื่นๆ ทั้งหมด ความสามารถในการทำงานด้วยตนเองเป็นคุณสมบัติที่สำคัญของผู้อาวุโส ซึ่งหมายความว่าผู้อาวุโสรู้ว่าควรทำอะไรและเมื่อใด และไม่ต้องการการดูแลเพื่อส่งมอบงานที่เขาคาดว่าจะทำ และนี่ถือเป็นคุณภาพที่ค่อนข้างมีค่าในสายตาของผู้ว่าจ้าง เพราะมันหมายความว่าคุณสามารถมอบงานที่เกี่ยวข้องกับโครงการให้กับนักพัฒนารายนี้และปล่อยให้ส่วนที่เหลือทั้งหมดเป็นของเขา/เธอ “ส่วนที่เหลือทั้งหมด” คือ: การค้นหาความต้องการ ความต้องการ และข้อจำกัดสำหรับงานที่ต้องทำให้เสร็จ การหาวิธีการที่เหมาะสม การหาเครื่องมือที่เหมาะสม การแบ่งงานใหญ่ให้เป็นงานเล็ก และมอบให้ระดับกลางและระดับจูเนียร์ นักพัฒนา ฯลฯ มีแง่มุมสำคัญอีกประการหนึ่งที่ทำให้ผู้สูงอายุแตกต่างจากผู้เขียนโค้ดระดับกลางและจูเนียร์ มันอยู่ในรหัสที่พวกเขาเขียนและวิธีที่พวกเขาทำ โดยปกติแล้วผู้อาวุโสคือและควรเป็นผู้ที่เขียนโค้ดที่ชัดเจน เรียบง่าย และรัดกุมที่สุด บางครั้งรหัสนี้ดูตรงไปตรงมามากเกินไปและเป็นพื้นฐานดั้งเดิม นี่เป็นเพราะผู้อาวุโสต้องพิจารณาไม่เพียงแค่ความสำเร็จของงานที่เป็นผลลัพธ์สุดท้าย แต่ยังรวมถึงผลกระทบโดยรวมของรหัสใหม่ต่อฐานรหัสของโครงการด้วย นักพัฒนาอาวุโสเขียนโค้ดของตนโดยคำนึงถึงความสามารถในการบำรุงรักษาและการปรับขยายได้ และนี่คือจุดแข็งที่สำคัญของพวกเขา ซึ่งจะมาพร้อมกับประสบการณ์เท่านั้นและไม่มีอะไรอย่างอื่น

ความรับผิดชอบของ Senior Developer คืออะไร?

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

ข้อกำหนดสำหรับนักพัฒนาอาวุโส

ต่อไปนี้คือรายการข้อกำหนดที่พบบ่อยที่สุดสำหรับ Senior Developer ที่คุณควรปฏิบัติตามเพื่อให้ได้งานนี้ แน่นอน ข้อกำหนดจะแตกต่างกันไปขึ้นอยู่กับนโยบายการจ้างงานของบริษัท เทคโนโลยีที่ใช้ในโครงการ และภาษาโปรแกรมของคุณ
  • ความรู้ทั่วไปอย่างกว้างขวางเกี่ยวกับการพัฒนาซอฟต์แวร์และเทคโนโลยี
  • ความรู้ที่แข็งแกร่งของ Java;
  • ประสบการณ์ในการออกแบบ สร้าง และทดสอบแอปพลิเคชันระดับองค์กร
  • ความรู้เชิงลึกเกี่ยวกับเฟรมเวิร์ก Java ยอดนิยม เช่น Spring, Spring Boot หรือ Java EE, JSF และอื่นๆ
  • ประสบการณ์การออกแบบเชิงวัตถุ (OOD)
สิ่งเหล่านี้เป็นเพียงข้อกำหนดพื้นฐานที่เกี่ยวข้องกับการเขียนโปรแกรม แต่การมีความรู้ทางเทคนิคมักไม่เพียงพอที่จะได้งานของ Senior Developer เนื่องจากมีทักษะสำคัญอื่นๆ อีกมากมายที่ประกอบกันเป็น Senior ที่แข็งแกร่ง ต่อไปนี้เป็นข้อกำหนดที่ไม่ใช่เทคโนโลยีที่กล่าวถึงโดยทั่วไปสำหรับ Sr. Developer
  • ทักษะการมอบหมายงานและการบริหารเวลาที่ดี
  • ความสามารถในการแก้ปัญหา
  • ทักษะการสื่อสารที่ดี;
  • มีทักษะในการสื่อสารเป็นลายลักษณ์อักษรและวาจาที่ดี
  • ความสามารถในการทำตามกำหนดเวลาและคิดอย่างมีกลยุทธ์

นักพัฒนาอาวุโสทำเงินได้เท่าไหร่?

ดังที่คุณอาจทราบ เมื่อ พูดถึงเงินเดือนสำหรับงานเขียนโค้ดในสหรัฐอเมริกา สำหรับ Senior Developer ที่มีประสบการณ์นั้นไม่มีขีดจำกัด เนื่องจากยักษ์ใหญ่อย่างGoogle, Facebook, Amazon, Apple และ Microsoft ต่างจ่ายเงินให้วิศวกรซอฟต์แวร์เป็นจำนวนมาก ตัวอย่างเช่น ที่ Google วิศวกรซอฟต์แวร์ระดับ 7 ซึ่งถือว่าสูงที่สุดที่คุณจะได้รับในฐานะนักพัฒนา สามารถทำเงินรวม 608,000 ดอลลาร์ต่อปี แต่มาดูตัวเลขเฉลี่ยกัน จากข้อมูลของ Glassdoorโปรแกรมเมอร์อาวุโสโดยเฉลี่ยในสหรัฐอเมริกาทำเงินได้ประมาณ 121,000 ดอลลาร์ต่อปี ซึ่งสูงกว่ามากเมื่อเทียบกับเงินเดือนของโปรแกรมเมอร์ระดับกลางที่ 71,000 ดอลลาร์ต่อปี และค่าจ้างเฉลี่ย 63,502 ดอลลาร์ต่อปีที่นักพัฒนาซอฟต์แวร์รุ่นเยาว์ทำในสหรัฐอเมริกา รายงาน_โดย PayScale นักพัฒนาอาวุโสที่มีประสบการณ์ 10-19 ปี ได้รับค่าตอบแทนรวมเฉลี่ย 109,122 ดอลลาร์ จากเงินเดือน 5,523 ในช่วงปลายอาชีพ (20 ปีขึ้นไป) พนักงานจะได้รับค่าตอบแทนรวมเฉลี่ย 111,432 ดอลลาร์ ในเยอรมนีจากข้อมูลของ PayScale นักพัฒนาซอฟต์แวร์อาวุโสที่มีประสบการณ์มากกว่า 10 ปีจะได้รับค่าตอบแทนเฉลี่ยรวม 63,638 ยูโร ในประเทศฝรั่งเศสเงินเดือนเฉลี่ยของผู้อาวุโสคือ 54,982 ยูโร ตามปกติแล้ว เมื่อพูดถึงตัวเลขเพียงอย่างเดียว โปรแกรมเมอร์ชาวอเมริกันนำหน้าเพื่อนร่วมงานในยุโรปและที่อื่นๆ อีกประเด็นที่น่าสนใจที่ควรทราบคือโปรแกรมเมอร์อาวุโสในอเมริกามีรายได้มากกว่าผู้เขียนโค้ดระดับกลางอย่างเห็นได้ชัด บางที สิ่งนี้อาจอธิบายได้ดีที่สุดด้วยสมมติฐานที่ว่าผู้เขียนโค้ดอาวุโสที่เป็นมืออาชีพและมีประสบการณ์จริงๆ ส่วนใหญ่ในสหรัฐอเมริกาทำงานให้กับบริษัทยักษ์ใหญ่ด้านเทคโนโลยีของอเมริกา ซึ่งเป็นผู้ใช้แรงงานด้านซอฟต์แวร์ชั้นนำของโลก

มุมมองด้านอาชีพ

เมื่อพูดถึงมุมมองด้านอาชีพ นักพัฒนาอาวุโสมีแน่นอน แต่ที่น่าตลกคือพวกเขาส่วนใหญ่ไม่ได้มองหาอะไรเลย ตำแหน่งต่างๆ เช่น หัวหน้าทีมและหัวหน้าฝ่ายเทคโนโลยีจะเป็นหนึ่งในตัวเลือกหลักในการก้าวไปสู่ระดับอาวุโส ตลอดจนตัวเลือกต่างๆ ในการจัดการเทคโนโลยี โดยตำแหน่ง CTO และ CEO ของบริษัทเทคโนโลยีอาจเป็นความสำเร็จสูงสุดที่เป็นไปได้ในอาชีพการงานของนักพัฒนาอาวุโส แน่นอนว่า CTO นั้นมีความสมจริงมากกว่า เนื่องจากแม้ในอุตสาหกรรมเทคโนโลยี ซีอีโอส่วนใหญ่ไม่มีพื้นฐานทางเทคนิคหรือมีข้อจำกัดมากนัก แม้แต่ในอุตสาหกรรมเทคโนโลยี

การเป็น Senior Developer เป็นอย่างไร ความคิดเห็น

โดยปกติแล้ว เมื่อพูดถึงตำแหน่ง Senior Developer โดยทั่วไป การสนทนาส่วนใหญ่มักจะเน้นไปที่หัวข้อหลักสองหัวข้อที่ Developer กระตือรือร้นที่จะถกเถียงกัน: อะไรทำให้คุณเป็น Senior Dev และเร็วแค่ไหนที่คุณจะเริ่มเรียกตัวเองว่าเป็น Senior “นั่นอาจทำให้บางคนประหลาดใจ แต่งานระดับอาวุโสมักขอให้ผู้สมัครมีประสบการณ์ระหว่าง 5 ถึง 8 ปี มีบ้างที่ขอเป็น 10 ปีขึ้นไปก็มีไม่น้อย ในฐานะนักพัฒนาอาวุโส บริษัทจะคาดหวังให้คุณสามารถนำแนวคิดที่คลุมเครือ ระบุ วางแผนการพัฒนา มีส่วนร่วมกับทีม และติดตามจนจบ ในขณะที่โดยทั่วไปแล้วนักพัฒนาระดับกลางจะถูกคาดหวังให้ทำงานแต่ละอย่างที่ได้รับมอบหมายโดยปราศจากการควบคุมดูแล ทำงานภายในทีมและดำเนินการให้คำปรึกษาบางอย่างแบ่งปันมุมมองของเขา “กับนักพัฒนาอาวุโส ฉันสามารถให้เป้าหมายระดับสูง/ที่คลุมเครือมากขึ้น และพวกเขาสามารถระบุได้ สร้างแผนสำหรับการดำเนินการ ดำเนินการโดยฉัน จากนั้นนำไปปฏิบัติโดยใช้มือเพียงเล็กน้อย ดังนั้น เมื่อคุณรู้สึกมั่นใจว่าคุณสามารถนำแนวคิดที่คลุมเครือมาทำให้สำเร็จลุล่วงได้ แสดงว่าคุณเป็นนักพัฒนาอาวุโส โปรดทราบว่านั่นไม่ได้หมายความว่าคุณไม่เคยขอความช่วยเหลือ เพราะทุกคนทำเป็นครั้งคราว แต่คุณสามารถขับเคลื่อนกระบวนการได้โดยที่ฉันไม่ต้องดูแลคุณ” Eric Wise ผู้ร่วมก่อตั้งและซีอีโอของ Wise Telemetry กล่าว และปิดท้ายด้วยคำพูด ดีๆ นี้โดย Pablo Oliva นักพัฒนาซอฟต์แวร์ที่มีประสบการณ์จากเยอรมนี: “นักพัฒนาอาวุโสที่ฉันเคยร่วมงานด้วยดูเหมือนจะมีเข็มขัดเครื่องมือขนาดใหญ่ เมื่อใดก็ตามที่เกิดปัญหาขึ้น พวกเขามีทรัพยากรมากมายให้หันไปใช้ พวกเขารู้จักเครื่องมือและภาษาที่เราใช้ในชีวิตประจำวันค่อนข้างดี และรู้ว่าจะค้นหาที่ไหนเมื่อไม่รู้บางอย่าง (มีความแตกต่างระหว่างการกูเกิลอย่างไร้จุดหมายกับการไปที่หน้าคู่มือที่ถูกต้องเมื่อลองใช้ครั้งแรก) ความรู้เกี่ยวกับวิธีแก้ปัญหาแบบเก่าและความสามารถในการแสวงหาวิธีแก้ปัญหาใหม่ๆ ทำให้พวกเขาได้รับความเคารพนับถือจากคนรอบข้าง ซึ่งมักจะหันไปขอคำแนะนำจากพวกเขา ในทางกลับกัน พวกเขาจะรู้ว่าเมื่อใดควรหยุดมองหาตัวเองและขอความช่วยเหลือจากเพื่อนร่วมงาน บางคนมีใบรับรองบางคนไม่มี บางคนเรียนจบ บางคนยังไม่จบ แต่พวกเขามักจะเป็นจุดอ้างอิงสำหรับทีมของพวกเขา (และแม้แต่กับผู้คนในทีมอื่นๆ สำหรับนักพัฒนาอาวุโสที่โดดเด่นเป็นพิเศษ) มีกี่คนที่คิดจะขอความช่วยเหลือจากคุณเมื่อพวกเขาติดขัด”
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION