Temel sorular şunları içerir:
Genellikle başvuru sahiplerinizden aşağıdaki gibi basit bir kodlama alıştırması yapmalarını istemenin faydalı olduğunu düşünüyorum:
- Dahili sınıfları kullanmadan kendi bağlantılı liste sınıfınızı yazın.
- Yerleşik sınıfları kullanmadan kendi hashtable sınıfınızı yazın.
- İkili ağacı temsil eden bir sınıf yazın. Ağacın tüm düğümlerini geçen bir yöntem yazın.
- Yerleşik yöntemleri kullanmadan bir dizi üzerinde ikili arama gerçekleştirmek için bir yöntem yazın.
- Bir blog için bir veritabanı şeması çizin. Her kullanıcının yalnızca bir blogu vardır, her blogun birçok kategorisi vardır, her kategorinin birçok yayını vardır ve her gönderi birden fazla kategoriye ait olabilir. Başvuranınızdan belirli bilgileri almak için sorgular yazmasını isteyin.
Ardından, belirli teknik bilgi birikimine bakın:
- (Olay işleyicileri) Özel bir olay işleyiciyle bir sınıf oluşturun, özel olay işleyicisine bağlanan başka bir sınıf oluşturun.
- (XML) Bir XML belgesi yükleyin ve x, y ve z özelliklerine sahip tüm düğümleri seçin.
- (İşlevsel programlama) Parametre olarak başka bir işlevi kabul eden bir işlev oluşturun. Harita veya Katlama işlevi bunun için gerçekten iyi çalışır.
- (Yansıma) Bir sınıfın belirli bir niteliği olup olmadığını belirleyen bir işlev yazın.
- (Normal ifade) Tüm etiketleri bir HTML bloğundan kaldıran normal bir ifade yazın.
Bunların hiçbiri, yetkin bir C # programlayıcısının cevaplaması için özellikle zor sorular değildir ve adaylarınızın belirli güçlü yönleri hakkında size iyi bir fikir vermelidir. Ayrıca, belirli tasarım modellerini kullanan birkaç soru / kod örneğinde de çalışmak isteyebilirsiniz.
[Açıklama için düzenleyin] :
Birçok insan neden bu tür soruları sorduğumu anlamıyor gibi görünüyor. Birkaç halkın yorumlarına dokunmama izin verin (doğrudan alıntı yapmıyorum, bunun yerine yorumlama yapıyorum):
S: En son ne zaman uçucu veya zayıf referans kullandı?
C: Teknik röportaj verdiğimde, bir kişinin .NET'in yüksek ve düşük seviyeli özelliklerini anlayıp anlamadığını görüyorum . Uçucular ve zayıf referanslar, .NET tarafından sağlanan iki düşük düzey özelliktir - bu özellikler uygulamada sık kullanılmasa bile, bu soruların cevapları son derece açıklayıcıdır:
Uçucuların iyi anlaşılması, bir kişinin derleyici optimizasyonlarının kodun doğruluğunu nasıl değiştirdiğini, iş parçacıklarının herhangi bir zamanda senkronize olmayan yerel paylaşılan kopyalarını nasıl sakladığını ve çok iş parçacıklı kodun bazı karmaşıklıklarının en az farkında olduğunu anladığını gösterir. .
Zayıf referansların iyi anlaşılması, bir kişinin çöp toplayıcının samimi detaylarını ve hafızayı ne zaman boşaltması gerektiğine nasıl karar verdiğini bildiğini gösterir. Elbette, adaylara "çöp toplayıcı nasıl çalışır" diye sorabilirsiniz, ancak zayıf referanslar sormak çok daha iyi ve daha düşünceli bir yanıt alır.
.NET oldukça soyut bir dildir, ancak yıldız geliştiriciler neredeyse her zaman CLR'yi ve .NET'in çalışma süresinin düşük düzeyli ayrıntılarını derinlemesine anlarlar.
S: Neden herhangi birinin kendi karma veya bağlantılı listesini uygulaması gerekiyor?
C: Dictionary sınıfının daha düşük olduğunu veya insanların kendi hashtable'larını yuvarlamaları gerektiğini ima etmiyorum. Bu, bir kişinin veri yapıları hakkında minimum düzeyde bilgi sahibi olup olmadığını test eden temel bir sorudur . Bu sorular şu şekilde test edilir: çıplak minimum anlayış.
Bu yapıları ve bağlantılı listeleri Veri Yapıları 101'in ilk gününde öğrenirsiniz. Birisi sıfırdan karma veya bağlantılı bir liste yazamazsa , teknik bilgilerinde büyük bir boşluk vardır.
S: Bu sorular neden bu kadar kabaca yöneliyor?
C: Bu iş parçacığının başlığı "her iyi .NET geliştiricisinin bilmesi gereken sorular" olduğundan. Her .NET geliştiricisi kariyerine crud uygulamaları yazmaya başlar ve insanların yaşamak için yaptıkları tüm uygulama geliştirme işlerinin% 90'ı iş kolu uygulamaları ile ilgilidir.
Derleyici geliştirme, oyun motoru geliştirme, teoremi kanıtlama, görüntü işleme vb.Gibi çok spesifik nişlerde geliştiriciler aramıyorsanız, bir kişinin iş kolu uygulamaları bilgisini test eden soruların çoğu durumda uygun olduğunu düşünüyorum. .