Ne işe alım sürecinde koduna muhtemel bir programcı sormak için iyi bir örnek bir proje olacaktır?

16 Cevap

Benim anlayış bir çalışma örneği için soran bazı insanlar sadece iyi röportaj gibi birisi, aradığınız birikiminiz olup olmadığını belirlemek için iyi bir yol olmasıdır. Bu yüzden benim için bazı örnek kod yazmak potansiyel geliştiriciler sormak istiyorum.

Ben de bir iki saat içinde yapabileceği bir şey olurdu küçük bir proje üzerinde ne tür fikirler arıyorum, ve onlar gibi OOP iyi kavramak, iyi kodlama uygulamaları var ve ne bitirmek kez bakmak için olduğunu gösterecek - nasıl adil ve yararlı onu değerlendirmek.

Bağlam için, ben iç projelerde PHP geliştirme için, muhtemel geliştiriciler görüşme, bir küçük işletme sahibi değilim. Ben PHP kod ancak bir uzman (bazı işleri daha iyi yapılandırılmış ve tutarlı olması için yazdım kod üstlenmeden edilir), ve bu yüzden de ben bu verilen örnekleri değerlendirirken bakmak için ne arıyorum değilim olabilir Eğitimli ya da süper deneyimli bir programcı değilim.

Özellikle bu yöntemi daha önce bu tip işe yapılır ve kullanılan kişiler için.

Ben de onlara refactor bazı kod vermek ve onlar üzerinde nasıl görebiliyordu düşünüyordum. Hiç kimse işe alım sürecinde bir parçası olarak üstlenmeden testi verdi?

Clarification: I'm not talking about coding during an interview. I'm talking about coding instead of an interview. For context the inspiration for this question came from this article in FastCompany about how work samples are better predictors of job success than interviews:

Why It May Be Wiser To Hire People Without Meeting Them http://www.fastcompany.com/magazine/136/made-to-stick-hold-the-interview.html

16 Cevap

Ben mutlaka iyi değil uygulama oluşturmak ve bazı hatalar embed olacaktır. Ben programa eklenecek bazı basit işlevselliği ile gelirdi.

Başvuran bazı hatalar bulmak mı?

Nasıl başvuranın kod mevcut koduna entegre mi?

Başvuran gerçekten önemli değil bir şey takılıyor?

Başvuran mevcut kodun kodlama standardına uyum mu?

Bu çalışmanın ardından, başvuru ile kod tartışmak. Bu gerçek kodu daha değerli olabilir.

NOT: cevap bpapa @ getirmedi ben sorun roman ve tabii ki üretimde kullanılmak üzere olmadığından emin olur.

Sorulduğunda Şahsen ben bunu yapmak için çöp olur. Bir röportajda bir şeydir, ve eşek için kağıt üzerinde teknik bilgi programlama soruları yaparak gayet iyi, ama aslında biri için uygulama çeşit yazma faturalandırılabilir ve ben ücretsiz bunu yapmazdı. Bu sadece bir saat almak gerekiyordu bile.

Ben kişinin geçmişte yaptıklarını daha fazla odaklanmak, ve (size PHP sınırlı bilgiye söyledi yana ve bir PHP geliştiricisi istiyorum) yanıtlarını bilmek teknik soru sormak gerektiğini düşünüyorum.

Ben röportaj için ev ödevleri vererek sadece (kitabında paraphrased) en iyi programcılar eler o Joel tavsiyesine kulak olurdu. Daha iyi programcılar bir çok seçenek var ve bu yüzden bir programlama atama egzersiz yoluyla gitmek istemeyeceksiniz. Onlar sadece geçerli olmayacaktır. Yani orta yeterlik insanlar sizi bırakacaktır. Ne yazık ki, benim deneyim olanlar onlar daha iyi bakmak için denemek için en muhtemel olanlar ve kendinizi bir uzman değilseniz sizi yanıltmak için, olanları büyük olasılıkla.

İşte alternatif bir seçenek. Onlara zaten bunu bazı iş işaret var. Kod, ancak site ille. Görüşme sırasında, onlara bunu kodlu nasıl hakkında sorular sormak. Ne veri yapıları kullandınız? Nasıl sınıflar veya fonksiyonlar organize edildi? Onlar aşmak için ne gibi sorunlar var mı?

Sonra nokta ont onlar sizin için cevap olabilir röportajda geleneksel programlama soruları gibi. Bu şekilde kendi anlayış ve kendi sözdizimi ölçebiliyor. İki aynı soru olmak zorunda değilsiniz.

Eğer bir uzman değilseniz o zaman diğer geliştiriciler değerlendirmek için çalışıyor hakkında dikkatli öneririm. Muhtemelen kendi düzeyi ile bu rahat değilse başkasının dev becerilerini değerlendirmek için daha iyi bir yolunu bulmalıyız.

Senin için iyi bir çözüm olduğundan emin değilim.

Ben bir saat ya da iki almak zorunda kodlama örnekleri çok basit değil, yapmak istiyorum. Vs en iyi uygulamalar, çerçeveler, tasarım sorular hakkında diğer tartışmalar ile kombine - birkaç dakika sürebilir Basit kodlama egzersizler yeterli olmalıdır

Ben problems at streamtech gibi. Onlar oldukça kolaydır ve genellikle çok kısa sürede yapılabilir, ancak başvuranın yapılandırılmış düşünme yeteneğine sahip ve yapılandırılmış kod bu tercüme olduğunu göstermektedir.

Değerlendirmesi için --- ben öğrenmek için bir fırsat olarak kullanmak istiyorsunuz. İlk sorun kendinize yapın, daha sonra başvuranın koduna karşılaştırın. Daha obviously correct hangi sürümü kendinize sorun o zaman, herhangi bilmiyorum yapıları Look up.

Ben yapabileceğiniz en iyi şey, gerçek bir uzman sizinle görüşme oturmak için deneyin olduğunu düşünüyorum. Eğer gerekiyorsa bir üçüncü taraf kiralamak. Ben kendiniz daha deneyimli bir geliştirici olan birisinin kalite değerlendirme vermek mümkün olmak mümkün olduğundan emin değilim.

Dikkate diğer şey gerçekten iyi geliştiriciler onlar kendinizi daha deneyimli ve size geliştiricilerinden biri olduğunu göstermektedir eğer aslında, saldırgan olmaya çalışıyorum değil (onları koymak olabilir aslında pick up olabilir yani ben sadece Eğer çok tecrübeli olmadığını ima bağlamında anlamına gelir.)

Onlara bir adres ya da bir düz metin dosyası olarak vermek ve XML çevirmek için basit bir komut dosyası oluşturmak için isteyin. Bunu bir kez kullanılan ve o harikalar çalıştı.

Eğer oracıkta onları test etmek istiyorsanız, bir dize ters isteyin. Organizasyon açısından, azim, kararlılık ve coşku IMHO, teknik usta olarak sadece kadar önemlidir.

Eh, herkes bir interveiw için kodlama çaba cesaret kırıcı gibi görünüyor. Ben Karşıt görüştekiler katılmıyorum olacak. Sorunuzu cevaplamak için - onlara kodu var ne bir örnek istiyorsanız - önlerindeki masaya basit bir hesap bırakın ve hemen hesap oluşturmak için bir program yazmak için isteyin. Onlara yarısını ve saat ver ve onlar olsun ne kadar bakın. Bazıları zaman içinde bitirmek olabilir.

Eğer daha önce hiç çifti programlama denediniz mi? İki kişi bir makinede de oturup, onlar klavye ve fare paylaşmak ve onlar gitmek gibi ne yaptığınızı hakkında konuşun. O, sonunda (herkesin panik geriledikten sonra), gerçekten birlikte ne kadar iyi iki çalışma gösterir, çünkü bu kesinlikle iyi bir yaklaşım olduğunu düşünüyorum.

Eğer büyük bir programcı değilseniz, bu kişi size öğretmek ve rahat koymak gerekir. Onlar iyi değil, ama birlikte iyi çalışıyorsanız, bu parlak ama tatsız kişi daha uygun olabilir.

Oturumun sonunda, sadece işinizi silin. Hayır büyük dağıtmak.

Ben işe sürecin bir parçası olmamıştım ... ama ben yaptığım röportajlarda, ben içinde bir algoritma, klasik, kaç tamsayı puan çalışmak için bir iki kat bağlantılı liste uygulamak için bir kez sordu ve başka edildi Bu durumda, şekil verilmiş bir kez O (n ^ 2) ve daha sonra tekrar O (n) bir üçgen oluşturan üç sayı,.

Ben bunu yapmak için yolu onlara bir şey programlamak yapmak olduğunu sanmıyorum, ama bunu anlamaya nasıl bildiğinizden emin olun. Onlara bir sorununuz vermek ya da onlara bir soru sormak ve yüksek sesle düşünmek onlara ve onların düşünce süreci gözlemlemek. Onlar temiz kod varsa, bu tam olarak görünmüyor, ama onlar onların neden bahsettiğini bilmek hava olarak ya da değil, soruna bağlı olarak size fikir verir.

Küçük, iyi tanımlanmış bir görevi olması onların adına zaman nispeten küçük bir yatırım ile bir oyun alanında insanlara inceleyebilirsiniz almaya yardımcı olabilir. Sen insanların neler yapabileceğini görmek için karmaşık bir şey gerekmez.

Geçmişte, birkaç temel kavramları egzersizleri, küçük bir web uygulaması yazmak için insanlar istedi ettik. Biz uygulama gerçekten basit yapmak gerekiyordu ne ayrıntılar tutmak.

Ben de (yani, belirli problem alanı bir sorunu çözmek için bunları sormayın) tamamlayıcı bir çok bilgi gerektiren görevleri önlemek için denemek istiyorum.

Edit:

"Küçük, iyi tanımlanmış görevleri" ile ilgili: Ne için ateş deneyin büyük programlama görevin bir parçası olarak bazı basit iş mantığının çok ayrıntılı bir açıklama içerir şeydir. Örneğin, ben geçmişte verdik programlama atamaları biri basit bir Java web uygulaması kurma ve bir kaç özellikleri uygulanması içerir. Biz özellikleri belirsizliği kaldırmak için çalışmak gerekiyordu nasıl iyice açıklamak için emin yaptı. Bu bir kaç nedenden dolayı oldu:

  1. Nokta aday onlar istediklerini hakkında doğru bir tahmin olup olmadığını görmek için değil, sıfırdan basit bir uygulama inşa edebilirsiniz görmek gerçekten.
  2. Eğer gerçekten iyi görev tanımlamak varsa, birisi bir iş durumu yapıyor olması olasıdır işin türü ile nasıl kapsamlı hakkında daha fazla görmek için olsun.
  3. Biz deneyim değişen seviyelerde adaylara verecek kadar esnek bir şey istedim.

Ben programlama ödevleri en etkin yetkinlik kontrol etmek için kullanılan düşünüyorum burada dikkat etmelisiniz. Eğer gerçekten zor bir atama ya da iyi tanımlanmış değildir bir tane verirseniz, oran size aday zor nasıl işleyeceğini için özel test sürece (bilmek istediğiniz ne söylemek sonuçları almak için gitmiyoruz vardır görevlendirmeler veya belirsizlik).

Ben bunun yerine bir sınama bir görüşme olma konusunda bpapa ile argree, belki bunun yerine programlama yapmak için bazı temaslarda geçmesi nasıl hakkında bazı sorular sorarak düşünün ...

Ben bir kez bile bana sonucu vermek için uğraşmadı ki sonunda bir Visual Basic MCP sınava zorunda kaldı.

Mutlu gerçi ben iptal / Commit ekrana oturuyordu sonucu verilecek edip etmeyeceği konusunda soru sorulduğunda.

Yani benim vakit için teşekkür iptal vurdu ve dışarı yürüdü.

Soruyu yanıtlamak için:

PHP için, ben bir alışveriş sepeti, adres defteri ve forum iyi projeler olacağını düşünüyorum. Oturumları, kayıt, veritabanı, form işleme ve kimlik doğrulama - Bunlar genellikle web programlama konuları geniş bir yelpazesini kapsar.

Personally speaking: It looks like you looking more of an architecture person than a coding guru. I wouldn't penalize the applicant because he cannot come up with the name of an obscure function or need to refer elsewhere. The key thing is that he has the initiative and know where to look (heaven knows how many times I need to look up PHP.NET). A good question for an architecture guy, IMHO, is to tell him you have a data-set, but you have three different ways of displaying them and each view has different operations. If his answer is just a gigantic SWITCH-CASE, then he may be the wrong choice.

Genellikle zayıf programcıları şimdi bu doğrudan PHP ile ilgisi var ve muhtemelen bir özyinelemeli faktöriyel veya serisi büyük bir anlaşma olmaz fibonacci değil, o kadar şimdi benim gözlemler var, oldukça iyi özyineleme anlamıyorum, ancak söylemek izin vermez Bazı ebeveyn-çocuk ilişkisi ile bir veritabanından veri iyi bir örnek olabilir bir ağaç denetimi yüklenemedi.

Dediğin gibi bir uzman değiliz gibi Ayrıca, güvenle işleyebilir şey kapalı düşünüyorum.

Genellikle sizin için işe diline bağlıdır. Ben gittim ve PHP için bir röportaj verdi ben bir JS dev gibi bir açılış için röportaj yaparken, jQuery belirli bir eklenti kod istendi oysa Örneğin, ben, özel MVC framework kullanarak, bir blog senaryo yazmam istendi. Sana onun daha bağımlı sonuçta için adamı işe alıyor. Size müzik tavsiye motoru yazmak ve sonra onu bir ödeme ağ geçidi işlemci üzerinde çalışmak için birine sormak istemiyorum.