10 dakikalık teknik görüşme [kapalı]


37

Düzinelerce yeni öğrenciyi hızlıca değerlendirmem gerekiyor. Her biriyle 30 dakikalık bir toplantım var (iki veya üç gün içinde). Teknik olmayan konuları tartışmak için çoğu zaman kullanmak istiyorum. Bu yüzden teknik sorular için 10 dakika kullanmayı planlıyorum. Hepsi için aynı sorular.

Hepsi zaten işe alındı (öğrenciler), bilmem gerekenler bir eğitim hazırlamak için ortalama seviye.

İdeal olarak, must be progressiveher biri için bir seviye ayarlamak için zorluk . Seviye Ben ortalayacağım ve ben de her soru için bir ortalama yapacağım.

Adaylara sormak için sadece 10 dakikanız ve 10 sorunuz varsa, ilk 10'nuz hangisi olurdu?


6
İşle ilgili daha fazla içerik? Bu bir sistem yöneticisi pozisyonu mu yoksa programcı pozisyonu mu ve düşük veya yüksek seviye programlama mı? Mağazanızda belirli diller veya teknolojiler var mı? Bunların hepsi soru listeme dikte ederdi.
Chris

4
Ne tür bir eğitim? Programlama? Genel BT?
Adam Lear

3
Bunu tersine çevirir ve kişisel eşyalara 10 dakika, teknik eşyalara 20 dakika harcardım.
Kyralessa

1
Biliyorum, çoğu insanın yapacağı şey bu. Ancak farklı yaklaşımlara inanıyorum.

3
Aday için 10 dakika çok az
Zzz

Yanıtlar:


55

Eric Lippert'in buradaki cevabının sonunu ele alan üç soru :

Soru 1:

1 - 10 arasında, kendinizi nerelere göre değerlendiriyorsunuz? Cevaplar [n], 1 ile 10 arasında bir sayı.

Soru 2:

[N + 1] seviyesinden birinden ne öğrenebilirsin?

Soru 3:

[N-1] seviyesindeki bir kişi senden ne öğrenebilir?

Kararınızdaki en önemli faktör, bir öğrencinin (gerçekçi) kendilerini nereye yerleştirdiğini belirlemektir ve bu üç soru bunu hızlı bir şekilde belirlemenize yardımcı olacaktır. Ayrıca, Dunning-Kruger etkisi (her iki uçta da) tarafından tehlikeye girebilecek kişilerin belirlenmesine yardımcı olur , ancak bu başka bir konudur.

Herkes bu yönteme referansı SO'da bulabilir ve bir bağlantı eklemek için bu yayını düzenlerse, gerçekten minnettar olurum.

Neyse, bu on dakikanın altına düşmeli.


5
Vaov! Oldukça sıradışı metrik. Kendimi hiç bu şekilde düşünmedim. Teşekkürler!
Andrew Андрей Листочкин

Açıkçası, aday ikinci soruyu engellemek için 10 cevap veriyor.
sağa doğru

4
@WTP On bir yalan.
Tim Mesaj

1
Bu muhteşem. Eğer bir işveren bana bunu sorsa, normalde 1 saatlik bir röportajda şansım olandan birkaç dakika sonra kendim hakkında daha fazla açıklama yapabilirim.
fearofawhackplanet

28
  1. Sınıf nedir
  2. Statik yöntem nedir?
  3. Kalıtım nedir?
  4. Polimorfizm nedir?
  5. Birincil anahtar nedir?
  6. Yabancı anahtar nedir?
  7. HTTP GET ve HTTP POST arasındaki fark nedir?
  8. Web servisi nedir?
  9. Bazı veri yapılarını adlandırın.
  10. Nesne / İlişkisel Eşleştiricinin amacı nedir?

Yenileme önermek için çekinmeyin, bu listede iyileştirme için çok yer var.


1
Statik yöntemler C ++ dışında birçok dildedir, burada önemli değil. Aslında birçok öğrencinin kavrayabilmesi için zor bir kavram olduğunu görüyorum - ve onları kavrayıp anlamadıklarını sorma veya bir tanım isteme, bulup bulmadıklarını öğrenmenin kötü bir yoludur.
Kate Gregory

3
Unutmayın ki, soru on dakika içinde on soru belirtildi. Otuz dakika içinde on soru olsaydı, zorluk seviyesini yükseltmek ve daha anlamlı açık uçlu sorular sormak isterdim.
Eric Wilson

3
Listenizdeki 1-8 arasındaki soruları gerçekten çok seviyorum, ancak 9. veya 10. soruları "Neden arabirimler önemlidir?" Ve / veya "Soyut bir sınıf neden önemlidir?" İle değiştirebilirim. (bu sırayla)
Nicole

7
Tüm OO sorularının nesi var?
Recursion

3
Eh, bunların hepsi dil özelliği ile ilgili sorular. Teoriye bağlı şeylere karşı, önemli olduklarına ikna olmadım.
Andres Jaan,

20
  1. İşaretçileri açıkla!
  2. Kapaklar nedir?
  3. Boş zamanlarında hangi dilleri kullanıyorsunuz ve neden?
  4. İşlemler hakkında biraz konuşun!
  5. Bir tercüman ile JIT arasındaki fark nedir?
  6. Derleyicinin temellerini açıklar.
  7. Özyineleme yaptığınızda hafıza düzeyinde neler olur (ve TCO'nuz farklıysa)
  8. OO Programlamanın önemli kavramları nelerdir (ve neden önemlidir?)
  9. Evde hangi yeni şeylere bakıyorsunuz ve neden ilginç?
  10. Bir işlem ile bir iplik arasındaki farkı açıklayın.

20
Bunların çoğunun .net (ya da programlama) için tamamen yeni olan insanlar için iyi sorular olduğunu düşünmüyorum - ve soru başına 1 dakikalık cevapları
bilseler bile

9
Bu soruların, öğrenciler için "ne biliyorsunuz / öğrendi" sorularından ziyade "ne kadar ineklersiniz" soruları gibi göründüğünü kabul ediyorum.
hyprsleepy

5
Bu sınavda büyük ölçüde başarısız olamam, çünkü çoğunlukla hiç CS okumamıştım ya da C'yi kullanmamıştım. Bu yüzden, sınıfta kimin dikkatini verdiğini ve eğlenmek için programları kimin seçtiğini belirlemeye yardımcı olabilir, ancak bunun yararlı olup olmayacağını bilmiyorum. OP'nin içeriği.
Eric Wilson

3
Çoğu insan bu yanlışların çoğunu alır.
Recursion

4
Güzel sorular, ancak bazıları bir dakika içinde cevaplanamaz.
zvrba

16

Öğrencilerimden edindiğim deneyime göre en baştan başlıyorum - Üniversitede insanların öğrendiklerini ve kullanışlı olanın iki ayrı set olduğunu gördüm.

Ancak onlarla konuşma şansınız olduğu için onu almamak aptallık olur.

Benim varsayım, arka planda çok az ortaklık olduğu ve bu nedenle dile özgü sorulardan kaçınıyorum. Buna yaptığım tek istisna, internette bir şeyler yaptıkları varsayımıdır; ancak bu soruya gömülü uzmanlar ya da her neyse, eşdeğer bir şey için bastırılabilir.

Onlardan ilerlemeye çalışmalarını istedim, bu da benim yapmaya çalıştığım ancak hiçbir ortak noktaya ilişkin varsayımlarımın doğru olduğu doğru / yanlış soruların nispeten zor olması ve yeterliliklerinin çoğunun cevaplarının ne kadar iyi olduğu konusunda sorular

Neyse ...

1) Hangi dillere ve teknolojilere maruz kaldınız? Bunlardan kaç tanesini (hangileri) 50 saatten daha uzun bir süre boyunca gerçekten programlama yaptınız (dersleri, laboratuar zamanını ve benzeri şeyleri değil, solo kodlama yaptığınız projeleri ve ödevleri içeren).

2) Şimdiye kadar yazdığınız en karmaşık programı anlatın. Onu karmaşık yapan ne?

3) Üniversitede (programlama ile ilgili) gerçekten anlamadığınızı düşündüğünüz ne öğrendiniz? Her şeyi anladığınızı düşünüyorsanız (bu noktada notlarını kontrol edin), daha sonra nasıl kodlayacağınızı ve nasıl düşünmeye başlayacağınızı bilemeyeceğinizi gördüğünüz bir uygulama veya uygulamadan bahsedin.

4) Nesneye Yönelik Programlamanın temel ilkeleri nelerdir?

5) Bana 1 dakika içinde mümkün olduğunca ilişkisel veritabanları hakkında bilgi verin

6) Bir web uygulaması için, sayfalar arasındaki kullanıcı hakkında bilginin korunmasına yönelik bir yöntemi tarif edin. Tarif ettiğiniz mekanizma için hangi avantaj ve dezavantajların mevcut olduğu.

7) Bilgisayarda yaygın olarak kullanılan işlevselliğin bir parçasını seçin ve programlı bir seviyede nasıl çalıştığını (örneğin şifreleme, sıkıştırma) çok kısaca açıklayın. Ayrıca, uygulayacağınız işlevselliği nasıl kullanmanız gerektiğini de açıklayın (burada bir şeyin nasıl çalıştığını bilmenize rağmen, bunun için bir kütüphane almak daha iyi olabilir).

EDIT: Yeniden tasarlandı ve daha önce sorulduğu gibi daha ilerici hale getirmek için birkaç soru daha ekledi.


6
Bu listeyi beğendim, başka bir soru daha ekleyeyim: Üniversitede, gerçek bir dünya kullanımı için göremediğiniz şeyleri neler öğrendiniz? Bu, nasıl düşündüklerine dair bazı yararlı göstergeler verebilir.
glenatron,


OOP'un "ilkeleri" hakkında soru sorduğunuzda, OOP'un bir din olduğunu söylemek mi istiyorsunuz?
Komutan

@compman - Açıkça değil. inanç bir dine başvurabilir, ancak bu bağlam için münhasır değildir ve ayrıca herhangi bir organizasyon, hareket veya mesleğe de uygulanabilir.
Jon Hopkins,

8

Eğer bunlar öğrenciler ise ve çalışmalarında nerede olduklarını ölçebilmeyi istiyorsanız, o zaman hileli sorular veya zor düşünmelerini sağlayacak sorular olmamalıdır. Tavsiyem, sadece temel konulara odaklanmak olacaktır - onlardan yansımaların hala nesneler ve miras konusunda hız kazanmadıklarında nasıl çalıştığını açıklamalarını istemek için fazla bir şey yoktur.

İşte kullanılabilecek bazı örnek sorular ve belki de temel bilgi kategorisinden bir şeyle başlayabilir ve daha sonra uyarlamalı testlerin nasıl çalıştığı gibi soruları nasıl cevapladıklarına dayanarak hareket edebilirsiniz .

Temelleri

  1. Bazı temel program akış kontrol komutları nelerdir?
  2. Bazı temel mantıksal işlemler nelerdir?
  3. While ve for döngüler arasındaki fark nedir?

çekirdek

  1. Nesneye yönelik programlamayı kısaca açıklayın.
  2. Miras kavramını kısaca açıklayınız.
  3. Veritabanlarının nasıl işlediğini kısaca açıklayın.
  4. enumAnahtar kelime ne için kullanılır ve ne zaman kullanırsınız?

ileri

  1. Bana C # generics veya C ++ şablonları hakkında ne söyleyebilirsiniz?
  2. Bana operatörün aşırı yüklenmesi hakkında ne söyleyebilirsiniz?
  3. Bir sınıfla yapı arasındaki fark nedir?
  4. Bana .NET'teki yansıma hakkında ne söyleyebilirsiniz?

6

Yukarıdaki yorumuma bir cevap vermeden, bunlar genel olarak konuşulan akla gelen şeylerdir, ancak bunları teknik olarak değerlendireceğimden emin değilim.

  • Ne tür sürüm kontrolü kullandınız?
  • Çevik, şelale, tdd gibi yazılım geliştirme metodolojilerine aşina mısınız?
  • Yazılımda dokümantasyonun amacı nedir?
  • Statik ve dinamik olarak yazılmış diller arasındaki fark?

5
"Spagetti kodlama stili neden faydalıdır?" - nihai olanı
mlvljr 4:10

Haha onları kandırmaya çalışmak için bu mu?
billy.bob

@ m.edmondson Şimdi lütfen soyutlamanın kırılması kaçınılmaz olduğunda bir örnek veriniz;)
mlvljr 4:10

Hmm bu kaçınılmaz olan herhangi bir durum olduğuna inanmıyorum ;-)
billy.bob 5:10

4

Bilmediklerine dayanarak eğitimi oluşturmaya çalıştığınızı ve farklı öğrenci grupları için birkaç eğitim kovasına sahip olmayı planladığınızı fark ediyorum. Tahsis edilen sadece on dakikanız olduğundan, neden eğitime katılmayı düşündüğünüz şeylerin bir listesini yapmıyorsunuz ve bu soruları soruyorsunuz. Yani onlara C # öğretmeyi planlıyorsun. İyi biliyorlar mı diye sor. Daha yeni özellikler kullanıp kullanmadıklarını sorun (LINQ, null tipleri, jenerikler, ...). Eğitiminizde veritabanı içeriği varsa, bu konuda bazı sorular sorun. Sonunda, planladığınız konulardan birinin gereksiz olduğunu görebilirsiniz, çünkü herkes bunu biliyor ve diğer bazı konulara herkes tarafından ihtiyaç duyuluyor, vb. Bu, ne olduğunuzla ilgili olmayan sorular bulmaya çalışmaktan daha pratiktir.


+1 - Söylemek istediğim şey bu. Onlara, onlar için yapılan bir eğitime dahil edilmesi gereken şeyleri sorun.
mouviciel

4

Onlara FizzBuzz sorusunu sorun

Nasıl kodlayacağını biliyorlar mıydı? Hangi dili kullandılar? Neden yaptıkları gibi kodladılar? Recursion kullandılar mı? Döngüler? Diğer Yöntemler / İşlevler? İşaretçiler?

Soruyu diğer sorular için bir üs olarak da kullanabilirsiniz (örneğin, Recursion'u neden kullandınız / kullanmadınız? Bunu işaretçiler kullanarak nasıl yazardınız?)

Her şeyi kapsamıyor, ancak size kodlama becerileri hakkında bir fikir verebilir.


1
Evet, toplulukta birine bu soruyu soracağım konusunda söz verdim. Son soru olacak ve sonuçları herkesle paylaşacağım.

1
@ Pierre 303: İnsanlardan posta kodunu doğrulayacak bir fonksiyon yazmalarını isterdim. Sizi temin ederim ki FizzBuzz kadar aydınlatıcıydı.
Scott Whitlock

1
Bana bu soruyu sormaktan aldığım bazı sonuçları verme fırsatı veriyorsunuz. 6 ya da 7 röportajda kimse cevap veremedi. Birçoğu yeni öğrencilerdi, ancak 8 yıllık deneyimim oldu! Bu yüzden biraz kafam karıştı ...

4

On soru:

  1. Bir dizinin değerlerini toplayan bir for döngüsü gösterin. O zaman kodun ne yaptığını sor. [Basit bir döngü okurlar mı?]

  2. Onlardan virgülle ayrılmış olarak 1 ile 10 arasındaki sayıları basan bir for döngüsü yazmalarını isteyin. ["Bunu yapabilirler mi?" Ek olarak kodlarının ne kadar tekrarlayıcı olduğunu yargılayabilirsin.]

  3. İki referanslı bir kod parçası gösterin ave btamsayı alanı x, yani 7ve 5. Sonra yeniden atamak: a = b;, b.z = 9;ve sonra değeri isteyecek a.z. [Referansları anlıyorlar mı?]

  4. Döngüler için iç içe iki tane göster (dizinler ive kullanarak j), bazı ifadelerden değerleri toplayın. En içteki döngüde iki hesap vardır: double x = Math.pow(2.0, i)ve double y = x * j. Kodu daha verimli hale getirmelerini isteyin. Basit döngü bağımlılığını biliyorlar mı?

  5. Onlara kod örneği A'da neyin yanlış olduğunu sorun. (Aşağıya bakın.) [Mantıklı düşünebilirler mi?]

  6. Onlara kod örneği B'de neyin yanlış olduğunu sorun (Aşağıya bakınız.) [Ayrıca mantıksal düşünme üzerine]

  7. (s != null && s.Length != 0)Kullanmadan bu durumu tersine çevirmelerini isteyin !. DeMorgan Yasasını biliyorlar mı?

  8. Dergilerdeki eski Lint reklamlarına benzer bir kod parçası gösterin: Onlardan hatayı bulmalarını isteyin. Örneğin, equalsgeçersiz kılmak yerine aşırı yükleme . [Onlar iyi dil avukatları mı? Bu tür sorular çoğunlukla deneyim için test eder: bunu daha önce gördünüz mü?]

  9. Sıralı bir dizi ile ikili arama yapmayı açıklayabilir mi?

  10. Bir sıralama yönteminin nasıl uygulanabileceğini açıklayabilirler mi?

Bunlar "çok kısa" görünebilir, ancak öğrencileri değerlendirmek için on dakikayı oldukça zor bulabileceğinize inanıyorum. Gerçekten bazı kodlamalar yapmalarını görmek istiyorsun. (Bir yoruma göre, FizzBuzz'ı yapacaksınız gibi geliyor.)

Daha güçlü bir öğrenciyi varsayabiliyorsanız, özyineleme, bağlantılı bir listeyi tersine çevirme ve belki de bir XOR listesini açıklama gibi ileri düzey bir joker ya da ne tür bir sezgiye sahip olabilecekleri gibi klasiklerden bazılarına sormak isteyeceksiniz. Neden bir sayı kümesinin sıralanmasının sıkıştırılmasının sıralanmamışdan daha kolay hale getirildiğini açıklar.

Kod Örneği A:

if (m != null)
    a = m;
else
    a = null;

Kod Örneği B:

if (x != 0 || x != 1) {
    ...
}

3

Elbette bu konuda yanlış yoldan gidiyorsun. Her öğrenciyi yerleştirmek istediğiniz grupları belirleyin

Örneğin

No previous programming experience
Familiar with procedural constructs like variables, loops, branching
familiar with basic object orientated constructs like classes, interfaces, events, inheritance
familiar with using Generics/Templates
familiar with creating Generics/Templates

ve bunun gibi. Kurs materyaline bağlı olacak uygun grupları belirlediğinizde, hangi soruları sormanız önemsiz olacaktır.


3

Öğrenciler zaten işe alındı ​​ve bir eğitim programı hazırlamak istiyorsunuz, bu yüzden anlaşmanın bir kısmı ne kadar hızlı öğrenebileceklerini bulmaktır (ve / veya ne bildiklerini: kimin kimin umrunda?). Neden bazı basit, orta ve zor sorular seçmiyor ve bunları önceden onlara vermiyorsunuz. Kolayca öğrenilebiliyorlarsa neden bilemeyebilecekleri sorular soruluyor?

İnsanların çoğunun hayal ettiklerinin aksine, öğrencilerin birçoğunun eldeki sorularla bile pek başarılı olamayacaklarını göreceksiniz . Bu şekilde öğrencileriniz, onların bilgileri ve öğrenme yeteneklerini öğreneceksiniz.


2

5 basit akış şeması yapıları ve ayrı bir cevap listesi oluşturun. Fotoğrafı ifadeyle eşleştirmelerini isteyin.

Aşağıdakileri çizin:

  1. Yapılırsa
  2. Başka Bir Yapı Varsa
  3. Döngü Yapmak
  4. Döngü kadar yapmak
  5. Vaka Beyanı Yapısı

Onlardan 1 ile 2 arasındaki farkı açıklamalarını
isteyin. 3 ve 4 arasındaki farkı açıklamalarını
isteyin.


1

Bunu 10 dakikada 10 soruda yapmanın mümkün olacağından emin değilim. Belki de onlara net hakkında ne bildiklerini anlatmaları için 5 dakika verin. O zaman belki 20 konudan oluşan bir liste hazırlayın ve daha önce bahsetmediklerinden 2 veya 3, daha önce söylemediklerinden 2 veya 3 seçim yapın.

Örneğin başlayabilirsiniz:

Kısaca bana (5 dakikanız var), Visual Studio'da onu oluşturmaktan çalıştırmak için nasıl basit bir C # projesi üreteceğinizi söyleyin.

Ondan sonra:

Tamam, bana biraz daha anlat. Hızlı cevap verilecek, cevap başına 1 dakika, bu yüzden fazla detaylı olmaya çalışmayın Sadece aşina olduğunuz şey için bir fikir istiyorum.

Daha sonra bunun için 5 soru sorun:

  • Bir sınıfın ne olduğunu açıklayın.
  • Soyut bir sınıfla arayüz arasındaki fark nedir?
  • Çöp toplamanın .Net'te nasıl çalıştığını kısaca açıklayın.

    ....

  • Bir problemin varsa bir şeyi nasıl hata ayıklarsın?

  • Yadda-yadda - Diğer cevaplardan seçmek için uzun bir liste seçebileceğine eminim

1

Ben "öz değerlendirmeye" inanıyorum! Kişiye tam olarak kendisini bulacağını açıklarsanız, örneğin: "SQL'i kodlamanız gerekir ... 100+ tablodan oluşan bir veritabanı ve 4 saniyenin altında çalışması gereken 500K + kayıtları ...". Ve eğer ona sorarsanız: "Yapabileceğinizi düşünüyor musunuz?" - doğru bir cevap alacaksın.

Öğrencilerin beklentileri üzerine 5 soru ve 5 tane daha teknik teknik:

  1. Bu eğitimden ne bekliyorsunuz?
  2. Seviyen nedir (bu alana özel olmalı)?
  3. Bu eğitim sırasında ne görmek / öğrenmek istiyorsunuz (en önemli 3 noktaya dikkat edin)?
  4. Egzersiz yaparsak, sizin için daha yararlı ne görürsünüz? (atölye, çoktan seçmeli)?
  5. Öğretmenden ne bekliyorsunuz?

Daha sonra gibi bazı teknik sorularla gidebilirsiniz (bu konuya göre olmalıdır). örneğin OOP için:

  1. Kapsülleme nedir?
  2. Arayüz nedir?
  3. Polimorfizm?
  4. Alt yazarak?
  5. Dinamik bağlama?

1

Problem çözme, güçlü bir öğrenme alışkanlığı, mesleki gelişim ve geniş bir yaklaşım bilgisi arıyorum.

  1. Portfolyonuzu görebilir miyim?
  2. En son hangi 3 teknik kitap okudunuz? Neden?
  3. Hangi programlama metni en çok düşündüğünüzü değiştirdi? Neden?
  4. chickenBir nesneyi nasıl tanımlarsın ? Diğerleriyle nasıl bir ilişkisi var birds? Nasıl hakkında mammalsve animals?
  5. Layer'ın terimlerinden herhangi birini (REST, Polimorfizm, ilişkisel cebir, ayrıştırıcı tasarımı, MVC) açıklayabilir misiniz?
  6. Kendi geliştirdiğiniz en ilginç (veya en iyi) yazılım hangisidir?
  7. En sevdiğiniz dillerden en sevilen dillere kadar olan dilleri açıklayabilir misiniz? En sevdiğiniz diller konusunda sizi ne sinirlendirir?

Geliştiricilerden şunları bekliyorum:

  • Becerikli ve hızlı olun
  • Temel kavramları doğru kavramak
  • İleri seviye kavramları kavramayı öğrenir
  • Başarı ve başarısızlığı takip etmek (ondan öğrenmek)
  • Sürekli, düşünceli bir şekilde öğrenin
  • Basitçe karmaşık sorunları iletin
  • Genelde dogmatik sorunları tartışırken denge ve mantık göster

1
Kapakları baştan sona programlama kitaplarında nadiren okurum. Daha iyi referans ve açıklama malzemesi yaparlar.
Andres Jaan,

Haklısın: kapak örtmek için okuyamayacağın bazı metinler var (referans malzeme), ama düşünceni değiştirecek bir sürü inanılmaz cilt var. Örneğin: Tufte'nin Görsel Açıklamaları veya Seçim Paradoksu veya Programlama Dili Pragmatik (veya Hofstadter tarafından yazılmış herhangi bir şey).
Bruce Alderson,

Teknik / programlama kitaplarıyla sınırlı olmayan “düşüncenizi değiştirecek bir dizi inanılmaz cilt var”. Ayrıca, portföyüm yok, tüm işlerim güvenli sistemlerdi, mahvoldum.
NimChimpsky,

Açık bir projeye veya kar amacı gütmeyen kuruluşlara biraz zaman ayırın. Birini işe almadan önce gerçek işi görmek önemlidir (sonunda sonunda gerçek işinizi göstereceksiniz). Bir portföy iyi niyetli bir CV kadar önemlidir.
Bruce Alderson

1

Bloom'un Taksonomisi burada yararlıdır. Ezberden ezberlemeye analitik olana kadar çeşitli bilgi seviyelerine ulaşmak istersiniz. Bu, yetenek seviyelerinin nerede olduğunu bulma şansı verir. OP öğrencilere sormak için soru sorduğundan, aşağıdaki listede 3. veya 4. sınıftaki bir öğrencinin (umarım) sahip olabileceğinden daha fazla bilgi olmadığı varsayılmaktadır.

Kavramsal

  1. Bir yığın akış nedir?
  2. Bir nesne ve sınıf arasındaki fark nedir?
  3. Bir işlev ile yöntem arasındaki fark nedir?
  4. Quicksort ve Insertion Sort'un güçlü ve zayıf yönlerini tanımlayın.
  5. Yazdığınız bir programın bir ikili ağaçta depolanan tüm değerleri nasıl göstereceğini açıklayın.

Pratik

  1. Sürüm kontrol sistemi kullandınız mı? Hangi yollarla ekip üyelerinin daha etkin bir şekilde işbirliği yapmalarını sağlar?
  2. Derleyiciniz "tanımlanamayan simge" diyor. Bu ne anlama geliyor?
  3. "Bölümlendirme ihlali" nedir?
  4. (Burada dili ekle) sözdizimi veya standart kitaplık tarafından sağlanan bazı veri yapılarını adlandırın.
  5. Tüm e-posta adreslerini 10.000 dosyada nasıl bulup görüntüleyeceksiniz?

1

Zaten işe alındıklarından, hızlı değerlendirme için birinin (programlama soruları ile birlikte) yapılması gerektiğini düşünüyorum.

  1. Üzerinde çalıştığınız sistem konfigürasyonu nedir (PC donanımı konfigürasyonu).
  2. Farklı işletim sistemlerinde kodunuzu test etmeyi denediniz mi (proje sırasında çalıştıysa proje).
  3. Pencerelerde mi yoksa Linux'ta mı kodlamayı tercih edersiniz (eğer işletim sistemi dışındaki pencerelerde çalışmışlarsa)
  4. kodlama daha hızlı / daha yavaş / daha iyi sistemlere mi bağlı? (daha yüksek sistemler = yavaş sistemler derlemeye devam ettikçe kodlama için iyi bir faktör hissedin)
  5. Ayrıca, en azından bir sürücüyü biçimlendirmeyi veya işletim sistemi kurmayı, eğer yardım için BT görevlisine güvenmeyi önemseyebilirse önyükleme yapıp yapamayacaklarını bilip bilmediklerini sorma

Bu sorular sadece programlamada kullandıkları sistem hakkındaki farkındalıklarını bulmak içindir.


0

Yazılım yığınının en düşük seviyesinden başlayın ve yukarı.

  1. BIOS nedir?
  2. İşletim sisteminin rolü nedir?
  3. Çoklu görev nedir? Dinamik bağlantı nedir?
  4. Kaynak kodunun öğrencinin seçtiği dil için çalışma programına nasıl dönüştürüldüğünü açıklayın (C: önişlemcisi -> derleyici -> bir sürü nesne dosyası -> linker -> çalıştırılabilir)
  5. Önbellek nedir? Göreceli erişim sürelerini L1 önbellek, L2 önbellek, RAM, dönme diskine (yani SSD'ye değil) tahmin edin.
  6. Literatürdeki ayrıntılara bakmadan uygulayabileceğiniz veri yapılarını numaralandırın.
  7. Yazdığınız en karmaşık program nedir? Onu karmaşık yapan ne?
  8. Özyinelemeyi kendi tercihine örnek olarak açıklar.
  9. Programlar neden çöküyor?
  10. Kritik bir bölümün ne olduğunu açıklayın ve nerede kullanılacağına bir örnek verin.

4
Bu soruların çoğu işletim sistemi üzerine yazılmış bir kitaptan geliyor ve dürüstçe programlama ile ilgisi yok gibi görünüyor. Dürüst olmak gerekirse, herhangi bir MOST programlama işi için bunların hiçbirini bilmenize gerek yoktur.
Bryan Harrington

1
Biraz abartılı, ancak: İşletim sisteminin rolünün ne olduğunu bilmiyorsanız, işletim sistemi düzeyinde veya veritabanı düzeyinde güvenlik ve erişim hakları hakkında konuşmak anlamsızdır. Derleme işlemini bilmiyorsanız, derleme işleminizde A'dan Z'ye hata ayıklayamazsınız. Önbellek gecikmelerini bilmiyorsanız, bir DBMS'deki her şeyi düz bir düzeye koyan kodla bitirin. dosya yeterli olurdu. Muteksleri bilmiyorsanız, paralel programlama hakkında hiçbir şey bilmiyorsunuz . Gerisi programlama ile bariz bir bağlantısı olmalıdır.
zvrba

1
(Ve BIOS'un ne olduğunu bilmiyorsanız, büyük olasılıkla PC donanımını programlama hakkında hiçbir şey bilmiyorsunuzdur.)
zvrba

4
Temel bir elektrik anlayışı ile başlayın. Kazıyın: atom fiziği ile başlayın. Daha sonra BIOS'a kadar çalışın.
Dan Rosenstark

Bunlar çok önemli ve temel sorular olsa ve her programcının cevaplarını bilmesi gerekirken, listenin ilk yarısının zamanınızı boşa harcayacağını düşünüyorum, çünkü bilgisayar teknolojilerinin de bilmesi gereken şeyler var . İşe aldığınız kişinin programlama hakkında bir şey bilmesi konusunda size iyi bir fikir vermeyeceklerdir .
Ken Bloom,

0
  1. Bir dize değişebilir mi, değişmez mi?
  2. Bir sınıfla statik sınıf arasındaki fark nedir?
  3. Bir işaretçi nedir?
  4. Karmaşıklığı açıklayın.
  5. Dizi ve Bağlantılı Liste arasındaki fark nedir.
  6. Birleştirme Sıralaması ile Hızlı Sıralama arasındaki fark nedir?
  7. Sütun Adı, Adres, Posta kodu ve Telefon numarası olan bir elektronik tablo verildiğinde, elektronik tabloyu normalize edilmiş bir veritabanına nasıl dönüştüreceğinizi açıklar.
  8. Eşzamansız ve eşzamanlı yöntemler ve ele alınması gereken yöntemler arasındaki farkları açıklayın.
  9. Bir sunucu tarafı uygulamadan bir web uygulamasına bilgileri nasıl iletirsiniz?
  10. Tercih ettiğiniz dil nedir? Bu dili X üzerinde kullanmanızın bazı nedenleri nelerdir? (yani, neden Java'yı C # üzerinden kullanmak istersin ve temel farklılıklardan bazıları nelerdir?)
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.