Teknik mülakat ve programcı yeteneği [kapalı]


14

Söyleyeceğim, doğada biraz tartışmalı olabilir ama bugün çok cesaret kırıldım - ve bunu soracağım.

Staj pozisyonu için büyük bir teknoloji firmasıyla röportaj yaptım, burada algoritmaya yönelik birçok tipik röportaj sorusu sordum. Şimdi, geçmişim göz önüne alındığında, kendimi algoritmalarda güçlü olarak görüyorum (yüksek lisans düzeyinde algoritmalarda iyi dereceler aldım -NP tamlığı ve ötesini içeren (yaklaşık ve rastgele algoritmalar), ancak maalesef röportajı yapamadım. yaklaşık 10 dakikada bir ip problemini çözmek için çok etkili bir yöntem düşünün Röportaj bittikten sonra bir bardak su içtim, bir muz yedim ve bir süre rahatladım ve sorunu tekrar denedim. cevap 5 dakikadan daha az bir sürede gelebilirim ve en kötüsü de aslında bu pistteydim ve görüşmeci bu konuda ipucu verdi, ama çok fazla baskı beni pişirdi. Tüm deneyimim beni teknoloji röportajları hakkında düşündürdü. Bazı sorularım vardı ve bunları bu forumda göstermek istedim -

  1. Birinin teknik yeteneğini yarım saat içinde değerlendirmek gerçekten mümkün mü? Dürüst? Yoksa sadece bir zar atmak mı?

  2. Teknik mülakat soruları problem çözme yeteneğini ölçer mi? Bu konu çok tartışmalı mı? Bir doktora öğrencisi olarak Matematiksel problem çözmenin daha önce hiç duymadığınız bir şeyi çözmeyi içerdiğini biliyorum. Öte yandan - iki bağlantılı listeyi sıralı olarak birleştirmek veya ikili bir ağacın tüm öğelerini kth düzeyinde yazdırmak, birisi çözümü gördükten veya sorunu önceden çözdüğünde "sadece alıştırmalar" haline gelir mi?

  3. Bu röportajda uçan renklerle çıkan insanlar harika programcılar olmaya devam ediyor mu? Devam ediyorlar ve şık bir oyun motorları, grafik kütüphaneleri tasarlıyorlar, hızlı çatal birleştirme çerçeveleri yazıyorlar mı? Teknik görüşmelerde başarılı olmak ile gerçek programlama yeteneği arasında pozitif bir ilişki olduğuna işaret eden herhangi bir kanıt var mı? Yoksa bu röportajlar daha çok “işleri halletmek” türünü (Spolsky) bulmaya mı yönelik?

Bahse girebilirim ki, ICML, VLDB, Mobicom'da çığır açan fikirler yayınlayan birçok akademisyen bu röportajları atlatacak. Ama sizi bu gezegende bulacağınız en zeki insanlardan biri olarak temin edebilirim.

Ben esas olarak akademi'deyim (mezun öğrenci) - bu yüzden çitin diğer tarafındaki birinden bazı algıları takdir edeceğim. Bu röportajları gerçekten yapan biri mi?

[Herkese iyi. Tüm güzel ve düşünceli yanıtlarınız için teşekkürler. Başka bir soru sormak istemediğim için sizden bu soruya cevap vermenizi isteyeceğim.

Aday X'in iyi bilinen bir kamu çalışma portföyüne sahip olduğunu varsayalım ki, bilinen bazı açık kaynak projelerine katkıda bulundu - yamaları gerçekten doğrulayıp doğrulayabilir, kapattığı hataları doğrulayabilir ve yarattığı tasarımlara bir göz atabilirsiniz. Bu durumda soru, kamuya açık / doğrulanabilir çalışmasına ne kadar ağırlık vermek istediğinizdir ve 15 dakikadan kısa bir sürede çok karışık bir ikili ağaç görüşmesi sorusunu cevaplamakta ne kadar başarılı olduğunu soruyor musunuz?]


11
İnsanlarla iş için görüştüğümde, iyi programcılar aramıyorum. İyi MÜHENDİSLER arıyorum. Bir programcı bir soruna bakar ve bir çözümü kodlar. İyi bir MÜHENDİS bir soruna bakar ve "Bu çözmem gereken gerçek sorun mu?" Diye sordu. değilse, doğru sorunun ne olduğunu anlar, oyundaki tüm faktörleri (zamanlama, para, yetenek) dengeleyen bir çözüm tasarlar ve daha sonra kodlamak için bir programcıya verir.
PlayDeezGames

2
Hmm, mantıklı. Herkes 6-12 ay içinde C ++ / Java / python'da ham kodlama becerilerini alabilir. Ancak, performans, iplik, bellek sorunları ve değiş tokuşların çok dikkatli bir şekilde anlaşılmasını gerektiren şeyleri tasarlamak önemlidir. Katılıyorum. Afedersiniz! ama sana oy veremem, yeterli temsilcim yok.
user396089

Yanıtlar:


11

Unutmayın ...

  1. Bir röportaj sürecinin temel amacı, her röportaj yapılan kişinin kişisel yeteneği hakkında mutlak gerçeğe ulaşmak değil, birçok havuzdan birkaç aday seçmektir.
  2. Kötü bir geliştiriciyi işe almak ÇOK, ÇOK daha pahalıdır ve iyi bir tane geliştirmekten daha pahalıdır.

Görüşme sırasında birçok kez, kusurlu kısayollar (teknik testler gibi) alınır, çünkü belirttiğiniz gibi, bir kişiyi 30 dakika içinde yargılamak için mükemmel bir süreç yoktur. Ama çoğu sizinle yan yana çalışma lüksüne sahip olmadığı için, bunun ne olduğunu kabul etmelisiniz, herkesin oynadığı bir olasılık oyunu.


"ÇOK, kötü bir geliştiriciyi işe almak iyi bir olandan daha pahalı" - evet burada tamamen faydacı bir bakış açısına sahip gibi görünen, kötü geliştirici, bununla ilişkili negatif maliyeti sıfıra yakındır, beklenen toplam fayda değerini pozitiften negatife sürükleyebilir.
user396089

5
@ user396089, akademi'de insanlar size en azından size hizmet vermek için dudak hizmeti ödeyeceklerdir: eğitim, rehberlik, kişisel gelişim, vb. En azından nominal olarak, görevlerinin bir parçası. Özel sektörde ilişki olduğunu % 97 faydacı. Şirketler sadece onlara bir fayda sağladıkları sürece bir fırsat sunmakla ilgileniyorlar.
Charles E. Grant

Charles'ın söylediklerine eklemek için, kapıdan geçerken, tıpkı diğer 50 aday gibi, şirkete ve işe alma müdürüne tamamen yabancısınız. Bu nedenle, profesyonel ve kişisel düzeylerde şimdiye kadarki en iyi kişi olabilirsiniz, ancak koşullar göz önüne alındığında, şirketin bu noktada hedefleri gerçekten gelecekteki değerlerini en üst düzeye çıkarmak ve aynı zamanda bu maksimizasyonu ararken arama maliyetlerini en aza indirmektir.
DXM

Görüşme sırasında bugün çözemediğim ancak daha sonra çözdüğüm basit dize problemini düşünmenin komik olduğunu biliyorsunuz; ama yine de neredeyse 3 hafta denedikten sonra hobi projelerimden biriyle ilgili bir sorunu henüz çözemedim. Ayrıntılarını burada bulabilirsiniz - stackoverflow.com/questions/9056108/…
user396089

1
@ Antonio2011a: "ne kadar geçerli" komik bir terimdir ve siyah beyaz değildir. Farklı insanlar potansiyel çalışanların kalitesini değerlendirmek için farklı taktikler kullanırlar. Bu taktiklerin her biri bir çeşit kısayoldur, çünkü tek doğru test kişinin sizinle çalışmasına izin vermek ve rampa süresini uzatmaktır. Peki bu soru ne kadar geçerli? veya büyük O hakkında soru sormak için ne kadar geçerli veya ne üzerinde çalıştığı hakkında soru sormak için ne kadar geçerli. Bunlar sadece gri alanlar ve hiçbiri mükemmel değil.
DXM

9

Birisinin teknik kabiliyetini yarım saat içinde değerlendirmek gerçekten mümkün mü?

Tam olarak değil. Hiç programlayamayan ve özgeçmişlerindeki şeyleri açıklayamayanları ayıklamak mümkündür. Bunun ötesinde genellikle sadece alana genel zekayı ve ilgiyi ölçmeye çalışıyorum. Çözmeniz istenen sorunu bilmeden durumunuz hakkında daha fazla yorum yapmak zordur.

Teknik mülakat soruları problem çözme yeteneğini ölçer mi?

Teknik sorularımın amacı bu değil. Bunun yerine, adayın bilgisayar biliminin temellerini kavrayabildiğini keşfetmeye çalışıyorum. Problem çözme yeteneğini ölçmek için bir adaydan üzerinde çalıştıkları ilginç bir sorunu anlatmasını rica ediyorum.

Bu röportajda uçan renklerle çıkan insanlar harika programcılar olmaya devam ediyor mu? Yoksa bu röportajlar daha çok “işleri halletmek” türünü (Spolsky) bulmaya mı yönelik?

Bu kadar. Büyüklük nadirdir. Yetkili birini bulduğum için mutluyum.


Sorun KMP'nin bir varyasyonuydu (dizeden bir geçiş yaptığınızda ve daha önce gördüğünüz bazı karakterlerin oluşum sayısını saklarsınız). Sonunda ipin uzunluğuna ve sahip olduğunuz sayıya bağlı olarak - asıl soruyu cevaplayabilirsiniz. Hepsi bir geçişte - O (n) zaman ve sabit alan O (1) kullanma
user396089

2
"Yetkili birini bulduğum için mutluyum."
AProgrammer

2
Bir röportajı geçmek en azından büyüklük kadar şansa bağlıdır. Belli bir bilgi seviyesine ulaştığınızda, şans neredeyse tüm insanların düşündüğünden çok daha büyük bir rol oynar. Okuma önerisi: Mlodinow'un The Drunkard 's Walk .
Konrad Rudolph

Evet, bu kitabı ve Nassim Nicholas Taleb'in daha da ilginç ve alaycı "Rasgele Doğuştan Kandırılmış" kitabını okudum. Tabii ki kitap okuduktan sonra bir süreliğine bir depresyona girdim - iki kitabın temel önermesini anlıyorsanız ve bu - "evet, tüm şansı! Şans! Ve her şey şans hakkında!" Dünya rastgele ve onunla başa çıkmak zorundayız.
user396089

5
  1. Evet. Evet, dürüstçe. Bu, bir kişinin neler yapabileceğinin tam bir resmini elde etmek için 30 dakikanın yeterli olduğu anlamına gelmez. Görüşmecinin işi, görüşmecinin kim olduğu ve neler yapabileceği hakkında bir fikir edinmek için en iyisini yapmaktır. Özgeçmişlerine gerçekten bilmedikleri bir şeyler koyan insanları bulmak oldukça basittir. Mülakat yapılan kişinin tüm becerileri ve güçlü yanları da dahil olmak üzere neler yapabileceğini tam olarak öğrenmek değildir.

  2. Evet. Görüşülen kişinin nasıl düşündüğünü görmenizi sağlarlar. Doğru cevabı almak her zaman gerekli değildir. Birinin mücadele ettiği bir sorunla başa çıktığını görmek, birisinin bir soruna çok fazla sorun olmadan doğru cevap verdiğini görmek kadar faydalıdır. Her zaman röportaj yapılan kişinin cevaplayamayabileceğini düşündüğüm bir soru soruyorum.

  3. Teknik röportajların en iyi adayları bulduğunu söyleyen ampirik bir kanıt bilmiyorum, ama denediğim en iyi şey. Farklı insanlar farklı şeylerde iyidir ve teknik cevapları doğru almak, birisinin işe alınmasına karar veren tek şey değildir. Şirket için iyi bir uyum da çok önemlidir.

Sorunuza dayanarak, anlamanız gereken en büyük şey, bir harf notu gibi açıkça tanımlanmış günlerin sona erdiğidir. Doğru cevabı almak sonucun sadece bir parçasıdır. İyi kod yazmak, fikirlerinizi iletmek ve başkalarını dinlemek de aynı derecede önemlidir. Bununla birlikte, bu alanlar daha özneldir ve bu şekilde ele alınması gerekir.

Sorunu nasıl çözdüğünüz gibi, geri adım atın ve başınızı temizleyin. Birçok şey röportaj yapar ve görüşmeci bunun mükemmel bir sistem olmadığını bilir. Tıpkı sizin için en iyisini yapmaya çalıştığınız gibi, şirket için ellerinden gelenin en iyisini yapmaya çalışıyorlar.


2
@Unholysampler - "Doğru cevabı almak sonucun sadece bir parçası". Noel'den bir gün sonra mükemmel bir çevrimiçi satış portalı sunmanızın bir önemi yok. Çok geç. Zaman doğru cevaba sahip olmak kadar önemlidir.
jasonk

+1 "Tıpkı sizin için en iyisini yapmaya çalıştığınız gibi, şirket için ellerinden gelenin en iyisini yapmaya çalışıyorlar."
Burhan Ali

5

Yarım saat içinde bir kişinin teknik yeteneğinin en az x kadar iyi olduğunu değerlendirebilirsiniz. Yani, yetenekleri gösterdiklerinden daha yüksek olabilir, ancak daha kötü olmadığından oldukça emin olabilirsiniz. X gereksinimlerinizden yüksekse, onları işe alırsınız. Evet, gerçek yeteneğinizin altında göstermeniz haksızlık olur. Söyleyebileceğim tek şey gösterme konusunda daha iyi olmak.

Birisi pratik olarak ezberlenmiş bir cevabı salladıysa, onlara daha zor bir sorun veririm. Akademi'de ezber önemli bir beceridir. Bir işte, google'ınız orada olduğunda çoğunlukla gereksizdir.

En iyi programcıların nasıl çalıştığını görünce, bir noktada bir iş görüşmesine geçtiklerini varsaymak güvenlidir. Hayır, yarım saatlik bir röportajdan birinin harika bir programcı olup olmayacağını söyleyemezsiniz. Neyse ki, çoğu şirketin harika programcılara ihtiyacı yoktur. Konfor bölgelerinin hemen dışındaki görevlerle uğraşmaktan korkmayan sağlam, güvenilir programcılar ile iyi geçiniyorlar.

Çığır açan düşünürlerin iş görüşmelerini değiştirebilmelerinin nedeni, gösterişli, çığır açan sorunları çözme fırsatlarının çok nadir olması ve bunları çözmenize, iş arkadaşlarınızın sıradan ama zor problemlerini çözebileceğinizi kanıtladıktan sonra güvenmenizdir. % 16 yükün üzerine çıktığında yazılımın neden çöktüğü gibi olamaz.


2
+1 "... iş arkadaşlarınızın karşılaşamayacağı sıradan ama zor problemler, yazılım% 16 yükün üzerine çıktığında neden çöküyor."
Jaydee

3

Çok az insan görüşme tekniklerinin gerçekten işe yarayıp yaramadığını biliyor, çünkü başarısız olanlar hakkında asla daha fazla bilgi edinmiyorlar. Fakat hiçbir şey hipotezini çürütmediğinde, doğru olduklarını doğrularlar. Yani zar atmanın kesin bir unsuru var.

Pazarlar diyerek ekonomik teoriler rasyonel ve verimli doğru olsaydı, o zaman şirketlerin olmuş kişileri işe almak olmazdı kötü işlerini onlara kötü yapmazdım şekillerde görüşme An. Bu yüzden kötü niyetli bir takım giyen, terledi, çok gergin görünüyordu ve bir röportaj baskısı altında teknik sorunlar yapmakta zorluk çekiyordu - eğer dışarıdaki kanıtlar olsaydı teknik sorunlar yapabilirlerdi ve işin baskıları böyle değildi Bir röportajın (genellikle olmadığı gibi) - bir şirketin başka türlü çekebileceğinden daha iyi bir aday kazanma şansını temsil eder ve buna göre hareket eder. (Kurumsal dünya için Money-Ball'u düşünün). Sonunda görüşme önyargıları ortadan kalkacaktı.

Uygulamada bu insan doğasına aykırıdır. Görüşmeciler, pozisyonu ne olursa olsun, kendinden emin dışa dönüklükleri sever ve teknik görüşme özgeçmiş ve referanslardan daha kötü bilgi verse bile (belki de sizin durumunuzda doğrudur) bunu dikkate alacaklardır.

Sorularınız için:

  1. Biraz. Testlerin sinyal-gürültü oranı zayıftır, ancak nitelikli ancak teknik-kötü-görüşmeler pahasına tamamen niteliksiz olanı ayıklamak için ayarlanabilir.

  2. Bkz. Gürültünün bir kısmı, insanların sorunu daha önce görüp görmedikleri çeşitliliğinden kaynaklanmaktadır.

  3. Bkz. Muhtemelen bu testler ile harika bir programcı olmak arasında küçük bir pozitif ilişki vardır.

Tavsiyem - Temel bir aşinalık elde etmek için bazı örnek teknik soruları inceleyin. Unutmayın ki bir zar atınız, bu yüzden röportaj sırasında kendinize güvenmeye çalışın. Kendinizi gerçekten düşünmekten rahatsız etmeden ne düşündüğünüzü açıklayabiliyorsanız, bunu yapın. Gerçekten kötü gidiyorsa, röportajlarda gergin olduğunuzu ve normalde sorun yaşamadığınız bir şey gibi göründüğünü itiraf edin - muhtemelen çözdüğünüz benzer ama daha zor bir sorunun örneğini verin.


1
"Kendine güvenen dışa dönükler gibi röportajcılar" ... bu benim için biraz rahatsız edici, Myers Briggs tipim INTJ (MB'nin gerçek kişilik tipinin küçük bir temsilcisi olduğu varsayılarak).
user396089

2
Birçok yazılım geliştiricisi benim gibi içe dönüktür. Sonuç olarak, birçok görüşmeci de öyle. Elbette, güven yardımcı olur. Ancak mantıklı cevaplar çok daha fazla yardımcı olur.
kevin cline
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.