“Yalnızca En İyiyi İşe Almak” normal masaüstü uygulama programlaması için gerçekten pratik bir tavsiye midir? [kapalı]


61

Arka plan olarak, UI benzeri bir AutoCAD ile, etab'lara benzer bir şey olan masaüstü mühendisliği uygulamaları yapıyoruz .

Beni gerçekten rahatsız eden şeylerden biri, en iyi geliştiricileri işe almaya gerek var mı? Yeni başlayanlar için, işe alımda büyük zorluklar yaşıyoruz; Gördüğümüz özgeçmişlerin çoğu ya basit CRUD uygulamaları ya da gerçekten çok fazla zorlayıcı programlama içermediğini düşündüğüm SharePoint özelleştirmeleri yapıyor. Röportaj için aradığımız kişiler bile, çoğu Fibonacci dizisini ve basit bir ikili aramayı yapamıyor ve adayları kontrol etmek için bir sözlük aramak zorunda kalmamak için ipuçları verebilecek ve sorunları açıkça dile getirecek kadar zarif davranıyoruz. "Fibonacci dizisi" ne anlama geliyor?

Bu bana şunu düşündürdü: Evet, hesaplamalı geometri / doğrusal programlama öğeleri yaparken bir miktar programlama yeteneğine ihtiyacımız var ve yazılım mimarisini tasarlarken / veya hangi yazılım modelini kullanacağınıza karar verirken bir miktar programlama yeteneğine ihtiyacımız var. Kodumuzun çoğu, programlama konusunda bilgisi olan biri tarafından yapılabilecek olan sadece tesisat kodudur (sanırım).

Şimdi gerçekten programlama yeteneklerine ihtiyaç duyduğumuz ve süperstar geliştiricilerin işe alınmasının çok zor olduğu göz önüne alındığında, standartımı düşürmek ve Joel'in vaat ettiği şeye doğrudan aykırı bir biçimde sadece öylesine olanları işe almak istiyorum .

Ne düşünüyorsun?

Düzenleme: Hesaplama geometrisinin tamamını / doğrusal programlama kitaplıklarını yeniden yazmanıza gerek yoktur; Yapmam gereken tek şey, benim uygulamama gelince, eldeki sorunları uygun hesaplamalı geometrik / doğrusal programlama terimlerine nasıl aktaracağınızı ve mevcut kütüphanelerin ne zaman / nasıl kullanılacağını bilmek. Yani göründüğü kadar zor değil.


53
Standart cevap: belki de çok düşük maaşlar sunuyorsunuz ve daha iyi şirket çalışanları sizin için çalışmakla ilgilenmiyor mu? Her neyse, ikili arama yapamayan insanlarla sorunlarınız varsa, süperstarların olmamasından kaynaklanan bir sorun değil, sıradan bir değirmen kodlayıcısının bunu yapması gerekir.
quant_dev

15
Başlık büyük
harfiniz

13
Fibonacci dizisini yazamazlar mı? Bu hiç zor değil ... bu insanlar aslında programcı olamazlar.
Ben B.

6
Graviton, her şey maaştan ibaret. (Örneğin, örneğin) maaş için üçlü piyasa değeri sunmuş olsaydınız, işlerini bırakmak için işlerini bırakmaya istekli insanlara sahip olursun. Çok fazla teklif etmenizi önermiyorum, ama bu bir anlam ifade ediyor. İyi bir özgeçmiş istiyorsanız, bunun için para ödemeniz gerekir.
riwalk

7
@ user1525 önemsiz bir şey olduğu için, geliştiricilerin normalde uygulamada bir sorunu olmamalıdır (özyineleme veya özyineleme yok)
Darknight

Yanıtlar:


110

Joel'i fazla okumayı bırakmanı öneririm. Blogunda yazdıklarının, bu sitedeki cevaplarıyla çelişiyor, bu yüzden gerçekten onun sözünü bile alamam.

Bir süperstar yapan ve neden uzun zamandır devam eden ve tartışmaya açık olmayan bir tartışmayı açmanın gerekli olduğu. Elitizmdir ve pratik değildir.

İhtiyacın olan şey şu ki:

  1. Yaptığın şeyi yapmayı çok isterim
  2. Tutkulu bir hevesli programcı olurdu
  3. İşinizi doğru yapmak için ne gerektiğini öğrenme potansiyeline sahip olur

Gerisi önemli değil.

Bu tür bir CS-güçlü projeye dalmaktan başka bir şey istemeyen ve CRUD uygulamalarını hiçbir zaman kodlayanlara bakmadan kaç tane genç mezunun orada olduğuna inanmazsınız. Bir süre önce onlardan biriydim, pratikte derleyici gelişimi ile ilgili bir projeye katılmayı hayal ettim ama bir tane bulamadım. Neden bunlardan birine bir şans vermiyorsun?

AutoCAD'in süpermen tarafından yazılmış olduğuna inanmıyorum. Başarılı projelerin çoğu, sadece bir şeyi yapmak isteyen insanlar tarafından yapıldı ve gerçekten bunu istediler.


Gördüğümüz çoğu özgeçmiş ya basit CRUD uygulamaları yapıyor ya da SharePoint uyarlaması yapıyor

Çoğu iş bunun gerektiriyorsa ne beklenir? İnsanlar üniversitede CS eğitimi almış olabilirler ve hatta bu konuda gerçekten iyi olmuşlardır, ancak 10 yıl boyunca pratik programlamada hiç kullanmadılarsa, onları hatırlamalarını bekleyemezsiniz. Açıkçası hiç kimse her yıl eski CS kitaplarını okuyacak ve bu bilginin herhangi bir yerde kullanılmaması durumunda taze kalmasını sağlayacak.


11
İnanılmaz cevap!

33
Evet iyi, ama hiçbir ipucu olmayan tutkulu coşkulu insanlarla çalıştım. Onlar ölü bir ağırlıktır ve onları kuruluşunuzda istemezsiniz. Bu yüzden bazı BASIC yetenek testleri, gerçekten aptal schmucks'ları yok etmek için yapılacak çok iyi bir şey.
hızla_kanat

3
Son paragraf bana bir tişört açıklar.
ozz

20
Tamamen işe yaramaz olan birçok "yetenek testi" görüldü, hatta göz kamaştırıcı hatalar vardı (ve onları işaret etmek sizi testte başarısız etti;
jwenting

2
@ Geliştirici Sanat, belki de sizin için şanslıydı? Onları bir görüşme sorusunun yanlışlığı konusunda ikna edemezseniz, işte hangi sıkıntılara sahip olacağınızı hayal edin.
Mark Ransom

41

Gerçekten sevdiğim bir kitap, önce tüm kuralları çiğnemek . Ortalama yöneticiler ve iyi yöneticiler arasındaki farklar hakkında birçok bilgi vardır. İyi yöneticilerin tekrar tekrar söyledikleri ana görüşlerden biri, cümle içinde bir kişi tarafından özetlendi , doğru işe almak için çok fazla beklemedim ve yanlış işe alımları yeterince hızlı bir şekilde yapmadım. Evet, işe alınması uzun zaman alıyor, ancak süre buna değer.

Akılda tutmanız gereken ikinci bir nokta, proje verimi ile ölçüldüğünde 5-8 kişilik ekipler için bir verimlilik zirvesi olduğudur. 20 kişiden fazla bir ekibiniz olmadan, aynı üretkenliğe geri dönemezsiniz. Küçük takım dinamiğinin çalıştığı boyutun ötesinde bir takım yetiştirme konusunda çok dikkatli olun. Ve eğer bu eşiğin altında kalacaksanız, o zaman gerçekten 5-8 kişinin iyi olmasını istersiniz.

Her iki nokta da doğru işe alım için güçlü bir şekilde konuşuyor.


2
Bu teklif için +1. Son birkaç yılda farkına vardığım şeyi mükemmel bir şekilde yansıtıyor.
Kris,

5-8 zirvesiyle ilginç olan şey, 10 kişiyi alır almaz, sadece bölebilirsiniz :) Tabii ki, işin de bölünmesi gerekiyor ve tercihen rastgele değil ...
Matthieu M.

@ mattieu-m: Birçok insan bu teoriye sahip. İki grup gerçekte yoğun bir şekilde etkileşim kurmaya ihtiyaç duyuyorsa, o zaman işe yaramaz. Gerçekten ayrı kaygılar verilebilirse, o zaman iyi çalışır.
btilly

26

Herkes "sadece yüzde 1 oranındaki kişileri işe aldığını" iddia ediyor. Bu doğruysa, çalışanların% 100'ü tüm insanların “ilk yüzde 1'inde” olacaktı, bu nedenle tüm insanların% 99'u (herhangi bir alanda) işsiz kalacaktı. Durum açıkça böyle olmadığı için ve açıkça o grupta bulunmayan deneyimli insanlarımız var (neden bu soruyu başka soruyorsunuz ki ...) bunun doğru olmadığını biliyoruz.

Aslında, yalnızca bu insanlardan oluşan organizasyonlar oldukça dengesiz olacaktır. Çok fazla ego, çok fazla çelişkili fikir. Herkes kendi işini yaparken ya dağıldı, ya da her şeyin göreceli esası hakkında teorik tartışmalara son vermedi ya da ne zaman bir karar verilmesi gerektiğine dair duygular parladığında sürekli bir bağırarak eşleşmeye dönüştü.


13
Sorun, sizin için geçerli adayların sadece üst% 1 işe sırf olduğunu gelmez geliştiriciler üst% 1 işe anlamına. 8 ') Bir süper kahraman gidince, sık sık takımın geri kalanı için bir problem olarak kabul edilir. % 200'de çalışan ancak 5 kişiyi% 50'ye düşüren bir kişi net bir kazanç değildir.
Mark Booth

2
+1: İstatistiksel olarak çoğu insan ortalamanın birkaç yüzde puanındadır. Bunu anlamayan herkes, bir rüya dünyasında yaşamak demektir. Ve kesinlikle haklısın: Ortalamadan çok uzakta olan insanlar , yetenek bakımından ortalamanın üstünde veya altında olsun , yıkıcıdırlar.
Satanicpuppy

5
@Satanicpuppy: İstatistiksel olarak, insanların üçte ikisi hakkında normal bir dağılım göz önüne alındığında, ortalamadan bir standart sapma içinde ve% 98 gibi bir şey iki standart sapma içindedir. Bu, standart sapmanın ne olduğu veya aslında herhangi bir rastgele dağılımın normal olması hakkında hiçbir şey söylemez. Programcılar arasındaki programlama kabiliyeti kesinlikle çarpıktır ve normal bir dağılımın doğru kuyruğu bile olabilir.
David Thornley

11
Bir ana nedeni arasında programlama yetenek programcılar çarpık basılabilir ve / veya programlama yetenek eğer normal dağılımın sağ kuyruk olurdu insan normalde dağıtıldı. Programcı olan insanın alt örneği bu dağıtımın önyargılı bir örneğidir; yani, programlamada ortalama veya daha kötü olan insanlar nadiren programcı olurlar. Bu, "ortalama" bir programcının genel olarak popülasyona göre ortalamanın üzerinde bir yeteneğe sahip olmasını sağlayabilir ve ayrıca programcı dağıtım yeteneğinin normal bir dağılımın sağ kuyruğu gibi görünmesini sağlayabilir.
Michael McGowan

2
@ david: "Hiç kimse ortalamanın çok altında olamaz"? Keşke çalıştığın yerde çalışsaydım.
Satanicpuppy

25

Sormanız gereken ilk şey, neden istediğiniz standartlara uymayan özgeçmişleri aldığınızdır. Birçok iyi insanla çalıştım, o yüzden oradalar ve uygulama bana çok ilginç geliyor. Fibonacci dizileri ve ikili arama yapabilen insanları bulamıyorsanız (ki göründüğünden daha zordur; Knuth'a göre ilk yayın ile ilk doğru yayını arasında birkaç yıl geçti), iyi olanlar uzakta.

Ödeyeceğinizden daha fazla beceri mi istiyorsunuz? Yanlış yerlerde reklam mı veriyorsunuz? Şirketiniz konum veya itibar bakımından çekici değil mi? Bu sizin ilk ve en temel probleminiz ve acil olarak çözmeniz gereken problemdir. Siz ve meslektaşlarınız şüphesiz sizin için çalışmayan iyi insanlar biliyorsunuz. Onlara neyin olduğunu gösterin ve onlara özendirilip çekilmeyeceklerini sorun ve neden olmasın. Sorunu yardımsız anlamak için çok yakın olabilirsiniz.

İnsanları işe almayın, çünkü onlar uygulanan en iyisidir. İnsanları işe alın çünkü yapılmasını istediğiniz bir şeyi yapabilecekler. Vasat olanı işe alırsanız, çünkü hepsi bu kadar geçerli, o zaman yavaşça iyi insanları kaybedeceksiniz ve cebirselliği hesaplanan geometriyle bir şeyler yapmaya çalışırken titreyen insanlarla dolanacaksınız. (Vasat işe almak, çünkü birkaç vasat programcı için bir işiniz var, başka bir şey de var, ama ihtiyaç duyduğunuz yerde kaliteli insanlar işe almak zorundasınız.)


7
Çünkü İK departmanları tarama yazılımı adaylarında büyük ölçüde beceriksizdir. Gereksinimler: kahve komut 10 yıl, programlama PHP 40 yıllık eğitim: BS / BA
Gizli

1
@ user1525: İK yetersizliği çok iyi olabilir, ancak önemli olan nokta nedenini ve nasıl düzeltileceğini bulmak (ya da düzeltilemez olduğunu bulmaktır, bu yüzden gemiye atlamanın tam zamanıdır). Sonuçlara atlamazdım. Cevabınız başka bir yaklaşım önermiyor: iyi insanların özgeçmişlerini göndermelerini ve İK'nın onlarla ne yaptığını görmelerini sağlayın.
David Thornley

18

"çoğu Fibonacci dizisini ve basit bir ikili arama yapamaz"

Kriterleriniz kesinlikle yanlıştır. Grubumda hepimiz fizikçiler veya mühendisleriz. Bahse girerim kimse ikili arama yapamaz çünkü CS kurslarına katılamadık ve gerçek hayatta bunun için bir kütüphane kullanıyoruz. Hatta şunu söylerdim: binsearch yazan bir kişi, önemli şeylere nasıl odaklanacağını bilmiyor.

Aday akıllıysa ve gruba uygunsa, çok daha büyük bir öneme sahiptir. Programlama yeteneğini kontrol etmek istiyorsan, ona evde yapması gereken bir iş ver. Ne kadar sürdüğünü not edin ve adayların gerçek iş olup olmadığını öğrenmek için sonuçları tartışın.


3
Başvuru sahibinin ikili araştırmayı tam olarak doğru yapması beklenmeyebilir, ancak başvuru sahibine bazı ipuçları verebilirseniz, yaklaşabilmesi gerekir. IMO, insanların kafasında bir ansiklopediye sahip olmaktan ziyade kendilerine sunulan zorlukları nasıl çözmeye çalıştıklarını görmek daha ilginç.
dpk

11
Eğitim yapan bir fizikçiyim ve gözü kapalı ikili arama yapabilir ve bir elim arkamdan bağlanmış olarak yapabilirim. Üzgünüz, ama basit bir ikili arama uygulaması yazma ne kadar bilmiyorum ... kötü. Tarif edecek başka kelime yok, sadece fakir.
quant_dev

Evet haklısın. İkili arama, en azından temel fikir, gerçekten yapılabilirdi. Ben de yapabilirim.
michael,

... en azından temel fikir (ilk önce ne olduğuna bakmadan Fibonacci'yi yapamadım). Ancak bunun gibi bir test, cs derslerine yeni katılan veya yanlışlıkla soruları hazırlayan kişileri avantajlı kılar. Adaylara gerçek bir dünya programlama örneği vermek daha faydalıdır. Daha karmaşık sorunları derhal baskı olmadan nasıl çözdüklerini gösterir ve adaylara, ne tür bir iş yapmasını beklediğinizi de gösterebilir (iyi bir örnek seçin). IMHO, ders kitabı sorularından çok daha faydalı.
michael,

2
Fibonacci dizisinin tanımını başlarının üstünde bilmemek endişe verici değildir. ANCAK, açıklandıktan sonra hesaplamak için bir program yazamamak endişe vericidir (tek yapmanız gereken basit bir CRUD uygulamasında alt toplamları hesaplamak olsa bile!).
Stephen C. Steel

13

Bence "en iyisini işe alma" çok fazla bir tarikat haline geliyor.

Çoğu programlama işi rutindir ve yaratıcı değildir. Gerçekten yaratıcı projeler üzerinde çalışırken bile. Çoğu humdrumdur ve sıklıkla desenlere dayanır. bu özellikle kullanıcı arayüzü için geçerlidir.

Çoğu modern sistem aynı zamanda o kadar çok insanın da yazmasını gerektirir ki, doğal olarak hepsi en iyisi olamaz. Çoğu insan ortalamadır, olmasalar bile, hala birçok "ortalama" kişinin görevini yapmak zorundadır.

Bununla birlikte, temel yetkinlik ve asgari makul gereklilikleri talep etmek mantıksız değildir ve ödün vermeniz gereken bir şey değildir.

Rutin ameliyatı düşünün: Risk toleransınıza bağlı olarak, tıp fakültesinin dekanı için zaman ayırması için 10 yıl beklemek yerine muhtemelen ortalama bir doktorun yapmasını tercih edersiniz. Bu, ameliyatı düzenli bir şekilde gerçekleştirmenize izin vermeniz gerektiği anlamına gelmez.


Değil durmak ... ama ameliyat bu tür yüzlerce veya binlerce gerçekleştirmiştir "ortalama" doktor, daha çok bilgi ancak neredeyse deneyime sahip olabilirler tıp fakültesi Dekanı tercih olabilir
JoelFan

8

"En iyiyi işe alma", şu anda kabaca bulunduğumuz yerde bulunan en iyisini işe alma anlamına gelme eğilimindedir ve farklı şirketler için farklı anlamlara gelir. Bazıları rock yıldızı kodlayıcılar, bazıları da titiz yazılım mühendisleri, yolun diğeri ise deneyimli yazılım ustaları istiyor. "Evrensel en iyisi" yoktur, bu yüzden bunu aklınızda bulundurun ve belki de iş tanımınız bir tür programcı aradığınızı gösterir ve görüşme başka bir tür programcı aradığınızı belirtir. Birdenbire kibrit alamazsın.

Bu, programcılar ile çalışmayı sevmediğimi söyledi. So-so'nun deneyimle ilgisi yok (20 yıldır programlanıyor olabilir ve hala çok iyi değiller), ama yetenek ve coşkuyla ilgili her şey. Eğer bu ikisi bu ikisinden birini etkilerse, bir sorununuz var. Ayrıca katkılarının ekibin diğer üyeleri tarafından elden geçirilmesi gereken birini işe almanın bir anlamı yok çünkü kodları yeterince iyi değil. İşlerini yapmaya çalışıyoruz olarak koltuklarda Daha serserileri cevap hep değil, koltuklarda daha Serseriler maalesef aynı zamanda takımın daha iyi üyeleri için daha fazla iş anlamına gelebilir ve so-so programcı teslim etti pisliği temizlemeye .

Bazı insanlar rock yıldızı olarak görülmezler, fakat orta seviye programcılardır. Takımda olmaları iyi ve "çok programcı" ile demek istediğim bu değil. İkincisi, performans inceleme zamanında her yıl kovulmaktan neredeyse kaçan biri.


1
ah, "rockstar programcısı" terimi bile beni kusturmak istiyor.
ozz

6

Bir Yönetici türü olarak, "% 1 ilk" i işe almayı kabul ediyorum pratik değildir ve gerekli değildir. Tavsiyem, ürününüzü inşa etmek ve bakımını yapmak için doğru takımı işe almak olacaktır (inşaat vs bakımlarının ihtiyaçları bakımından çok farklı olduğu için iki çok farklı ekip olabilir)

Şu anda ekibinizde "kilit insanlar" olan kişileri tanımlamanızı şiddetle tavsiye ederim (örneğin, işlerin yapılmasını sağlayın, iyi tutumlara sahip olun, belirsizlik / üst düzey gereksinimlerle iyi çalışın, vb.) Ve sonra sahip oldukları kişileri işe alın Geçmişte birlikte çalıştı (ve saygı açıkça). Bu, görüşme sürecindeki belirsizliklerin çoğunu ortadan kaldırır ve ekibin gelmesine yardımcı olur.

Ayrıca, daha "daha uzun vadeli" - bir stajyer programına büyük yatırım yapın. Program ekibiniz 20 kişiyse, yılda 5 stajyer alın ve onlara gerçek çalışmaları verin. Her yıl sevdiğiniz bir veya iki kişiyi geri alın ve 5 rasgele değişken daha getirin. Takımınızı iyi programcılarla dolu tutmanın en iyi yolu budur. Daha sonra fırsatçı olarak dışarıda kiralayabilir ve bu adaylar için çıtayı yükseltebilirsiniz.

Daha önce de belirtildiği gibi, görüşme sürecinize dikkat edin. Adayların kod yazmasını sağlayın (veya daha iyisi, çözümlerini "1 saat eve götürmek" sorununa kadar yürütün) ekibiyle birlikte öğle yemeği yemelerini sağlayın. Teknik ve kişilerarası becerilerini tanıyın. Gelecek hafta başlayacak büyük bir proje için 20 kişiye daha çaresiz kalsanız bile "hayır" demekten asla korkmayın.


6

Tecrübelerime göre, Paretto Prensibi de programlama için geçerlidir: işlerin% 80'i geliştiricilerin% 20'si tarafından gerçekleştirilir ve bunun tersi de geçerlidir. Tamam, numaralar abartılı olabilir. Gerçekte işlerin% 50'sini yapan çalışanların% 20'si gibi bir şeye sahip olacaksınız (işte, sadece kod satırları değil, iyi iş demek istiyorum). Aslında daha çok bir çan eğrisi gibi. Yani 10'luk bir takımda 1 kahraman, 2 harika adam, 4 ortalama ve 2-3 acınası olacak.

Pek çok şirket, değerlendirmeleri değerlendirmek için Bell eğrisini kullanıyor. Öyleyse adaylarınız ne kadar parlak olursa olsun seviyelerine düşecekler. Herkesin aynı seviyede olduğu bir takıma sahip olamazsınız. Olmaz


2
+1, katılıyorum. Ama bence soru şudur: "acınası olanlara" mı ihtiyacınız var (örneğin takım morali ya da her neyse) ya da takım onlarsız iyi yapar mı? Ve onları bir iş görüşmesinde tanır mısın?
nikie

10
Zavallıyı tanımla. Sıkıcı homurdanan işleri yapan ama merak uyandırabilecekleri kadar iyi kirleticiler varsa, hala onlar. Fakat eğer sadece umutsuzlarsa ve hiçbir şey yapamıyorlarsa, o zaman bir alan kaybıdır.
hızla_ben

Acıklı olanları korumanın tek nedeni, birini değiştirmek için daha iyisini bulamamış olmanızdır. "Eşeğin işi" dediğimiz şeyi yaparlar: fazla düşünülmeyen küçük veya büyük değişiklikler.
DPD

1
Onları röportajda bulmak mümkün mü. Evet, görüşmecinin becerilerine bağlı olarak. Birkaç ders kitabı programı ve problemi çözmelerine izin verdim. Eğer bu seviyeyi geçerse, düşünebileceklerini düşünmeleri için onlara daha karmaşık problemler veriyorum. Zavallı olanlar sözdiziminde iyi olabilirler, ancak gerçekten anlamadan ezbere öğrendiklerinden dolayı. Problem çözmede flop yapacaklar. Bazıları kendi başlarına düşünemeyeceklerini ve sadece Ctrl + C, Ctrl + V dillerinde çalışabileceklerini söyleyeceklerdir
DPD

4
Eşek işi dronları en azından iş yapıyor. Haskell'de 10 yıl süren gelişmiş şeyleri OCaml ile birkaç bağlantıyla, 3 hafta içinde yeniden yazmak istediklerinde ve dokundukları her şey cr * p'ye dönüyor. Sonra gerçekten onları istemezsin!
hızla_ben

4

Burada zaten bir sürü cevap var ama hala tartışılması gereken bir nokta var: So-so'yu işe alanların yazılım kalitesi üzerindeki etkisi ve hayatınızı bir yönetici olarak hayatınızı nasıl daha zorlaştırıyor?

Cevabı "En iyi geliştiricileri işe almaya gerek var mı?" her zaman büyük bir yağdır, YES. Tabii gerçekte, bu her zaman mümkün değildir. Bu soruyu göz önünde bulundurarak yaptığını düşündüğüm tehlikeli hata, "yazılımımızın çok basit bir adamın bile yapabileceği" olduğunu düşünmektir. Bu yanlış.

Yazılımınız yapılacak, bundan şüphe etmeyecek, ancak mükemmel bir ekipten çok iyi bir ekipten çok farklı sonuçlar bekleyebilirsiniz. Daha fazla hataya, daha fazla performans sorununa, daha fazla bakım ve ölçeklenebilirlik sorununa sahip olacaksınız. Çok karmaşık çocuklarınıza, daha karmaşık problemlerle bakıcılık yapmanız gerekecek. Uygun mimarlık kararları almasına rağmen so-so'nun çocuklarına bakmanız gerekecek.

Bunu kabul ediyorsanız ve bunu yönetmeye hazırsanız, sorun değil. Sadece süreç ve sonuçlar için hazır olun.


+1. Evet. Hatta bir ikili arama yazamaz adamlar kiralayabilirsiniz fikri yardımıyla muhtemelen net negatif üreticileri - - ve onları saf ölü ağırlık olmak dışında bir var tamamen saçma.
Tom Anderson

3

Bence harika bir geliştirici kiralamak sorun değil. Asıl zorluk, onların senin için çalışmak istemelerini sağlamak.

En iyilerini işe almaya gerek var mı?
Öyle inanıyorum. Büyük geliştirici sadece her şeyi zamanında yapan bir üretici değil. Sadece böyle bir birey diğerlerinden daha üretken değildir. Büyük geliştirici de örnek olarak lider ve diğer ekip üyelerine ilham veriyor. Diğerleri onlarla çalışırken büyük ölçüde ilerleyebilirdi.

Tamam, yani standartlarını düşüreceksin. Bu harika, muhtemelen gerçekten berbat bir kişiyi işe aldıktan sonra fikrinizi değiştirirsiniz. Tüm CS sorularınızı kusursuzca cevaplayacak, ancak tek bir üretim kodu satırı yazamayan. Bununla iyi şanslar :)


3

Geri bir adım atalım.

Ne yapmaya çalışıyoruz? Yazılım yaz

Neden en iyisini işe almamız gerektiğini düşünüyoruz? Çünkü bu garip Arnold çocuğu ıslak bir kağıt torbadan çıkmasını engelleyemedi ve şimdi de SQL berbattı ve ben giriş yapamıyorum.

Tamam, peki en iyisi nedir? Bilmiyorum, muhtemelen çok para isteyen ve altı metre uzunluğunda harika bir portföyle devam eden ve google'da veya başka bir şeyde çalışan biri. Bir dereceye kadar, belki de adının sonunda bazı harfler olmalı. Evet, bu bana en iyisi gibi geliyor ve en iyisi ile, bu kadar garip olmayan Arnold çocuğu olmayan birini kastediyorum. Ve okulda duyduğum sert bir boktan nasıl yapılacağını bilmeli, "kabarcık dizisi yaz" ya da her ne diyorlarsa. Diğerlerinden birinden okulda yapmaları gereken zor şeyleri söylemelerini isteyeceğim, evet.

Görünüşe göre bu lanet olası Arnold çocuğunu istemiyor musun? Sen istermisin Buggy koduna sahip olmaktan yoruldum, yapılması gerekenler sonsuza dek sürüyor ve röportaj yaptığım yeni adamlar bana her şeyi yeniden yazmam gerektiğini söylüyor!

Doğru, öyleyse şu garip Arnold çocuğundan ne yapmasını istiyorsun? Bir PHP web sitesi oluşturun, bir jQuery yazın, PHP'nin MSSQL ile temel CRUD yapmasını sağlayın ve arkaplan renklerini değiştirin.

Bu, yalnızca en iyilere en uygun olan bir görev gibi görünüyor mu? Eminim ki en iyisini yapabilir, ancak muhtemelen buna uygun doğru beceriye sahip olan herkes bunu yapabilir.

Yani en iyisine ihtiyacınız yok mu? Doğru, sadece hedeflerime uygun bir beceriye sahip birine ihtiyacım var.

Ah. Evet.


@ user1525, bu bir CRUD uygulaması değil. Bu mühendislik yazılımı.
Graviton,

Her zaman değil. Dışarıdaki birçok iş, veri yapıları, algoritmalar veya hesaplama karmaşıklığı hakkında bilgi gerektirmez. Elbette, google aramasındaki işler değiller, ancak bunun için büyük bir talep var. İş ilanlarındaki çoğu ilana bakın, "Bir jquery eklentisine ihtiyacım var" ya da "bana bu psd'lere benzeyen bir iphone uygulaması verin". İnsanlar ya en iyisini ya da en ucuzunu ister.
Gizli,

3

Soru başlığınız bir "Normal Masaüstü Uygulaması" ndan bahseder, ancak metniniz hesaplama geometrisi ve doğrusal programlama bilgisi uygulamasına ihtiyaç duymaktan bahseder. Bunlar, herhangi bir ilerlemenin kitlesel toplumsal sonuçları olan devasa, çok yıllı araştırma programlarını ortaya çıkaran uygulama alanlarıdır (hatırlama, doğrusal programlama, kaynak tahsisini özetler ). Sonuç olarak, bu alanlarda çok iyi çalışan sorunların çözümüne yönelik çok sayıda karmaşık yaklaşım vardır.

Kötü bir kiralama

  • Bu sınıf problemleri bile duymamış olabilirsiniz,
  • ortak çözümlere aşina olmayabilir,
  • Muhtemelen dışarıdaki daha iyi şeyleri bilemeyecekti (ipucu: çoğu üniversite öğrencisi, eğer problemler hakkında bir şeyler duyarlarsa, süslü şeyler hakkında hiç bir zaman duymazlar) ve
  • neredeyse kesinlikle bu tür şeyleri uygulamak için yaş alacağım (bazılarının veri yapılarında tam bir lisansüstü semineri verdiğini göz önünde bulundurarak, profesör dahil).

Başka bir deyişle, gerçekten bir yaya üzerinde çalışıp çalışmadığınızı düşünün. Eğer iyiyseniz, işe alımlar çok daha kolay olmalı. Eğer değilseniz, ihtiyacınız olanı yapabilecek birini bekleyin.


tüm hesaplama geometrisini / doğrusal programlama kütüphanelerini yeniden yazmak zorunda değilsiniz; Yapmam gereken tek şey, uygulamam söz konusu olduğunda, sorunları eldeki uygun hesaplamalı geometrik / doğrusal programlama terimlerine nasıl aktaracağınızı ve mevcut kütüphanelerin ne zaman / nasıl kullanılacağını bilmek.
Graviton

2

Elbette ben Joel’in standartlarına göre bir süperstar programcısı değilim. Yine de 20 yıllık kariyerimde geliştirici olarak oldukça başarılı projeler yazdım. Sorularınızı çözebilirdim. Ancak, iş deneyimimden daha az, aslında daha karmaşık işlerin çoğunun, veritabanınızdan veya bir kütüphane işlevinden bunu yapmasını isteyerek yapılır.

Ancak daha az deneyimli insanları işe almaya karar verirseniz, kullanımı kolay teknolojileri kullanmayı düşünmelisiniz. Örneğin, tüm proje için C ++ kullanmayı planladıysanız, C ++ bölümünü en iyi kişileriniz tarafından yazılmış kütüphanelerle sınırlayın ve diğerlerinin kullanıcı arabirimini Visual Basic'te uygulamasına izin verin.


2

Aradığın değerleri, katına katılacak bir çalışana yaz.

Takdir edilen tek değer programlama yeterliliği olduğunda, kendinizi hemen buna değer veren insanlarla çevrili olarak bulacaksınız. Gerçekten yetenekli programcıların çoğu daha ayrıntılı bir değer sistemine sahip olduklarından, ekibinize katılmaktan kaçınırlar.

Ancak, yenilikçi, yaratıcı, güvenilir, dürüst, meraklı, kendi kendine öğrenen, sosyal, yetkin ve özverili insanlar aramanız daha olasıdır. Şirketinizin bu değerleri anladığını ve saygı duyduğunu ve çalışanlarının bunları daha da geliştirmelerine yardımcı olmaya istekli olduğunu gösterin.

Mevcut çalışanlarınızın değerlerini anlayın ve benimseyin ve bunları iş başvurularınızda iletin. Sürdürülebilir bir değer sistemine sahip iyi şirketler iyi çalışanları cezbeder.


-1: tabii (ve OP hakkında konuştuysanız) para derseniz elbette mantıklı olur. Bu cevabın ona nasıl yardımcı olacağını anlamıyorum. Temel olarak doğru anladıysam başvurusunda yeterince pazarlama yapmadığını mı söylüyorsun? Peki, belki bu biraz yardımcı olabilir, ancak genellikle çok fazla yetkin insanın en azından makul bir değere değmeyeceğini göremiyorum. .. dediğim gibi, "programlama yeterliliğini" para ile değiştirin ve cevabınız çok mantıklı ama üzgünüm alamadım.
n1ckp

Eğer yorumumu anlamıyorsanız, belki de onu değiştirmemelisiniz. Neyse, demek istediğim oldukça basit. Zamanla, bazı mükemmel programcılar tanıştım. Dillerini, algoritmalarını, matematiğini, fiziğini biliyorlar ... Ancak, ilk başta onları büyük yapan şey, sadece zanaattan çok bir ilgi alanıydı. Kendilerinde ve başkalarında meraka değer verirler. Bağımsız bilgiyi önemli bir özellik (veya değer) olarak görüyorlar ya da çevrelerinde yaratıcı olanlardan ilham alıyorlar. Genellikle, bu değerler gelirlerinden daha önemlidir.
Dibbeke

@Dibbeke: Ben de kısmen modda ettik çünkü bunun soru ile nasıl ilişkili olduğunu göremiyorum. Yine de güzel rant ve son yorumunuzla aynı fikirde değilim (cevabınız başka bir şey olsa da) ancak yine de OP’ye nasıl yardımcı olacağını veya asıl soruyu nasıl cevaplayacağını göremiyorum.
n1ckp

@ n1ck Pazarlama derken, işe alım sürecinin temel değerlere dayandırılmasının gerçekten aynı olup olmadığını merak etmeye başladım. Bilmiyorum, ama sosyal bir güven ve saygı ağı oluşturmanın bundan çok etkilendiğini biliyorum. Bu da şirketinizin itibarını etkiler ve bu birinci sınıf yazılım geliştiricilerini çekmenize yardımcı olur.
Dibbeke

@Dibbeke: Son yorumunuzu alıp almadığımdan emin değilim ama sanırım en azından size katılıyorum. Fakat yine de, OP’ye yardımcı olacağından emin değilim (şu anda soru ile nasıl ilgili olduğunu daha fazla görmeme rağmen). Bana onun şirketi hakkında hiç bir şey konuşmadığını söyleyen şey, bu yüzden evet, belki de şirketinin kötü bir üne sahip olmasının bir nedeni olabilir, ancak sonuçlara
atlıyorsunuzdur

1

Herhangi bir organizasyonda daha fazla deneyime sahip ve daha az kişiye sahip olan insanlar var. Sadece bu değil, bir alanda uzman olan biri diğerinde acemi olabilir. Hevesli bir amatörün kod üssüne göre daha fazla zarar verebileceğinden emin olabilirsiniz, ancak bu şekilde öğrenirler - hatalarını düzeltmek ve deneyimlerini daha deneyimli meslektaşlarıyla tartışmaktan.

Benim önerim, süperstarları işe almaya çalışmak yerine, oldukça parlak, şirket kültürünüze uyacak, kendi sınırlarını öğrenmek ve takdir etmek istekli olan kişileri işe almaya çalışmak.


1

Kesinlikle en iyisini işe almak istemeniz gerekir. Bu otomatik olarak başarılı olacağınız anlamına gelmez - dolaşmak için sadece "en iyiler" vardır ve savaşta onları çekmek için kazananlar ve kaybedenler olacaktır. Bunların çoğu, probleminizde ve sizin için mevcut olan kaynaklarda çalışmak için yetenek ve istekliliğinizden gelecek.

Başlamadan önce pes etmek kaybetmenin en kesin yolu.


1

İkili arama ilginç bir sorundur, çünkü çoğu programcının aslında doğru yazmak için mücadele edeceği iyi bilinmektedir ( Bently, Programlama İncilerinde yazmaktadır ). Belki de adayları çözemediklerine dayanarak ekarte etmediğiniz sürece, test etmek o kadar da kötü değildir. Hızlı ve doğru bir şekilde çözerlerse, en azından ne tür bir programcı olduğuna dair ipuçlarını gösterir, böylece bu durumda daha fazla bilgiye sahip olursunuz.


1

En iyisini kiralamanız gerekir. ancak bu terim birçok kez bağlam dışına alınmıştır. Genel anlamda en iyi programcı değil, bu pozisyon için gerekli becerilere sahip en iyi adayı bulmanız gerekir. Yazılım geliştirme geniştir ve her pozisyon aynı teknik bilgiyi gerektirmez.

Kendinize bu soruyu sorun (zaten yaptınız ..): 5 yıl boyunca aynı pozisyonda başka bir mühendisiniz varsa, onun fibonanci serisini ve ikili aramaları hatırlamasını bekler misiniz?

Cevap hayır ise, görüşme düzeninizi değiştirin. Google veya Bing gibi bir arama uygulaması üzerinde çalışmak istiyorsanız, bir düzine arama algoritması bilmek gerekebilir. Diğer herkes sadece map.get ("") kullanır;

Mülakatlarınızı, bir ders kitabı-genel iyi programcıya değil, pozisyonun ihtiyaç duyduğu şeye hedefleyin.


1

Kaliteyi gerçekten önemsemiyorsanız, dış kaynak web sitelerinden birini kullanmanızı ve küçük projelerle başlamanızı öneririm. O zaman işi yapabiliyorlarsa onlara ödeme yapabilir ve yapamazlarsa kefalet etmenin kolay bir yolunu bulabilirsiniz.

Ancak, bir masaüstü mühendisliği uygulamasında gerçekten çok fazla rutin kodlama olup olmadığını sorguluyorum. Çok karmaşık olabilirler ve çoğu programcı karmaşıklığı yönetmede o kadar iyi değildir. Gelecekte ekibinizi bağlayacak çok sayıda anlık eski kodu kolayca oluşturabilirsiniz. Genel olarak, yeni bir proje için ilk işe alımlar çok önemlidir ve tüm proje için tonu belirleyecektir.


0

Bir kimsenin bir soruna uymasıyla ilgili yukarıdaki yorumların çoğuna tamamen katılıyorum. Bu genellikle düzenli bir problem üzerinde çalışmak için bir süperstar kiralamak yerine uzun vadeli bir ilişkiyle sonuçlanır - bu da onu çabucak terk etmesini engeller.
Bunu söyledikten sonra, her zaman belirli bir pozisyondan ziyade şirketiniz için işe almaya çalışmalısınız. Çünkü bu aynı adam daha sonra veya daha sonra kişisel temaslar vb. İle takımlar arasında geçiş yapacak ve başka bir yerde aşırı kilo olmuş olabilir. Şirketinizin çok katı bir iç transfer kurallarına sahip olduğundan ve önümüzdeki birkaç yıl boyunca ekibinizde ne yapacağınız konusunda net bir fikre sahip olduğunuzdan emin olun; ). Geliştiricilerin sıradanlığının, ekibin etrafına sığmayacak kadar fazla çalışmasına neden olduğu çok fazla vaka gördüm.

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.