Yazılım Mühendisliği röportajları neden orantısız derecede zor (araştırma röportajları vs.)? [kapalı]


39

İlk olarak, bana biraz arka plan. CS’de doktora yaptım ve hem yazılım mühendisi hem de Ar-Ge araştırma bilimcisi olarak, hem de çok iyi tanıdığınız Çok Büyük Şirketler’de iş buldum. Son zamanlarda işleri değiştirdim ve her iki pozisyon için de röportaj yaptım (geçmişte yaptığım gibi).

Benim gözlemim: SW mühendisi iş görüşmeleri, CS araştırmacısı iş görüşmelerine göre orantısız şekilde daha zor bir yol, ancak araştırmacı işi daha fazla ödüyor, daha rekabetçi, daha fazla ödüllendirici, daha ilginç ve daha üst sırada.

İşte araştırmacı için tipik bir röportaj döngüsü:

  • Araştırmamın laboratuar araştırmasına uygun olup olmadığını görmek için telefon görüşmesi
  • Şahsen: Son araştırmalarımın bir saatliğine sunulabilir (belki de 9 aylık çalışmayı temsil eder) ve izleyicilerden gelen soruları yanıtlayabilirim.
  • Şahsen birebir yaklaşık 5 araştırmacı ile röportaj, burada bana işim / yayınlarım / patentlerim hakkında çok makul sorular soruyorlar: teknik sorular, işimin ilgili işe girdiği yer ve işimi nasıl uzatabilirim? yeni alanlar

SW mühendisleri için tipik bir röportaj döngüsü:

  • Algoritma sorularını sorduğum ve belki de bazı kodlamalar yaptığım telefon görüşmesi. Oldukça standart.
  • Beyaz tahtada şahsen F *** 'u ezoterik C ++ minutyaya (örn. Polimorfik sanal fonksiyon çağrısı nasıl çalışır) çalışmaktadır), algoritmalar (her iki-en kısa-yol algoritmasının 1B köşeleri için çalışmasını sağlar) üzerine yapılan röportajlar , sistem tasarımı (bir veritabanı yük dengeleyici tasarımı), vb. Bu altı veya yedi görüşme için devam eder. Gülünç.

Neden birileri buna katlanmak için istekli olsun? Kendini kanıtlamak için C ++ ıvır zıvır şeyler hakkında soru sorma veya kod yazmanın amacı nedir? Neden SE röportajını, yaptığınız şey hakkında konuşacağınız araştırmacı röportajı gibi yapmıyorsunuz?

Fizik, kimya, inşaat mühendisliği, makine mühendisliği gibi diğer alanlarda teknik iş görüşmeleri nasıl yapılır?


12
Çılgınca bir tahminde bulunacağım ve Google'da röportaj yaptığınızı söyleyeceğim?
Pemdas

2
@ Ethel: İnsanların maaşlarını isimsiz olarak gönderdikleri glassdoor.com'a bakarsanız, bir araştırmacı pozisyonunun benzer bir SW mühendisinden (aynı konum, aynı alan) 10 yıl ila 20.000 ABD Doları / yıl daha fazla ödeme yaptığını görebilirsiniz. Her halükarda, maaşımın yaklaşık aynı zamanda aynı okuldaki CS MS derecesi ile mezun olan diğer arkadaşlarımdan yaklaşık 25.000 $ / yıl daha fazla olduğunu biliyorum. Ve bu sadece maaş değil; Doktoraların, sahip olmadıklarından daha yüksek kariyer yörüngelerine sahip olduklarını gördüm. Doğrudan kanıtlarım yok, ancak doktoraların CTO / VP seviyelerine daha kolay alındığını gördüm.
stackoverflowuser2010

3
Bu delilik, ancak görünüşe göre 'gerçek' mühendislik mesleklerine uzanmıyor. Bir ton inşaat mühendisi tanıyorum ve onlara geçmiş röportajlarımdan bazıları hakkında söylediklerim karşısında şok oldular ... birçoğu ne yaptığını söyledi: "neden buna katlanırsın?"
Kızıl-Kir

3
@ el kaynaştırıcı - İşverene bağlıdır. Elektrik mühendisliği röportajları hepinden benden PLC koduna bakmamı, PLC kodunu yazmamı ve / veya elektrik şemaları ile bir şeyler yapmamı istedi. Birincisinde, ilk soru “Ohm yasası nedir?” İdi. Fizzbuzz testinin eşdeğeriydi ... 4 yıl elektrik mühendisliği aldıysanız ve bunu doğru yapamazsanız, görüşme bitmiştir.
Scott Whitlock

1
Scott: "4 yıl elektrik mühendisliği aldıysanız ve bunu doğru göremiyorsanız, görüşme sona erdi." Korkarım ki bunlardan birkaç tanesine çaktım, çünkü güldüm ya da hakaret ettim. Araştırma ortamından geldiğiniz için temel yetkinliğe sahip olduğunuzu düşünüyorum.
Omega Centauri

Yanıtlar:


45

Araştırma yapmak için teknik olarak yeterli olup olmadığınızı belirlemek oldukça kolaydır - işe alım yöneticilerinin okuyabileceği yayınlar var ve bu yayınlar muhtemelen sizi kontrol etmek için konuşabilecekleri diğer insanlara ipucu veriyor.

Yazılım mühendisliği ise, işe aldığınız adamın yazmayı planladığınız kodu yazabilmesi için gerekli özenle yapılması gereken yetersiz alan atıklarıyla dolu bir disiplindir.


2
Neyse ki github ve bitbucket gibi şeyler o kişinin ne yaptığını görmek için kolaylaştırıyor. durum tespiti sorularını sorma ihtiyacını azaltabilir (veya büyük ölçüde azaltabilir).
Merhaba,

3
tam olarak noktada. iyiliği wannabe programcılarından ayırmak çok zor. Hatta gösterilecek kod olsa bile, yazarın yargılanabilme seviyesini okumak ve anlamak çok zaman alacaktır. araştırma makaleleri, OTOH, okuyucular için yazılmıştır, bir tanesini anlamak için en fazla birkaç saat gerekir, genellikle kötü olanı birkaç dakika içinde tanınabilir.
Javier,

3
Göstermek için kod bir hiledir - Joe Interviewee'nin aslında onu kod yazmasından kısa olarak bu kodu yazdığını nereden biliyorsunuz?
Wyatt Barnett

Yayınlanmış bir makale ve yolda bir kitap var. Bilgim iyi belgelenmiş çünkü Genellikle teknik ekranlar kısa devre olsun, onlar emin ben olduğumu olmak için bu Mike Brown
Michael Brown

1
Ayrıca teknik yöneticilerin gerçekten akıllı ve deneyimli profesyonelleri işe alma konusunda çok büyük bir korku var - onlardan daha iyi bir şey bilenler, bu yüzden sadece kod yazma robotlarının aksine bir çözüme karşı çıkabilirler. Sonuçta, gerçekten akıllı mühendisleri işe almak yerine, bir dakika içinde bağlantılı bir listeyi tersine çeviren birini işe almak, üründen finansal kazanç sağlayanların kaybıdır. Bjarne Stroustrup’un belirttiği gibi, “Programcılarına moron olarak davranan bir organizasyonun yakında yalnızca moron gibi istekli ve yetenekli programcıları olacak.”
Leo Heinsaar

30

Bir uzuvda dışarı çıkıyor.

Doktora sahibi bir araştırmacı olarak, çok sayıda tanınan kuruluşa, araştırmacı olarak değerinizi ve asgari niteliklerinizi kanıtlamışsınızdır. Başarılı bir kurulun önünde bir tezi başarılı bir şekilde savundunuz ve çalışmalarınızı yayınlaması için en az bir meslektaş gözden geçirme yayınına ikna ettiniz.

Öte yandan, yazılım geliştirme yeterliliği standartlarına sahip değildir. İnsanlar rutin olarak bilgi tabanlarını şişiriyorlar. Sonuç olarak, yazılım geliştirme mülakatları doktora savunması ve akran değerlendirmesinde akademide yapılan tüm çalışmaları yapmak zorundadır. Ne hakkında konuştuğunu gerçekten bildiğini kanıtlatıyorlar.


17

Bunu bir anlığına düşünün.

Bu CS araştırmacısı işine başvurmaya çalışırsam CV / Özgeçmişime bakmazdım. İlk başta röportaj yapmazdım. Özgeçmişime bakmakta bile yetkin olmadığımı söyleyen standartlaştırılmış "ileri derece derece" bir mektup alırdım.

Sorum şu: "Doktora almak neden bu kadar zor?" Ve "Neden CS araştırmacısı olmak için doktora ihtiyacım var?" “Neden bu kadar çok engel ve engel var?”

Neden birileri buna katlanmak için istekli olsun?

Tüm bu ders çalışmalarını yapmanın ve dergilerde ve konferanslarda araştırma yapılmasının amacı nedir? Neden sadece araştırmayı yapıp mühendislik için yaptığımdan daha fazla para kazanamıyorum?

Neden kimlik bilgileri oluşturmak için lisansüstü okullara ve yayınlara güveniyorsunuz? Neden röportaj sırasında her şeyin hatırlayabileceğinize bağlı her şey, araştırma röportajı gibi daha fazla röportaj yapmıyor?


Ne dediğini anlıyorum. Doğru görüşme, doğru işe uygun mu? Bu doğru bir yorum mu?
stackoverflowuser2010

5
@ stackoverflowuser2010: Hayır. Sadece akademik dünyanın yazılım mühendisliği dünyasına girmekten çok daha zor olduğundan şikayet ediyorum. Bir SE olarak röportajın var. Akademi'deki kapıya bile giremedim. Bakış açınız o kadar kötü ki, farklılıkları görmüyorsunuz. Akademi çok daha zor.
S.Lott

6

Benim bir teorim var. Araştırma tipik olarak hibelerle ödenir, bu nedenle nakit arzı yüksektir. Harcayacakları bir kova paraları var ve harcayacak birini bulmaları gerekiyor. Aslında bu pozisyonda bir şey yapsanız da yapmasanız da, şirket / kurum net bir zarar kaydetmez, çünkü bu zaten hesaplanmış bir giderdi. Yanlış kişiyi işe alma riski çok az. En kötü senaryo, yaptığınız her şeyi atmalarıdır.

Öte yandan, mevcut ürünlerin başarısı veya başarısızlığı günlük geliştiricilerin omuzlarına dayanmaktadır. Özellikle ürün geliştirme aşamasındaysanız, şirket için bir kâr merkezisiniz. İyi ya da kötü geliştiricilerin maaşlarının çok üstünde bir etkisi var. Kötü bir geliştirici aslında hasara neden olur. Bir takımı, ürün lansmanını, vb.


4
+1 Aslında, araştırmaya harcanan nakit yayınlanmış makaleler tarafından haklı çıkarıldı, eğer bir aday geçmişten gelenlerin iyi bir listesine sahipse, şansı biraz daha fazla üretebilir, bu da büyük olasılıkla kimseyi tatmin edecek. Araştırma hibesinin ne için harcandığını kontrol etmek
Péter Török

@ Péter Török: Evet !!! Hibe veren fonlar daha sonra bir rapor vermeyi gerektirir ve baktıkları en önemli şey yayınlanan kağıtların sayısıdır.
sharptooth

5

Şirketimiz ayrıca “çok zor sorular sorar” ve nedenini açıklayacağım. Sanal işlev çağrısının nasıl yapıldığını gerçekten bilip bilmediğinizle ilgileniyoruz, ancak yapacağınız iş için çok kritik bir gereklilik olduğu için değil.

Bunun yerine umursuyoruz çünkü temel şeyleri ne kadar hızlı öğrenebileceğinizi bilmemiz gerekiyor. X yıllık deneyim mi iddia ediyorsun? Tamam, sağlam bir bilginiz olup olmadığını bulmak için zor sorular soracağız.

Başlık altında sanal bir işlev çağrısının nasıl yapıldığını bilmiyorsunuz, ancak profil oluşturma ve en iyi duruma getirme hakkında her şeyi biliyor musunuz? Harika, muhtemelen sizi işe alıyoruz - bir alanda sağlam bilgi kazandınız ve bu nedenle kesinlikle başkalarında sağlam bilgiler edineceksiniz.

X yılların "geliştirme, hata ayıklama ve C ++ kodlarını düzeltme" deneyimini iddia ediyor ve bir işaretçinin bir nesneye ne kadar işaret ettiğini açıkca söyleyemiyorsunuz? Üzgünüz, sizi işe alamayız - bunu yapamazsanız, karmaşık teknik kararlar vermemiz gerektiğinde daha zor sorunları nasıl açıklayacaksınız?


Bu adil, ancak teknik bileşeni yaparken ya da belirli bir alana odaklanırken oldukça geniş bir ağ yayınlıyor musunuz?
rjzii

@Rob Z: C ++ ile ilgili çok basit sorular sormaya çalışıyoruz - çoğunlukla işaretçiler ve özyinelemeler hakkında, yaklaşık beş satır iyi biçimlendirilmiş kod satırları olan ve ne ve nasıl yaptıkları hakkında bilgi isteyen parçacıklar sunuyoruz. Şüphesiz biz yok hiç baz sınıflar sanal miras durumunda başlatmayla birden sanal miras ve düzen hakkında sormak.
sharptooth

Sanal işlev soruları neden bu kadar popüler? Öyle görünüyor ki bazen herkesin çalışması gereken bu ...
Jé Queue

@Xepoch: Sanırım çok basitler ve kendi iç çalışmalarının bilgisi, içeride ne olup bittiğini umursamanıza ya da sadece kod satırlarını birbirine yapıştırmanıza dikkat edip etmediğinizi gösteriyor.
sharptooth

Sanırım kariyerimde şansım yaver gitti. Nadiren bir kesme ve yapıştırma kodlayıcısı gördüm. Kötü uygulama kodlayıcılarını (kendim dahil)
tanıdım

5

Kısa cevap: piyasada programlama bildiğini iddia eden, ancak programlayamadığını iddia eden birçok insan var.

Yan açıklama: Hiç kimsenin FizzBuzz makalesiyle bağlantı yayınlamadığı konusunda şaşırdım .


Doğru, ancak orada bir veya bir beyaz tahta problemi temelinde programlayamıyor veya programlayamıyorsanız oldukça hızlı bir şekilde anlayabilirsiniz. Beyaz tahta problemleri, bazı röportajlar sırasında ortaya çıkan çeşitli kitaplara sorular sormakla aynı şey değildir.
rjzii

3

Farklı bir rota izleyeceğim ve sorunun yazılım mühendisliği görüşmelerinin doğal olarak daha zor olacağı kadar fazla olmayabilir, bunun yerine farklı sektörlerin görüşme tarzlarında farklı şeyler aradıklarını söyleyeceğim.

Oldukça geniş bir sektör yelpazesinde röportaj yaptım (örneğin, yeni kurulan şirket, küçük şirket, büyük şirket, dahili BT departmanı, yazılım şirketi, araştırma organizasyonu) ve hepsinin, genellikle eğilimde olduğunu düşündüğüm farklı bir görüşme şekli var. aşağıdaki modeli takip edin:

  • Yeni başlayanlar, şu anda kod yazmaya başlayabileceğinizi ve hızlı tempolu bir ortamda başa çıkabileceğinizi bilmekle ilgilenme eğilimindedir . Bu nedenle, “temel” bilgi olarak gördükleri her şeye bakarken çok fazla zaman harcamanızı istemediğiniz için kafanızın tepesinden ne kadar tanıdığınızla ilgilenme eğilimindedirler. Bir şeyi bilmediğini kabul etmek, bilmeni bekledikleri bir şeyse, bu ortamda iyi bir şey olmayabilir.
  • Küçük şirketler, ne kadar tanıdığınızla ilgili yeni girişimlerle aynı şeyleri aramaya meyillidirler, ancak hızlı tempolu ortamları (işe bağlı olarak) ve ne tür yumuşak becerilerle ne kadar iyi idare ettikleri ile ilgili değillerdir. şirkete ne kadar iyi uyacağınızı ve getirin.
  • Büyük şirketler ve dahili BT departmanları, belirli bir teknik bilgiye sahip olmanızı sağlamakla daha fazla ilgileniyor gibi görünmekle birlikte, bazılarının olacağını umdukları için, kafanızın üstündeki her şeyi bilmiyorsanız, endişelenmeyin. Şirketin beklediği şeyler konusunda sizi eğitmekle ilgilenen zaman. Dolayısıyla, bu bir şey bilmediğinizi kabul etmenin, öğrenmeye istekli olmanın ve öğrenmeye istekli olmanın bir fayda olarak görülebileceği bir ortam.
  • Araştırma ortamında (deneyimlerime göre bilim adamları için yazılım geliştirme desteği) yazılım yazıp yazamayacağınızla ilgilenme eğilimindeler, ancak daha fazlası, ne yaptığını öğrenebilmenizi sağlamak için ne gerekiyorsa yapmaya istekliyseniz Bir sorunu çözmeye çalışırken elinizi tutmak zorunda değiller. Aynı zamanda bir araştırma ortamı olduğu için, yeni şeyler öğrenmekle ne kadar ilgilendiğinizi de merak ediyorlar.

Şimdi, yazılım şirketlerinden (yani Google, Microsoft) kendi işlerini yapma eğiliminde olduklarından ve şirketin ne kadar olgunlaştığına ve hangi grupla röportaj yaptığınıza bağlı olarak farklı şeyler aradıklarına bağlı olarak bahsetmeyi ihmal ettim.

Günün sonunda olsa da ve hayattaki çoğu şeyde olduğu gibi, hepsi buna bağlı. Şahsen, bazı şirketlerin, diğer şirketlerin daha üst düzey sorunlarla ne kadar iyi başa çıkabildiğinize çok endişeli göründüğü yüksek seviye sorunlarını çözme pahasına gelebilecek “kitap bilgisine” odaklandığını buldum. (yani x için bir şema tasarlayabilir misiniz? ) ve tamamen üretken olmadan önce hızınızı artırmak için üç ila altı ay arasında yatırım yapmaya istekli oldukları varsayımıyla çalışabilirsiniz.


2

Yine, teknik görüşme keyfi ve kaprislidir.

Kedinin üzerine ızgara yapmakla CS'lerini bilip bilmediklerini görmek arasında büyük bir fark var. Yukarıda söylediğim gibi, C ++ ile on yıldan fazla bir deneyime sahibim, ancak OOP / Miras sorularını bombalama eğilimindeyim. Neden? Şablonlar için destek eklendiğinde, C ++ 'ı neredeyse yalnızca Genel Programlama için kullandım .

Ben körfez bölgesinde ve Seattle'da birkaç BigHouseHoldNameTech şirketleri ile görüşme ve iyi görüşmeler biri dahil ettik gerçek veri yapıları ve algoritmalar [kapsayan, onlar iş ile uğraşmak zorunda olduğunuz soruları yani: Sen 300 milyar veri noktası bulunmadığı XYZ'den oluşur. Nasıl verimli bir şekilde depolar ve araştırırsınız? ].

Bu hemen hemen bir adayın nasıl girebileceğini ve karşılaştığınız gerçek sorunları çözmenize yardımcı olabileceğini bilmenizi sağlar . Mutlak kötü başka BigHouseHoldNameTech şirket ile de oldu, ama onlar inanılmaz gizli soru saat değerinde sorulan Eğer gerçekten sadece manuel [yukarı incelemesi gerekir yani Linux vs pencerelerde PCB arasındaki temel farkları açıklar --ve bu değildi' çekirdek seviyesi konumu için t ]

Hedge fonları, işkence yapma niyetleri ile garip ... bir beyaz tahta üzerinde 8 saat sırt çantası tipi problem çözmeyi bekliyorlar .


2

Alanında 20 yıldan fazla olan bir yazılım geliştiricisiyim (c / c ++). Şimdi rutin olarak gördüğümüz röportajların türü (beyaz tahta üzerinde beyin zekaları, veri yapılarını uygulama, arama algoritmaları vb.) Yeni mezunlar dışında pek bir şey yapılmadı. Bir kişi saygın bir şirket için makul bir süre çalıştıysa, bu kişinin kod yazma yeteneğinin kanıtı olarak kabul edildi. Şimdi çok çocukça geçti ve neden olduğundan emin değilim. Gerçekten, sizden kodlamanızı istedikleri tipik şeyler, ezberlenebilir, bu yüzden beyaz tahtada yapmak gerçekten hiçbir şey kanıtlamaz. Bir iş projesinde, bir şeyi araştırmak için interneti kullanırdınız ve sıfırdan bağlantılı listeler veya yazılar yazmazsınız.

Sanırım başka bir yönetim hilesi - tıpkı scrum gibi - bu muhtemelen google, amazon ve microsoft tarafından başlatılıyor. Diğer herkes, tıpkı Jack Welch'in rütbesi ve yank'ta olduğu gibi kopyalandı ... hatırladın mı GE?

Eğer yorumlarımı okuyan bir işe alım müdürüyseniz, adaylara sormak zorunda olduğunuz şey, NASIL belirli sorunları çözme hakkında gitmek zorunda kalacaklarıdır. Bir karma tablosunu kodlamalarını istemek yerine, karma tablolarını içeren bir problem verin ve nasıl çözeceklerini sorun.

Ayrıca, "onlara, şirketin çözmesi gereken gerçek bir dünya problemi ver" diyen bu yazının üstündeki geliştiriciye katılıyorum!

"ancak OOP / Miras sorularını bombalama eğilimindeyim. Neden? Şablon desteği bir kez eklendiği için, neredeyse sadece Genel Programlama için C ++ kullandım."

Ben de aynı fikirdeyim. Bir şirket için çalışırken, kendi yollarına kod yazarsınız. Bazen hala C ++ çağrısını kafamın üstündeki referans sözdizimiyle hatırlamakta güçlük çekiyorum çünkü 15 yıldır çalıştığım şirkette kıdemli mimar referansları değil, işaretçileri kullanmayı tercih etti. Gördüğün eski bir C programcısıydı. Yani hepimizin kullandığı şey bu.

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.