PHP becerilerini röportajda nasıl test edebilirim? [kapalı]


58

Şirketimin bir PHP geliştiricisi tutması gerekiyor, fakat şirketimde kimse PHP bilgisine sahip değil ve PHP becerilerini test etmekte zorlanıyoruz. Eğer bir C / Java geliştiricisi olsaydı, Life of Game'in hızlı bir uygulamasını yazmasını isterdim ama PHP tamamen farklı bir dil.

Bu testi ilgiyle gördüm:

http://vladalexa.com/scripts/php/test/test_php_skill.html

Başka birinin daha fazla önerisi var mı?


3
İlginç bir test, kesinlikle kapsayacağıma rağmen SQL enjeksiyonunu kapsamıyor. Bence bu test PHP'nin değişkenleri nasıl ele aldığına aşinalıklarını belirleme yeteneklerini test etmenin iyi bir yoludur.
Ben Brocka

6
Ne yaparsanız yapın, standart işlev adlarının yazılışı ile ilgili sorular sormayın. PHP fonksiyon isimlendirmesi çok tutarsız.
Chris C


16
Onlar, ekibinizle birlikte çalışarak, programlamak vb web güvenliği, anlayabiliyorsanız onların PHP pirzolası hakkında daha az ve daha fazla endişelenirdim
Peter loron

12
Şirketinizden hiç kimse PHP'yi iyi tanımıyorsa, sizin için en iyi yol, bazı yetenek test hizmetlerini kullanmaktır. http://tests4geeks.com/test/php-mysql - Bunu beğendim. Ve eğer sonuç iyi olacaksa, ondan bazı PHP kodları yazmasını isteyebilirsiniz. Örneğin, veritabanında öğrenciler ve konular var. Yönetmenin tablodaki işaretleri düzenlediği HTML formunu yazmasını isteyin (Öğrenciler sol sütunda, Konular üst sırada, İşaretler kesiştiğinde).
Joseph,

Yanıtlar:


71

kod

  • Adaydan kod yazmasını isteyin
  • Adaydan kod okumasını isteyin

Adaydan kod yazmasını istiyorsanız, aşağıdakilerden emin olun:

  • Kod önemsiz değil, küçük
  • El kitabına ve internete erişime izin veriyorsunuz

Adaydan kod okumasını rica ediyorsanız, şunlardan emin olun:

  • Kod bazı önemli hatalar içeriyor
  • Kodun önemsiz bazı hataları var
  • Kod iyi çalışıyor, ancak kolayca optimize edilebilir

Üç veya daha fazla farklı kod parçası kullanabilirsiniz, daha basit olandan başlayıp yalnızca adayın kolaylıkla başa çıktığını görürseniz bir sonrakine ilerleyebilirsiniz. Bazı özyinelemeyi at, bazı şeyleri canlandırmak için.

kaynaklar

Adayın kullandığı PHP kaynaklarının ayrıntılı bir listesini isteyin. Kitaplar, bloglar, forumlar, dergiler vb. Mevcut işverenlarım StackOverflow hakkında bilgi edindiler .

Aday StackOverflow veya Programcılardan bahsederse , kullanıcı adlarını sormamalı veya bulmaya çalışmamalısınız. Eğer itibarlarını duyurmak isteselerdi özgeçmişlerine Kariyer 2.0 bağlantısı eklerlerdi.

çerçeveler

Her PHP geliştiricisi en popüler PHP çerçevelerini bilmelidir:

ve bunlardan en az birinde akıcı olmak. Her biri için hazır birkaç kod örneği alabilir ve adaydan hangisine daha aşina olduklarını söyledikten sonra bunları okumalarını ve açıklamalarını isteyebilirsiniz.

Hata Ayıklama ve Profil Oluşturma

PHP geliştiricilerinin hata ayıklama ve profil oluşturma becerilerinden (belki de yalnızca birlikte çalıştığım PHP geliştiricileri) yok olduğunu hissettim. Tartışma sırasında adayın aktif olarak xdebug kullandığını öğrenirseniz , görüşmenin geri kalanıyla uğraşmayın ve sadece onları işe alın. ;)

Giriş temizliği

Bu önemli. Neden önemli olduğu hakkında bir tartışma ile başlayabilir ve daha sonra bunu başarmak için en yaygın yöntemleri isteyebilirsiniz. Bu tartışma size ne soracağınız konusunda yardımcı olacaktır.

Bazı ipuçları:

PHP snafus

Bu mükemmel tartışmada pek çok PHP snafus'u bulabilirsiniz . Üst düzey bir pozisyon için görüşme yapıyorsanız, bunlardan bazılarını açıkça tanımlamanız gerekir. Bazı örnekler:

PHP'nin dizelerde sayısal değerleri ele alması:

"01a4" != "001a4" // true
"01e4" == "001e4" // also true

Geçerli PHP kodu :

System.out.print("hello");

PHP'de, bir dize bir işlev işaretçisi kadar iyidir:

$x = "foo";
function foo(){ echo "wtf"; }
$x(); # "wtf"   

Birim testi

Daha da anlatmalı mıyım?

Sonuç

İyi bir PHP geliştiricisi, çeşitli yetenek ve yetenekleri birleştirmelidir:

  • HTTP iyi bir anlayış
  • Apache konfigürasyonunun iyi anlaşılması (Şirketinizde farklı bir web sunucusu kullanıyor olsanız bile)
  • En azından temel bir JavaScript anlayışı
  • Harika bir HTML / CSS anlayışı

Liste uzayıp gidiyor. Röportajı iş açılışının özel ihtiyaçlarına göre ayarladığınızdan emin olun, sadece iyi bir geliştirici kiralamak istemezsiniz, ancak hemen yapmanız gerekenler için harika olan iyi bir geliştirici işe almak istersiniz.


22
Genel olarak iyi cevap, ancak 'çerçeveler' ve 'temel performans' bölümlerine katılmıyorum. Belirli bir çerçeveyi biliyor olsanız da bilmeseniz de, bir programcı olarak nitelikleri hakkında fazla bir şey söylemez. Performans bölümü hakkında: eğer bu seviyede optimizasyon yapıyorsanız, muhtemelen PHP'yi en başta kullanmamalısınız. Her gün onlarca kez listelediğiniz alternatifler arasında seçim yapıyorum, ancak her zaman performansa göre okunabilirlik ve işlevsellik temelinde. Bu performans sorularına doğru cevap "çoğu zaman önemli değil" dir.
tdammers

1
@YannisRizos: Büyük olasılıkla bir takıma entegre etmeyi kolaylaştıracak olsa da, OP'nin şirketinde bu popüler çerçevelerden birini kullandıklarını, ancak o zaman çerçevelerin her ikisini de bilemediklerini hiçbir şey kanıtlamayacağını varsayıyorsunuz. Belki çalışmak yeteneğini test etmek için bir yol olarak bu bölümü geliyordu bir çerçeve yerine sahip olanlar çerçeveler? (
Duruma göre

2
@Petah Bu özellikle hiç görüşme aşamasında hiç mantıklı gelmiyor ve görüşme sırasında insanlara böyle bilgileri açıklamalarını isteyen bir şirkette çalışmaktan kaçınıyorum. "Bir şeyi saklamak" mantığının tamamı sapkın, yani, işverenimi boş zamanımı nasıl harcadığımı bilmek umurumda değil, ve hepsi bu. Programcılar hesabımı kendi başıma yayınlamakla ilgileniyorsam, bu farklı bir hikaye ...
yannis

1
@Petah Dürüst olmak gerekirse, gelecekteki işverenlerin Programcılarım faaliyetleri aracılığıyla kişiliğimi tanımaya çalışmadıklarını umuyorum (zamanlarının% 25 -% 35'ini kötü bir nazi moduyla geçirmek isteyen;)
yannis

1
Çerçeve meselesine katılmıyorum. İyi, modern uygulama, tüm bileşenleri kullanmak yerine, ihtiyaç duyduğunuz besteci kullanarak, çerçevelerdeki uygulanabilir bileşenleri kullanmaktır. Aslında, aynı şey şimdi JS dünyasında da söylenebilir ..
John Hunt

44

Bağlantınız olan test ilginç ve Yannis Rizos'un cevabı harika, ama bence asıl önemli olan şudur:

İyi bir geliştiriciye ihtiyacınız varsa, PHP geliştiricisi aramayın. PHP'yi tanıyan iyi bir geliştirici arayın. Bu, görüşmenin en az yarısının PHP sözdizimi veya PHP işlevleriyle pek ilgisi olmayan sorular sormanız gerektiği anlamına gelir.

MVC'nin ne olduğunu, AJAX'in ne olduğunu, HTTP'nin nasıl çalıştığını, REST'in nasıl çalıştığını, SQL'in nasıl çalıştığını, bazı veri yapılarını, bazı performans temellerini (nasıl ölçtüğünüzü, nasıl geliştirdiğinizi), test temellerini, güvenlik temellerini (XSS, XSRF, enjeksiyonlar, nasıl koruduğunuz), tipik PHP alanlarına uygulanan temel programlama teknesi bilgisi - web, ağ, veri dönüşümleri, vb.

Bu konuda iyiyse, basit bir kod yazmasını istemek, uzun sürmemesi gereken kolay bir iş seçin - metinde üst üste en çok ünlü olan kelimeleri bulmak, veya metindeki her bir kelimeyi ters çevirmek veya iki ile çarpmak matrisler. İsterseniz, PHP'den Yaşam Oyunu'nı da isteyebilirsiniz :)

O geçerse, o zaman daha zor PHP soruları için devam edebilirsiniz, ancak buna çok fazla ağırlık koymayın. El kitabında çoğunu okuyabilir ve okuyamadığı şeyleri iyi olursa, oldukça çabuk öğrenir. PHP basit olacak şekilde oluşturulmuştur, bu yüzden iyi bir programcı ve PHP'nin çalışma bilgisine sahipse, muhtemelen yetişebilir. Genel olarak nasıl programlandığını biliyorsa, PHP'de nasıl programlanacağını öğrenmek, tersine çevirmekten daha kolaydır - PHP'nin sözdizimi minutia'sını bilmek, hangi birim testlerinin ne olduğunu ve XSS problemlerinden nasıl kurtulacağınızı anlamıyorsanız önemli değildir.


13

Yannis Rizos'un cevabı iyi bir cevap olsa da , bu testi geçemeyeceğimi ve PHP pirincimi geliştirmek için nereye odaklanacağımı belirlemek için bu cevabı kaynak olarak kullanabileceğimi biliyorum. PHP'yi tanıyan dostum röportaj sürecinde oturuyor Önceki cevaptaki tüm sorular iyidir, ancak bazı alan bilgisi olmadan cevapların kalitesini değerlendirmek zor olacaktır.

Bu, diğerlerinin dediği gibi ihtiyacınız olana bağlı olarak genel programlama olanağının ve takım uyumunun dile özgü bilgiden daha önemli olduğunu söyledi.


5
+1 için I think it would be worth your while to find a programming buddy who knows PHP to sit in on the interview process.harika bir öneri.
yannis
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.