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

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