it-swarm.dev

Kendinize ne zaman kıdemli bir geliştirici demelisiniz?

Olası Kopya:
Giriş Seviyesi/Jr/Sr geliştiricileri arasındaki fark nedir?

Üst düzey geliştiricinin ne anlama geldiğini merak ediyorum çünkü görünüşe göre tanım, düşündüğüm anlamına gelmiyor. Kendilerini kıdemli X geliştiricisi veya kıdemli Y geliştiricisi olarak adlandıran bu gençleri 22-23 yaşlarında görmeye devam ediyorum. Bana göre, bir kıdemli kendini 'kıdemli' olarak adlandırmak için programlama konusunda 10 yıllık bir deneyime sahip olmalıdır. Burada bu gençlerin çoğunu gördüm (dolayısıyla soru). Yanlış mıyım? Neden?

298
Kev

Aşağıdaki durumlarda kendinize Kıdemli diyebilirsiniz:

  • Yazılım geliştirme yaşam döngüsünün tamamını, uçtan uca ele alabilirsiniz
  • Başkalarını yönlendirirsiniz ya da başkaları size rehberlik için bakar.
  • Projelerinizi kendiniz yönetebilirsiniz

Yazılım geliştirme, diğer alanlardan farklı olarak meraklı bir yaratıktır.

Bazen, üniversiteden yeni bir punk, 20 yılı aşkın "tecrübesi" olan gazilerin etrafında daireler çizebilir. Programlama tuhaf bir dünyadır --- kod kraldır.

Bazıları yukarıdakileri 2 yıl veya daha kısa sürede başarır, diğerleri 10 yıl alır.

433
Darknight

“Kıdemli Geliştirici” sözlerini duyduğumda, programlama konusunda uzmanlaşan birini düşünüyorum. Bir sistemi tasarlayabilen, kodlayabilen ve test edebilen bir insan düşünüyorum. Sistem mimarisi veya bileşen tasarımı ile konuşabilirler. Tasarım kalıplarını anlar ve kullanırlar. Bu kişi performans darboğazlarını önceden tahmin edebilir, ancak önceden optimize etmemeyi bilir. Bu kişi, uygun olduğunda zaman uyumsuz programlama, kuyruk, önbellekleme, günlüğe kaydetme, güvenlik ve kalıcılıktan yararlanır. Sorulduğunda, seçimleri, artıları ve eksileri hakkında ayrıntılı bir açıklama yapabilirler. Çoğu durumda nesne yönelimli programlama ve tasarım konusunda uzmanlaşmıştır, bu Javascript, F #, Scheme gibi mutlak diğer diller güçlü değildir ve nesne yönelimli değildir. Risk yönetiminde uzmandırlar ve en önemlisi daha önce belirtilenleri akranlarına iletebilirler.

Üstatlık nedir? Genel olarak kabul gören bir fikir vardır, HERHANGİ BİR beceriye hakim olmak, insan vücudunun ve zihninin bir beceriyi kavraması ve içselleştirmesi için 10.000 saat tekrarlanması gerektirir. Bu, Malcolm GladWell’in kitabında ayrıntılı olarak yazılmıştır Outliers . Orijinal yazar bir alanda uzmanlaşmaktan bahsettiğinde, oldukça rekabetçi bir alanın zirvesine ulaşmak için 10.000 saat süreceğini belirtti.

Malcolm GladWell’in Aykırı Değerleri'ndeki bazı örnekler:

Mozart 21 yaşındaki genç yaşta ilk konçertosu. İlk başta genç görünüyor ama 11 yaşından beri müzik yazıyor.

Beatles başlangıçta kapatıldı. Onlara hardalları olmadığı ve farklı bir çalışma alanı düşünmeleri gerektiği söylendi. Almanya'da 3 yıl farklı mekanlarda yaklaşık 1200 kez oynuyorlar, her seferinde 5 ila 8 saat sürüyorlar. Bugün bildiğimiz ve sevdiğimiz Beatles olarak yeniden ortaya çıktılar.

Ve son olarak, 20 yaşında Bill Gates Microsoft'u bulmak için Harvard'dan ayrıldı. Bazıları için bu aptalca görünebilir, ancak 20 yaşında olduğu düşünülürse, genç hayatının neredeyse yarısını programladı. 1975 yılında, dünyadaki belki de sadece 50 kişi bu deneyimi yaşadı. Deneyimi ona geleceği Microsoft'ta görmesini öngördü.

Peter Norvig ayrıca “ On Yılda Programlamayı Öğretin ” başlıklı makalesinde 10.000 saatlik kuralı tartışıyor.

George Leonard'ın stalık kitabında, bir beceriye nasıl hakim olacağına dair ayrıntılı bilgi verilmektedir. Bu beceri tekrar tekrar uygulanmalıdır. Tekrar ne kadar çok olursa, her tekrardaki farklılıkların o kadar farkına varırsınız. Sadece bu anlayışla daha iyi olabilirsiniz.

Yazılım endüstrisinin başlıkları (Junior, Mid-Level ve Seniors) yanıltıcıdır ve kuruluştan kuruluşa tutarsızdır. Kıdemli Geliştiriciyi 5 yıl veya daha fazla deneyime sahip biri olarak tanımlayan şirketlerle çalıştım. Deneyimin kalitesinden bahsetmiyorum, sadece 5 yıl boyunca bir bilgisayarın önünde oturdular. Bu kişilerle çalışırken, birçoğu henüz nesne yönelimli programlamayı kavramamıştı - yine de Kıdemli Geliştiriciler olarak kabul edildi.

Bir yazılım mühendisinin beceri setini ölçmenin daha iyi ve nesnel bir yolu olmalıdır. John Haugeland bir bilgisayar programcısının beceri matrisini yayınladı. Aksi halde bağırsak hissine bırakılmış bir programcının beceri seviyesi ölçmek için objektif bir yoldur.

Yazılım mühendislerine baktığımda 4 seviye görüyorum: Luminary, Senior, Mid-Level ve Junior.

Armatür (10+ yıl) bir beceriye hakim olan ve kendi disiplinlerini geliştirmeye karar veren kişidir. Bazı örnekler şunlardır: Ted Neward , Bob Martin Amca , Donald Knuth, Oren Eini , Peter Norvig , Linus Torvalds . Armatürler beceri setinize göre değişir.

Kıdemli (7 ila 10+ yıl, Seviye 3) , son 10.000 saatlik programı belirli bir türde geçiren kişidir. Tasarım kalıplarının güçlü bir şekilde anlaşılması vardır, Uygun olduğunda asenkron programlama, kuyruk, önbellekleme, günlük tutma, güvenlik ve kalıcılıktan yararlanırlar.

Bir Kıdemli'in Asla Armatür'e ulaşmaması çok olasıdır. Armatürler genellikle konuşma ve yazmada bulunur. Aktif olarak disiplinlerini etkilemeye çalışıyorlar.

Orta Düzey (4 ila 6 yıl, Düzey 2) günlük programlamayı anlayan biridir. Bağımsız çalışırlar ve sağlam çözümler yaratırlar. Bununla birlikte, henüz büyük veya karmaşık sistemler oluşturma veya sürdürme konusunda deneyim kazanmamışlardır. Genel olarak Orta Seviye geliştiriciler, bileşen seviyesi gelişimi ile harikadır.

Junior (1 ila 3 yaş, Seviye 1) programlamanın temellerini anlayan kişidir. Ya yazılım mühendisliği ya da bilgisayar bilimleri diplomasına sahipler ya da kendi kendilerine öğretiliyorlar. Kodları sürekli gözden geçirilir. Algoritmalar, sürdürülebilirlik ve yapı konusunda rehberlik verilir.

243
Chuck Conway

"Kendinize ne zaman kıdemli bir geliştirici demelisiniz?" - Genç geliştiricilere mentorluk yapmaya başladığımda.

111
duros

Aynı eğilimi fark ettim. Geçen gün sorulardan biri, 2-3 yıllık mimarlık deneyimine sahip kıdemli bir geliştiriciydi.

Bir meşe palamudu ağacı diyebilirsiniz, ama bu ne olduğunu değiştirmez.

Tek mantıklı sonuç "kıdemli" nin başka bir şey ifade ettiği yönündedir:

  • göreceli rütbe, "sadece üniversite dışında adama kıdemli"
  • zavallı İspanyol büyücüler, yani
  • güney yazım, "kıdemli popo çatlak, onları pantolon yukarı çekin"

Bu gün, bu sadece bir iş unvanı ve göreceli endüstri deneyimi hakkında bir şey söyleyebilir veya söylemeyebilir.

23
Steven A. Lowe

noktayı kaçırıyorsun.

Kıdemli hiçbir şey ifade etmez. Junior hiçbir şey ifade etmez. Başlıklar hiçbir şey ifade etmiyor. Başlığım - İş Sistemleri Direktörü. Sorumluluklarım - BT'nin kurum içi yazılım geliştirmeden altyapıya, güvenlikten müşteri web sitelerine kadar her şeyi yönetmek. Yazılım geliştirme deneyimim - kendi kendine eğitim. Ağ deneyimim - kendi kendini öğretti. BT alanındaki genel cabapilitelerim - sizinkinden daha kötü.

Yönetme ve yönetme yeteneğim - tartışmalı, ancak karakterim ve kişiliğim beni işe aldı ve başarılı oldu.

Başlıklar hiçbir şey anlamına gelmez yetenek ve çaba her şey demektir. Ben en iyisi değilim - ve buna inanmak kibirli olur.

Başlıklar hakkında takılmayı unut ve değerini kanıtla!

21
Steve

Bence en iyi cevap Darknight tarafından verildi .

Aşağıdakilere dikkat çekmem gerektiğini hissediyorum.

2-3 yıllık programlama deneyimi (birlikte çalışma + kişisel çalışma) yeterli sayıda proje görmüş ve yeterli miktarda problemle başa çıkmak için yeterli değildir. Sadece işe yaramaz. İşlerin kafanızdan geçmesine izin vermek, deneyiminizi yansıtmak ve zihinsel olarak daha yüksek bir düşünme seviyesine geçmek için zamana ihtiyacınız var. Bir gecede olmaz.

5-7 yaşın altındaki uygulamaların (yine birlikte + kişisel birlikte) bir mucize beklemediğini söyleyebilirim. Bazı diller ve çerçeveler ile ilgili çok fazla deneyim elde edilebilir, ancak henüz yeni bir düşünme seviyesine atlanamaz.

Diğer şey, bir bireyin genel olgunluğudur. Bence ilk önce 30 yaşına yaklaşıyor. Bundan önce beynimiz daha yüksek bir saat hızında çalışıyor olabilir, ancak önemsiz işliyor olacaktı, çünkü daha büyük bir resim görmek için bellekte yeterli veri yok. Genel yaşam deneyimimiz, düşünme ve çalışma şeklimize ince ama gerçek bir şey katar, bu yüzden başka bir çalışma türü olarak programlamaya da.

Bir yaşlıyı kişisel olarak kabul etmem: birileri en az 27 yaşında. en az 7 yıllık uygulamalı . Bundan önce kişisel olarak şüpheci olurdum (ama yine de açık fikirli, bana daha fazla kanıt getirecek).

19
user8685

Son zamanlarda Martin Fowler tarafından iyi bir blog yazısı vardı. Ondan aldığım şeyler:

  • Birisi için ne kadar zamandır çalıştığınızla ilgisi yok. Üç yıl çalışıyorsunuz ve kıdemli bir geliştirici oluyorsunuz. Altı yıl sonra ne olur? Kıdemli kıdemli geliştirici misiniz?

  • Üst düzey geliştiriciler size bakmaz veya sizden daha iyi olduklarını düşünmez. Bu çok önemli. Nefsinin yoluna girmesine izin verdikten sonra başın belada.

  • Üst düzey geliştiriciler suçu geçmiyor. Sorunları öngörüyorlar ve olumlu bir şekilde ele alıyorlar.

  • İnsanlar üst düzey geliştiricilerle çalışmak istiyor. Bu benim için bir anahtar. İnsanların benimle çalışmasını ve benimle çalışmaktan zevk almasını istiyorum.

  • Üst düzey geliştiriciler en zeki mühendisler değildir. En karmaşık problemler üzerinde çalışmazlar. Beceri setleri tamamen programlama ile ilgili değil. İletişim becerileri eşit derecede önemli bir rol oynamaktadır.

  • Üst düzey geliştiriciler tahmin etmede iyidir.

  • Üst düzey geliştiriciler her zaman yaptıklarıyla ilgilenir. Sıkıcı görevlerin, daha ilginç olabilecek diğer görevlerle aynı kalitede tamamlanması gerektiğini anlarlar.

Sadece açıklığa kavuşturmak için

Yukarıda listelediğim beceriler, temel yazılım mühendisliği becerileri ve uygulamalarına ek olarak iyi bir kıdemli yazılım mühendisinin sahip olması gerektiğine inandığım becerilerdir.

14
CodeART

Birçoğuna mentorluk yaptıysanız ve en başta size katılmadan yıllar sonra size teşekkür ettiğinde, komuta edebileceğiniz herhangi bir başlığa 'Kıdemli' eklemekten çekinmeyin.

O zamana kadar, 'kurşun' muhtemelen daha açıklayıcı bir terimdir.

Bana göre 'kıdemli' terimi, insanlarla ve keyfi beklentileriyle uğraşırken pratik deneyim ve bilgeliğin doruk noktasını ifade eder. Bu senaryoyu dikkate alın:

Her biri diğerlerinden tam 1 yıl daha fazla deneyime sahip bir ekipte 16 programcı. Bu, 16. programcının 16 yıldan fazla deneyime sahip olduğu anlamına gelir. Bir otobüs bir mağazaya çarptığında en deneyimli üyelerden sekizi trajik bir şekilde öldürülür. Deneyimin yarısı olan kişi şimdi kıdemli bir geliştirici olarak kabul edilir mi? Umarım, şirket boşlukları çabucak kaybettiklerinden eşit veya daha kalibre insanlarla değiştirir.

' journeyman ' terimini programlamaya sokmaktan nefret ediyorum, ama bazıları geçerli. 'Kıdemli' terimi, 15 yıldan az tecrübesi olan herkese vereceğim bir şey değildir, çünkü teknik bilginin ötesine geçer.

13
Tim Post

Bu "Junior/Senior Developer" başlığını yanlış ve yanıltıcı buluyorum çünkü bunun için gerçek bir ölçüm birimi yok. Hepimiz daha az veya daha fazla uygulamalı deneyime sahip Yazılım Geliştiricileriz. Yazılım Geliştiricileri için bir hiyerarşi oluşturmaya çalışmayın, bir anlamı yoktur ve ana odak noktasına zarar verebilir: harika bir yazılım geliştirme ekibi.

7
Claudiu Constantin

Önceki işlerinize dönüp ne saçmalık olduğunun farkına vardığınızda. Ve daha iyi olduğunuzu anlayacaksınız ama gidecek kilometreler var ve bu öğrenme sonsuza dek sürecek.

5
Bernard Dy

Bazen diğer mesleklere bakıyorum ve yazılım programlamanın neden kendini standardize etmediğini merak ediyorum. Bu soruya bir faydası olmayacaktı çünkü belirli seviyeleri elde etmek için kabul edilmiş bir standart olacaktı. Sonra farkına vardım, "Kim öldü ve onları kral bıraktı?"

Hepimiz biliyoruz ki, deneyim, eğitim, sertifikalar ve unvanlar, herkesin programcıların becerisine çok basit bir bakış atması içindir. Ne yaptığını biliyorsun ya da bilmiyorsun. Ya kendi türünüzü koklayabilir ya da yapamazsınız.

3
JeffO

"WHAAAT .... BİRİM TESTİ !! Ben kıdemli bir programcıyım ... Artık kodumu test etmeme gerek yok"

Daha önce duydum .... Böylece "Juniors" hatalarını düzeltmek ve test sağlar.

"Bir mimar kiralayacağız ... hayır, Bay X değil, çok daha kıdemli, artık kodlamayan birini istiyoruz"

daha sonra röportajda:

  • peki hangi programlama dillerini biliyorsunuz?

  • ahem ... COBOL ve FORTRAN kullandım ama şimdi çoğunlukla MS Word, Excel ve PowerPoint.

  • Mükemmel ... ne zaman başlayabilirsin?

Gerçekten kıdemli, sadece bir perspektif meselesidir, Steven'ın dediği gibi bir Başlık. Bununla birlikte, sonunda önemli olan yazdığınız kod olduğunu söyleyebilirim, ancak maalesef birçok durumda takım elbise ve kravat daha büyük bir etki yaratıyor, özellikle artık somut başarılarla (kod) ölçülmediğinde iyi hiyerarşilerinizi esansınız hakkında ikna edersiniz.

3
Newtopian

Diğerleri size kıdemli geliştirici çağırdığında. Tek bir tanım yok. Şirketten şirkete değişimi. İyi yerleşmiş bir şirkette birinci sınıf öğrencilere daha az iş verilir ve öğrenme eğrileri yavaştır. Yeni şirkette daha taze bir çok sorumluluk alabilir ve daha az zamanda çok şey öğrenebilir. Bu ilk elden deneyimledim. Ne yazık ki, kodunuzun veya çalışmanızın kalitesine bakarak bilginizin derinliğini hesaplayabilen sadece diğer deneyimli kişilerdir. Ve eminim herkes zamanı geldiğinde unvanını alır.
Ve eğer yapmazsan şirketi değiştirirsin. :-)

2
Manoj R

Diğer birçok başlık gibi bir başlık. Burada bu "gençler" bir Doktora bile olabilir, bu mutlaka bir şey ifade etmez. Ama bu onlara daha yüksek bir maaş kazandıracak. Aynı şey Kıdemli Geliştirici veya Kıdemli Mimar için de geçerlidir. Veya Kıdemli Proje Yöneticisi vb.

Bu gerçeği göz önünde bulundurarak, uzun yıllara dayanan deneyimlerden sonra bu kartı kendi kartınıza eklemek yerine, iş arkadaşlarınız tarafından "Kıdemli Geliştiricimiz" olarak adlandırmak daha iyidir. :-)

Bunun dışında, 10 yıl minimum (üniversite veya diğer eğitim dahil) olduğunu söyleyebilirim.

2
Lukas Eder

Geçenlerde bir yıldan az deneyime sahip bir CS mezunu arayan bazı iş ilanları gördüm. Bu sadece bir başlık olsa bile benim için delilik gibi görünüyor. Birincisi, unvanın sulanmasını önerir. Eminim ki bu ilanlarla gördüğüm çift şirket, gerçek yaşlıları göstermek için başka bir “süper kıdemli” unvanına sahip. Sanırım kötü bir işe alma stratejisi değil. Unvan her şey değil, ama her şey iki iş arasında eşit, muhtemelen “Master Baş Geliştirici” unvanına sahip olurdum.

“Master Chief Developer” ın (ya da bu yüksek pozisyon, “kıdemli” ya da başka türlü) gerçekte haklı olduğu nokta, kesinleştirmek zordur. Ölçme konusunda çok objektif olabileceğimizi sanmıyorum. Kaba bir formül olarak, genellikle odadaki en iyiler ve oda en az 8 profesyonel geliştirici içeriyorsa kıdemli olarak adlandırılması gerektiğini söyleyebilirim. Bu bir kıdemli en azından 87. persentilde olduğunu göstermektedir. Bu geliştiricilerin büyük olasılıkla en deneyimli olanlar olacağını söylesem de, kesinlikle bu deneyimin == “kıdemli” veya hatta yakın olduğunu söylemem. Aynı zamanda, 7 veya 8 yaşından küçük gerçek yaşlıların sayısının aşırı derecede küçük olması gerektiğinden kuşkuluyum, ancak bundan daha azına sahip birisinin usta olması imkansız değildir.

22 yaşında olduğum için kesinlikle “ana kategori olma olasılığı düşük” e düşüyorum. Her ne kadar “10 (veya 30) yıllık 1 yıllık deneyim” türlerinden biriysem ve dürüst olmak gerekirse, daha iyi olduğumu düşünmeye cazip gelmeme rağmen, bu çabaları sıfır çaba göstermiş olsalar bile onlarca yıldır öğrenmeye devam ederken, muhtemelen saf ozmoz yoluyla çok çeşitli konularda benden daha fazla bilgi edindiler. Tam proje yaşam döngüsü hakkında onlar kadar bilemem mümkün değil. Projesi benden büyük olan biriyle çalışıyorum! Bu kapsamdaki bir projeyi sürdürdüğünden daha fazlasını bildiğimi gerçekten düşünmek benim için oldukça küstah olurdu.

Akılda tutulması gereken diğer bir şey, kendinize 22 yaşında bir kıdemli çağırmaya başlarsanız, 32 yaşında ne olacaksınız? Zaten zirvede olduğunuzu varsaymak geleceğiniz için biraz kötülük. Birçok kişi, birinin uzman olup olmadığını belirlemek için 10.000 saatlik kurala bakar. Fikrin önerildiği Malcom Gladwell’in kitabında, uzmanların sadece en iyi oldukları değil, belirli bir rol oynadıkları oldukça açıktır. Acemi herhangi bir şekilde en kötü değildir, ancak yöntemin yetenekten daha fazla bir açıklamasıdır. Acemi tuhaf şeyleri hızlı bir şekilde öğrenebilir, ancak çoğu zaman en yaygın şeylerden bazılarını uzman olan biri kadar çabuk yapmakta zorlanır. Uzmanlar rutin işleri aşırı hassasiyet ve hız ile yapabilirler ve hangi şeyleri arayacaklarını bilirler, bu sorunları gösterebilir, ancak genellikle değişime tepki vermekte veya rahatlık bölgelerinin dışındaki şeyleri öğrenmekte zorlanırlar. Bunu göz önünde bulundurarak, henüz uzman olmak bile istemiyorum. İstikrarlı bir alana yerleşmeden önce elimden geldiğince yeni bilgi almak istiyorum.

2
Morgan Herlocker

Parayla bir ilgisi olabilir.

Bazı şirketler belirlenmiş bir maaş planı izlerler. Bazı kurallar nedeniyle sizi 'Geliştirici' merdivenin ortasına koyamazlar. Ancak sizi 'Kıdemli Geliştirici' merdiveninin altına koyabilirler.

Şahsen, bir kişiye üniversiteden tam kıdemli bir unvan verilirse garip buluyorum, ancak diğer tarafta - kimin umurunda? Yaklaşık on yıldır bir 'geliştirici'yim ve şimdi işyerini değiştirdiğimde' kıdemli 'bir unvan almam da bir şey ifade etmiyor. Yeni alanda hala birinci sınıf öğrencisi olacağım - en azından bir süreliğine ...

2
Vegar

İlk kez, doğada "klasik teknik röportaj" olmayan en az bir röportaj oturumuna dayalı bir iş bulduğunuzda (yani, mimarlık, kavramlar, tasarım, şirket görüşü, deneyim vb. Hakkında konuşun)

(Sınırlı) deneyimim, genç geliştiricilerin genellikle yalnızca röportaj sorularının standart pilindeki performansa ve diğer çeşitli etkileşimlere dayanan kıdemlilere göre işe alınmalarıdır.

1
Uri

10 yıl ?? Dalga geçiyor olmalısın. Tamam, 10 yılı nasıl tanımlıyorsun? Diyelim ki birisi 15 yaşında programlamaya başladı ama 25 yaşında profesyonel oldu?

Endüstri bu şekilde çalışmaz. Farklı şirketlerin insanların 5-8 yıl arasında istedikleri zaman Senior Dev X veya Y dediklerini düşünüyorum. Organizasyondaki bir çok kıdem tek başına yetenekle gelmez, bireyin aldığı inisiyatif ve paylaşmak istediği sorumluluklarla ilgilidir. Çoğu zaman makul beceri ve güçlü motivasyona sahip insanlar kıdemli Profesyoneller haline gelir.

BTW 22 yaş genç değil ;-)

1
Geek