Zor mantık bulmacaları - Programlama becerilerini değerlendirmede gerçekten yararlılar mı? [kapalı]


88

Katıldığım son röportajda, iki kabı verilen suya tam olarak filan ölçmem istendiği bir bulmacayı çözmem istendi - sırasıyla filan ve filan litresi. Bulmacayı verilen sürede çözemediğimde (~ 5 dakika).

Görüşmeci biraz hayal kırıklığına uğradı ve bir programcının "bu" becerilere sahip olması gerektiğini söyledi. Hangi yeteneklerden bahsettiğini anlamadım.

İş görüşmelerinde normal olarak sorulan bu tür bulmacalar hakkında her zaman garip hissettim. Bu tür bulmacalarla programlama arasındaki bağlantının ne olduğunu hiç anlamıyorum. Tam olarak, görüşmecilerin bu tür bulmacalarla değerlendirmeyi amaçladığı beceriler nedir?


20
Die Hard 3 sürahi yapboz gibi görünüyor youtube.com/watch?v=lZ64IR2bz5o
JF Dion

64
Bu tür sorularla ilgili büyük bir sorun, başvuru sahibinin daha önce bu sorunu görüp görmediğini ve "çok fazla mantık bulgusu görmüş" olup olmadığını gerçekten iyi bir işe alma kriteri olmadığını ölçmeleridir.
David Thornley

37
Bunlar sadece voodoo işe alma uygulamaları. Diğer insanlar bu soruları soruyorlar, böylece olması gerektiği gibi hissediyorlar. Soruyu cevaplamamanın "kötü" olduğunu ve cevaplamanın "iyi" olduğunu biliyorlar, ancak neden "geliştirici bu becerilere ihtiyaç duyuyor" gibi cevap vermeyenlerin ötesinde olduğunu söyleyemezler. Bunlar zaman kaybıdır ve görüşmeci yetkili bir görüşmeci olmadığını gösterir.
Rein Henrich,

5
Evet, bu testler o kadar iyi değil. Ancak, bir programcının bu bulmacalara en az ilgi duyması güzeldir. Tavsiyem: Sadece bulmacaları inceleyin, röportajı geçin ve katılmak isteyip istemediğinize karar verin.
İş

10
Bunu, "WTF'nin programlama ile ilgisi var mı?" Diye soran adayı bulma umuduyla yapılan görüşme sırasında rica ediyorum. ve park yerlerinden çıkmadan önce onlara bir teklifte bulunun.
JeffO,

Yanıtlar:


97

Bazı insanlar, problem çözme konusundaki yeteneğinizi ve yaklaşımınızı ölçmeye çalışır. Şahsen, bu tür bulmacaların doğru bir gösterge olduğunu sanmıyorum. "Gerçek dünya" olarak, sizin bir başa olmadığını anlamaya en fazla beş dakika var bin ambalaj bir vs geri paketi örneğin problem. Başlangıçta, yanlış çözümü uygulama ortasına kadar eldeki sorunu yanlış anlamak bazen kolaydır. Bu 1, 5, 10 ve hatta 20 yıllık deneyime sahip insanlara olur.

En iyi röportaj 'bulmacalar', uzmanlık iddiasında bulunduğunuz alanda bir problemi çözmek için bir bilgisayara oturup oturduğunuzlardır. Ayrıca "Eh, bir programcının yapması gereken ..." düşüncesinden de hoşlanmıyorum, çünkü insanların zaten stresli bir ortamda beklenmedik bir şeyle vurulduğunda endişeli olduklarını dikkate almıyor. Tabii, olabilir .. bunu düşünmek için zamanı olup olmadığını o çözmek ve size olmasaydı bittin olacağını fark, belki daha çabuk çözebilir. Beş dakika içinde sorunları çözemezseniz hayatınızın biteceği bir yerde çalışmak ister misiniz ? Eğer varsa kovulacak mı olamaz ?

Tüm büyük programcılar aynı zamanda şampiyon sudoku çözücüsü mü olmalı? Bunun bol olduğundan eminim, ama yeterlilik için bir ön şart gibi değil.

Sana gerektiğini söylemiyorum değil uzmanlık alanı verilmiş, sorunları yaklaşım nasıl test edilmesi, ama testler eğlenceli olabilir ve başvuru vermek zorunda olduğu 'en iyi' davet etmelidir. Bruce Willis canlandırıyor Bir karakter üreticileri bu sahne için oldukça toplamı geçirmiş düşünüldüğünde, bir anlamı yok gibi görünüyor kadar zeki olduklarını kanıtlamak sadece hakkı.

Eğer üzerinde çok az anlama olan birisi ile röportaj ediliyoruz tespit edersek Başka bir deyişle, aslında ne yapıyor olacak , tuvalete gidip dönmek asla kendinden özür dile.


8
Tüm görüşmecilerin sahip olması gereken perspektif budur. Etki alanınızdaki bir sorunu çözün ve stres ve beklenmedik sorular hakkındaki düşünceleriniz eşit olsun!
Chris

20
+ Gerçek dünya için +1 , iyi cevap bulmak için beş dakikadan fazla zamanınız var!
Karınca

7
Ayrıca, görüşmecinin soruyu oluşturduğu ve kendi başlarına çözdüğü gibi, genellikle sunuldukları gerçeğini de seviyorum :)
RyBolt

10
Çok zorlandım excuse yourself to go to the restroom and never return!
Florian Margaine

Evet, her zaman başvuranın mümkün olduğunca rahat hissetmesini sağlamaya çalışırım, bu yüzden bu kişinin iş için ne kadar iyi olacağını öğrenmeye çalışabilirim. "Ne seversin?" Yerine "güçlü puanların" sormak. ve kodlama felsefeleri yerine saçma bulmacalar, o kişinin iş için ne kadar iyi olduğu konusunda herhangi bir belirti vermeyecekler.
winkbrace

56

Microsoft bu soruları 1980'lerin başında kullanmaya başladı. Microsoft oldukça başarılı bir hale geldiğinde, diğer şirketler bunları kopyalamaya başladı, ancak çeviri sırasında birkaç önemli nokta kayboldu.

O sırada, Microsoft bir çok teknik ama programlama dışı pozisyonu doldurmaya çalışıyordu: teknik yazarlar, test uzmanları, telefon desteği vb. Bunlar gün içinde sık rastlanan işler değildi ve bu alanlarda gerçek deneyime sahip olan kişiler zordu. bulabilirsiniz. Alternatif bir Microsoft olarak, akıllı, zeki ve esnek insanları işe alabileceklerini ve onları iş başında eğitebileceklerini düşünüyordu. Bu milletlerin programlama özgeçmişlerine sahip olmadığından, röportajda onlara programlama sorusu sormak anlamsızdı. Bilmeceler zeki ve son derece iyi analitik becerilere sahip olan insanları denemek ve işaret etmek için seçildi. Programcılara genellikle beyaz tahta programlama problemleri verildi, ancak öğlen veya akşam yemeğinde de bilmeceler istenebilirdi.

Bu soruların asla başarısızlığa uğramaması gerekiyordu. Sorunun üstesinden nasıl geleceğiniz ve daha önce hiç görmediğiniz problemler hakkında nasıl düşündüğünüz hakkında konuşmaya başlamanız istendi. "Başarısız" olmanın tek kesin yolu, sorunu çözmeyi denemeyi reddetmekti. O zamanlar bu yeni bir stratejiydi ve Google’daki sorulara bakamıyordunuz.

Düzenle:

Bu cevabı yazdıktan bir süre sonra , 1950'lerde ve 1960'larda kurumsal bilgisayar tarihi olan Computer Boys Devralma'yı okudum . Anlaşılan beyin zekalarını ve adayların bilmecelerini programlama işlerinde sorma uygulaması 1950'lere kadar uzanıyor. ABD hava savunma sistemini bilgisayarlaştırmaya çalışıyordu ve IBM işi yapmak için birkaç bin programcıya ihtiyaç duyacaklarını tahmin etti. Tepki şok ve sarsıntıydı: Dünyada sadece birkaç düzine "profesyonel programcı" vardı. Çeşitli yaklaşımlar denenmiştir: soyut programlama yetenek testleri, programcı olarak matematikçilerin işe alınması, satranç oyuncularının ve bulmaca çözücülerinin işe alınması ve başvuru sahiplerinin bilmeceler ve zeka oyunları ile gösterilmesi.

Sonunda projeyi tamamlamak için yeterli sayıda programcı işe almayı başardılar, ancak sonuç, tarama yöntemlerinden hiçbirinin, programcılar olarak özellikle başarılı olmaya devam eden çalışanları tanımlamak için şanstan daha iyi olmadığı sonucuna vardı.


49

Yararlılar mı? Hayır gerçek değil. Microsoft'ta bir zamanlar çok yaygındı, hatta "Microsoft soruları" bile deniyorlardı ve onlar hakkında yazılmış kitaplar vardı, bu aslında oldukça iyi bir okumadı.

Onlarla ilgili 2 sorun var. Birincisi, eğer başvuru sahibi araştırma yaparsa (ve kitabı okursa), onları zaten ve ikinci olarak tanır, bunları çözebilse bile, bunun nasıl iyi bir dev / test / PM olacağına işaret eder.

Bu nedenlerden dolayı, artık nadiren Microsoft'ta sorulmuyor. Kodlama soruları veya "hile" cevabı gerektirmeyen soruları sormak çok daha iyidir. Başka bir deyişle, başvuru sahibinin problemi çözerken denediği beceri ve davranışları keşfetmenize izin veren sorular sormanız gerekir - bir görüşmeci olarak soru sormalarını, çözüm bulmalarını ve sonra çözdüklerini takip etmelerini istiyorum Bir problem, belki de sahip oldukları zamanda bir çözüm bile bulmaz, ama en azından mantıklı bir şekilde çözer. Bu gerçek hayat işini yansıtıyor. 2 kova ve bir tavuk (ya da soru ne olursa olsun) kullanarak 3 pint ölçmek zorunda kalmamıştım.

Bununla birlikte, zamanımda birkaç numara soru soruldu ve şimdi kendimi küçük teknelerde tavuk ve tilki taşıma ve bir trende yaşayan bir sineğin ömrünü hesaplama konusunda bir uzman olarak görüyorum. Bu bilgiyi hiç kullanmak zorunda kalmamıştım, ama kim bilir belki bir gün ....


26

Kitabı okumak isteyebilirsiniz Fuji Dağı'na Nasıl Taşınırsınız? . Bir çok insanın röportajda bilmeceler kullandığına dair bir akıl yürütme söz konusudur ve benim görüşüm bunun kargo kültü davranışının bir birleşimi olduğudur ( "Microsoft yapar, ve onlar kadar başarılı olmak istiyorsak, o zaman ellerinden geleni yapsak daha iyi oluruz) do" ) ve kardeşlik dayak atma ( 'gosh tarafından !, bu soruları cevaplamak zorunda kaldı ve daha iyi sonraki adam onları cevap vermek zorunda olacak inanıyorum!' ).

Bu soruların görüşme uygulaması olarak tarihi , 1950'lerde William Shockley ile başladı . Görüşmecilerin diğer görüşmecilerin yaptığı için sorduğu oldukça yaygın bir Silikon Vadisi görüşme sorusu idi (ve belki de bu görüşmecinin bilmediği bir şey biliyorlardı?). Shockley, onları bir istihbarat testi olarak tasarladı ve 2 kova ile ilgili soru , 1916'daki orijinal Stanford Binet IQ testinden biriydi .

Muhtemelen, görüşmeyi yapan insanlar aslında cevapları nasıl aradığınızı görmek istiyorlar, bu nedenle şehrinizde kaç tane gaz pompası olduğu gibi soruları hesaplamak imkansız olacak. Bu tür problemler Fermi Problemleridir . Jeff'in bu konuyla ilgili iki ilginç blog yazısı En Zor Görüşme Yapboz Sorusu ve Siz Ne Kadar İyi Bir Tahminci misiniz? Bölüm III .

Şahsen, genellikle ne yaptıklarını ve geliştiricilere nasıl bakacaklarını bilmeyen görüşmeciler tarafından kullanıldığı için bu tür soruların düşük bir görüşüne sahibim. Bulmacalar / bilmeceler yapan bir şirket için çalışmayacağınız sürece, onlar “en büyük zayıflığınız nedir” (bunun gerçeğine cevap verin ve röportajınızı kötü bir şekilde bitirin) ya da “neden? menhol kapakları yuvarlaktır "(hepsi değil).


3
+1, son paragrafa daha fazla katılamadı!
missingfaktor

Fermi problemi bağlantısı için +1: Birisinin makul hata sınırları ile tahminler yapıp yapamayacağını görmek ilginçtir. Eşit derecede, “kaç tane ülke var?” Konusunda bir güven aralığı isteyebilirsiniz. Ancak, bu şekilde düşünmeyi bilmenin, takdire şayan ve yararlı olsa da, gelişim için gerçekten gerekli olmadığını düşünüyorum. Analiz veya istatistiklerini bilen bir geliştiriciye benziyor: iyi, fakat geçmişleri hakkında işinde iyi olup olmayacaklarından daha fazla şey söylüyor.
Poolie

17

Diğer ı meselesi olarak upvoted gelmiş cevapları sağladı şırası . Başka bir cevap yazmamın nedeni, söylemek istediklerimin muhtemelen bir yorumda yer almaması ve iyi bir programlama iş görüşmesinin nasıl olabileceği hakkında bir şeyler söylenmesi gerektiğidir.

İlk iyi röportajda hatırlıyorum, çok konuştuk, acelemiz yoktu. İlk olarak bir saat boyunca telefonda nesneye yönelik tasarım ve C ++ 'da uygulamanın artıları ve eksileri hakkında. Daha sonra sitede birkaç kişiyle yazılım geliştirme uygulamaları, entegrasyon, test etme, sürüm kontrolü ve konfigürasyon yönetimi, ekip ve sorumluluklar, teknoloji ve tasarım hakkında konuştum. Benimle röportaj yapan kişilerle öğle yemeğini de içeren bütün bir gün süren bir röportajdı. Ön görüşte, zaten yaptıkları şeye verimli bir şekilde uyum sağlasaydım, hepsi buydu.

O zamandan beri, iyi röportajlar uzun sürdü, yazılım geliştirme hakkında bir ya da iki saatlik sohbetler oldu. Problem çözme soruları, bulmacalar ve kodlama zorlukları yoktur.

Bugün bir programlama işi için birisiyle röportaj yapacak olsaydım, hoşuma giderdi. Geniş bir konu hakkında fikir rica ediyorum ve bir kenara bırakın:

  1. Programlama dil tercihleriniz nelerdir? Neden?
  2. İstisna işleme nasıl yaklaşılır?
  3. Katmanlı tasarımın faydaları bir efsane değil midir?
  4. Sürekli entegrasyon verimlilik açısından bir yük değil midir?
  5. Bir kod parçası kim yazmışsa, ona sahip olmalı, değil mi
  6. "Akış" içine girmek için ne yaparsınız?
  7. Rapor edilen kusurlar bir proje planına nasıl dahil edilmelidir?
  8. ...

Bunlar birden fazla cevabı olan sorulardır ve hepsi bir yazılım geliştiricisinin bilgili bir görüşü olması gereken konularla ilgilidir. Bir konuşma konusu olarak yaşanan önceki gerçek sorunlardan (soru olarak değil) bahseden cevaplara gönülden katılıyorum.

Peopleware'den bu yana etkili yazılım geliştirme konusundaki daha bilimsel çalışmalar , en iyi programcıların en yüksek IQ'lara sahip olmasalar bile, yazılım geliştirme dinamiklerini anlayanlar olduğunu söylüyor. nYıllarca süren deneyime sahip 1, defalarca süren deneyime sahip birinden daha çok öğrenmek isteyen bir çaylak yemeyi tercih ederim n. Kişisel önyargım kutunun dışında düşünmek isteyen adaylara yönelik ve aynı zamanda mevcut (benim) kutuma nasıl sığacağını da biliyor.


Mükemmel cevap Offtopic: Örnek # 3 sorunuz beni meraklandırıyor. Katmanlı tasarımla ilgili görüşlerinizi daha fazla bilmek istiyorum.
missingfaktor

2
@missingfaktor # 3, belirtildiği gibi, doğru bir şekilde yapılan şeyler ile hızlı bir şekilde yapılan şeyler hakkında bir sohbeti teşvik etmek için bir hileli bir sorudur. # 4 ve # 5 aynı. # 7 muhtemelen en zor ve sadece liderlik rolleri için uygun.
Apalala

1
@missingfaktor Ben yine farklı bir soruya cevap verdim. Bu Vikipedi makalesi, ilgili makaleler ve dış bağlantılar , endişelerin ayrılmasının neden karmaşık sistemin tasarımı ve inşası için en önemli olduğu konusunda bilgi hazinesi sağlar: en.wikipedia.org/wiki/Modularity
Apalala

Mantıklı. Çok teşekkürler! :-) Yine, mükemmel cevap. Buradaki diğer cevaplarda belirtilmeyen birçok iyi noktayı ifade ediyor.
missingfaktor

Şahsen ben de takımlama hakkında bir soru ekleyeceğim. Kullandıkları araçları önemseyen insanlar, daha iyi programcılar olma eğilimindedir. Bir Emacs kullanıcısı olarak, omuzlarını silkip umursamayan birine vim kullanıcısını tercih ederim.
Singletoned

13

Programlamanın temel yönlerinden biri olan problem çözme becerilerinin değerlendirilmesinde yararlı olabilirler .

Yıllar boyunca pek çok insanın bir görüşmeci olarak ben genellikle sorma yakaladım oldukça açıkladığınız gibi bir gibi tip sorular, ama iyi bir şey sormak ve isteyebilir "Eğer çözecek nasıl ...".

Bu durumda beklentilerim, soruna yaklaşımınızı açıkça ifade ettiğinizi duymak. Başka hangi verileri toplamaya çalışırsınız? Varsayımlarınızı vb. Nasıl test edersiniz?


1
Sayısız insanla röportaj yaparken de aynı şeyi yaptım. Sorunun amacı, doğru bir cevap alırlarsa mutlaka çözüme doğru nasıl çalıştıklarını izlemektir. İyi programcıları bu süreci izleyerek oldukça hızlı bir şekilde görebilirsiniz.
Dave Wise

2
@Dave, dene beni. Bu tür bulmacaları çözdüğümde, genellikle bir kağıt parçası alırım, grafikler veya tablolar çizerim, oyuncuları temsil eden çapraz çizikler çizerim veya bir şekilde problemi çözme süreciyle ilgili sayılar yazarım; Bunları bazen ayırt edilemez bir mırıltı nedeniyle kırılan tamamen sessizlik içinde yapıyorum. Peki ben iyi bir programcı mıyım?
P

4
Heisenberg onaylamaz. Bir kişi bir soruna iyi bir çözüm bulabilir ancak kullandığı içsel süreci iletmede iyi olmayabilir. Onlardan bunu yapmalarını istemek, yeteneklerini yalnızca normalde çalışmadıkları durumlarda sınamakla kalmaz, aynı zamanda düşünme sürecinin nasıl çalıştığını bir başkasına açıklama yetenekleri ya da yetersizlikleri nedeniyle önyargılı olmaları ile sonuçlanır. Kendilerinin nasıl çalıştığının farkında bile olmayabilirler.
Jason,

4
Bazı insanlar, sadece dışa dönük olduklarından, herkesin dışa dönük olması gerektiğine inanır. Şu anki ekibim bir grup iç içe geçmiş ve şimdiye kadar birlikte çalışmaktan zevk alan en iyi ekip.
Dunk,

2
@Charles Söylediğim şey, içe dönük insanların genellikle, kendilerini tatmin eden bir çözüm bulmadan önce sorunu düşünmeleri ve sonra başkalarına açıklayabilmeleri gerektiğidir. Bu, "İletişim kurulamıyor" dan oldukça farklı. Dışa dönüklerin genellikle problem çözme yolunda TALK yapmaları gerekir. Orijinal poster açıkça problemleri çözmek için dışa dönük bir stil bekliyor.
Dunk,

8

Bunlar sadece voodoo işe alma uygulamaları. Diğer insanlar bu soruları soruyorlar, böylece olması gerektiği gibi hissediyorlar. Soruyu cevaplamamanın "kötü" olduğunu ve cevaplamanın "iyi" olduğunu biliyorlar, ancak neden "geliştirici bu becerilere ihtiyaç duyuyor" gibi cevap vermeyenlerin ötesinde olduğunu söyleyemezler. Zaman kaybıdır ve görüşmeci yetkili bir görüşmeci olmadığını gösterir.


5

Temel mantık becerilerine sahip olmanız gereken eski-skool mantığı budur; başka bir şey öğretilebilir. Ama bu tamamen doğru değil. Boolean mantığını , koşulları ve döngüleri okumak , bir mantık bulmacasını çözebilmekle aynı değildir .

Bununla birlikte, usul dilleri günlerinde, bu sorunları çözebilecek birisinin anahtarlarla ilgili herhangi bir problemi uygulayabilme eğiliminin daha yüksek olacağı söylenebilir. Ancak benim düşünceme göre, OO / İşlevsel programlama oldukça farklı (ancak çelişkili olmasa da) bir mühendislik zihniyeti gerektiriyor.

Şahsen, mantığın pratik programlama becerilerinden daha önemli olduğunu düşünen bir şirketle çalışmak isteyeceğinden emin değilim.

Feragatname: Mantık bulmacalarında çok iyiyim ve muhtemelen bu mantıklı çalışma olmadan bu işe başladım.


2

Görüşmeci, bir programcının günlük çalışmasının bir parçası olan problem çözme ve mantık becerilerine atıfta bulunmuş olmalı. Bir problem verildiğinde, en uygun yaklaşımı kullanarak onu analiz edebilmeniz, alt bölümlemeniz ve bunun için bir çözüm yazmanız gerekir.

Böyle bir bilmecenin bunu yapma yeteneğini ne kadar iyi temsil ettiğini tartışabilirsin. Sadece gerçek hayattaki bir programlama problemini sormak yerine bir bulmaca sorusu sormanın faydasını görmüyorum.


1

Programlama kod satırları yazmakla ilgili değildir, diğer insanlardan ve müşterilerden (müşteri, kullanıcı vb.) İlgili problemleri çözmekle ilgilidir.

Programcılar için çözümün bir program şeklini alması muhtemeldir.

Bu yüzden problem çözme yeteneklerine sahip olmanın ve test edilmelerinin öneminin nedeni budur.

Olduğu söyleniyor, zor bulmacayı çözmenin birini değerlendirmenin en iyi yolu olduğundan emin değilim.


1

Görüşmelerdeki bulmacalar iki kategoriye ayrılır: "mantıksal bulmacalar" (sizden istendiği gibi) ve "farklı düşün" kategorisi. Farklı düşünün kategorisi (aynı zamanda lateral bulmacalar olarak da adlandırılırlar mı?) Genellikle bu türdür: Bu ağaçta kaç tane yaprak vardır? veya Şehrinizde kaç tane terzi var?

"Mantıksal bulmacalar" konusunda iyiyim çünkü en fazla bir veya iki çözüme sahipler ve basit bir mantıkla gelebilecekler. Ve mantıklı bulmacaların bir dereceye kadar iyi olduğuna inanıyorum, çünkü onları çözmek için gereken süreç, bir kodlayıcının gerçek hayatta düşünmesi gereken yoldur.

"Farklı düşünün" türü beni sonlandırmaz çünkü sizi varsayımlarda bulunmaya zorlarlar ve sonra varsayımlara dayanarak bazı hesaplamalar yaparlar. Basitçe söylemek gerekirse, görüşmeciniz mantığınıza uygunsa ancak varsayımlarınızla uyuşmuyorsa veya bunun tersi de kaybedersiniz. Görüşmeci için çözümünüzle aynı fikirde olmayacağınız çok yer var.

Röportajlar yaparken mantıklı bulmacalar sormuyorum. Sebep: Çoğu aday 3-4 yıllık deneyime sahip olanlar bile, Fibonacci serisi veya palindromlar gibi basit ders kitabı problemlerini kodlamalarını istediğimde, başarısız oluyor veya pes ediyor.

Bulmacalarla ilgili sorun, her iki durumda da, o kadar iyi olmayan programcıların, internetteki bu tür ortak bulmacaların çözümlerine bakarak, görüşmecileri etkileyebileceklerini bilmeleridir. Çok az insan, çözümü zaten bildiklerini söyleyecek kadar dürüst olacaktır.


Palindromlarla, bir giriş dizesinde en uzun palindrom alt dizgisini doğrusal zamanda bulmada çok zor bir problem mi demek istiyorsunuz? :-)
b_jonas

1

İki puan:

  1. Programlama çoğunlukla bulmaca çözmekten farklıdır. Steve McConnell tarafından "Kod Tamamlandı" bölümünde mükemmel bir şekilde açıklanmıştır:

    Ne? Süper akıllı olmana gerek yok mu? Hayır yapmazsın. Hiç kimse bilgisayarları programlayacak kadar akıllı değildir. Ortalama bir programı tam olarak anlamak, ayrıntıları özümsemek için neredeyse sınırsız bir kapasiteyi ve hepsini aynı anda anlamak için eşit bir kapasiteyi gerektirir. Zekanıza odaklanma şekliniz, ne kadar zekanız olduğundan daha önemlidir. 5. Bölümün de belirttiği gibi, 1972 Turing Ödül Dersi'nde Edsger Dijkstra, “The Humble Programmer” başlıklı bir bildiri yayınladı. Programlamanın çoğunun kafatasımızın sınırlı büyüklüğünü telafi etmek için bir girişim olduğunu savundu. Programlamada en iyisi olan insanlar beyinlerinin ne kadar küçük olduğunu fark eden insanlardır. Onlar mütevazı. Programlamada en kötüsü olan insanlar, beyinlerinin göreve eşit olmadığı gerçeğini kabul etmeyi reddeden insanlardır. Egoları, onları harika programcılar olmaktan alıkoyuyor. Daha fazlaKüçük beyninizi telafi etmeyi öğrenin, ne kadar iyi bir programcı olursanız olun . Ne kadar mütevazi olursan o kadar çabuk iyileşirsin.

  2. Bu tür bulmacalar görüşme sırasında faydalı olabilir, ancak yalnızca görüşmeci Sürece bakarsa, sonuç çıkmaz.

Ancak ideal olarak, bence bulmacalar daha karmaşık ve programlama ile ilgili olmalıdır (küçük 2 saatlik projeler gibi). Mesele şu ki, görüşmeci, insandır ve mükemmel bir "görüşme becerisine" sahip değildir.


-1 oy verirseniz cevabımın yanlış olduğunu söyleyebilir misiniz, lütfen.
klm123

1
+1, çünkü bu iyi bir cevap. Açıklanamayan bir oyu iptal etmek için, başka türlü bile olsa, o kadar oy kullanmıştım.
Kayıp fraktor

0

Bu tür sorunları incelemenin birkaç farklı yolu vardır:

  1. Önceki bir çözümü bilmek. Filmde ... İntikamla Sert Öl ... bana bunu açıkla ...? vakaların sırasıyla 4,3 ve 5 olduğu durum için bir çözüm bilmenin bir örneği olmak. Bazı insanlar geçmiş çözümlerle ilgili kendi iç bilgilerini hızla kullanabilecek ve gerektiğinde uyarlayabilecekler. Bu genellikle, görüşmenin iyi bir fikir olabileceği veya olamayacağına inanacağını düşündüğüm şeydir.

  2. Yaratıcı doğaçlama becerileri. Daha önceki bir çözümü bilmiyorsanız ya da problemi bir Diophantine denklemi olarak modelleyebilecek bir şey olarak kabul ediyorsanız, durum böyle olacaktır. Bu yüzden soru, ne verildiğini ne kadar çabuk kullanabildiğiniz ve soruna neyin sorunla ilgili geçerli bir çözüm olduğunu açıklamanın yanı sıra, yaratıcı bir şekilde soruna çözüm bulmanızdır.

Her iki durumda da, kişinin cevaplarını deneyebileceği bir sınavın bir kısmı olsa da, soruyu geçenden tatmin edici bir şekilde geçen şey olabilir. "Bu gerçekten benim konumumla alakalı mı? Uygulama? Bu beceriler en son ne zaman kullanıldı? Bu, eğer görüşmeci tam olarak ne görmek istediklerini açıklarsa, belki alternatif bir yaklaşımın burada daha etkili olabileceğini görmek ilginç bir diyaloga yol açabilir.


0

Bu özellikle zor bir sorun değil. Sadece üç adım gereklidir ve her adımda sadece iki seçenek vardır. Meslektaşlarımdan herhangi biri kısa sürede çözemediğinde şaşırırdım. Röportajlarda bu tür problemleri sunmuyoruz, ancak böyle soru sormanın makul olacağını düşünüyorum. Kesinlikle sözdizimi veya kütüphaneler hakkındaki ayrıntılı sorulardan daha faydalıdırlar.

OTOH, programlama problemlerinin daha faydalı olduğunu düşünüyorum.


0

Birinin bir işte iyi olacağını kesin olarak bilmenin bir yolu olmadığını unutmamalısınız. Özellikle bir CS mesleği, çünkü işin mağazada sahip olabileceği zorluklar tahmin edilemez.

Bu nedenle, potansiyel işveren gelecekteki performansınızı tahmin etmelidir.

Dereceler, tavsiyeler ve GPA'lar zaman / çaba ve sosyal mühendislikle elde edilebilir, iş tecrübesi süslenebilir ve / veya yanlış olabilir ve standartlaştırılmış testler açıkça kabiliyetin göstergesi olamayacak kadar temeldir. Öyleyse özgeçmiş, tarihinizde bir miktar çaba / taahhüt düzeyi gösterebilir, ancak bunların hiçbiri bilgisayar bilimleri dünyasında ortaya çıkan zor problemleri çözme konusundaki gerçek yeteneğinizden bahsetmeyecektir. Bu tür bir yeteneği tahmin etmenin iyi bir mantık / matematik / CSy bulmacasından daha iyi bir yol düşünemiyorum.

Unutma ki bu bir tahmin oyunu ve gerçek şu ki, her birimizin eşit olması, bu bulmacaları çözebilecek birisini işe yaramaz hale getirmek yerine birisini işe almak istiyor.

Evet, röportaj bulmaca çalışabilirsiniz, ama verilen bulmaca, çalışılanlarla uyuşmuyorsa kendinizi yakmış bulursunuz ... ve bulmacaları ve onların çözümlerini ezberlemediğiniz sürece, belki de bulmacaları inceleyin. Kendileri sizi gerçek bir şekilde daha akıllı bir insan yapacaktır, her gerçek eğitimde olduğu gibi.


3
Seni bilmem, ama görüşme yaparken, bir tanımlamayı tercih fiili gündeme geldiği sert sorunu bizim son zamanlarda şirketin dünyada ve görüşülen yaklaşım vereceğini görmek. Yeterince komik, son zamanlarda iki kova kullanarak su miktarını ölçmek için bizi meşgul eden bir müşterimiz olmadı. Çoğunlukla yaptığımız şey bilgisayar programlamasını içerir.
Carson63000

@ Carson63000, şirketinizin karşılaştığı gerçek bir sorunun kötü bir fikir olacağını değil, gerçek dünya sorununun özellikleri ve çözümün uygulanması nedeniyle çoğu zaman yasaklayıcı olduğunu belirtti. Bu yüzden kova içeren bulmacalar harika çünkü giriş maliyeti çok küçük ve doğrudan ilginç parçalara kavuşuyor.
8steve8

En az sayıda disk araması veya http isteği kullanırken, kova problemi ile analoji arasındaki ilişkinin, örneğin, bir işi başarmak için yazılım yazmak olduğunu görebildiğinizi hayal ediyorum.
8steve8
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.