Python Mülakat Soruları
Yazan: Aaron Cao · Güncellendi
Üç katman bekleyin: mutability, generator'lar ve decorator'lar gibi dil mekanikleri; GIL gibi çalışma zamanı davranışı; ve veri yapıları üzerinde uygulamalı kodlama. Ret kararlarının çoğu yanlış sözdiziminden değil, nedenine dair yüzeysel açıklamalardan kaynaklanır.
Sürekli tekrar eden sorular
İki yüz Python sorusundan oluşan bir listeyi çalışmak üretken hissettirir ama mülakat sonucunu nadiren değiştirir. Bu bölüm, telefon görüşmelerinde ve teknik turlarda tekrar eden az sayıdaki soruya odaklanır ve güçlü bir cevabın neler içerdiğini gösterir. Az sayıda dil özelliği, sinyalin çoğunu taşır.
- Değişebilir varsayılan argümanlar.
def f(x=[])neden çağrılar arasında değerleri biriktirir? Varsayılan değerler, her çağrıda değil, fonksiyon tanımlandığında bir kez değerlendirilir. - Generator'lar ile list'ler.
yieldne zaman bir list oluşturmaktan üstündür? Dizi büyük olduğunda veya okumayı erken bırakabileceğinizde. - Decorator'lar. Bir decorator aslında ne döndürür ve wrapper neden
functools.wraps'e ihtiyaç duyar? - GIL. CPU'ya bağlı thread'ler CPython'da neden ölçeklenemez, ve bunun yerine neye başvurursunuz?
- Sığ kopya ile derin kopya. İç içe bir yapı bir slice ile kopyalandığında ne bozulur?
- Identity ile equality. Bir shell'de küçük tam sayılara karşı
istesti yapmanın neden yanıltıcı bir sonuç verdiği.
Geçeni geçmeyenden ayıran şey
İki aday, GIL'in aynı doğru tanımını verebilir ama yalnızca biri bir sonraki adıma geçer. Fark genellikle ikinci cümledir.
Büyük bir bulut sağlayıcısında L5 pozisyonu için mülakata giren bir backend mühendisine, servislerinin yük altında neden yavaşladığı soruldu. GIL'i belirtti, sonra devam etti: en yoğun yol JSON ayrıştırmaydı, bu yüzden thread'ler yanlış araçtı ve o aşamayı bir process pool'a taşımak throughput'u geri kazandırdı. Kısıtlamayı adlandırmak kısmi puan kazandırdı. Onu bir karara bağlamak ise turu kazandırdı.
Her cevabı üç vuruşta kurun: özellik ne yapar, neden var, ve ne zaman ondan kaçınırsınız. Üçüncü vuruş, adayların çoğunun atladığı ve muhakemeyi gösteren vuruştur. Kodlama, davranışsal ve sistem tasarımı turlarıyla ilgili diğer sayfalar mülakat türleri altında gruplanmıştır.
Ezberlemeden nasıl hazırlanılır
Bir cevabı okumak ile bir cevabı söylemek farklı becerilerdir ve yalnızca biri test edilir. Yüksek sesle, bir saate karşı, görüşmede kullanacağınız aynı kelimelerle prova yapın.
- Tekrar eden her soruya cevabınızı üç cümle olarak yazın, ardından bakmadan söyleyin.
- Her gün kullandığınız iki özellik seçin ve her biri için dürüst bir sınırlama hazırlayın. Kendi araçlarınızı eleştirebilmek deneyim olarak okunur.
- Python davranışının sizi şaşırttığı ve nedenini bulduğunuz gerçek bir hata ayıklama hikayesi getirin.
- Uygulamalı yarıyı ayrı pratik edin: dictionary'ler, set'ler, bir key fonksiyonuyla sıralama ve string işleme, turların büyük bir kısmını kapsar.
Gerçek mülakattan önce bir AI mülakatçısına karşı süreli bir deneme yapmak isterseniz, bu mock interview sayfasında bulunur.
Canlı bir asistanın uygun olduğu yer, ve olmadığı yer
SubcueAI, macOS ve Windows için yerel bir masaüstü uygulamasıdır. Görüşmenin her iki tarafını da yakalar, gerçek zamanlı olarak transkript çıkarır ve makinenizde yerel kalan yüzen bir overlay üzerinde bir iskelet gösterir, bu yüzden toplantıya katılımcı veya bot olarak katılmaz. Bir Python turu için faydalı çıktı, bitmiş bir cevap değil, bir yapı istemidir: ayrıntılar sizin olmalıdır, çünkü takip sorusu az önce anlattığınız kod hakkında olacaktır.
Dürüst sınırlar, yetenekten daha önemlidir. Ekranınızı paylaşırsanız, o ekranda ne varsa paylaşılır. Tur, gözetimli bir değerlendirme platformunda veya şirket tarafından yönetilen bir cihazda çalışıyorsa, bir asistan kapsam dışıdır. Kurulum ve izinler tutorial sayfasında ele alınmıştır.