Neden çoğu iş teklifi genel olarak bir geliştirici yerine bir <dil burada> geliştirici içindir? [kapalı]


10

Ideal bir dünyada:

Kendinize Programcı ve Diğer Kariyer Önerileri demeyin mükemmel bir makalesinde , Patrick McKenzie, diğer şeylerin yanı sıra, dilin önemli olmadığını açıklar:

  • Geliştirici, genellikle sorunları çözen kişidir. Geliştirici, kodu belirli bir dilde yazan bir kişi değildir.

  • İşletmeler bildiğiniz diller umrunda değil. Belirli bir dilde yazılmış bir proje için bir geliştirici tutmaları gerekiyorsa ve çok deneyimli, ancak bu dilde hiçbir zaman bir kod satırı yazmamış bir adayları varsa, o da işe alınacaktır.

Hem geliştirici hem de diğer geliştiricileri işe almak zorunda olan bir kişi olarak deneyimlerime göre, gözlem çok benzer:

  • Java'daki N yıllık deneyim veya C #'daki N yıllık deneyim önemli değildir. Önemli olan, adayın problemleri nasıl çözeceğini bilmesi, spagetti kodu ile iyi düşünülmüş mimariye sahip temiz kod arasındaki farkı bilmesidir.

  • Daha önce kullandığın diller umrumda değil. Bir C # projesi için, hayatını sadece C # bilen ve kötü bilen bir acemi yerine Java, Python ve Ruby on Rails kodu yazarak geçiren profesyonel bir geliştirici kiralamayı tercih ederim .

  • Bir dili kullanarak edindiğiniz bilgi ve deneyim çoğunlukla başka bir dilde yeniden kullanılabilir.

    Web geliştirme için Ruby on Rails kullanan ve kariyerinin geri kalanını Oracle kullanarak Java masaüstü uygulamaları yazarak deneyimli bir geliştirici, Microsoft SQL Server kullanan bir ASP.NET MVC projesi için mükemmel bir uyum sergiliyor. Çünkü bu kişi, bu iş için ihtiyaç duyduğu her şeyi biliyor , birkaç belirli şey ve sözdizimi farklılıkları bir yana.

    Öte yandan, sadece birkaç ASP.NET MVC küçük web sitesi yapan bir kişi hiç uymuyor, çünkü MVC mimarisini tam olarak anlayamayabilir, SQL profillemenin ne olduğunu bilebilir ve diğer bazı temel unsurlardan yoksun olabilir bilgi.

    Daha önce hiç CodeIgniter kullanmadım çünkü CodeIgniter kullanan bir PHP web sitesinde küçük bir sorunu düzeltemiyorum söyleme.

Uygulamada:

Pratikte, serbest işler aradığımda ve genel olarak iş tekliflerini gördüğümde çok dile özgüdürler.

Bazıları Magento'da iki yıllık deneyime sahip bir PHP geliştiricisi arar. Diğerleri en az üç yıllık VB.NET deneyimi olan bir kişiyi arayacak ve onlara altı yıl boyunca C # geliştirme yaptığınızı belirten bir özgeçmiş gönderirseniz, ancak VB.NET'ten bahsedilmeden rahatsız olmazlar. cevaplamak. Firebird deneyimi olan bir kişi isterse, Oracle ile on yıllık deneyiminizi dinlemezler.

Teori ile Patrick McKenzie ve benim sağduyu olarak tanımladığımız şey ile iş tekliflerinin gerçek dünyası arasında neden böyle bir fark var?


12
Don't tell me that I'm unable to fix a small problem with a PHP website which uses CodeIgniter just because I never used CodeIgniter before.Sorunu mükemmel bir şekilde çözebiliyorsanız, kök neden CodeIgniter ise (çerçevenin birkaç tuhaflığından biri veya açık hatalarından biri), sorunu düzeltmek için daha fazla zaman alacaktır.
yannis

12
Bazı etiketler unuttu: <rant>...</rant>. Cidden, burada gerçek bir soru var mı?
Cyclops

6
"Daha önce kullandığınız dilleri umursamıyorum. Bir C # projesi için, hayatını sadece C # bilen ve bilen bir acemi yerine Java, Python ve Ruby on Rails kodu yazarak geçiren profesyonel bir geliştirici kiralamayı tercih ederim. Kötü. " - Şu samancıyı al! Bu yanlış bir ikilik. Sıranız yeni başlayanlar için doğrudur, ancak belirli bir platform hakkında derin bilgi gerektiren pozisyonlar için DEĞİLDİR.
Teksas'ta Jim

1
Bir dilde tecrübesi olan biri işi çok daha hızlı ve daha temiz bir şekilde yapacak, aksi düşünmek sanrılı.
Thomas Bonini

İşe aldığım kişi olduğumda, "Technobabble Terimler X, Y ve Z'yi kullanmış olmalı" listesinin gerçekten uzun olduğu kişi olacağım. Ve eğer o kişiyi bulabilirsem, onları işe alabilirim. Bir iş arayan kişi olduğumda, bana bakmadığı için onlara kızabilirim çünkü sadece beynin yulafları var, istedikleri kesin deneyime sahip değilim, ama istedikleri şey tam olsaydı, beklerdim işe almak için, yerinde. Sonuçta bu onların çağrısı ve olması gerektiği gibi.
Warren P

Yanıtlar:


16

Çünkü birçok şirkette İK dronları var, işe alma konusunda herhangi bir fikri olmayan. İK, "Adayın hangi niteliklere ihtiyacı var?" "Altı yıl C #" demek "iyi kod yazar" demekten çok daha kolaydır. Bu insansız hava aracı "İyi kod yazar" ın neye benzediğine veya bir özgeçmişin iyi kod yazıp yazamayacağına göre nasıl filtreleneceğini bilmiyor. Bununla birlikte, hızlı bir şekilde bir özgeçmiş okuyabilir ve "Beş ve üç çeyrek yıl C #" 'ı görebilir ve atabilirler.


3
Kesinlikle. geliştirici olmayanlar ve yönetim, benzer becerilere sahip birisini aradığınızı söylerseniz, ancak işe yaramadıkları sürece, başlangıçta işte adil bir bit (örn. belirli sözdizimi, kavramlar değil) öğrenmeniz gerektiğini sorarsanız size bakabilir.
Michael Durrant

İK maymunları olarak adlandırıldıklarını sanıyordum ... Tamamen katılıyorum, ancak takımda <dil burada> gurusu olması iyi bir fikir.
Lukasz Madon

3
Reklamda "iyi kod yazar" ifadesi koymak tamamen saçmalıktır. Herkes iyi kod yazdığını düşünüyor. Üstün kod yazma becerilerinden en mahkum olanlar genellikle en kötü kodu yazanlardır.
nikie

1
@nikie: Bu bir basitleştirme. Elbette, bunu tam olarak reklama koymazsınız.
DeadMG

3
İK departmanı olmayan küçük girişimler de aynı şeyi yaptığından, bunun ana neden olduğunu düşünmüyorum.
J. Maes

22

Sanırım Y dilinde X yıllık deneyime sahip bir geliştiricinin Y2 diline sorunsuz bir şekilde aktarabileceği bu efsaneyi yatmanın zamanı geldi. Bu şekilde çalışmaz.

Eğer dili sadece sözdizimi ve ortak kalıpları olarak görürseniz, diyelim ki Java, C # 'a geçerken size büyük bir başlangıç ​​sağlayacaktır. Ancak sizi WCF, WPF, Click Once için hazırlamayacak, çeşitli iş parçacığı kütüphaneleri, Linq ve kesinlikle broşürün işe yaradığı şeylere hazırlanmayacak, ancak pratikte değil.

Görüyorsunuz bir dilden değil, genellikle bir platformdan bahsediyorsunuz. Ve platform, .NET'in iyi bir örnek olduğu, birçok dili desteklediği yerlerde, insanlar tercih edilen bir seçim üzerinde yakınlaşma eğilimindedir.

Bu yüzden bir C # geliştiricisi istediğimde, aslında deneyimi C # projelerinde yatan bir .NET platformu geliştiricisi için reklam veriyorum. Bunlar .net sunucu projeleri, winforms / wpf projeleri olma eğilimindedir.


Katılıyorum. Tabii ki mümkün, ama zor. C ailesi sözdizimi kolayca aktarılır, ancak tam platform ve araç setinin gerçek anlaşılması grok için çok zaman alır. Genç geliştiricilere / programcılara / analistlere / kodlayıcılara tavsiyem, herkes hala yeni başlayan biri iken yeni teknolojilere kendi zamanında atlamak. İki veya üç yıl önce HTML5, iOS ve Android geliştirmeye katılan insanlar şimdi iyi durumdalar. Tabii ki, yanlış tahmin etmek (bana Flex hakkında soru sormak) mümkün, ama bu dünyanın sonu değil.
Jim In Texas

Bunun nedeni genellikle Java -> C # 'ın C -> C ++' ya benzer olmasıdır - teknik olarak aynı temeller üzerine inşa edilebilirler, ancak C # aslında kullanmak istediğiniz daha fazla özellik içerir. Ters dönüşüm C # 'dan Java' ya çok daha kolay olurdu.
DeadMG

11

Birkaç sebep düşünebilirim:

  1. Çalışan vs danışman - Bir danışman işe alırsam, kullandığımız teknoloji yığınında zaten hızlanmasını istiyorum. Danışmanların öğrenmeyi amorti edecek kadar uzun olmadıkları için çok hızlı bir şekilde verimli olmaları beklenmektedir.
  2. Arz / talep - Doc'un dediği gibi, iş için yapabileceğim en deneyimli adayı seçersem. Ve teknoloji yığını yerleşik teknolojiler için önemli. Go'da gelişecek bir kişi arıyorum (birkaç kişinin bildiği bir dil seçerek), neredeyse hiç kimse onunla deneyime sahip değildir ve genel olarak bir geliştirici olarak beceri setine geri dönüyorum.

4

Tüm programlama işleri aynı değildir. Şu anki işim kesinlikle modelinize uyuyor. Birçok ad hoc veri analizi içerir ve araçları gerektiği gibi alır ve indiririz. Kısmen işe alındım çünkü yeni araçlarla hızlı bir şekilde üretken olabilmek için geçmiş performansım vardı.

Öte yandan iş var olan belirli teknik uzmanlık arayan. 90'lı yıllarda küçük bir yazılım mağazası için çalışıyordum ve C ++ alanında hızlı bir şekilde uzmanlık geliştirmemiz gerekiyordu. Reklamlarımızda açıkça C ++ konusunda uzmanlık istemesine rağmen, başvuranların çoğu benden daha az C ++ biliyordu. "Ama C ++ öğrenebilirim!" hepsi dedi. Evet, eminim yapabilirsin, ama ben de yapabilirim, ve diğer insanlar da zaten orada olabilirler. C ++ 'ı gerçekten tanıyan birini arıyorduk, bu yüzden geri kalanlarımız hızlandıkça şirket içi bir uzmanlık kaynağımız olacaktı. Takımda başka bir acemi olması gerçekten yardımcı olmazdı.


1
+1: Bir TAKIM , geliştiricilerin bazılarının veya hatta çoğunun dil için yeni olmasını sağlayabilir, ancak herkese öğretebilecek dil uzmanlarına sahip olmak çok yardımcı olur.
AĞAÇ

3

İşletmeler bildiğiniz diller umrunda değil. Belirli bir dilde yazılmış bir proje için bir geliştirici tutmaları gerekiyorsa ve çok deneyimli bir adayları varsa, ancak bu dilde hiçbir zaman bir kod satırı yazmamışlarsa, o da işe alınacaktır.

Diyelim ki, bir .NET / C # işi için aday arıyorsunuz. İş için iki adayınız varsa, her ikisi de eşit derecede deneyimli gibi görünüyor, ancak birincisi Java ekosistemindeki deneyimini kazandı, ikincisi .NET ekosistemindeki ikincisi - hangisi sizin favoriniz?

Diğerleri en az üç yıllık VB.NET deneyimi olan bir kişiyi arayacak ve onlara altı yıl boyunca C # geliştirme yaptığınızı belirten bir özgeçmiş gönderirseniz, ancak VB.NET'ten bahsedilmeden rahatsız olmazlar. cevaplamak.

Neden cevap alamadığınızı kim söyleyebilir? Belki de iş için yeterince deneyimli VB.NET geliştiricileri başvurdu? Belki de insan kaynakları departmanı, iş başvurusu sayısını 100'den 10'a düşürmek için programlama dili deneyimini bir filtre olarak kullanıyor olabilir. Belki de yanlış şirketlerle konuştunuz (sanırım şirketimde örnek durumda bir cevap göndereceğiz yukarıda açıkladığınız).


2

Çoğu proje tabanlı iş sonuçlarına hızlı bir şekilde ihtiyaç duyulmaktadır ve insanların mümkün olan en kısa sürede kar elde etmeleri gerekmektedir.

Bu ihtiyaçları karşılayabilen ve belirli bir dil (ler) e bağlı olmayan kişiler kıttır ve sonuç olarak çok pahalıdır. Bu insanlar sadece inanılmaz beceriler isteyen büyük şirketler tarafından işe alınır.

Sorunu çözebilen ancak belirli bir dili hızlı bir şekilde öğrenemeyen insanlar daha az kıttır. Hala çok paraya mal oluyorlar ve belirli bir dili öğrenmek için ekstra zamana ihtiyaçları var.

Bu ekstra zaman maliyeti, dile özgü bir programcı isteyerek azaltılır. Gerekli becerileri zaten öğrendi ve hızlı bir şekilde sonuç verebilir.

Kısacası, JAVA'da yapılması gereken bir projenin pahalı bir inanılmaz yazılım geliştiricisine veya dil / çerçeveyi öğrenmek için zamana ihtiyaç duyan ortalama bir .net geliştiricisine ihtiyacı yoktur. Zaten JAVA ile deneyimi olan ve nispeten iyi problem çözme becerileri olan adam tarafından verilen en az para için anında sonuçlara ihtiyaç duyar.

Her zaman olduğu gibi, bu parayla ve en fazla yatırım getirisiyle ilgilidir


2

Bence "<dil burada> geliştirici" standart ifadesini yanlış yorumluyorsunuz. Şirketler bu ifadeyi, başka bir dilde deneyimi olan geliştiricileri caydırmak için reklama koymazlar. Neden yetenekli geliştiricileri caydırmak istiyorlar? İşverenin bakış açısından, ne kadar çok aday olursa o kadar iyidir. Onlar her zaman olabilir değil onlar ilgilenen değiliz insanları davet.

İfadenin asıl amacı, okuyucuya, iş teklifinin ne gerektireceğini anlatmaktır. Ve bu çok mantıklı, IMHO. Z80 montaj dilinde geliştirdiğiniz bir işe başvurur musunuz? Yoksa COBOL mu? Yoksa Fortran?

Ve açıkçası, eğer şirket başka türlü eşit derecede akıllı görünen iki adayı varsa, <burada dil> deneyimi olan aday kazanır. Ne fazla ne eksik. (İnsanların yalnızca tek bir proje için veya zaten geç olan bir proje için veya şirket ilk olarak buradaki dilde gerçekten deneyime ihtiyaç duyduğunuz <proje burada> geliştirildiği özel durumlar vardır , ama bunların kural olduğunu sanmıyorum.

Bu arada, şirketim bir zamanlar önerdiğiniz gibi reklamlar yazdı (sonuçta mantıklı görünüyor ). Sonuçlar yıkıcıydı. İşlerini gerçekten önemseyen insanlar reklamı atladılar. Sadece umutsuz, başvuruda bulunan herhangi bir açık pozisyona başvurur Bir daha asla denemedik.


1

Geri çekilin ve öncül hakkında düşünün. Bir kişinin bazı .net işleri yapmasını istiyorsunuz. Bunu iş tanımınıza koydunuz ve bu beceriye sahip adaylar arıyorsunuz! Bu sadece sağduyu.

Bunun neden iyi bir fikir olmayabileceğine dair daha ayrıntılı felsefelerinize kesinlikle katılıyorum, ancak çoğu insan şimdi ihtiyaç duydukları becerilere sahip bir reklamı yapacak, talep edecek ve bir aday arayacak. Bu kadar basit, bu yüzden bunun nedeninizle ilgili sorunuzun başlığına cevap verdiğini düşünüyorum.

Hiç aday alamazlarsa veya birkaç kötü adaydan geçemezlerse, biraz çalışabilirler ve detaylandırdığınız öğelere daha uygun olabilirler. Aslında bulunduğum alanda (Ruby on Rails) şu anda "deneyim yok, sizi eğiteceğiz" vb. Bir sürü reklam var ve aslında bazı Ruby on Rails organizasyonları “kötü alışkanlıkları olmayan” eğitime devam edebilecek adaylara çok açık. Yani doğru yaklaşım bazı kuruluşlar tarafından orada.

Çoğu reklamın, açıkladığınız gibi "yanlara gitme" bilgisine sahip olmayan harici işe alım uzmanları veya teknik olmayan dahili işe alım uzmanları tarafından yapıldığını unutmayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.