Her iyi .NET geliştiricisinin cevaplayabilmesi gereken sorular? [kapalı]


246

Şirketim .NET geliştiricileri işe almak üzere . Çeşitli .NET platformlarında çalışıyoruz: ASP.NET, Compact Framework, Windowsforms, Web Hizmetleri. İyi soruların bir listesini / kataloğunu, başvuru sahiplerinin deneyimli olup olmadığını görmek için bir tür minimum standart oluşturmak istiyorum. Benim sorum şu:

İyi bir .NET programcısının cevap verebilmesi için hangi soruların cevaplanması gerektiğini düşünüyorsunuz ?

Ayrıca , kendi açıklarımın nerede olduğunu görmek için kendim için bir kontrol listesi olarak da görürdüm (çok var ...) .

alternatif metin

* GÜNCELLEME: Yalnızca .NET bilgisi için test yapmadığımızı ve problem çözme yeteneklerinin ve genel programlama becerilerinin bizim için daha da önemli olduğunu açıkça belirtmek isteriz.

Yanıtlar:


171

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. .


8
Sanırım listeniz güçlü ve zayıf yönleri araştırmak için iyi bir yol ama "temel" bilgi değil. Greg'in işaret ettiği gibi, basit olmalarına rağmen "kısa devreli" operatörler tarafından takıldım ve onları sık sık kullanıyorum: İsmi unuttum. Bu beni diskalifiye eder mi?
Mark Brittingham

33
Benzer şekilde, hiçbir zaman değişken bir "Uçucu" beyan etmedim ve XML ile çok az şey yapmadım ve bu nedenle programlama görevinizi tamamlayamadım. Yine de, ben yayınlanmış bir yazarım, büyük bir programlama yarışması kazandım ve büyük ödüller kazanan 4 başarılı ürün yazdım.
Mark Brittingham

24
Bu yüzden, listenizle aynı fikirde değilim - bilgi öğelerini "Temel" olarak nitelemenize katılmıyorum. Hiçbiri zor kavramlar değildir - ancak bazıları oldukça spesifiktir ve çok sayıda başvuru sahibine aşina olmayacaktır. Yine - tekrar - lütfen özürlerimi kabul et.
Mark Brittingham

39
Bu listedeki öğelerin yarısı önemsiz sorulardır. Bu iyi insanlar bulmanıza yardımcı olmaz, ancak bazılarını röportajınıza çıkmak için yeterince rahatsız edebilir.
Jason Kester

15
(Regex) Write a regular expression which removes all tags from a block of HTML.- SORUN SORUN
BlueRaja - Danny Pflughoeft

135

Ben bu listeleri bulundu Scott Hanselman bireyin blogda :

İşte bu yazılardan en önemli soruların kategorilere ayrıldığını düşünüyorum. Onları düzenledim ve yeniden düzenledim. Neyse ki bu soruların çoğu için Stack Overflow'da zaten iyi bir cevap var. Sadece bağlantıları takip edin (hepsini en kısa sürede güncelleyeceğim) .

Platformdan bağımsız .NET soruları

ASP.NET


8
Tüm bunları bilen geliştiricileri biliyorum ve hala kitaptan daha fazlasını göremiyorum. Açık Fikir çok önemlidir, ayrıca, çok fazla ayrıntılı cevap almaya çalışmayın, sadece konsepti anladıklarından emin olun.
Saif Khan

Yaşlanıyorum, Saif. Ancak öte yandan, ayrıntıları bilmiyorsanız, "kavramları" doğru şekilde uygulayamazsınız.
splattne

2
Hata ayıklama ve Sürüm oluşturma arasındaki fark gibi bazı sorular gerçekten aptalca. Evet, Visual Studio bazı derleme yapılandırmalarını önceden tanımlamıştır, ancak bu platformdan bağımsız bir soru değildir. Komut satırı ile veya Mono kullanarak derleyen birisinin ne hakkında konuştuğunuz hakkında hiçbir fikri olmayabilir.
lubos hasko

3
Bir röportaj durumunda genellikle 2 sayfa veya bir kitabın bir bölümünü alan kavramları açıkça ifade edebiliyor musunuz? Onları önceden prova etmeden yapamam
Chris S

1
İnsanlardan terimler tanımlamasını istemeyin. Testler için onları ezberlemek zorunda kalan CS binbaşıları ile sonuçlanacaksınız, ancak aslında nasıl programlanacağını bilen insanları kaçırdınız. Bir keresinde "erteleme" nin ne olduğunu sorduğumu hatırlıyorum. İlk ipucuna sahip değildim, o zamanlar günde 30 kez yapmama rağmen.
Jason Kester

94

Bu duymak isteyeceğiniz şey olmayabilir, ancak dar teknolojilere değil, genel programlama ve problem çözme becerilerine odaklanmanızı tavsiye ederim. Katı geliştiriciler, hızlı bir şekilde yapmalarını istediğiniz her şeyi öğrenebilir.

Örneğin, bir Kompakt Çerçeve adamı değilim, bu yüzden bu yöne gittiyseniz görüşmeniz başarısız olabilir. Ama eğer kullanmam gerekirse, biraz araştırma yapabilir ve hemen atlayabilirdim.

Joel'in, Smart ve Gets Things Done adlı kitabı, geliştiricileri işe almak için harika tavsiyelerde bulunuyor ve sorulacak sorular hakkında büyük sulu bölümler var. Şiddetle tavsiye ederim.


Belki işe alım sürecinin bir kısmı Cardspace'de bir sorun ya da hiç bakmadıkları bir şey olmalı !!
Jennifer

Belki, ama araştırma sorunu var, bu yüzden bu adil olmayabilir. Ben daha onlar nasıl sorunları aracılığıyla düşünme görmek ve belki de onları soyut bir şey kodlamak için görmek, böylece onlar yerel ya da değil kod konuşmak olmadığını öğrenmek ilgileniyorum.
Brian MacKay

Hem genel programlama hem de problem çözme becerilerine sahip iki kişiyi seçebilseydim, pratik nedenlerden ötürü daha iyi .NET bilgisi ve deneyimi olan birini seçmeliyim.
Aralık'ta splattne

.NET bilgisi kesinlikle, ancak daha dar teknolojiler söz konusu olduğunda, problem çözme becerileri ile programcı ile gidebilirsiniz düşünüyorum.
Jennifer

5
Evet, hepimiz tonlarca "dar teknolojiyi" bilmek zorundayız. Ancak bildiğimiz her biri için bilmediğimiz bir grup var (genellikle onlara ihtiyacımız olmadığı için). Çok iyi bir geliştiriciyi SharePoint'i bilmediğiniz için kaçırmak istemediğinizi söylüyorum, çünkü en kısa zamanda sizin en iyi SharePoint'iniz olabilir.
Brian MacKay

66

Ben LINQ deneyimi olan birini görüşme olsaydı, muhtemelen düşünüyorum sadece LINQ açıklamak isteyin. Eğer ertelenmiş yürütme, akış, IEnumerable / IEnumerator arabirimlerini, foreach, yineleyici bloklarını, ifade ağaçlarını (zaten bonus puanları için, zaten) açıklayabilirlerse, muhtemelen geri kalanıyla başa çıkabilirler. (Kuşkusuz onlar "Tamam" geliştiriciler olabilir ve henüz "LINQ" değil - gerçekten adil bir soru yapmak için yeterli LINQ bilmek iddia ettikleri dava düşünüyorum.)

Geçmişte, listelenen birkaç soruyu ve birkaçına daha sordum:

  • Referans ve değer türleri arasındaki fark
  • Referans ile geçiş ve değere göre geçiş
  • Tek kullanımlık ve sonlandırıcılar
  • Karakter dizileri, değişmezlik, karakter kodlamaları
  • Kayan nokta
  • Delegeler
  • Jenerik
  • Null olabilecek türler

1
Evet, bu tür bir cevap görmek istedim. Kabul edilmek için iyi bir aday. Daha iyi olan var mı?
splattne

5
@splattne: aptal olma, bu bir Jon Skeet cevabı, bu yüzden kabul et. Bu kaçınılmaz.
Steven A. Lowe

3
Tam olarak söylemek üzereydim ... wt ... Skeet'i sorgulamıyorsun!
Saif Khan

1
Bu, kabul edilenden çok daha iyi bir cevaptır. Birinin iddia edilen uzmanlık alanında derin bilgiye sahip olup olmadığını anlamanıza yardımcı olurken, aynı zamanda oldukça geniş bir gam çalıştıran dil özellikleri hakkındaki bilgileri de araştırır.
Mark Brittingham

1
Bu cevap, pantolonları kendi Bağlantılı Listenizi tasarlayın, "HTML'yi regexp ile ayrıştırın" veya "Montaj, GAC, vb. Hakkında ne biliyorsunuz?" aslında geliştirme sırasında kullanın. LINQ hakkında samimi bilgi de gereklidir. Bu sitede insanların LINQ'yu anlamadığı için koleksiyonlar için Union Distinct ve Concat'ın kendi sürümlerini kullanmaya çalıştıkları birçok örnek gördüm.
Evan Plaice

42

Ben bakmak ve ezberlemek '101 en iyi .NET röportaj Qs ve As "tür bir şey yerine, problem çözme yetenekleri arayan adamlar ile beraberim.

Sadece kendimi örnek olarak belirtmek için, günden güne kullanmam gereken şeyleri 'bilme' eğilimindeyim. Nadiren kullandığım şeyleri unutmaya eğilimliyim (ve daha sonra yeniden aramak zorundayım).

Bir röportajda beni uyandırmak istersen çok kolay olurdu.

Bununla birlikte, WinForms ve ASP.NET enkarnasyonları için aynı İş Nesneleri ve Veri katmanlarını kullanan bir sistem için altyapının çoğunu tasarladım ve kodladım ve kod tabanımız, 20+'yi destekleyebilmemiz ve geliştirebilmemiz için yeterince sağlam ve tekrar kullanılabilir Web sitesinin farklı yapılandırılmış sürümlerinin yanı sıra artan sayıda (şu anda 5) WinForms uygulamasının ...

... iki kişilik bir geliştirme ekibi ile.

Bir ekipte teknoloji lideri olarak çalışıyordum ve işim çok sayıda işe alım ve görüşme içeriyordu. En muhteşem hatam, kullandığımız teknoloji hakkında ben de dahil olmak üzere geri kalanımızdan daha fazlasını bilen bir adamı işe almaktı ve kendimi bir uzman olarak saydım. Her şeyi biliyordu ...

... gereklilikleri karşılayan ya da kendisi dışındaki herhangi biri tarafından anlaşılabilen kodların nasıl yazılacağı dışında. Sonunda Başbakanı sözleşmesini yenilememeye ikna ettiğimde, yazdığı her şeyin yeniden yazılması gerekiyordu.

Mülakatlarınızı akıllıca yapılandırın ...


1
Bu gerçekten ilginç bir gözlem. Tersi bir durumumuz vardı: diğerlerinden daha az bilen, ancak yönetimi daha fazla bildiklerine ikna eden küçük bir geliştirici grubu . İmkansız olduğunu düşündüğüm bir veri soyutlama sınıfı önerdiler (“takım oyuncusu” olmadığı için eleştirildim).
Mark Brittingham

-devam etti - 4 ay süren "kokarca işler" çabasından sonra takıma başka bir bölüme transfer kağıtlarını ve NO kodunu sundular. Takımın geri kalanı parçaları almak zorunda kaldı.
Mark Brittingham

1
Sonuç olarak: Kodlama yapılarının belirli bilgisinin, müşteri ihtiyaçlarını karşılayan çalışma yazılımı oluşturma yeteneğinin garantisi olmadığını gözlemlemenizi gerçekten seviyorum.
Mark Brittingham

34

Jon Skeet kim?


11
Ya da daha iyisi: Siz Jon Skeet misiniz? ;-)
splattne

bu aslında C # pozisyonları için iyi bir soru. Jon Skeet'in artık stackoverflow / google aramalarının C # ile ilgili olduğunu düşünüyoruz. Şimdiye kadar kim olduğunu bilmiyorsanız, Jon Skeet'siniz ya da C # 'da programlama yapmıyorsunuz.
lubos hasko

2
Jon Skeet'e suç yok - ama Rick Strahl'in karşılaştığım sorun türleri için cevapları daha sık gösterme eğiliminde olduğunu düşünüyorum.
Andrew Theken

1
@ [Andrew Theken]: "Rick Strahl" için o google-) yüzdelerini oynatacağım 38.500 sonuç verir, "jon skeet" 144.000 sonuç verir. Ayrıca Rick Strahl, SO AFAIK'ta yayın yapmıyor.
Steven A. Lowe

1
her ikisi de yaptıkları işte harika ... bizim kazancımız.
GR7

33

Bana sorulan iyi sorular

  • .NET hakkında neyin iyi olduğunu düşünüyorsunuz ?
  • .NET hakkında neyin kötü olduğunu düşünüyorsunuz ?

Bir adayın ne yapacağını görmek ilginç olurdu ve kesinlikle çerçeveyi nasıl kullandığı hakkında biraz bilgi edineceksiniz.


18

Her zaman yumuşak yetenekleri kendim arayacağım - amaçlanan cinas yok. Çok iyi OO tasarımı, test odaklı geliştirme, iyi bir çoklu (programlama) lingual arka plan ve çok yönlü genel akıllılık (ve sanırım işleri halletmek!).

Akıllı bir geliştirici, daha önce hiç bakmamış olsalar bile, bilmeniz gereken bireysel teknolojileri öğrenmekte herhangi bir sorun yaşamamalı - bu yüzden WCF / kompakt çerçeve ve benzeri konulardaki belirli sorular hakkında çok fazla endişelenmem.

Ben onların bazı kod yazmak olurdu - bildikleri ve nasıl çalıştığını bulmak için en iyi yolu. Herkes 'Bir referans türü ile bir değer türü arasındaki fark nedir?'


2
Açık. Küfürlü sorular sormak bela istemektir. Çalıştığım şirket eski teknik soru soruyor ama çoğunlukla şu: bu problemlerim var, işte bir beyaz tahta, bunları nasıl çözeceğinizi söyle. Korkutucu ama etkili.
Chris Brooks

4
... ancak görüşmecinin beklediği şekilde çözmezseniz, başarısız olursunuz.
gbjbaanb

1
@gbjbaanb bazen. Ancak durum buysa, yine de orada çalışmak istemeyebilirsiniz. Unutma, sen de şirketle röportaj yapıyorsun. Röportajda başarısız olan birkaç şirket tanıyorum!
Tony Ennis

13

Dürüst?

".NET nedir?"

.NET'in ne olduğu ve ne olmadığı, nasıl kullanıldığı, hangi unsurlardan oluştuğu, vb. gayet iyi biliyorum.

Mesele şu ki, birçok insan .NET'in ne olduğunu gerçekten bilmiyor. Bunun için program yazanlar bile.


11

Gerçekten yok. Muhtemelen dünyadaki en zeki insanların cevaplarını bilmedikleri çok basit sorular var. Zor oldukları için değil, sadece onunla karşılaşmadıkları için. Rasgele bir soruya cevap verip veremeyeceklerine değil, tüm pakete ve geliştiricinin becerisine bakmalısınız.

Soru kısa veya iki cümleyle cevaplanacak kadar kolaysa, bilmeyen birisine söylemek kolaydır. "Her .NET geliştiricisinin cevaplayabilmesi gerekir."


10

Referans ve değer türleri arasındaki farkı bilir.

Olayların sabit referanslar olarak saklandığını bilin (örn. Olayların kaydını silmeyi unutmayın, aksi takdirde uygulama bellek sızdırır).

Teller değişmez.



4

Bloglar hakkında düzenli olarak okuduklarını ve üzerinde çalıştıkları kişisel programlama projeleri hakkında bilgi almayı öneririm, çünkü bu öğrenme isteğini ve programlama tutkusunu gösterecektir.


3

İşte C # programcıları için iş başvurusu yapan programcıları filtrelemek için kullandım:

Referans türü ile değer türü arasındaki fark nedir?

C # dil yapısının gerektirdiği IDisposable arabirimini ve nasıl uygulayacağınızı açıklayın.

Bir null değeri, bu parametre için null değerlerine izin vermeyen bir sözleşmesi olan bir yönteme argüman olarak iletilirse hangi istisna atarsınız?


Kodum genellikle bir NullReferenceException oluşturur.
Joshua

5
@Joshua, ArgumentNullException başarısız oldunuz.
Nicolas Dorier

3

"ASP'den hangisi: üretimde hangi kontrolleri kullanırdınız ve neden?"

Bu, konunuzun DataGrids ve LinkButtons tarafından yakılacak kadar uzun bir süre boyunca gerçekten büyük bir proje oluşturup oluşturmadığını veya hâlâ Sürükle / Bırak "21 gün içinde kendini öğret" aşamasında olup olmadığını hızlı bir şekilde anlatacaktır.

(cevap asp: Tekrarlayıcı, asp: PlaceHolder, asp: Değişmez ve asp: İçerik)



2

Bu biraz değişken bir soru ve gerçekten şimdi tamamen cevaplayabilmeniz gereken bir soru değil, uygun olduğunda cevaplayabilmeniz gereken bir soru:

".NET çerçevesi X görevini gerçekleştirmek için ne sunuyor?"

Veya daha spesifik olarak:

".NET çerçevesi X yapan bir nesne içeriyor mu?"

Örneğin, son zamanlarda birkaç Booleans dizisini saklamak ve üzerinde çalışmak üzere optimize edilmiş bir nesne geliştirmek için birkaç saat geçirdim, örneğin bir koleksiyon akıllıca DEĞİL, OR, XOR, VE yapmak, tüm değerleri ayarlamak vb. t Tüm birim testlerimi yazmayı ve mümkün olan en iyi performans için ayarlamayı bitirdikten sonra, "BoolArray" neslimin "BitArray" adı altında .NET çerçevesinde zaten var olduğunu fark ettim.

Hangi nesnenin / yardımcıların kullanacağına dair en iyi cevap, bilmediğiniz veya tam olarak anlayamadığınız için cevaplamak zor olabilir. Herkesin performansı önemli miktarlarda artırabilen basit bir araç olan basit StringBuilder'ı bile biliyorsa .NET dünyası ne kadar harika olurdu.


2

Dotnet gibi programlama kavramlarının anlaşılmasına odaklanan bazı sorular önereceğim

Yönetilen ve yönetilmeyen çevre arasındaki fark nedir? GC artılarını ve eksilerini JIT artılarını ve eksilerini X uygulaması geliştirmek gerekirse, dotnet kullanabilir miyim? Neden? (bu dotnet'i nasıl gördüğünü belirleyecektir)

Ayrıca küçük yöntemler yazmanızı ve daha iyi dotnet sınıfları veya standart yollar kullanarak bunları daha iyi performansla yeniden yazmasını istemenizi öneririm. Aynı zamanda (herhangi biri açısından) yanlış yöntemler yazın ya da her neyse ve onlardan bunları düzeltmesini isteyin.


2

Daha önce bahsedilen bazı sorulara ek olarak aşağıdakilerin hayranıyım:

  • Delege nedir?
  • Uygulama alanı nedir?
  • Lock anahtar kelimesini ne zaman kullanırsınız?
  • Standart kütüphane jenerik toplama sınıfları iş parçacığı güvenli midir?
  • Uzantı yöntemi nedir?
  • XmlDocument ve XmlReader arasındaki fark nedir?
  • Uygulama yapılandırma dosyasından yapılandırma ayarlarında nasıl okursunuz?

2

Bu ilginç ve işitme engelli olarak doğduğumdan, bu fikrimi kişisel olarak iletmek için daha fazla çaba gerektirecek bir soru sorulduğunda, bence bu oyu alma riski altında.

Kör olmak gerekirse, tipik soruları çok fazla okumazdım, çünkü altta yatan paradigma ' Düşüncelerinizi ve anlayışınızı ne kadar iyi seslendirebilirsiniz?', görüşmecinin aradığı şey budur. İletişim, her zaman benim olduğum şekliyle en büyük zayıflığımdır ve oldukça kolay bir şekilde hayal kırıklığına uğrayabilir.

Bilgiye sahip olmak ve her şeyi bilen bir tip olmak ideal olurdu, ancak maalesef bilmediğim bazı şeyler var, ancak cevabı bilmiyorsanız ve blöf yerine itiraf ediyorsanız korkmamanız gerekir. içinden. Bir görüşmeci bana yukarıdaki sorulardan biri gibi bir soru sorduysa, bu sorudan emin olamayacağımı ya da yanlış anlayamayacağımı / yanlış yorumlayamayacağımı açık bir şekilde söyleyebilirim ki bu kişisel olarak utanç verici olabilir, ancak bunun üstesinden gelmeyi öğrenmişti.

Kaçının gerçekten waffle yapacağı ve blöf yapacağı şaşıracaksınız, bu da günün sonunda mecazi olarak `` pantolonunu aşağı '' ile yakalandı.

2 sent, Saygılarımla, Tom.


2

Biraz daha:

  1. Kısmi sınıflar. Ve sınırlamaları?
  2. Mühürlü sınıflar
  3. .NET'te yerelleştirme nasıl yapılabilir?
  4. Veritabanı bağlantısı
  5. Çeşitli yapılandırma dosyaları
  6. Delegeler ve etkinlikler
  7. Yönetilmeyen dll erişimi
  8. Yansımalar
  9. Genel sınıflar
  10. .NET 3.5'te en popüler
  11. Kullandığınız birim test çerçeveleri.

2

Bu "ders kitabından bir şey biliyorum" soruları sormak değil, daha ziyade aşağıdaki gibi bazı şeyler sorar:

  • Foreach döngüsü düz C # içinde ne yapar? (Bir yineleyici döngü yazmasını bekliyor.)
  • Singleton nedir?
  • Bir String'i Datetime'a ayrıştırsın (try / catch yerine TryParse kullanmasını bekliyor)
  • Singleton, strateji ve komut kalıplarını uygulamak
  • Refactor'a test için bir kod parçası bırakın. Dış hizmetleri Test altındaki Birimden soyutlaştırmasını ve hizmetin kendi Test-double'ını uygulamasını beklemek (alaycı çerçeve sağlamaz)

Bunlar% 100 emin değil, onlara sorabileceğim kişiye bağlı olarak:

  • boş girişten bir yöntem korumasına izin ver (iç içe yerleştirmeyi azaltmak için birden fazla dönüş kullanmasını bekliyor)
  • Bir nesne başlatıcısı nasıl çalışır (İş parçacığı için güvenli atamayı yazmasını beklemek)

Ayrıca, eşyalarını nasıl öğrendiğini ve ne okuduğunu da sorarım (hangi bloglar, kitaplar).


1

Biraz daha:

Çöp toplamanın sınırlamaları nelerdir?

Sonlandırıcılar ve IDisposable hakkında bilgi edinin.

İş parçacığı havuzuna ve ne zaman kullanılacağına dikkat edin.

GUI uygulamaları yapıyorsanız - Windows GUI'nin tek iş parçacıklı olduğunu unutmayın.

Foreach kullanın (MoveNext vb. Yapan birçok insan görüyorum.)


1
Bilmiyordum, bu yüzden çöp toplamanın sınırlarını araştırdım .
MSpeed

1

Bence sadece sorular olmamalı, onlarla görüştüğünüzde parlak olan birkaç adamı tanıyorum ama gerçek şeye ulaştıklarında çok fazla mükemmeliyetçi olduklarından, görevi sefil bir şekilde kodlayamadıklarını söyleyebilirim.

Bir zamanlar röportaj yaptım ve ilk işverenin bana 30 dakikayı doldurmam için teknik bir anket verdiği yaklaşımı beğendim. Eğer biri başarılı olursa, Kişilik Yargısı ve Karakter bulma sorularının yanı sıra teknik jargonları içeren 1 saatlik bir röportaj için çağrılır.

Sonra 6 saat içinde üç sayfalık bir web uygulaması geliştirmem istendi. Uygulamada dayatılan kısıtlamalar, küçük bir ERD, Layerd Design, UI Tutarlılığı gibi uygulama geliştirmenin önemli yönlerini akıllıca kapsıyordu, GridView'da Radyo düğmelerini kullanma ve bir web sayfasında DB'den görüntü türlerini görüntüleme, bir algoritma geliştirme, güvenlik, Şifreleme, Karma, Veri gösterimi ve manipülasyonu.

Daha sonra Ertesi gün performans performans darboğaz alanlarını ve tasarım ve kullanılan algoritmalardaki geliştirmeleri kapsayan geliştirilmiş uygulama üzerine 30 dakikalık bir tartışma izlediler. Ve belirli bir koşul ile önceki adımda geliştirilen algoritmanızı geliştirmek için 1 saat isteğe bağlı test.

Bu yüzden oldukça zaman aldı, ancak bu şekilde işe aldığınız kişinin en azından iyi bir geliştiricinin olması için gerekli olan kavramları bildiğinden emin olabilirsiniz.


0

Ona bir sorun vermeyi ve onu .net'in özelliklerini kullanarak çözmesini istemeyi ve neden bunun en iyi çözüm olduğunu düşünüyorsunuz.

Bu, bir adayın teknik, analitik ve problem çözme becerileri açısından neredeyse tüm yeteneklerini ve problem çözme yaklaşımını kıracaktır.

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.