Yeni programcıları değerlendirmenin en iyi yolu nedir? [kapalı]


51

Yeni bir iş bulmak için en iyi adayları değerlendirmenin en iyi yolu nedir (sadece programlama becerileri açısından) Şirketimde, iyi notlara sahip ancak gerçek programlama becerisine sahip olmayan insanlarla birçok kötü deneyim yaşadık. Becerileri sadece kod maymunları gibidir, problemleri analiz edip çözümler bulamazlar.

Dikkat etmem gereken daha çok şey:

  • Ülkemdeki eğitim sistemi berbat - gerçekten berbat. Bu tür bir işte iyi olan insanlar iyidir çünkü bunun için yetenekleri vardır ya da gerçekten kendi başlarına öğrenmeye çalışırlar.

  • Üniversite / yüksek lisans / lisansüstü derecesi, tam olarak işlerin nasıl yapılacağını bildiğiniz anlamına gelmez.

  • Sertifikalar ayrıca burada hiçbir şey ifade etmez, çünkü sertifikasyon kursundan sorumlu kişilerin de yetenekleri yoktur (veya düşük ücretli işlerdedirler).

Gerçekten esnek ve mekanik düşüncesi olmayan iyi adaylar elde etmemiz gerekiyor (çünkü bu tür insanların tecrübesi düşük performans gösteriyor).

Bir devlet kurumundayız ve aday olan insanlar dışarıdan gelmek zorunda değiller, ancak doğru olanı bulana kadar herhangi bir adayı kabul etme veya kabul etme imkanımız yok.

Umarım soruma karşı çok agresif davranmıyorum; ve btw kendim bir programcıyım.

düzenleme: Ben burada gerçekten karmaşık bir şey sordum anladım. Tartışmanın akıcılığını sağlamak için hiçbir önyargı olmadan "doğru cevabı" değiştireceğim.


Maymun kodlamayla ilgili söylediğiniz gibi yaratıcılığa değer veririm. Kaba kuvvet yaklaşımını sevmiyorum, eğer geçmiş programcıların nesiller belli bir yaklaşımı kullandıysa, bunun harika olduğu ya da uzun süredir devam ettiği anlamına gelebilir. Ayrıca eğitimin ticaret becerilerine odaklanmaması gerekiyordu ve bunun çok önemli olduğunu söyleyebilirim, ancak edinilen notları çok önemli olmadığı kadar temel bir yetkin seviyenin üzerine koymak. Bir modül tekrar almasına izin verilmeden önce, diğer modül geçiş bağımlılıklarına sahip bir çok küçük başarılı / başarısız modülünün Khan Akademi tarzı sistemini ve soğuma dönemini görmek isterim.
alan2her

Yanıtlar:


52

Aday seçimine gelince, genellikle üçlü grev planıyla gidiyorum:

  • FizzBuzz benzeri kodlama soruları ve kodlanmış örnekler vermeleri gereken birçok bilgi sorusu ile düzenli testler . Konuma bağlı olarak, OO ilkeleri, SQL tasarım ilkeleri, vb. Olabilir. Ne kadar ileri gidebileceklerini görmek için test boyunca soruların zorluklarını artırıyorum. Buradaki fikir, gerçekten tüm soruların cevaplandırılması (eğer yaparlarsa, daha iyi) değil, aynı zamanda bir şey bilmediğinde kabul edip etmeyeceklerini de görmek. Güven çok önemlidir ve ekibimde bana yalan söyleyen birisinin olmasını istemiyorum.

  • Aday ile teste geri dönün ve cevapların etrafında tartışın. Adayların sınırlarına ulaşmak için olası soruların uzatılması. Bu kapsamlı olabilir ve ne kadar kapsamlı olursa o kadar iyidir.

  • Son bölüm ama en az değil, The Code Review . Adaydan bir kod parçası getirmesini isterim (genellikle önceki sınavı / tartışmayı ve bu incelemeyi birkaç gün yazıp, bir kod parçası yazıp parlatmaları için boşluk bırakarım). Daha sonra iki kişiyle düzenli olarak kod incelemesi yapıyoruz: Bir aday ile doğrudan çalışacak bir kişi ve daha önce aday ile testi gözden geçirecek kişi. Kod inceleme ile ilgili olarak okuyabilir bu makaleyi gelen JohnFX .

Tüm bunların sonunda, bu adayın ekibinizin bir parçası olup olmadığına karar verebilmelisiniz.


4
Soru sorma ve soru sorma konusunda hemfikirim, adaylardan bir kod parçası getirmelerini asla istemedim. Kanımca, önemli olmayan bir kod bulmak kolay değil: önemsiz bir şey gösterir, daha büyük bir sistem hakkında çok fazla bilgi gerektirmez ve başkalarına göstermenize izin verilir.
Andrea Zilio,

Kod incelemesi derdim. FizzBuzz çok kullanılmış. Ve insanları korkutabilirsin. Sağlık ve finans hizmetlerinde programcı oldum ve fizzbuzz gibi şeyler işe yaramaz. Çok daha karmaşık etkileşimi anlayabilmelisin. Pygame'de bir FPS olsa bile, kod örnekleri isteyin. Kod örnekleri yoksa kodlayıcı değillerdir.
Christopher Mahan

1
@ChristopherMahan FizzBuzz'ın değeri (ve benzer şekilde önemsiz kodlama) basit bir bekçi gibidir. FizzBuzz'ı kendi seçtikleri dilde uygulayamazlarsa HERHANGİ BİR kod yazabilirler mi?
Vatine,

@ Vatine FizzBuzz programlama becerisini değil, mantıksal akıl yürütme yeteneğini test eder. Verilmiş, biri bunu yapabilmeli. Basit bir programlama sorusu şu şekilde olabilir: ekranda ilginç bir şekilde sıralanan öğelerin bir listesini ekrana getirmek. Kodlamaları gerekecekti, ancak yazacak bir şeyler bulmak için deneyimlerden yararlanabileceklerdi ve ayrıca beyin teaserını çözmeye çalışacaklardı. Bir keresinde bir röportajda başarısız oldum çünkü regex kullanmamı istediler ve ben de bu sorunun regex'in bir overkill olduğunu ve python'un bunu yapabilme yeteneklerine sahip olduğunu söyledim. Orada çalışmak istemedim sanırım.
Christopher Mahan,

Kod İnceleme korkunç bir fikir ve JohnFX'in çürütücü yetersiz. Harika olan ancak işverenlerinin özel kod tabanlarının dışında hiçbir şey üzerinde çalışmayan pek çok geliştirici var. Bunlar aileleri olan insanlar ve iş dışında yapılması gerekenler. Ancak, çalıştıkları zaman çok üretkendirler.
MrFox

20

Çözmeleri için onlara FizzBuzz'ı vermeye başlayın . Bu onların en kötüsünü temizlemeli.

Sonra biraz daha zor bir şey - örneğin, kütüphane işlevlerinde yerleşik olmayan bir dize nasıl tersine çevrilir. Düşünce süreçlerinin ne olduğunu görmek için çözerken konuşmalarını isteyin.

Bunları çok kolay bulduklarında daha zor problemler yaşamaya devam edebilirsiniz, ikna oluncaya kadar yürüyüp yürüyüp ikna edemediklerine sadece konuşarak konuşamazsınız.


1
Sanırım görüşme yaptığınız programcının seviyesine bağlı olabilir. Orta seviye bir işe alım kabiliyetine erişmek doğru olsa da, bir röportajda bu tür soruları çalışmak istediğim bir şirket olmadığını açık bir şekilde ele alırdım.
jfrankcarr

3
Konuşan bölüme katılmıyorum. Sorunları çözerken sık sık kendinizle veya diğer insanlarla konuşur musunuz? Bir insana biraz yer bırakıp biraz düşünmesine izin vermeye ne dersin? Tamamen önemsiz olmadığı sürece, bunun iyi bir uygulama olmadığını düşünüyorum.
Andrey Rubshtein

1
@Andrey - Konuşan kısım, düşünce süreçleri hakkında fikir edinmek. Bir problem hakkında nasıl düşündüklerini ve çözme yaklaşımlarını görmek istersiniz. Daha iyi bir seçeneğin var mı?
Oded

5
@Oded, evet, aslında yapıyorum. Bir süre, tek başlarına , özellikle de zor bir problemse, gerçek hayatta olduğu gibi düşünmelerini sağlayın ve istediğiniz kadar onlara sorun. Herhangi bir sözlü sınavda olduğu gibi.
Andrey Rubshtein

4
Son zamanlarda pek çok CS uzmanının tanıdığı bir okulda görevli olarak bile, önemsiz fizzbuzz'ın iyi bir filtre olduğunu buldum. Mezun olduğum insanların çoğu muhtemelen makul bir sürede çözemediler. Bu insanlar iş bulmakta zorlandı veya olmadı. Bence joelonsoftware.com/articles/GuerrillaInterviewing3.html'nin iyi olduğunu düşünüyorum .
Rig

14

Sadece işle ilgili tutkuyu ara.

İnsanlar için bakmak, Joel alıntı yapacak " Akıllı, ve halletmek. "

Gerisi önemli değil


7
Sorun onların akıllı olup olmadıklarını söyleyememeniz .

4
@Chad: Öğrenme tutkusu "işleri halletmek" değildir. Birisinin işleri halledebileceğini bulmak için onlardan bir şeyler yapmalarını istemeniz gerekir.
kevin cline

2
@kevin cline, görevimi çimdikledi. İşle ilgili tutku duymaları gerekir, genellikle öğrenmek istemekle gösterilir. Evet, bazı soruları alır, konuşma akmalıdır, sadece bir dizi soru olmamalıdır. Ancak bir şeyleri yapıp yapmadıklarını öğrenmek için, engellerinin nerede olduğunu ve bunun üstesinden nasıl geldiklerini örnekler için isteyin. Herkes işinde yol bloklarına çarpıyor, teknolojiden, insanlardan, süreçlerden olsa da, işleri bitiren akıllı bir insan, üstesinden gelmenin bir yolunu bulacak ve sizi satabilecek kadar ayrıntılı bir şekilde açıklayabilecektir. onların becerisi.
CaffGeek

3
@mouviciel benim tecrübeme göre değil. Tanıdığım en akıllı programcılardan bazıları çok dışa dönük.

4
Geliştirici adayı olan bir odada oturup, akıllı olup olmadıklarını anlayamıyorsanız, bulabilecek birini bulun.
JeffO

13

25 yıllık programıma dayanarak (kuşkusuz sadece 5 veya 6 örnek programlayıcı işe almayı içerir):

Olumlu göstergeler:

  • Teknoloji hakkında tutkulu

  • Hobi olarak programlar

  • Teşvik edilirse kulağınızı teknik bir konuda konuşacak

  • Yıllar boyunca önemli (ve çoğu zaman) kişisel yan projeler

  • Yeni teknolojileri kendi başına öğrenir

  • Çeşitli teknolojiler için hangi teknolojilerin daha iyi olduğu hakkında görüş

  • “Doğru” olduğuna inanmadığı bir teknoloji ile çalışma fikrinden çok rahatsız

  • Açıkçası akıllı, çeşitli konularda harika konuşmalar yapabilir

  • Üniversite / işten çok önce programlama başladı

  • CV radarı altında büyük kişisel projeler, bazı gizli “buzdağları” var

  • Çok çeşitli ilgisiz teknolojiler hakkında bilgi (CV'de olmayabilir)

Olumsuz göstergeler:

  • Programlama bir günlük iştir

  • Gerçekten "cesaretçi" konuşmak istemem

  • Şirket destekli kurslarda yeni teknolojileri öğrenir

  • Seçtiğiniz teknoloji ile çalışmaktan mutlu, “tüm teknolojiler iyi”

  • Çok akıllı görünmüyor

  • Üniversitede programlama başladı

  • Tüm programlama deneyimi CV'de

  • Temelde bir veya iki teknoloji yığınına odaklanmış (örneğin bir java uygulaması geliştirmekle ilgili her şey) ve bunun dışında hiçbir deneyime sahip değildir

Ayrıca şunu önerebilirim:

  • FizzBuzz testi (veya bir benzeri bir algoritma yazmak için temel yeteneğini test etmek.
  • FizzBuzz testinin daha zor versiyonu (başarısızlığa veya başarısızlığa yakın noktaya getirmek için.)
  • Kodlarını tartışın ve kendileri için kritik öneme sahip olup olmadıklarına bakın ve aşağıdakileri gibi iyileştirmeler arayın (muhtemelen kısa süren bir testte zamanları olmadı):
    • iyi değişken isimleri (Çok tecrübeli yetenekli kodlayıcılar yaşadım; "flag" (WTF ??)
    • modularization.
    • Sorunları tahmin etmek ve "savunma kodlaması" yapmak
  • "Kusurları" iyileştirme fırsatları olarak görme isteği. Bence en iyi kodlayıcılar daima önceki kodlarındaki kusurlara sürekli bakarlar. Bir kusur bulmanın kişisel bir mesele olduğunu düşünecek kadar coşkulu değiller. Bunu daha iyisini yapmak için bir fırsat olarak görüyorlar. (Kusurlara bakmadan bakamayanlar ya bir kusur gördüklerinde çok şaşırırlar (ve aşırı güvenilmez hale gelirler ya da bundan kaçınmak için kusurları görmezden gelirler).
  • Hata ayıklayabilirler mi?
  • Birim Testi yapabilir mi? (“QC bunu yapar” diyen çok fazla programcı ile konuştum. Test hakkında konuşmuyorum, test hakkında konuşuyorum: bir işlev yazıyor, çalışıyor mu? Başa çıkma konusunda makul çaba gösteriyor mu? olası sorunlar (NULL giriş vb.)? Bunu yapamazsanız, işiniz bittiğinde nasıl anlarsınız?
  • İyi iletişim becerilerine sahipler mi? (en azından: ne zaman anladıkları ve anlamadıkları hakkında iyi anlama ve öz bilgi ve "anlamıyorum, lütfen tekrar açıklayın" deme istekliliği.

Yukarıdaki özetin büyük bir kısmı, harika bir makale olan iyi bir programcıyı nasıl tespit edeceğimizden biraz daha uzun aralık göstergelerine odaklanmıştır. Sezgilerimi ve tecrübelerimi kesinlikle onaylıyor. Aynı zamanda, "iyi bir programlayıcı olan" kontrol listesinde normalde belirtilmeyen pek çok şey ("tutku" gibi).


10

Programlama zekasını değerlendirmek bir Turing Test şeklidir. Bu nedenle (şu anda) çalışması garanti edilen kapalı form değerlendirme prosedürleri yoktur. Akıllı programcıların diğer akıllı programcıları tanıması gerekir, ancak yalnızca makul bir olasılıkla.

Takımınızdaki kar işlerini koklayabilen ve içgüdüsel olarak aptal insanlarla çalışmaktan hoşlanmıyorsanız (iyi görünen, etkileyici görünen özgeçmişleri olan ve her zamanki konserve çözümleri bellekten alabilir) görüşmeci varsa, şansınız daha iyi olacaktır. .

(Bir yan etki olarak yığın akışının kalitesine yardımcı olacak bir olasılık metodolojisi, bir şekilde iş gereksinimlerinizle ilgili olan eski yığın akış akış sorularını kazmaktır, ancak sizce nasıl cevap verebileceklerini sormak; eğer iyi bir cevapsa, göndermelerini isteyin. Kalabalık kaynaklı OCR için bir benzerlik.


7

Onlara, üzerinde çalışacakları sorun alanıyla ilişkili olan bir problem verin ve onlara nasıl yaklaşacaklarını tartışmalarını isteyin. Beceri seviyelerinden ne kadar emin olduğunuza bağlı olarak sadece tartışmalarını, takma kodları veya gerçek kod parçalarını yazmalarını sağlayabilirsiniz.

Örneğin, kuruluşunuz konferans yaptıysa, güvenli bir çevrimiçi kayıt sistemini nasıl kodlayacaklarını ana hatlarıyla belirtmelerini isteyin. Bazı temel hususları kapsayabilir ve tam olarak nelerin uygulanması gerektiği hakkında iyi sorular sorabilirler. Etkileşim kurduğunuzda, kuruluşunuz için uygun olup olmadıklarını ve doldurmaları gereken rolü belirleyebilmelisiniz.

Ben trivia testlerini ve beyin teaser'larını programlamanın hayranı değilim. Bazı insanlar için eğlenceli olsalar da, takımınıza en uygun kişiler de dahil olmak üzere diğer insanları rahatsız edebilir ve / veya strese sokabilirler. Ayrıca, bu tür pek çok test hakkında bilgi çevrimiçi olarak kolayca erişilebilir durumdadır ve testlerin ve programcı yeteneğini ölçmek için uygulanabilirliklerini köreltecek olan diğer taktikler için tıkanmayı teşvik edecektir.


Aday seçimi için trivia / beyin testinin olumsuz yönleri konusunda size katılıyorum. Sorun, kodun her adayla incelenmesinin / tartışılmasının çok zaman alıcı olmasıdır. Ve belki sonuç daha subjetive olacaktır. tam olarak aradığım şeyi değil, daha az kişisel gözetim gerektiren bir şeyi tercih ederdim. ve daha sonra daha uygun adaylarım olduğunda, onlarla konuş / tartış / görüş
Rafael

3
Çok zaman alıcı? Birisinin adaylarla konuşması gerekecek. Hiçbir yazılı test işe yaramaz. Testin içeriği hızla kamuoyuna açıklanacak ve adaylar ezberlenmiş cevaplarla gelecekler.
kevin cline

10
@kevincline: Kesinlikle, onlarla konuşmalısın. Xerox'ta (70'lerde) röportaj yapıyordum ve bana bir karma algoritmada çarpışmalarla nasıl başa çıkacağımı sordum. Programlama konusunda çok fazla resmi eğitimim yoktu, ancak o zamanlar yaklaşık 5 yıldır yapıyordum, bu yüzden bir karmaşanın ne olduğunu bilmediğimi söyledim. Mülakatçım bana açıkladı ve soruyu tekrar sordu. Birkaç tip çarpışma problemini keşfettim ve çözdüğümde bir saatten fazla devam ettik. Bunu bir saat içinde yapabilirsem bana fırlattıkları her şeyi halledebileceğimi söyledi. İşi aldım. Çünkü benimle konuştu .
Peter Rowell

@PeterRowell İşlerin böyle olması gerekiyor. +1
Chiron

3

Bu soruyu ve aldığı cevapların bir kısmını okumak, ilgimi çekebileceğini düşündüğüm bir makale yazmamı istedi:

Yazılım geliştiricileri işe alırken tuhaf işe alım uygulamaları

Tamam, bu yüzden makale başlığı çöp, ama makale sorunun kalbine gidiyor. Aklınızdaki rol için ne kadar uygunsuz olabileceği önemli değil, onlarla görüşmeyi seçtiğiniz adayın sorunu değil. Eğer cevherleri bulmak için iyi faktörlü bir işe alım prosedürü tanımlamayı başaramazsan, sonuçlarına katlanmak zorunda kalacaksın, ve evet, bu bir kaç aday elde edebileceğin anlamına geliyor. Asla beklentilerinizi yerine getirme. Adaylarınızı mektuplarına ve özgeçmişlerine göre filtrelemek için önce sizden, adaylarınızdan kendileri ve rolden ne istedikleri hakkında bir mektup yazmalarını isteyin ve ardından özgeçmişinin nasıl yazıldığına bakın. Mülakat yapacak yalnızca bir veya iki potansiyel adayınız varsa, o zaman muhtemelen ön gösterimi düzgün bir şekilde yaptınız.

Sonunda gerçekten zaman ayırmaya değer olduğunu düşündüğünüz 1 veya 2 adayı bulduğunuzda, sadece bir avuç testçi sorusu sormayın, bunun yerine bu insanları tanımak ve yazılım hakkında açık tartışmalar yapmak için zaman ayırın genel olarak mühendislik. Adayla ilgili sıradan bir yaklaşımdan, geleneksel (ve biraz çekişmeli) görüşme durumunda olacağınızdan daha fazlasını öğreneceksiniz. Ayrıca, yalnızca tek bir görüşme yapmak için yetinmeyin, bunun yerine kilit adaylarınıza açık tartışmaların kullanıldığı ve aday meslektaşlarıyla buluşabilecekleri çeşitli toplantılara katılın. Uygun olmayan adaylar oldukça teknik bir tartışmada çok iyi gelişmeyecekleri ve kusurlarını, görevlerini bıraktıkları zaman çok hızlı bir şekilde gösterecekleri için zaman asla boşa harcanmaz.


Güzel nokta. Ancak, çok fazla röportaj konusunda dikkatli olurdum. Hem adayın hem de zamanınız değerli (özellikle aday şu anda başka bir yerde çalışıyorsa). Tecrübelerime göre daha fazla sayıda görüşmenin azalan getirileri var, bu yüzden bir ya da iki görüşme ile sınırlıyorum. Bir (ek) telefon görüşmesi de bir uzlaşma olabilir.
sleske,

1
@sleske, özellikle aynı kişiler tüm görüşmelere katılırsa, müdür olarak aynı fikirdeyim. Bu nedenle hem şirket hem de takım için en uygun olanı bulmak yükünü paylaşmak daha iyidir ve size başkalarının gözlemlerinden bir şeyler öğrenme şansı verir. Kötü görüşmeler daha fazla ilerlemeyecek, ancak adayla ilgilenen paydaş ne kadar çok ihtiyaç duyarsa o kadar fazla görüşme yapabilirsiniz, bu nedenle çok geniş takımlarda 3 veya hatta 4 görüşme yapmak olağan değildir. Çok daha fazlası olsa da, korkunç şekilde dağınık olduğu izlenimini verir. Ayrıca adaylara ön görüşme sayısından bahsetmek için öder.
S.Robins

@ s-robins ilginç görüşler, sadece sorumun bazı yönleriyle ilgili biraz öne geçmek istiyor. Kontrolümüz dışındaki bir sebep nedeniyle adaylarımızı normal bir İşe Alma sürecine göre seçemeyiz, bunun yerine adaylar yalnızca gelir ve işi almak için doğru becerilere / bilgiye sahip olup olmadığını söylemeliyiz. Belki normal bir işe alım sürecinde bu şeyler çok sık olmaz. ama bizim durumumuzda bu durumla başa çıkmamız gerekiyor.
Rafael

@Rafael, Yorumları doğru bir şekilde anlarsam, değerlendirmek için "başka bir yerden" adayları beslediğinizi ve zorluğunuzun o aday hakkında önceden bilgi sahibi olmadan bir adayın objektif bir değerlendirmesini yapmakta olduğunu söylüyorsunuz. Bu, çalıştığınız kurum içindeki sistemik bir problem gibi gözüküyor. Adaylara yolunuzu gönderen insanlarla tanışmanızı ve onlarla görüşmeden önce açıkça uygunsuz adayları filtrelemek için bir sistem geliştirmek için onlarla çalışmanızı öneririm. Belki daha resmi bir başvuru sürecinin uygulanmasını talep edebilir.
S.Robins

@ s-robins iyi anladınız ...
Rafael

1

Hangi dil için söylemediniz, ancak birinin bilgisini sınamak oldukça kolaydır. Ayrıca, aradığınız seviyeye de bağlıdır, ancak görüşme sorularıyla ilgili oldukça büyük bir soru havuzu vardır .

Bununla birlikte, röportajınızı yapmaya karar verdiniz , bu "lateral düşünme bulmacası" röportaj sorularını sormayın .


2
önceden geliştirmek için kullandığımız dili belirtmedim, çünkü iyi bir programcının (saygın kapasitasyon kursuyla birlikte) sözdiziminden bağımsız herhangi bir dilde programlamayı öğrenebileceğine inanıyoruz.
Rafael,

2
@Rafael norvig.com/21-days.html . Dediğim gibi, küçük bir programcı mı yoksa son sınıf bir program mı arıyorsunuz?
BЈовић

Çünkü çoğu adayın yeni mezunlardan bahsettiğim için. Küçük programcılara atıfta bulunmaktayım, ancak sorum daha geniş bir bağlamda, özel kişisel işe alım sürecimden kaynaklanıyor
Rafael

@Rafael Bu durumda bir çocuktan çok fazla şey bekliyorsun. Bir programlama dilinde uzmanlaşmanın ne kadar sürdüğünü anlattığı yukarıdaki açıklamada yer alan makaleyi okuyun.
BЈовић

belirli bir programlama dili konusunda ustalıktan bahsetmiyorum, en iyi jenerik programlama becerilerine sahip en iyi kişiyi elde etmek için konuşuyorum, (dili bu yüzden belirtmiyorum) Bu, aday olduğumuz dilde programlama yapmakta olduğumuz dilin ana dili olarak karşımıza çıkıyor ve bu nedenle insanlar dili bilmiyorsa, bir kapasite kursu getirme konumundayız.
Rafael

1

Bir FizzBuzz sorusuyla gidip geçen ilk soruyu işe almanı öneririm. Her iyi programcının sizin gibi bir soruna yaklaşmayacağı veya kekemelik yapmadan röportaj yapamayacağı veya üçüncü bir değişken olmadan tamsayı değişimi gibi tam anlamıyla değiş tokuş yapmak gibi istediğinizi veya ilgilendiğiniz dilleri bilmediğinden ileri testler kusurlu olma eğilimindedir. çünkü, RAM 128 baytı aştığından?).

Bunu düşün. FizzBuzz sorusu 200 üzerinden 199’u elimine ederse, yüzlerce görüşmeyi yok etti. Gerçekten yüzlerce potansiyel müşteriyle görüşecek miydin?

FizzBuzz'dan sonra azalan getiriler gibi görünüyor. Bu, 199/200'ün yaklaşık olarak yakın olduğu varsayılmaktadır. Ve sanırım SİZİN zamanınız da değerli.


2
Bir programcının yetkinliğini değerlendirmek için FizzBuzz'ın standart bir test olması ne kadar korkutucu. Ancak, bu denenmiş ve gerçek bir test - size CS dereceli kaç programcının bunu yapamayacağını söyleyemem (kendi seçtikleri dilde)
Nodey The Node Guy

0

Bunun bir yorum mu yoksa cevap mı olduğundan emin değilim ama temelde Matthieu’nun söylediği. Bir veya iki dakika (ancak en fazla 5 dakika) süren aptal, kolay sorular istiyorsunuz ve bunlar farklı alanlarla ilgili olmalıdır.

Bu kadar aptalca basit bir soru örneği, bir listeniz olduğu gibi yinelemeyle ilgili bir sorudur ve bir döngü kullanmadan ters sırayla yazdırmanız gerekir. Regex normalde gelişiminizde yapılırsa basit bir regex sorusu. C ++ kullanıyorsanız bitler ve baytlar hakkında bir soru (karakterini uzun süre kabul eden ve ikili gösterimi basan bir şablon yazın. Uzmanlık gerekli değildir, sadece bit uzunluğunu bulmak için sizeof () kullanın)

Sizi soru başına <= 3 dakika kadar götürmeli


0

Onlara çözmeye çalıştıkları ama yapamadıkları, çözerken hangi yaklaşımı kullandıklarını, neden çözemediklerini ve başka hangi yaklaşımı çözebileceklerini düşündüklerini, en ilginç programlama sorununu sorun.

Bu benim için programcı yeteneklerini programcı olarak değerlendirmek için yeterli.


0
  1. Bildiklerini iddia ettiklerini savunabilirler mi? Özgeçmiş / CV'yi başka bir projede bir beceri veya yaptıkları bir şey olarak koydular. Konuya ne kadar derinlemesine gidebileceklerini görün.
  2. Yeni bir şeyler öğrenebilirler mi? Kullanmakta olduğunuz teknolojinin üst düzey bir yönünden veya üzerinde çalıştığınız işletme domyasına özgü bir şey hakkında konuşun ve konuyu kavrayabileceklerini görün. Akıllı sorular mı soruyorlar? Bir analoji bulabilirler mi? Başka bir endüstride veya teknolojide yaptıklarına benzer mi?

  3. Programlamayı tercih ederler mi? Listesinde bir numara olmak zorunda değildir, ancak kod yazma tercihini göstermek zorundadırlar. Ve aslında kod yazmak ve bir şeyler yapmak, etrafta oturmak, konuşmamak veya tahtada çizim yapmak demek istemiyorum. Planlamayı en aza indirgemek ya da kovboy kodlamasını teşvik etmek değil, ancak sonunda kodunuz olmalıdır. Klavyeden kaçınanlardan kaçının. Bu bir yönetim pozisyonu değil.

Bir ila on arasında bir ölçekte puanlama yapabilir veya kendi türünüzü koklayabilmeye güvenebilirsiniz.


0

Kendinizi daha iyi hissettirirse hemen hemen her ülkede programcılar bulunur. Onları nasıl ayıklayacağımız sorun.

İlk ayıklama özgeçmiş. Aradığım tek şey, bir çok iddia edilen dil deneyimi ve bu dilde ne yaptıklarını açıklamaktan başka bir şey değil. Şimdiye kadar icat ettikleri her dili bildiklerini iddia ettiği ve henüz deneyimlerinin yalnızca Access ve Visual Basic ile çalıştıklarını gösterdiği iddiasını sürdürdüm. Bunlar hemen çöp kutusuna gidiyor. 10 sayfa özgeçmiş çöp kutusuna doğru gidiyor (özellikle edindiğim 2 yıldan daha az deneyime sahip insanlardan on sayfa devam ediyor). Küçük tecrübeli okul sınıflarından, kendilerini nasıl sundukları konusunda gerçekten seçici olmalısınız. En iyi adaylar özgeçmişlerine dikkat ederler, hataları olmaz. Gerçekten özgeçmişini tekrar okumak için uğraşmadığı için çok az umursayan birini mi arıyorsunuz?

Profesyonelce hazırlanmış özgeçmişler de çöpe gidiyor. Yüzlerce özgeçmiş okuduktan sonra, aynı cümleleri kullandıkça bunları seçebilirsin. İçeriğe profesyonelce hazırlanmış bir özgeçmişte güvenemezsiniz ve kişinin kendi hazırlığını yapmadığını biliyorsunuz. Bu onun için sorunlarını çözmek için başkalarına güvenecek türden bir kişi, bunu gerçekten programlama pozisyonunda mı istiyorsun?

Seçtiğiniz kişiler için kişiyi öne çıkaran şeyler arayın. Tabii okul dışında olanlar için daha zor, ama başarıları, açık kaynağa katkıları vb.

Sonraki ot telefon görüşmesi. Sahip olduğunuz asıl işle ilgili temel kavramları sorun. İnsanlar, sahip olmaları için ihtiyaç duydukları temel kavram bilgisine sahip değilse, kişisel bir görüşmeye katılmak için can sıkıcı değildir. Gençler genellikle bunun İnternet üzerindeki her şeyi araştırabilecekleri haksızlık olduğuna inanıyorlar, ancak gerçek şu ki, Internet'teki her şeyi aramak zorunda kalan iyi bir programcıyla hiç tanışmadım . Mesleğiniz hakkında her seferinde bakmak zorunda olmadığınız bazı bilgilere sahip olmalısınız.

Telefon görüşmesinden sonra en iyi 4-5 aday seçmeli ve görüşme yapmalısınız. Tabii ki sadece 1-2 iyi adayınız varsa, zaten elinizden gelen insanlarla röportaj yapmayın. Şimdi zor soruları soracak ve sorunlara nasıl yaklaştıklarına dair bir fikir edineceksiniz. Fizzbuzz testini asla kullanmam çünkü bu çok iyi biliniyor, bu yüzden cevaplar size hiçbir şey söylemiyor. Bunun yerine, kendi kod tabanınızdan bazı sorunları telafi edin. Onlara bir gereklilik ve bir kod parçası verebilirim ve onlara kodun gereklilikleri karşılayıp karşılamadığını ve neden olmasın ve ne yapmaları gerektiğini gerekliliğini yerine getirmesini isteyebilirim. Onlardan çözmek zorunda kaldıkları en zor programlama problemini ve cevabı bulmak için hangi adımları attıklarını açıklamalarını isterim. Daha derinlemesine teknik sorular sorardım. Teknik yetenekleri, problem çözme ve hata ayıklama yetenekleri ve mevcut ekibinize uyma yetenekleri hakkında bir fikir edinmeye çalıştığınızı unutmayın. Ayrıca, ne kadar iyi işlediklerini yargılamanın cevabını bilmedikleri soruları da soruyorum, stresli bir iş, röportajda katlanan birini istemiyorum çünkü iş stresi röportaj stresinden daha büyük . Şu anda zayıf olduğumuz alanlarda güçlü takımlar arıyor ve ekipler halinde çalışabiliyor ve kendilerini müşterilere sunabiliyorum (bizim kullanıcılarımızla yoğun bir şekilde ilgileniyoruz), listeniz farklı olabilir. • Mülakatta yer alan birisini istemiyorum çünkü işin stresi mülakat stresinden daha fazladır. Şu anda zayıf olduğumuz alanlarda güçlü takımlar arıyor ve ekipler halinde çalışabiliyor ve kendilerini müşterilere sunabiliyorum (bizim kullanıcılarımızla yoğun bir şekilde ilgileniyoruz), listeniz farklı olabilir. • Mülakatta yer alan birisini istemiyorum çünkü işin stresi mülakat stresinden daha fazladır. Şu anda zayıf olduğumuz alanlarda güçlü takımlar arıyor ve ekipler halinde çalışabiliyor ve kendilerini müşterilere sunabiliyorum (bizim kullanıcılarımızla yoğun bir şekilde ilgileniyoruz), listeniz farklı olabilir.


-1

Adaylara herhangi bir teknolojiyi kullanma özgürlüğü ile çözmeleri için gerçek bir dünya problemi verilmelidir.

Uçan renklerde çıkıyorsa, In!

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.