ความแตกต่างระหว่างนักพัฒนาระดับเริ่มต้น / Jr / Sr คืออะไร? [ปิด]


198

นอกจากชื่อเรื่องและการจ่ายเงินแล้วอะไรคือความแตกต่าง?

  • พวกเขามีความรับผิดชอบที่แตกต่างกันอย่างไร

  • พวกเขามีความรู้ / ประสบการณ์มากแค่ไหน?

  • มาตรการพื้นฐานในการพิจารณาว่าผู้พัฒนาเหมาะสมกับโครงสร้างพื้นฐานนี้อย่างไร

คำตอบ:


341

สิ่งนี้จะแตกต่างกันไป แต่นี่คือวิธีที่ฉันเห็นมันในที่ที่มีขนาดใหญ่พอที่จะมีความแตกต่างระหว่างประเภทของโปรแกรมเมอร์

ฉันจะบอกว่ารายการระดับและจูเนียร์เป็นสิ่งเดียวกัน พวกเขาเพิ่งออกจากโรงเรียนและมีประสบการณ์การทำงานน้อยกว่าสองปี พวกเขาได้รับมอบหมายงานที่ซับซ้อนน้อยที่สุดและควรได้รับการดูแลอย่างใกล้ชิดอย่างเป็นธรรม โดยทั่วไปแล้วพวกเขารู้ประมาณ 10% ของสิ่งที่พวกเขาคิดว่ารู้ โดยปกติแล้วพวกเขายังไม่ได้ผ่านวงจรการพัฒนาทั้งหมดและมักจะทำทางเลือกที่ไร้เดียงสาถ้าได้รับโอกาสให้เลือก น่าเศร้าที่หลายคนไม่สนใจสิ่งที่ต้องการจริงๆพวกเขาต้องการสร้างสิ่งต่าง ๆ ในแบบของพวกเขา พวกเขามักจะมีทักษะการดีบั๊ก

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

ไม่มีใครที่อยู่ในระดับอาวุโสจำเป็นต้องถามคำถามนี้ พวกเขาเป็นผู้เชี่ยวชาญในกองเทคโนโลยีที่เลือกไว้ พวกเขาจะได้รับงานที่ยาก (คนที่ไม่มีใครรู้วิธีแก้ปัญหา) และมักจะได้รับความรับผิดชอบในการออกแบบ พวกเขามักจะทำงานอย่างอิสระเพราะพวกเขามีประวัติที่พิสูจน์แล้วของการส่งมอบสินค้า พวกเขาคาดว่าจะเป็นพี่เลี้ยงของนักพัฒนารุ่นเยาว์และระดับกลาง บ่อยครั้งที่พวกเขาเป็นนักแก้ไขปัญหาที่น่าทึ่ง พวกเขาพบปัญหาเดียวกันก่อนหน้านี้และมีความคิดที่ดีว่าจะมองที่ใดก่อน ผู้อาวุโสมักจะให้คำปรึกษานอกสถานที่ทำงานเช่นกัน โดยทั่วไปแล้วพวกเขาจะมีประสบการณ์อย่างน้อยสิบปีและมักจะตายอย่างน้อยหนึ่งครั้งในเดือนมีนาคมและรู้แน่ชัดว่าเหตุใดจึงต้องหลีกเลี่ยงบางสิ่ง พวกเขารู้วิธีส่งมอบผลิตภัณฑ์ที่ใช้งานได้และตรงตามกำหนดเวลา พวกเขารู้ว่ามุมไหนที่สามารถตัดได้และไม่ควรตัดมุมอะไร พวกเขารู้อย่างน้อยหนึ่งภาษาและหลายภาษาในระดับผู้เชี่ยวชาญ พวกเขาได้เห็น "เทคโนโลยีใหม่ที่น่าสนใจ" จำนวนมากเข้ามาในที่ทำงานและหายไปดังนั้นพวกเขาจึงมีแนวโน้มที่จะอนุรักษ์นิยมมากขึ้นเกี่ยวกับการกระโดดบน bandwagon สำหรับเครื่องมือพัฒนาใหม่ที่น่าตื่นเต้นต่อไป (แต่ไม่ทนต่อการเปลี่ยนแปลงอย่างสมบูรณ์ ผู้พัฒนาระดับกลางที่มีอายุมากกว่าซึ่งไม่เคยก้าวกระโดดสู่รุ่นอาวุโส) พวกเขาเข้าใจว่างานของพวกเขาคือส่งมอบซอฟต์แวร์ที่ใช้งานได้ตามที่ผู้ใช้ต้องการไม่ใช่เล่นด้วยเครื่องมือสนุก ๆ พวกเขามักจะพิถีพิถันว่าพวกเขาจะทำงานที่ไหนเพราะสามารถทำได้และเพราะพวกเขาเห็นมือแรกว่าสถานที่บางแห่งไม่ดี พวกเขาค้นหาสถานที่ที่มีงานที่น่าสนใจที่สุดให้ทำ บ่อยครั้งที่พวกเขารู้เพิ่มเติมเกี่ยวกับผลิตภัณฑ์ของ บริษัท มากกว่าใคร ๆ แม้ว่าพวกเขาจะอยู่ที่นั่นเพียงไม่กี่เดือน พวกเขารู้ว่าพวกเขาต้องการมากกว่าความรู้ด้านการเขียนโปรแกรมและสามารถรับความรู้เกี่ยวกับโดเมนธุรกิจที่พวกเขาสนับสนุนได้ดี พวกเขามักจะตระหนักถึงปัญหาที่จูเนียร์ไม่เคยพิจารณาและคนกลางมักไม่คิดเช่นปัญหาด้านกฎระเบียบและกฎหมายในโดเมนธุรกิจที่พวกเขาสนับสนุน พวกเขาสามารถและจะผลักดันข้อกำหนดกลับคืนมาเพราะพวกเขารู้ว่าปัญหาจะเกิดขึ้นและสามารถอธิบายสิ่งเดียวกันกับฆราวาสได้


2
มีชื่อ (เป็นภาษาอังกฤษ) สำหรับ "นักแปลระดับกลาง" ของ Google ที่ใช้ "นักพัฒนาเต็ม" แต่มันไม่ใช่แหล่งข้อมูลที่มีค่า =)
มิเชลไอเรส

23
คำอธิบายที่ยอดเยี่ยมคล้ายกับเรื่องราว ฉันสนุกกับการอ่าน
Saeed Neamati

1
ขอบคุณสำหรับคำอธิบายนี้ ฉันสอนตัวเองใน iOS dev (ไม่มีการศึกษาแบบคอม - ไซซี) และได้เปิดตัวแอพแรกของฉันซึ่งมีคุณสมบัติที่ไม่สำคัญ (เช่น JSON ของ CRUD องค์ประกอบทางสังคมบางอย่างการออกแบบที่ดี) ฉันไม่คิดว่าฉันเป็นโปรแกรมเมอร์ที่ยอดเยี่ยม แต่ฉันเขียนแอปกลับไปข้างหน้าและเข้าใจสิ่งที่ต้องใช้ในการจัดส่ง คุณจะวางคนอย่างฉันไว้ที่ไหนสมมุติ?
SamYoungNY

1
@NYCTechEngineer, การล้นสแต็คที่ดีก็มาถึงใจ กลุ่มผู้ใช้ในพื้นที่บล็อกการเขียนบทความและหนังสือ
HLGEM

1
@BrianHaak ขอบคุณ - มันน่าสนใจสิ่งที่คุณพูด ตั้งแต่ปีที่แล้วฉันได้ทำงานในโครงการที่ใหญ่กว่าเมื่อก่อน ฉันได้รับความรู้สึกในการดูรหัสที่ฉันเขียนเพียงไม่กี่เดือนที่ผ่านมาและพูดว่า "wtf ใครคิดว่านี่เป็นความคิดที่ดี?" :) - การเริ่มต้นโปรเจ็กต์นี้จากเคอร์เนลขนาดเล็กไปยังโปรเจ็กต์ที่สามารถขยายได้อย่างง่ายดายและยังสามารถรองรับผู้ที่ไม่ใช่ผู้ที่ต้องการเพิ่มเนื้อหาได้บังคับให้ฉันคิดถึงโครงสร้างระดับที่สูงขึ้น การจับคู่โปรแกรมเมอร์ที่มีประสบการณ์มากขึ้นแสดงให้ฉันเห็นว่าฉันขาด opps จำนวนมาก ใช้ abstractions ฉันมีปัญหากับเนมสเปซ
SamYoungNY

43

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

จูเนียร์ - คำแนะนำที่ชัดเจนน้อยกว่าตรวจสอบน้อยลงความรับผิดชอบในการออกแบบและการวิเคราะห์เล็กน้อย ช่วยให้คนระดับเริ่มต้นค้นหาคอมไพเลอร์และใช้ที่เก็บ

อาวุโส - การออกแบบที่สำคัญและความรับผิดชอบในการวิเคราะห์คาดว่าจะแก้ไขการกำกับดูแลของตัวเองของเขา / เธอตรวจสอบน้อย / ไม่มีคำแนะนำน้อย / ไม่มี; ช่วยให้ผู้เรียนระดับต้นเรียนรู้ / พัฒนาทักษะการวิเคราะห์และการออกแบบ


20
ดียกเว้นฉันไม่รู้ว่าฉันเห็นด้วยกับ "ไม่มีการตรวจสอบ / คำแนะนำ" อย่างสมบูรณ์สำหรับระดับอาวุโส ถ้าคุณไม่ได้ทำงานหรืออยู่กับทีมก็ไม่มีใครควรเป็นเกาะได้อย่างสมบูรณ์
Wonko the Sane

@WonkotheSane เรามีผู้ที่รวมรหัสกับข้อผิดพลาดโดยไม่มีการร้องขอ codeReview หรือดึงใด ๆ ไม่ได้พูดถึงสถาปัตยกรรมแอพอื่น ๆ นอกจากการใช้รูปแบบการสังเกตในทุกที่ ทำให้การตัดสินใจทั้งหมดด้วยตัวเองดังนั้นเขาจะไม่ปรับให้เข้ากับอะไรใหม่ ทั้งหมดเป็นเพราะเขาเป็นเกาะเอง เขาไม่ได้อยู่ในนั้น เขาเป็นเกาะ :(
น้ำผึ้ง

16

จริง ๆ ฉันคิดว่ามันลงมาถึงระยะเวลาที่คุณได้ทำงาน หากคุณมีประสบการณ์ 10 ปีคุณจะเป็นนักพัฒนาอาวุโสถ้าคุณจบการศึกษาคุณก็อาจเป็นระดับเริ่มต้น ฉันได้เห็น dev 'อาวุโส' หลายคนที่ไม่สามารถเขียนโค้ดได้ยากและไม่รู้จริง ๆ ว่าพวกเขากำลังทำอะไร


7
นี่สะท้อนประสบการณ์ของฉัน "อาวุโส" หมายถึงเวลากับ บริษัท และมักจะไม่มีอะไรอื่น ความสามารถไม่ได้คำนึงถึงปัจจัยหนึ่งเดียว ฉันทำงานกับนักพัฒนา "อาวุโส" มากมาย (และผู้จัดการในเรื่องนั้น) ซึ่งไม่รู้อะไรเกี่ยวกับซอฟต์แวร์เกินกว่าการพัฒนาแบบลองผิดลองถูก แต่อยู่กับ บริษัท มานานกว่า 5 ปีหรือเป็นโปรแกรมเมอร์คนแรกที่จ้างเมื่อ สถานที่เริ่มต้นและได้รับการเลื่อนตำแหน่งเนื่องจากอายุการใช้งาน
Wayne Molina

8

ฉันคิดว่าช่องของช่างฝีมือโรงเรียนเก่าของเด็กฝึกงาน, คนงานและนายพอดีในช่องเหล่านี้ดีสำหรับระดับรายการจูเนียร์ (หรือเพียงแค่ไม่มีคำนำหน้า) และระดับสูง

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

ที่รุ่นจูเนียร์ (หรือเพียงแค่ลบ "ระดับรายการ" / "จูเนียร์" จากชื่อ / คำอธิบาย) คุณได้สำเร็จการฝึกงานและได้ครอบคลุมการพัฒนาที่สำคัญสำหรับ บริษัท ของคุณโดยจุ่มลงในแต่ละพื้นที่สำคัญเพื่อให้คุณ คุ้นเคยกับแต่ละคน ตอนนี้คุณช่วยให้คำแนะนำและการป้อนข้อมูลสำหรับผู้ฝึกงานเทียบเท่า แต่งานของคุณเองยังคงถูกตรวจสอบโดยอาจารย์ / ผู้อาวุโสแม้ว่าอาจจะไม่มากเท่ากับตอนที่คุณยังเป็นรุ่นน้อง

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

ดังนั้นตามแนวทางเหล่านั้นคุณควรจะสามารถมองเห็นบุคคลหรือตำแหน่งและกำหนดว่าถังขยะทั้งสามนั้นมาจากไหน


6

กำลังจะลงไปสู่ความคาดหวังของ บริษัท ต่อโปรแกรมเมอร์

หากฉันเป็น บริษัท ที่จ้างงานและฉันจ้างโปรแกรมเมอร์ระดับเริ่มต้นฉันรู้ว่าบุคคลนั้นไม่ได้อยู่ถัดจากอะไรเลยและเราจะถือว่าเขา / เธอต้องการเรียนรู้ทุกสิ่ง ถ้าฉันจ้างคนระดับอาวุโสในทางทฤษฎีพวกเขาจะมีความพอเพียงจากจุดยืนทางเทคนิค


4

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


ฉันได้รับสิ่งนี้ แต่ ณ จุดใดที่คุณ "เกินระดับรายการ" หรือ "เกินกว่ารุ่นจูเนียร์"? หากคุณกำลังเรียนรู้อยู่เสมอทุกวันคุณเกินกว่าที่คุณเคยเป็นเมื่อวันก่อน
JD Isaacks

รายการระดับง่าย แต่ฉันกำลังมองหาตัวอย่างของประสบการณ์ / ความรู้ที่จะแนะนำรุ่นน้องหรือรุ่นอาวุโส
JD Isaacks

เช่นเดียวกับที่ฉันกล่าวว่าสิ่งนี้ขึ้นอยู่กับ บริษัท บริบทของเทคโนโลยี / ภาษาที่เป็นปัญหาและเฉพาะเจาะจงมากขึ้นเป็นเรื่องของความคิดเห็นเว้นแต่คุณจะพูดถึงตำแหน่งงานที่เป็นทางการ ฉันไม่คิดว่าฉันจะพิจารณาตัวเองเป็นผู้เชี่ยวชาญในภาษาใด ๆ เว้นแต่ฉันจะเขียนสิ่งที่ยี้ด้วยตัวเอง
คริส

นอกจากนี้หากคุณอยู่ที่ บริษัท มองไปที่ jr นักพัฒนา sr และเปรียบเทียบ / เปรียบเทียบตัวเองกับพวกเขา นี่เป็นมาตรวัดที่ดีในบริบทเฉพาะของ บริษัท ดังกล่าว
คริส

4

ดังที่คนส่วนใหญ่พูดกันมันแตกต่างกันไปในแต่ละ บริษัท และแต่ละงาน

ตัวอย่างเช่นฉันเคยทำงานใน บริษัท ที่พิจารณาใครก็ตามที่ทำงานที่นั่นนานกว่า 5 ปีในตำแหน่ง "วิศวกรซอฟต์แวร์อาวุโส" ที่อื่น ๆ สุดขีดสถานที่อื่นที่ฉันทำงานมีคำจำกัดความที่เข้มงวดมาก

บางสถานที่อาจพิจารณา "ระดับรายการ" และ "จูเนียร์" เพื่อหมายถึงสิ่งเดียวกัน

มันอาจแตกต่างกันไปตามประสบการณ์หลายปีความรู้ทั่วไปความรู้เฉพาะ (เช่นรู้คุณลักษณะของภาษาบางอย่าง) ประสบการณ์ด้านการจัดการและ / หรือความเป็นผู้นำการผสมผสานทั้งหมดและแน่นอนมากขึ้น


3

ฉันจะไปกับคำตอบที่ง่ายจริง ๆ ที่นี่: นักพัฒนาอาวุโส (โดยทั่วไป) เป็นคนที่สามารถมองเห็นป่าสำหรับต้นไม้ พวกเขาคิดว่านอกเหนือจากปัญหาเฉพาะหน้าต่อหน้าพวกเขาและมีความเข้าใจในสิ่งที่การเปลี่ยนแปลงทางสถาปัตยกรรมสามารถทำได้หรือควรเกิดขึ้นเนื่องจากการแก้ไขปัญหาที่พวกเขาต้องเผชิญ

บริษัท ซอฟต์แวร์ส่วนใหญ่ที่ฉันเคยเห็นมีคนระดับเริ่มต้นทำการเข้ารหัสทุกวันในขณะที่ผู้พัฒนาซอฟต์แวร์อาวุโสกำลังดูแลสิ่งที่ผู้คนใหม่ ๆ กำลังทำอยู่และแก้ไขปัญหาที่น่าเกลียดน่ากลัว

เห็นได้ชัดว่านี่เป็นเพียงความคิดเห็นของฉันและไม่ใช่กฎที่ยากและรวดเร็ว YMMV


2

เพียงแค่ใส่และจากการสังเกตส่วนบุคคลที่พบในเว็บไซต์โพสต์งานและเพียงเกี่ยวกับระดับประสบการณ์

ทางเข้า = งานใหม่ของคุณอาจเป็นงานแรกของคุณ

จูเนียร์ = ความดีของคุณ แต่ไม่ควรจะดีที่สุดคุณมักจะมีเวลาน้อยกว่า 5 ปีและประสบการณ์มากกว่า 2 ปี

อาวุโส = คุณควรจะดีที่สุดและมีประสบการณ์มากกว่า 5 ปี


คุณพลาดระดับกลาง
Neolisk
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.