นอกจากชื่อเรื่องและการจ่ายเงินแล้วอะไรคือความแตกต่าง?
พวกเขามีความรับผิดชอบที่แตกต่างกันอย่างไร
พวกเขามีความรู้ / ประสบการณ์มากแค่ไหน?
มาตรการพื้นฐานในการพิจารณาว่าผู้พัฒนาเหมาะสมกับโครงสร้างพื้นฐานนี้อย่างไร
นอกจากชื่อเรื่องและการจ่ายเงินแล้วอะไรคือความแตกต่าง?
พวกเขามีความรับผิดชอบที่แตกต่างกันอย่างไร
พวกเขามีความรู้ / ประสบการณ์มากแค่ไหน?
มาตรการพื้นฐานในการพิจารณาว่าผู้พัฒนาเหมาะสมกับโครงสร้างพื้นฐานนี้อย่างไร
คำตอบ:
สิ่งนี้จะแตกต่างกันไป แต่นี่คือวิธีที่ฉันเห็นมันในที่ที่มีขนาดใหญ่พอที่จะมีความแตกต่างระหว่างประเภทของโปรแกรมเมอร์
ฉันจะบอกว่ารายการระดับและจูเนียร์เป็นสิ่งเดียวกัน พวกเขาเพิ่งออกจากโรงเรียนและมีประสบการณ์การทำงานน้อยกว่าสองปี พวกเขาได้รับมอบหมายงานที่ซับซ้อนน้อยที่สุดและควรได้รับการดูแลอย่างใกล้ชิดอย่างเป็นธรรม โดยทั่วไปแล้วพวกเขารู้ประมาณ 10% ของสิ่งที่พวกเขาคิดว่ารู้ โดยปกติแล้วพวกเขายังไม่ได้ผ่านวงจรการพัฒนาทั้งหมดและมักจะทำทางเลือกที่ไร้เดียงสาถ้าได้รับโอกาสให้เลือก น่าเศร้าที่หลายคนไม่สนใจสิ่งที่ต้องการจริงๆพวกเขาต้องการสร้างสิ่งต่าง ๆ ในแบบของพวกเขา พวกเขามักจะมีทักษะการดีบั๊ก
ระดับกลางคือที่โปรแกรมเมอร์จำนวนมากตก พวกเขามีประสบการณ์มากกว่าสองปีและโดยทั่วไปแล้วน้อยกว่าสิบแม้ว่าบางคนสามารถอยู่ในระดับนี้ทั้งอาชีพของพวกเขา พวกเขาสามารถสร้างรหัสการทำงานที่มีการควบคุมน้อยลงตราบใดที่พวกเขาได้รับมอบหมายให้ทำงานประจำค่อนข้าง โดยทั่วไปจะไม่ได้รับมอบหมายในการออกแบบระดับสูงหรืองานที่ซับซ้อนสูงซึ่งต้องใช้ความรู้ในระดับลึก พวกเขาอาจได้รับมอบหมายด้วยการออกแบบชิ้นส่วนของแอปพลิเคชันโดยเฉพาะอย่างยิ่งเมื่ออยู่ในโซนที่จะกลายเป็นนักพัฒนาอาวุโส พวกเขาเก่งเรื่องงานบำรุงรักษาหรืองานที่พวกเขาสามารถมุ่งความสนใจไปที่ชิ้นส่วนของจิ๊กซอว์ แต่โดยปกติแล้วจะไม่ได้รับการคาดหวังให้พิจารณาแอปพลิเคชันโดยรวมเว้นแต่ทำงานกับนักพัฒนาอาวุโส พวกเขามักจะทำงานได้ดีในการแก้ไขปัญหาและแก้ไขข้อบกพร่อง แต่พวกเขาต้องรีบไปหาคนที่ยาก พวกเขายังไม่มีประสบการณ์เพียงพอที่จะเห็นรูปแบบของปัญหาที่ชี้ไปยังสถานที่ที่น่าจะเกิดขึ้น แต่พวกเขากำลังได้รับทักษะเหล่านั้นและไม่ค่อยจำเป็นต้องขอความช่วยเหลือในการดีบัก พวกเขาอาจผ่านวงจรการพัฒนาทั้งหมดอย่างน้อยหนึ่งครั้งและเห็นผลลัพธ์ของปัญหาการออกแบบและกำลังเรียนรู้วิธีหลีกเลี่ยงในอนาคต โดยปกติแล้วพวกเขามักจะมีแนวโน้มที่จะรับความต้องการที่มูลค่าและไม่ผลักมันกลับเมื่อมีปัญหาหรือช่องว่างที่ชัดเจน พวกเขาเรียนรู้มากพอที่จะรู้ว่าพวกเขาไม่รู้อะไรและเริ่มได้รับความรู้นั้น พวกเขาเป็นนักเขียนของโลกแห่งการเขียนโปรแกรม
ไม่มีใครที่อยู่ในระดับอาวุโสจำเป็นต้องถามคำถามนี้ พวกเขาเป็นผู้เชี่ยวชาญในกองเทคโนโลยีที่เลือกไว้ พวกเขาจะได้รับงานที่ยาก (คนที่ไม่มีใครรู้วิธีแก้ปัญหา) และมักจะได้รับความรับผิดชอบในการออกแบบ พวกเขามักจะทำงานอย่างอิสระเพราะพวกเขามีประวัติที่พิสูจน์แล้วของการส่งมอบสินค้า พวกเขาคาดว่าจะเป็นพี่เลี้ยงของนักพัฒนารุ่นเยาว์และระดับกลาง บ่อยครั้งที่พวกเขาเป็นนักแก้ไขปัญหาที่น่าทึ่ง พวกเขาพบปัญหาเดียวกันก่อนหน้านี้และมีความคิดที่ดีว่าจะมองที่ใดก่อน ผู้อาวุโสมักจะให้คำปรึกษานอกสถานที่ทำงานเช่นกัน โดยทั่วไปแล้วพวกเขาจะมีประสบการณ์อย่างน้อยสิบปีและมักจะตายอย่างน้อยหนึ่งครั้งในเดือนมีนาคมและรู้แน่ชัดว่าเหตุใดจึงต้องหลีกเลี่ยงบางสิ่ง พวกเขารู้วิธีส่งมอบผลิตภัณฑ์ที่ใช้งานได้และตรงตามกำหนดเวลา พวกเขารู้ว่ามุมไหนที่สามารถตัดได้และไม่ควรตัดมุมอะไร พวกเขารู้อย่างน้อยหนึ่งภาษาและหลายภาษาในระดับผู้เชี่ยวชาญ พวกเขาได้เห็น "เทคโนโลยีใหม่ที่น่าสนใจ" จำนวนมากเข้ามาในที่ทำงานและหายไปดังนั้นพวกเขาจึงมีแนวโน้มที่จะอนุรักษ์นิยมมากขึ้นเกี่ยวกับการกระโดดบน bandwagon สำหรับเครื่องมือพัฒนาใหม่ที่น่าตื่นเต้นต่อไป (แต่ไม่ทนต่อการเปลี่ยนแปลงอย่างสมบูรณ์ ผู้พัฒนาระดับกลางที่มีอายุมากกว่าซึ่งไม่เคยก้าวกระโดดสู่รุ่นอาวุโส) พวกเขาเข้าใจว่างานของพวกเขาคือส่งมอบซอฟต์แวร์ที่ใช้งานได้ตามที่ผู้ใช้ต้องการไม่ใช่เล่นด้วยเครื่องมือสนุก ๆ พวกเขามักจะพิถีพิถันว่าพวกเขาจะทำงานที่ไหนเพราะสามารถทำได้และเพราะพวกเขาเห็นมือแรกว่าสถานที่บางแห่งไม่ดี พวกเขาค้นหาสถานที่ที่มีงานที่น่าสนใจที่สุดให้ทำ บ่อยครั้งที่พวกเขารู้เพิ่มเติมเกี่ยวกับผลิตภัณฑ์ของ บริษัท มากกว่าใคร ๆ แม้ว่าพวกเขาจะอยู่ที่นั่นเพียงไม่กี่เดือน พวกเขารู้ว่าพวกเขาต้องการมากกว่าความรู้ด้านการเขียนโปรแกรมและสามารถรับความรู้เกี่ยวกับโดเมนธุรกิจที่พวกเขาสนับสนุนได้ดี พวกเขามักจะตระหนักถึงปัญหาที่จูเนียร์ไม่เคยพิจารณาและคนกลางมักไม่คิดเช่นปัญหาด้านกฎระเบียบและกฎหมายในโดเมนธุรกิจที่พวกเขาสนับสนุน พวกเขาสามารถและจะผลักดันข้อกำหนดกลับคืนมาเพราะพวกเขารู้ว่าปัญหาจะเกิดขึ้นและสามารถอธิบายสิ่งเดียวกันกับฆราวาสได้
ระดับรายการ - จะต้องให้คำแนะนำอย่างชัดเจนตรวจสอบทุกสิ่งที่พวกเขาทำไม่มีความรับผิดชอบในการออกแบบน้อยหรือไม่มีเลยไม่มีความรับผิดชอบในการวิเคราะห์
จูเนียร์ - คำแนะนำที่ชัดเจนน้อยกว่าตรวจสอบน้อยลงความรับผิดชอบในการออกแบบและการวิเคราะห์เล็กน้อย ช่วยให้คนระดับเริ่มต้นค้นหาคอมไพเลอร์และใช้ที่เก็บ
อาวุโส - การออกแบบที่สำคัญและความรับผิดชอบในการวิเคราะห์คาดว่าจะแก้ไขการกำกับดูแลของตัวเองของเขา / เธอตรวจสอบน้อย / ไม่มีคำแนะนำน้อย / ไม่มี; ช่วยให้ผู้เรียนระดับต้นเรียนรู้ / พัฒนาทักษะการวิเคราะห์และการออกแบบ
จริง ๆ ฉันคิดว่ามันลงมาถึงระยะเวลาที่คุณได้ทำงาน หากคุณมีประสบการณ์ 10 ปีคุณจะเป็นนักพัฒนาอาวุโสถ้าคุณจบการศึกษาคุณก็อาจเป็นระดับเริ่มต้น ฉันได้เห็น dev 'อาวุโส' หลายคนที่ไม่สามารถเขียนโค้ดได้ยากและไม่รู้จริง ๆ ว่าพวกเขากำลังทำอะไร
ฉันคิดว่าช่องของช่างฝีมือโรงเรียนเก่าของเด็กฝึกงาน, คนงานและนายพอดีในช่องเหล่านี้ดีสำหรับระดับรายการจูเนียร์ (หรือเพียงแค่ไม่มีคำนำหน้า) และระดับสูง
ระดับการเข้าบางคนจะได้รับงานที่ค่อนข้างง่ายซึ่งไม่มีผลกระทบที่ลึกซึ้งและงานของพวกเขาจะถูกตรวจสอบโดยผู้อยู่ใต้บังคับบัญชาหรือผู้อาวุโส เมื่อเวลาผ่านไปพวกเขาได้รับความรับผิดชอบมากขึ้นและได้รับงานที่ซับซ้อนมากขึ้นเรียนรู้เชือกไปพร้อมกัน
ที่รุ่นจูเนียร์ (หรือเพียงแค่ลบ "ระดับรายการ" / "จูเนียร์" จากชื่อ / คำอธิบาย) คุณได้สำเร็จการฝึกงานและได้ครอบคลุมการพัฒนาที่สำคัญสำหรับ บริษัท ของคุณโดยจุ่มลงในแต่ละพื้นที่สำคัญเพื่อให้คุณ คุ้นเคยกับแต่ละคน ตอนนี้คุณช่วยให้คำแนะนำและการป้อนข้อมูลสำหรับผู้ฝึกงานเทียบเท่า แต่งานของคุณเองยังคงถูกตรวจสอบโดยอาจารย์ / ผู้อาวุโสแม้ว่าอาจจะไม่มากเท่ากับตอนที่คุณยังเป็นรุ่นน้อง
เมื่อเวลาผ่านไปและการส่งมอบโครงการที่ประสบความสำเร็จในที่สุดคุณก็จะกลายเป็นผู้อาวุโส ในระดับอาวุโสคุณได้เข้าใจทุกอย่างที่ครอบคลุมในพื้นที่ของคุณครอบคลุมกระบวนการพัฒนาทั้งหมดและเครื่องมือและเทคโนโลยีทั้งหมดที่เกี่ยวข้อง คุณมีอำนาจในการตัดสินใจทางเทคนิคที่สำคัญและคาดว่าจะให้ข้อมูลเชิงลึกเกี่ยวกับการจัดการในกระบวนการพัฒนาซอฟต์แวร์
ดังนั้นตามแนวทางเหล่านั้นคุณควรจะสามารถมองเห็นบุคคลหรือตำแหน่งและกำหนดว่าถังขยะทั้งสามนั้นมาจากไหน
กำลังจะลงไปสู่ความคาดหวังของ บริษัท ต่อโปรแกรมเมอร์
หากฉันเป็น บริษัท ที่จ้างงานและฉันจ้างโปรแกรมเมอร์ระดับเริ่มต้นฉันรู้ว่าบุคคลนั้นไม่ได้อยู่ถัดจากอะไรเลยและเราจะถือว่าเขา / เธอต้องการเรียนรู้ทุกสิ่ง ถ้าฉันจ้างคนระดับอาวุโสในทางทฤษฎีพวกเขาจะมีความพอเพียงจากจุดยืนทางเทคนิค
สิ่งนี้ขึ้นอยู่กับ บริษัท อย่างเคร่งครัด แต่คำพูดนั้นค่อนข้างชัดเจน: ระดับเริ่มต้นคือคนที่เพิ่งเข้ามาในสนามจูเนียร์เป็นคนที่อยู่เหนือระดับเริ่มต้นและรู้วิธีการใช้เทคโนโลยีภาษาบางอย่าง สุดท้ายคือผู้ที่รับผิดชอบโครงการและนั่งในระดับที่สูงขึ้น พวกเขามักจะมอบหมายมากที่สุดเท่าที่พวกเขารหัส
ดังที่คนส่วนใหญ่พูดกันมันแตกต่างกันไปในแต่ละ บริษัท และแต่ละงาน
ตัวอย่างเช่นฉันเคยทำงานใน บริษัท ที่พิจารณาใครก็ตามที่ทำงานที่นั่นนานกว่า 5 ปีในตำแหน่ง "วิศวกรซอฟต์แวร์อาวุโส" ที่อื่น ๆ สุดขีดสถานที่อื่นที่ฉันทำงานมีคำจำกัดความที่เข้มงวดมาก
บางสถานที่อาจพิจารณา "ระดับรายการ" และ "จูเนียร์" เพื่อหมายถึงสิ่งเดียวกัน
มันอาจแตกต่างกันไปตามประสบการณ์หลายปีความรู้ทั่วไปความรู้เฉพาะ (เช่นรู้คุณลักษณะของภาษาบางอย่าง) ประสบการณ์ด้านการจัดการและ / หรือความเป็นผู้นำการผสมผสานทั้งหมดและแน่นอนมากขึ้น
ฉันจะไปกับคำตอบที่ง่ายจริง ๆ ที่นี่: นักพัฒนาอาวุโส (โดยทั่วไป) เป็นคนที่สามารถมองเห็นป่าสำหรับต้นไม้ พวกเขาคิดว่านอกเหนือจากปัญหาเฉพาะหน้าต่อหน้าพวกเขาและมีความเข้าใจในสิ่งที่การเปลี่ยนแปลงทางสถาปัตยกรรมสามารถทำได้หรือควรเกิดขึ้นเนื่องจากการแก้ไขปัญหาที่พวกเขาต้องเผชิญ
บริษัท ซอฟต์แวร์ส่วนใหญ่ที่ฉันเคยเห็นมีคนระดับเริ่มต้นทำการเข้ารหัสทุกวันในขณะที่ผู้พัฒนาซอฟต์แวร์อาวุโสกำลังดูแลสิ่งที่ผู้คนใหม่ ๆ กำลังทำอยู่และแก้ไขปัญหาที่น่าเกลียดน่ากลัว
เห็นได้ชัดว่านี่เป็นเพียงความคิดเห็นของฉันและไม่ใช่กฎที่ยากและรวดเร็ว YMMV
เพียงแค่ใส่และจากการสังเกตส่วนบุคคลที่พบในเว็บไซต์โพสต์งานและเพียงเกี่ยวกับระดับประสบการณ์
ทางเข้า = งานใหม่ของคุณอาจเป็นงานแรกของคุณ
จูเนียร์ = ความดีของคุณ แต่ไม่ควรจะดีที่สุดคุณมักจะมีเวลาน้อยกว่า 5 ปีและประสบการณ์มากกว่า 2 ปี
อาวุโส = คุณควรจะดีที่สุดและมีประสบการณ์มากกว่า 5 ปี