Beyaz tahta röportajları ve olası alternatifler hakkında konuşalım

Pek çok mühendisin beyaz tahtaya dayalı mülakat sorularından nefret ettiği kimse için haber değil.

İster Twitter'da, ister Medium'da veya LinkedIn'de olun, girişimde bulunan birini bulmak kolaydır. “İşe alma süreci bozuldu” ifadesi o kadar sık ​​kullanılıyor ki bu bir klişe haline geldi.

Ne yazık ki, bu hayal kırıklığının çoğu sağır kulaklara düşüyor.

Çevresini saran öfke korosuna rağmen, "beyaz tahta" yazılım mühendisliği röportajlarının temelini oluşturuyor. Bunun bir kısmı, geliştiricilerin kızgınlıklarını hızlıca dile getirmeleri, ancak daha iyi alternatifler sunmakta yavaş olmaları gerçeğinden kaynaklanıyor.

Daha iyi alternatifler var mı?

Bu soru son zamanlarda aklımda. Dört hafta önce ilk tam zamanlı yazılım mühendisliği işime başladım. Henüz işe alma sürecine dahil olmasam da, eninde sonunda olacağım.

Sadece bir ay önce masanın diğer tarafındayken, görüşmenin ne kadar belirsiz olabileceğini anlıyorum. Soru sorma sırası bende olduğunda, potansiyel meslektaşlarımı doğru ve adil bir şekilde değerlendirdiğimden emin olmak istiyorum.

Bu durum beni iki soruya yöneltti:

  1. Beyaz tahta görüşmeleri en iyi seçenek midir?
  2. Değilse, daha iyi alternatifler nelerdir?

Bu yazıda, bu soruları cevaplamaya çalışacağım. Unutmayın, bunlar kendi görüşme deneyimim tarafından şekillendirilen kişisel görüşlerimdir.

Bu göreve gerçek yazılım mühendisliği tarzında yaklaşarak mümkün olduğunca objektif olmaya çalışacağım: tüm seçenekleri incelemek ve ödünleşimlerini tartmak.

Beyaz tahta görüşmeleri en kötüsü mü?

Bu süreçteki ilk adım, beyaz tahtayı incelemektir.

Artıları:

  1. Hızlı ve az çaba
  2. Dile veya etki alanına bağlı değil
  3. (Genel olarak) ne bekleyeceğini biliyorsun
  4. Topluluk desteği (Glassdoor, LeetCode, Pramp vb.)

Eksileri:

  1. Şans büyük bir faktördür (algoritma piyangosu)
  2. Mühendislik yeteneğini mutlaka test etmiyor
  3. Genç mühendisleri ve yeni mezunları destekler

Mühendislerin bilgisayar bilimleri temellerini, düşük seviyeli algoritmaları güçlü bir şekilde kavramasını gerektiren ve kütüphanelere bağımlı olmayan şirketler için beyaz tahta görüşmesi mükemmeldir.

SpaceX, MacOS / Windows ve Facebook'un React'i, bu tür bilgiye sahip mühendisler tarafından oluşturuldu. Bu şirketlerden birinden beyaz tahta röportajı almanız bekleniyor.

Bir iş adayı olarak beyaz tahta röportajlarını seviyorum. Ne bekleyeceğimi biliyorum. Çoğu algoritma sorusu şu genel konulara girer:

  • Diziler / Dizeler
  • İkili Ağaçlar
  • Bağlı Listeler
  • DFS / BFS
  • Geri izleme
  • Dinamik program

Bunu önceden bilmek onun için çalışabileceğim anlamına geliyor. Ve aralarından seçim yapabileceğiniz çok sayıda çalışma aracı var. Teknik mülakat hazırlığı başlı başına bir sektördür.

Bu nedenle, beyaz tahta görüşmeleri her şirket için en iyi seçenek değildir. Çoğu zaman şansa, ezberlemeye ve en çok zaman harcayan kişiye bağlıdır.

Algoritmalarda uzmanlaşmak için herkes uzun süre çalışamaz.

Yapabildiğim ve başaramayan diğer mühendisleri geride bıraktığım için şanslıydım. Hepsinden daha iyi bir mühendis miyim? Belki, ama bir beyaz tahta röportajının bunu ortaya çıkarmanın en iyi yolu olduğundan emin değilim.

Beyaz tahta görüşmesinin iş için en iyi araç olduğuna dair şüpheniz varsa, daha iyi ne olabilir?

Bazı alternatiflere bir göz atalım.

Bilgisayar aracılığıyla zorlukları kodlama

Artıları:

  1. Bir bilgisayar ve tanıdık geliştirme ortamını kullanın
  2. Ekran paylaşımı yoluyla uzaktan yapılabilir
  3. Beyaz tahta görüşmelerinin diğer tüm avantajları

Eksileri:

  1. Sözdizimi ve çalıştırılabilirlik konusunda daha katı.
  2. Programlama ortamı ve eklentiler büyük bir faktör oynayabilir
  3. Beyaz tahta görüşmelerinin aynı dezavantajları

Bir dizüstü bilgisayardaki Kodlama Zorlukları, beyaz tahta röportajının daha az titiz kuzenidir.

Adaylar kendi bilgisayarlarını kullanma avantajına sahiptir. Uzaktan veya çift programlama ortamında yapılabilir.

Bunlar hakkında fark ettiğim güzel bir şey, genellikle beyaz tahta sorularından daha kolay olacaklarıdır. Aldığım soruların çoğu, dizi manipülasyonunu veya deneyimli herhangi bir mühendisin üzerinde çalışmak zorunda kalmayacağı basit algoritmaları içeriyordu.

Bunun dezavantajı, işlevselliğe çok daha fazla vurgu yapılmasıdır.

İş avım sırasında bana iki kez Jeton Değiştirme problemi soruldu. Biri beyaz tahta meydan okuması olarak, diğeri ise bir düzenleyicide.

Beyaz tahta zorluğu için, esas olarak çözümümü açıklayarak paçayı sıyırdım. Dizüstü bilgisayarımda, uç durum testleri yazmam ve çözümümün çalıştığını garanti etmem bekleniyordu.

Beyaz tahtadan hoşlanmamın bir nedeni de hoşgörüdür. Yazılı işlevinizi kimse bir derleyici aracılığıyla çalıştırmayacaktır. Görüşmeyi yapan kişi ne düşündüğünüzü anladığı ve yazı yeterince iyi göründüğü sürece, tam bir kredi alırsınız.

Kod zorluklarında öyle değil.

Bazıları işlevselliğe vurgu yapmanın daha iyi olduğunu iddia edebilir, çünkü bize çalışan kodu yazmamız için para ödüyoruz. Bu doğru, ancak bunu 30-45 dakikalık sprintlerde yapmak için para almıyoruz.

Umarım görüşmeler sırasında gerilmezsiniz Başarısız testlere ve birkaç dakikalık hata ayıklamaya neden olan küçük bir hata, "güçlü işe alma" veya geçiş arasındaki fark olabilir.

Kod zorlukları, çoğu algoritma tabanlı olduğundan, beyaz tahta ile aynı eksikliklerden muzdariptir.

İlave işlevsellik baskısı ile, rahat ortama rağmen soruları daha da zorlaştırabilir. Algoritma problemlerinden zaten hoşlanmıyorsanız, kod zorlukları çok daha iyi olmayacaktır.

Ev değerlendirmeleri yapın

Artıları:

  1. Pijamalarınızda üzerinde çalışabilir miyim?
  2. Genellikle ödev üzerinde çalışmak için bir haftadan fazla süre verilir
  3. Kendi düzenleyicinizi ve geliştirme ortamınızı kullanın
  4. Portföye yeni bir ekleme olabilir
  5. Genellikle beyaz tahtadan daha eğlenceli

Eksileri:

  1. Zorluk seviyesi büyük ölçüde değişebilir
  2. Kodlama zorluklarından çok daha fazla çaba ve zaman alıcı
  3. Etki alanına bağlı olabilir
  4. Rekabet nedeniyle özellik kaymasına neden olabilir
  5. Günlük çalışmayı temsil etmiyor

Pek çok mühendis ev ödevlerini almayı tercih ediyor. Bunları teslim etme zaman çizelgeleri genellikle esnektir ve adaylar gerçekten kodlamaya başlar. Şok programcıları sessizce yargılanırken beyaz tahtanın önünde durmayı tercih etmez.

Ancak, evde yapılan testlerin bazı büyük dezavantajları vardır.

İlk olarak, manipüle etmeleri kolaydır.

Birçok şirket, testlerini GitHub'da barındırır. GitHub aramasına "Challenge" veya "Test" yazın ve bolca bulacaksınız. Bu, bilgili adaya mücadeleyi önceden araştırması için bolca zaman verecektir.

Bu gerçekten bir şikayet değil. Sadece bir profesyonel ipucu.

Ne olduğunu bir sorun 's kolay yeterince bu zorluklara başkalarının cevaplar bulmak ve bunları kopyalamak olmasıdır. Pek çok mühendis, zorlukları eve götürmek için cevapları GitHub profillerinde saklıyor.

Hatta kendiniz test edebilirsiniz. GitHub aramasına "Challenge" yazın ve ne bulduğunuzu görün.

Brooklyn'deki Etsy genel merkezinin yanında yaşıyorum ve bazı testlerinin cevaplarını bulabilir miyim merak ediyorum. "Etsy Challenge" dört açıkladı. "Etsy Testi" altında daha da fazlası vardı.

Şirketlerin değerlendirmelerini değiştirebileceği doğru. Bununla birlikte, ayrıntıların sızdırılması nedeniyle her iki ayda bir görüşme sürecini değiştirmek zor olabilir.

İkinci olarak, bu zorlukları bitirmek için gereken zorluk seviyesi ve zaman büyük ölçüde değişir.

Son iş aramam sırasında, bana dört tane eve götürme görevi verildi. Şirketlerden üçü, bitirmenin sadece 3-5 saat sürmesi gerektiğini söyledi.

Hepsi birkaç günümü aldı.

Bunun ana nedeni, zorlukların genellikle alana özgü olmasıdır. Birkaç saat API belgelerini ve yeni teknolojileri araştırmaları gerekiyordu.

Dördüncü şirket, kolayca bir hafta sürebilecek bir meydan okumaya girdi ve bana iki gün verdi. Eğik çizgi komutlarını destekleyen işleyen bir sohbet uygulaması oluşturmam gerekiyordu.

Eğlenceli ve ilginç bir projeydi, ancak tamamlamak için iki gün boyunca yaptığım her şeyi bırakmam gerekiyordu.

Bir aday aynı anda birden fazla şirketle görüşme yapacak kadar şanslıysa, sadece bu zorluklar üzerinde çalışan tam zamanlı bir iş haline gelebilir.

Ek olarak, profesyonel geliştiricilerin eski kod tabanları üzerinde çalışması ve son tarihlerle ilgilenmesi gerekir. Bir haftalık sıfırdan proje, görüşülen kişinin hızlı tempolu bir ortamda ne kadar iyi çalıştığını değerlendirmeyecek.

Genel olarak, bir adayın yeteneğinin başlangıç ​​ekranı olarak ev ödevleri almayı seviyorum. Bununla birlikte, adayın başvurduğu işle ilgili olmalı ve bitirmek için müstehcen bir zaman almamalıdır.

Proje Bazlı / Sözleşmeli

Artıları:

  1. Aday / ekiple çalışma şansı yakalayın
  2. Çalışmak için para kazanın
  3. Gerçek projeler üzerinde çalışmaya başlayın
  4. Ekip ve gemi kodu ile ne kadar iyi çalıştığınıza göre değerlendirilir

Eksileri:

  1. Uzun süreli taahhüt
  2. İstihdam garantisi olmadan çalışmak
  3. Yüklenici olarak sağlık faydası yok
  4. Adayı kötü müzakere konumuna getirebilir
  5. Dile bağlı

Proje bazlı görüşmeler nadirdir. Ancak Basecamp ve Automatic gibi pek çok şirket yanlarında. Nedenini anlayabiliyorum

Bu mülakatlar, muhtemelen birinin becerisini değerlendirmenin ve onu bir ekip üyesi olarak değerlendirmenin en doğru yoludur. Şirket onlarla doğrudan çalışır ve bir takımdaki görevleri nasıl ele aldıklarını görür.

Aday ayrıca şirketi değerlendirme ve çalışmak isteyeceği ortamın türü olup olmadığını belirleme şansı elde eder.

Kazan-kazan. Ya da öyle görünüyor.

Tüm bunlarla birlikte, bir iş adayı olarak, asla proje bazlı mülakatlara veya sözleşmeli işe alım rollerine katılmam. Negatifler, pozitiflerden çok daha ağır basıyor.

Herhangi bir işin ilk birkaç ayı tipik olarak en zorudur. Yeni bir ekibe, kültüre, kod tabanına alışıyorsunuz. Şimdi, sonunda bir işiniz olup olmayacağını bilmeden bir proje üzerinde çalıştığınızı hayal edin.

İyi bir arkadaşım yakın zamanda Automatic'de röportaj yaptı ve bunun ne kadar stresli olabileceğini doğruladı. İş arkadaşlarınızla etkileşim şeklinizden sorduğunuz sorulara kadar her şey değerlendirilir. Bu ortamlarda, orada olduğu bir diye bir şey “aptal soru.”

Daha kötüsü, üç aylık sözleşmeden sonra serbest bırakılmasıydı. Şans eseri, özgüvenini etkilemesine izin vermedi. Yeteneğini biliyor ve ileriye doğru ilerliyor. Ben veya diğer birçok mühendisin aynı şeyi bu kadar kolay yapabileceğinden emin değilim.

Dahası, sözleşmeler iş arayanları berbat bir pazarlık pozisyonuna sokar. Müzakerelerin gücü, uzaklaşma isteğinden gelir.

Sözleşmeden kiralama döneminin sonunda, potansiyel adayın pazarlık fişi olmayacaktır. Başka teklifleri olmayacak ve sözleşme uzunluğuna bağlı olarak projelerine zaten onlarca veya yüzlerce saat harcadılar.

Tercih ettikleri seçim olmasa bile pozisyonu almaya teşvik edilecekler. Alternatif, iş piyasasına en baştan tekrar katılmaktır.

Batık Maliyet Yanılgısı en iyi haliyle.

Beyaz tahta röportajları ideal olmasa da, proje bazlı röportaj yapmadan önce yüz tanesini yapardım.

Peki en iyisi hangisi?

Tahmin edebileceğiniz gibi: It Depends ™.

Ödünleşmeler, hız ve çaba ile doğruluk arasında görünüyor. Her yöntem birbirini feda eder. Bu ödünleşmeleri kendileri için değerlendirmek her şirkete kalmıştır. SpaceX, büyük olasılıkla küçük New York girişiminden farklı bir sürece sahip olacak.

Doğru olan şu ki, bir SaaS şirketi, adaylardan yalnızca mühendisin becerilerini belirlemelerine yardımcı oluyorsa dinamik programlama algoritmaları yazmalarını istemelidir. Sadece Google yaptığı için değil.

DigitalOcean'daki ekibim için mülakat sürecini tasarlıyorsam, eve götürme değerlendirmeleri ve kod zorlukları / eşleştirme alıştırmalarının bir karışımını kullanırdım. Ayrıca bir Soru-Cevap oturumu ve sistem tasarımı zorluğu aracılığıyla kullanılabilirlik ve dağıtılmış sistemler konusundaki anlayışlarını da ölçeceğim.

İyi haber şu ki ekibim bunu zaten yapıyor. DigitalOcean'ın zorlu ancak adil görüşme süreci, teklifini kabul etmemin nedenlerinden biriydi. Bana, bu kendi kendine inceleme sürecinden zaten geçtiklerini ve adaylarını nasıl adil bir şekilde değerlendireceklerini öğrendiklerini kanıtladı.

Lütfen aşağıdaki yorumlarda tercih ettiğiniz görüşme yöntemini bana bildirin!

Son olarak, görüşme sürecinin değiştiğini görmek isteyen tüm mühendisler için fikir üretmeye başlayın. Beyaz tahta röportajları hakkında çok sayıda mühendis gördüm, ancak işe alındıktan sonra sürece devam etmek için, çünkü onu değiştirmek çok zor.

O kişi olmayın.

Şikayet etmeyi bırak.

Çözümler bulmak.