- Canlı kodlama mülakatları, gerçekte bir mühendisin kodlama becerisinden çok strese verdiği tepkiyi daha iyi ölçüyor
- Bilimsel araştırmalara göre gerçek zamanlı olarak izlenilen ortamlarda bilişsel kapasite düşüşü ve ciddi performans dalgalanmaları görülüyor
- Özellikle kadın adaylarda, herkese açık ortamda hepsinin elendiği, ancak bireysel ortamda hepsinin geçtiği durumlar da doğrulandı
- Çoğu şirkette strese uyum becerisi beklenmediği halde bunun kodlama testi ile yanlış değerlendirilmesi gibi bir sorun bulunuyor
- Deneme testleri, kademeli maruz bırakma ve bazı destekleyici takviyeler stresi azaltmaya yardımcı olabilir
Canlı kodlama mülakatlarıyla ilgili kişisel deneyim
- Bazı insanlar canlı kodlama mülakatlarını sever, ancak yazar bunlardan hoşlanmıyor
- Yazar, Toptal başvuru sürecinde canlı kodlama testinde başarısız oldu, ancak aynı problemi daha sonra tek başına yeniden çözdüğünde kısa sürede sonuca ulaştı
- Bu deneyim, gerçek zamanlı gözetim altında stres nedeniyle normal becerisini sergileyemediğini fark etmesine yol açtı
Strese tepki veren beyin
- Yüksek riskli, zaman baskılı durumlarda beynin amigdalası etkinleşir ve kortizol seviyesi yükselir
- Bunun sonucunda karmaşık akıl yürütme ve hafızadan sorumlu prefrontal korteksin işlevi zarar görür
- Çalışan bellek, yeni problem çözme becerisini değerlendirmede en önemli ölçütlerden biridir ve canlı kodlama sırasında bu kapasite ciddi biçimde azalır
- Hafif bir performans kaygısı olduğunda bile net düşünmek neredeyse imkânsız hale gelebilir
- Odaklanmak zorlaşır, birden fazla adımı aynı anda akılda tutmak güçleşir ve kişi kendini “normalde olduğundan çok daha kötü biri” gibi hisseder
Belirleyici araştırma bulguları
- Microsoft araştırmacıları tarafından yürütülen bir çalışmada aynı kodlama problemi bireysel ortamda ve herkese açık ortamda çözdürülerek karşılaştırıldı
- Bireysel ortamda katılımcılar odada tek başınaydı; açık ortamda ise bir gözetmen önünde düşünme süreçlerini sesli anlatarak problemi çözmeleri istendi
- Sonuç olarak izlenilen ortamda performans yarıya düştü ve özellikle performans farklarının daha da büyüdüğü görüldü
- Erkek adaylardan farklı olarak, açık ortamda bulunan tüm kadın adaylar başarısız oldu; bireysel ortamda ise hepsi geçti
- Canlı kodlama ortamı, yetkin mühendisleri eleyen bilimsel olarak kanıtlanmış bir dışlayıcı filtre gibi çalışıyor
Stres altında performansın gerçeği
- Canlı kodlama nihayetinde sadece stresli koşullarda performansı ölçen dolaylı bir gösterge
- Bazı şirketler gerçekten stresli ortamlarda iyi performans gösteren insanları istiyor, ancak şirketlerin çoğu bunu iş ilanlarında açıkça belirtmiyor
- Çoğu işin gerçek zamanlı stres düzeyi düşük olduğu düşünüldüğünde, canlı kodlamada hata yaptığı için iyi bir mühendisi elemek uygun değil
- Canlı kodlamanın kodlama becerisinden çok stres hormonu seviyesini ölçtüğünü söylemek daha doğru olur
Stresi azaltma yöntemleri
- Canlı kodlama sektörde yaygın olduğu için strese uyum antrenmanı gerekli
- Gerçeğe benzer ortamlarda tekrar tekrar pratik yapmak (Pramp, Interviewing.io, LeetCode deneme testleri vb.) beynin strese alışmasına yardımcı olabilir
- Zamanlayıcı kurmak, kendini kayda almak veya bir arkadaşından izleme yapmasını istemek gibi yöntemlerle baskıyı aşamalı olarak artırmak etkili olabilir
- Ayrıca L-tyrosine (stres altında nörotransmiter desteği) ve L-theanine (rahatlama ve odaklanmayı iyileştirme) gibi takviyeler de denenebilir
- Gerçek mülakattan önce, hangi yöntemin kişiye uygun olduğunu mutlaka deneme pratiklerinde doğrulamak gerekir
Sonuç
- Canlı kodlamada zorlanmak, mühendis olarak yetersizlik değil, insanlara özgü genel bir özelliktir
1 yorum
Hacker News görüşü
Kendi durumumu genellemek istemiyorum ama kişisel deneyimimi paylaşmak istiyorum. Şu anda başarılı bir serbest çalışan indie geliştiriciyim. Zor dönemlerde bile indie geliştirmeyi bırakmamamın başlıca nedenlerinden biri, fiilen işe alınamaz hale gelmiş olmamdı. Teknoloji sektöründe yaş ayrımcılığıyla karşılaşan orta yaşlı biriyim, bilgisayar bilimi diplomam da yok ve live coding mülakatlarında zihnimin tamamen durduğu anlar yaşıyorum. Tüm stres aynı türden değil; buna dikkat çekmek istiyorum. İtfaiyeciler yanan binalara koşarak girer ama yabancıların önünde sunum yapmaktan korkabilir. Ben de günlük iş stresine dayanıklıyım ama birilerinin omzumun üzerinden beni izleyip finansal geleceğime karar vermesi dayanılmaz geliyor. Mülakat bittikten sonra kodlama problemlerini çoğu zaman çözebiliyorum. Mülakatçılar beni sahtekâr sanabilir ama buna karşı elimde yaklaşık 20 yıllık deneyim var. Birçok insan
false negativedurumunu sanki rastgeleymiş gibi görüyor ama benim gibi sürekli elenen insanlar da var. Ben seçme sınavı tarzı mülakatlarda hep başarısız oluyorum; sahnede performans sergileyen biri değilim.İnsanların izlediği bir ortamda değerlendirilme konusuna çok katılıyorum. 60'larımın başındayım. 20'li ve 30'lu yaşlarımda mülakatları idare eder şekilde geçerdim ama zamanla mülakatların giderek daha çatışmacı hale geldiğini hissettim. Eskiden ortam "nasıl olsa işe alalım" gibiydi, şimdi ise "neden işe almayalım" gerekçesi arıyor gibiler. Bunun bir kısmı yaş ayrımcılığı olabilir ama sektör atmosferinin değiştiğini de düşünüyorum. Son 15 yılda mülakat deneyimi gittikçe daha nahoş hale geldi, hatta mülakat sırasında panik yaşadığım oldu. Yine de bir şekilde işe alındım ve referanslarım sayesinde mülakatsız sözleşmeli işler de yaptım. Son çalıştığım startup 2022 sonunda fonu tükenince ayrılmaya karar verdim. İşin kendisini gerçekten seviyordum, en yeni teknolojilerle de çalışıyordum ama artık mülakat sürecini kaldıramıyordum; asıl mesele buydu.
Bence sorun yapının kendisinde. Son dönemin kodlama mülakatları, gençlerin CS veri yapıları ödevlerini yapıp yapmadığını ölçmek için tasarlanmış gibi görünüyor. 2010'lardaki FAANG gibi çok sayıda işe alım yapan yerlerde bir anlamı vardı belki ama küçük ve orta ölçekli şirketlerde bunun yerine gerçek kod okuma, edge case tartışma gibi iş ortamına yakın şeylere odaklanmak çok daha iyi olur. 20 yılı aşkın süredir startup'larda çalışıyorum ama bu testleri hâlâ geçemiyorum. Zorla ezber yapmayı da reddediyorum. Eğer bir yer bununla ölçüyorsa, zaten bana uygun değildir. CTO'luk da yaptım, birkaç şirket de başlattım, ekip yönetiminde de iyiydim ama yine de yeni mezun gibi muamele görüyorum. Bir keresinde LRU cache'i hızlı ve temiz yazamadım diye elendim; bugün bir startup'ın buna ne kadar ihtiyaç duyduğunu gerçekten merak ediyorum. Yakın zamanda hiç kullanmadım. Böyle bir soruyu anında çözememek beni yetersiz gösterebilir ama işte kullanılmayan bir şeyi özellikle sormanın ne anlamı var bilmiyorum. Bu, bir mimarı slide rule becerisine göre işe almaya benziyor. Bu tür işe alım yöntemleri sonunda karmaşık kod tabanları üretiyor; oysa asıl gereken karmaşıklık değil, iş hedeflerine ulaşmak olmalı. Ben problemleri parçalara ayıran, mantığı ve yapıyı sade tutan çalışma arkadaşlarıyla çalışmak isterim. LeetCode ile zeki insanları seçmenin bazı avantajları var ama gerçek dünyadaki problemleri sürekli ve etkili biçimde çözen biri daha değerlidir.
İşe alan tarafta benzer bir durum yaşadım. Projede uzun süre yer almış bir öğrenciyle telefon mülakatı yaptım ama çeşitli stresler ve dil bariyeri nedeniyle yeteneğini tam gösteremediğini düşündüm. Formatı değiştirmeye de açıktım ama aday kendisi daha fazla denemek istemediğini söyledi. Öte yandan asenkron kodlama mülakatına geçerseniz, bu kez de sadece LLM kullanıp kullanmadığını test ediyor olabilirsiniz. Sonuçta mülakatta donup kalan insanları mı eleyeceğiz, yoksa tamamen yetersiz sahtekârları mı eleyeceğiz sorusunda seçim yapmam gerekse, ben ilk grubu filtrelemenin daha iyi olduğunu düşünürüm.
Şirketlerde bu tür mizaç uyumsuzluğunu çok görüyorum. Birçok programcı içe dönükken, işe alanlar çoğu zaman dışa dönük oluyor. Bu fark düzgün yönetilmezse içe dönük yetenekler dışlanabiliyor ya da anlaşılmıyor. Açık oturma düzeni de benzer bir sorun. Yöneticiler işbirliğini seviyor olabilir ama içe dönük insanlar için bu çok zorlayıcı bir ortam.
Indie geliştirmede başarı yakalamaya başlamanızın dönüm noktasını merak ediyorum. Ben de neredeyse 40 yaşındayım ve uzun süredir programlamayı hobi olarak yapıyorum ama geçen yıldan beri bunu ciddi biçimde meslek haline getirmeye karar verdim. Github'da birçok açık proje var, başka alanlarda da başarı geçmişim var ve iletişim becerilerim kötü değil. Ama live coding'de zorlanıyorum. Gerçek beceriyi gösterebileceğiniz independent contribution rotası hakkında ne düşündüğünüzü merak ediyorum. Gerçekten yetenekliysem bununla para kazanmak istiyorum.
Bu hafta bir Data Engineering adayını mülakata aldım. Ona son derece temel 4 SQL ifadesi verdim; soruyu yüksek sesle okudu ve hemen doğru cevabı, üstelik doğru sözdizimiyle yazdı. Sonuncu soru biraz daha zordu ve orada tıkandı. "Sonucu kontrol et" dediğimde anlamadı ve savunmacı davrandı. "Tabloyu dump et" deyince de hiç anlamadı, sadece bahane üretti. En sonunda yapıştırdığı SQL'de çıktı içinde [redacted].ai vardı. Muhtemelen önceki soruları AI ile çözdü, son soruda ise açık verdi. Böyle teknik sorular olmasaydı bu hileyi yakalayamazdık.
AI ile mülakat hilesi araçları gençler arasında çok yayılıyor. Bazı durumlarda hemen fark ediliyor ama deneyimli adaylar AI kullanımını araya "sesi duyamıyorum" gibi boşluklarla gizleyebiliyor. İçinde bulunduğum yönetici grubunda da son dönemin en çok tartışılan işe alım konusu bu. İmkânı olan şirketler son mülakatı yüz yüze yapıyor. Uzaktan ekran paylaşımında iyi görünen ama karşı karşıya gelince en temel soruları bile cevaplayamayan adaylar çıkıyor ve sonunda eleniyorlar. Zaman ve para kaybı ama yanlış işe alımın maliyetinden daha iyi olduğu düşünülüyor. AI kullanımı sadece teknik mülakatta değil; özgeçmişlerde, davranışsal sorularda, hatta ChatGPT'nin yazdığı S.T.A.R. formatlı yanıtlarda bile yayılmış durumda. Güvenilir referans kontrolü her zamankinden daha önemli hale geldi. Eski yöneticinin anlattıklarıyla CV'de yazanların tamamen farklı olduğu durumları defalarca gördüm. En baştan bu alanda doğrudan deneyimim yok diye dürüst olsaydı belki işe alırdık ama yalan bu kadar baskın olunca güven duygusu hiç oluşmuyor.
Son zamanlarda aday mülakatlarında yaklaşık %50'si live GenAI'yi gerçek zamanlı kullandı. Şimdiye kadar kimin AI kullandığını anlamak çok kolaydı. Doğal bir sohbet içinde hemen belli oluyor. İronik olan şu ki son aday da soruyu sürekli tekrar edip sonra 10-15 saniye bekliyordu. Bu da bu tür testlerin sorunun temel çözümü olmadığını gösteriyor. Hatta yeni sorunlar üretip çok iyi adayların elenmesine yol açıyor.
"AI kullanmak hile değil de, gerçek işte yapacağı şeyi önceden yapmak sayılırsa?" Bu açıdan bakınca o mülakat aslında oldukça etkili, küçük ölçekli bir <i>gereksinim yorumlama</i> örneği oluyor. Sonuçta insanların işte kullanacağı araçları özgürce kullanmasına izin verirken, aynı zamanda işin ve dilin özündeki anlayışlarını test etmek daha olumlu bir yön gibi geliyor. Gereken şey sadece LeetCode'dan uzaklaşmak değil, daha iyi bir yöntem bulmak.
Sonuçta her şey "duruma bağlı". Live coding mülakatları da öyle. Aday açısından en iyi deneyim olmayabilir ama Meta, Google gibi büyük ölçekli şirketlerde, başka yöntemlere göre
false positiveoranını, yani gerçekte yeterli olmayan kişiyi işe alma riskini daha iyi azaltıyor. Yine de mülakatçılar yeterince eğitimli değilse ve sorular fazla bilmece gibiyse, çok LeetCode çalışmamış ya da akademiden yeni çıkmamış biri için süreç çok zor oluyor. Ben 6 yıldır assessment alanında çalışıyorum ve Fortune 10'dan startup'lara kadar çok farklı işe alım süreçlerini doğrudan gördüm. Adaylara gerçek işe benzer değerlendirmeler yapılmasını savunuyorum; eskiden kullandığım, neredeyse unpaid labor gibi duran "gerçek iş" ifadesinden artık hoşlanmıyorum. Değerlendirme, şirketin yüksek maaş teklifini güvenle verebilmesini sağlayan bir araç olmalı. AI'ın gelişiyle kısa take-home görevlerde bile adaleti korumak zorlaştı. Bu yüzden bazı şirketler yeniden onsite mülakat, gerçek zamanlı gözetim gibi uç yöntemlere dönüyor. Bana göre kusursuz çözüm, tüm adayların aynı zaman, ortam ve araçlarla kendi en iyi performansını gösterebilmesini sağlamak. Bu konuyu sürekli düşünüyorum ama hâlâ yanıtı bulmuş değilim."Meta, Google seviyesinde işe yarıyor" deniyor ama ortada veri yok. Facebook ya da Google çıkışlı F seviye geliştiricilerle çalıştım. Pratikte bu büyük şirketler bile çalışanlarının %3-5'ini işten çıkarıyor; bu da mülakatın tek başına
false positiveleri iyi yakalayamadığının kanıtı. Mülakatçıların harcadığı zamana kıyasla %3 hata oranı bana çok yüksek geliyor. Aslında eskiFizzbuzzdüzeyinden pek farklı değil.Bir duvar ustasına duvar ördürmek yerine, sadece sertifikasını doğrulatıp işe alıyor gibisiniz. Birçok meslek böyle işliyor. Eğer yetkinliği yetmezse işe aldıktan sonra yollarınızı ayırırsınız. Bu aşağılayıcı kurumsal mülakat süreçlerinden geçmeye gerek yok.
Gördüğüm en iyi mühendisler çoğu zaman
false negativeolarak sınıflanan kişilerdi. Live coding mülakatında gerilip kendilerini doğru gösteremiyorlar. Bu yüzden böyle mülakatların "iyi çalıştığı" kesin bir yargı gibi sunulmasına katılmıyorum."Duruma bağlı" dedikten sonra "live coding mülakatları iyi çalışır" diye kesin konuşmak kendi içinde çelişkili. Aynı mantıkla ben de "duruma bağlı ama live coding mülakatları işe yaramaz" diyebilirim. Mantıksal olarak bir fark yok.
leet-code'u geçebilmek, gerçekten problem çözme becerisi olmayan insanları elemekte işe yarayabilir. En iyi çözüm, adayın sahip olduğu araç ve ortam içinde en iyi performansını verebilmesini sağlamak olurdu. Ama pratikte en adil yöntem belki de leetcode sorularını yüz yüze, beyaz tahta başında, mülakatçıyla pair programming yaparak çözmek olabilir. Belki de gerçekten rahat ortam budur.
Bence iki açıklama da aynı anda doğru olabilir. Gerçekten işini yapamayan "senior" geliştiriciler var ve bunları elemede live coding yardımcı oluyor. Ama insanlar başka nedenlerle de mülakatta başarısız olabilir.
Live coding'de iyi olup büyük ölçekli sistem tasarımı deneyimi olmayan birçok geliştirici de var. Bu kişiler teknik borç, anti-pattern ve tutarsızlıklar ekleyerek kod tabanını daha da kötü hale getirebiliyor. Aslında asıl kaçınılması gereken tip bu. Şirketler mevcut senior'ların junior'ları kontrol edeceğini varsayıyor ama hangi şirkete gitseniz "bizim codebase çöp" deniyor; dolayısıyla bu çözüm de pek etkili görünmüyor.
Kişiye odasında tek başına oturup kod yazma imkânı verirseniz, sadece yapay bir ortamda performans gösteremeyen çok iyi insanları kaçırmamış olursunuz.
Son dönemdeki live coding artık basit bir kodlama testi olmaktan çıktı; birçok algoritmayı ezberlemeyi ve 30 dakika içinde iki üç algoritmayı birleştirip problem çözmeyi gerektiriyor. Soruyu çözmeye tüm zaman gidince, gerçek kodlama becerisini gösterecek vakit bile kalmıyor.
20 yıllık kariyerimde gerçekten o söz edilen "işe yaramaz senior" tiplerle hiç birlikte çalışmadım. CV ve 15 dakikalık bir konuşmayla onları ayıklamak zaten mümkündü. Buna karşılık beyaz tahta mülakatını geçip ekibin verimliliğine zarar veren çok daha fazla insan gördüm.
Neden kısa bir süre baskısı altında, beyaz tahtanın önünde aynı anda düşünüp açıklama yapmanın zorunlu olduğunu anlamıyorum. Amaç gerçekten işi yapamayanları elemekse, bunu böyle yapmak şart değil.
Bana göre bir işte performansı gerçekten görmenin tek yolu, o işi gerçekten yaptırmaktır. Bunun yerine geçebilecek başka değerlendirme yöntemleri olsa bile, gerçek işi yaptırma imkânınız varsa başka bir şeye gerek kalmaz. Eğer şirketin işi mülakatta yaptırılabilecek kadar parçalara ayrılamayacak kadar karmaşıksa, büyük olasılıkla şirket zaten gereksiz yere aşırı karmaşık şeyler yapıyordur. Mesela 10 kilogram kaldırma yeteneğini görmek istiyorsanız, kişiye gerçekten 10 kilogramlık bir yük kaldırırsınız. Ama bunun yerine "gücünü ölçeceğiz" deyip "pantolonunu çıkar ve 1 kg'lık kovayı kalçanla kavrayıp kaldır" gibi tuhaf bir sınav yapılıyor. Sonuçta bakmanız gereken şey sadece işin gerçekten gerektirdiği beceriler. Aday şefse gerçek mutfakta yemek yaptırın, destek danışmanıysa simülasyonda iletişimini gözlemleyin. Telefon screening için de gerçek zamanlı ekranı izleyebilirsiniz.
"Mülakatta gerçekten iş yaptırırsanız hile ya da ücretsiz emek sorunu doğmaz mı?" itirazı var. Eğer mülakat görevi şirket tarafından kullanılırsa hukuki sorunlar da çıkabilir.
Bir gün, bir hafta ya da bir ay doğrudan işe alıp uygun çıkarsa kalıcı işe çevirmek yönünde öneriler de var. Ama bu yöntem ABD tarzı employer healthcare sistemiyle pek uyumlu değil.
Şirket açısından çok fazla zaman aldığı için böyle yapılmıyor. Bu yüzden
false positiveyerinefalse negative, yani iyi adayı yanlışlıkla eleme yönüne kayan proxy'ler kullanılıyor.Gerçek iş yaptırmayı mülakatta istemenin "ücretsiz emek" gibi algılanması konusuna ne düşündüğünüzü merak ediyorum.
Yeni bir organizasyona uyum sağlamak zaman aldığı için, gerçek işle test etmek daha da verimsiz olabilir. Live coding değerlendirmesi iletişim, problem çözme ve saf kodlama becerisini ölçmek için daha iyi olabilir.
Çocuk sahibi olduktan sonra mülakat kodlama performansım ciddi biçimde düştü. Eskiden hiç böyle olmazdı ama artık mülakatta kaybedilecek çok şey var gibi geliyor. Sağlık sigortası, kredi, emeklilik gibi şeyleri düşününce baskı çok artıyor. Mülakat sırasında tamamen donup kalmak ve çözümün aklıma ancak sonradan gelmesi çok acı veriyor. Pratiğe daha fazla zaman ayırdıkça garip biçimde daha kötü oluyorum. Bakmakla yükümlü olduğum insanlar yüzünden pratik yapmak bile suçluluk hissettiriyor. Öğrenme etkisi de zayıf kalıyor, hatta daha çok içime kapanıyorum. Big Tech'te çalışırken gördüğüm şey şu: bu mülakat modeli çok "herkesi eşit şekilde test edelim" mantığıyla getirildi ama insanların yaşam koşullarındaki değişimleri ve dengesizlikleri hiç hesaba katmıyor. Bugün stresle iyi baş eden biri birkaç yıl sonra aynı durumda olmayabilir. Önyargıyı kaldırma niyetiyle başlıyor ama yöntemin değişmesi gerektiğini düşünüyorum.
Bu duygularda yalnız değilsin. Yaş aldıkça öğrenme hızı düşüyor, boş zaman azalıyor ve leetcode pratiğinin verimi geriliyor. Sonunda sadece zamanı daha çok olanların ödüllendirildiği bir düzene dönüşmesi sinir bozucu.
Stresi azaltmak için meditasyon, nefes egzersizleri, L-Theanine, beta bloker gibi yöntemleri denemeni öneririm. Akıllı saatle kalp atışını ve tansiyonu izlemek de faydalı olabilir. Bu yöntemler stres sarmalını gerçekten azaltabiliyor.
Bu, iş stresinden nitelik olarak farklı, çok daha yoğun bir stres ortamı. Google mülakatındaki deneyimimi paylaşayım: Ben Hollanda'nın ilk yerel arama motorunu kurmuş kişiyim ama Google'da kovboy şapkası takan bir mülakatçı beyaz tahtada marker ile binary search yazmamı istedi. Normalde elle yazı yazmıyorum, sadece klavye kullanıyorum; ayrıca tasarladığım arama indeksi deneyimime de hiç bakılmadı. Belki de Google "kovboy" zihniyeti arıyordu.
Ben de bir zamanlar Google recruiter'ın ısrarıyla mülakata girdim ama mülakatçı o kadar kötüydü ki teknik mülakatı atlamış olmama rağmen sonrasında Google'dan gelen tüm teklifleri reddetmeye başladım. Soruların çoğu "oltaya getirme" tarzındaydı ya da gerçek dünyayla ilgisiz, çok eski UNIX yapıları soruluyordu; örneğin inode yapısı gibi. Rol ile hiçbir ilgisi yoktu. Şirketlerin mutlaka mülakat sorularını takip ettiği, geri bildirim topladığı ve mülakatçıları eğittiği bir süreç olmalı. Hâlâ çok fazla şirkette sorular, mülakatçının kişisel zevkine göre belirleniyor.
Bu yapı aslında tam da amaçlandığı gibi çalışmış. Böyle şirketler, o şirkette karşılaşacağı her türlü küçük düşürülmeyi kaldırabilecek insanları istiyor. Demek ki birbirinize uygun değilmişsiniz; bu açıdan iki taraf da kazanmış.
Binary search yazdırılmasını aşağılayıcı bulduysan, belki de fazla gururlusun.
Ortada yıllık 250 bin dolar ve ek Google hisse opsiyonları varsa, bir günlüğüne "aşağılanmayı" seve seve göze alabilirim.
Ben live coding screening'i "kod üzerine sohbet" olarak görüyorum. Adaya mülakatın amacının, birbirimizle iletişim kurup kuramayacağımızı görmek olduğunu açıkça söylüyorum. Sadece teknik olarak iyi olmak yetmez; birlikte çalışabilmek de gerekir. Örneğin konuşma sırasında yanlış anlama nedeniyle hatalı implementasyon yapıyorsa ya da ne kadar iyi kod yazarsa yazsın teknik sohbet kuramıyorsa bu bir sorundur. Bu yüzden Fizzbuzz tipi sorular önemli; yalnızca beceriyi değil, "teknik tartışma" kabiliyetini de test ediyor.
Evet, live coding mülakatlarının özü aslında "problemi çözebiliyor musun" değil, "nasıl çözeceğini açıklayabiliyor musun" sorusu. Bir miktar teknik temel ve iletişim becerisi asıl mesele. Gerçek işin büyük kısmı teknik olmayan yöneticilere bir şeyleri açıklamak olduğundan, bunu test etmek olarak da görebilirsiniz.
Bu yaklaşım güzel. Ben FizzBuzz'ı en az 3 dilde, 4 farklı şekilde çözebilirim; 12 varyasyonun tamamını da açıklayabilecek durumdayım.
Ben de bu sorunu görüyorum ve net bir alternatif olmadığına da katılıyorum. Kariyerim boyunca gerçekten "mühendis gibi konuşup davranan ama aslında kod yazamayan" birçok insan gördüm. Mülakatta kodlama becerisini göz ardı edip sonradan pişman olduğum da çok oldu. Genç geliştiriciler ayrıca işe alım sürecindeki çeşitli aşamaların daha yaşlı adayları avantajlı hale getirdiğini de anlamalı. Gösteriş amaçlı "uzman" paketlemelerle dolaşan ve gerçek kodlama becerisi olmayan çok fazla mühendis olduğunu biliyorum. Birini kod yazarken hiç görmeden işe almak, sadece CV, sohbet ve referansla bir gruba gitarist almak gibi. Hayatında hiç gitar çalmamış ama gitar konusunda uzman gibi görünen biri yine de seçilebilir. Özel bir yeterlilik şartı olmadan bu şekilde geçen insanlar gerçekten var. Mülakatta doğrudan kanıt yerine tahmine dayanırsanız, sonunda kaçınılmaz olarak önyargı ve peşin hükümler devreye girer.
"Sorunlar var ama alternatif yok" deniyorsa, doktorlar ve avukatlarda olduğu gibi lisans/sertifika temelli sistemler de var. Kimse ameliyat öncesi bir doktorun prova yapmasını istemiyor. Risk çok daha yüksek olmasına rağmen. Aslında ağır doğrulama süreçleri daha çok alt kademelere uygulanıyor; etkisi çok daha büyük olan yöneticiler ve üst düzey pozisyonlar ise daha kolay geçiyor.
Ben beyaz tahtada pseudocode yazdırmanın daha iyi olduğunu düşünüyorum. Sözdizimi stresini azaltıyor ve problem çözme mantığını daha net gösteriyor. Aynı zamanda benim çalışma tarzımla da uyumlu; çünkü fikirleri beyaz tahta üzerinde birlikte geliştirmeyi seviyorum.
"Stres, beceriden ayrı bir şeydir" durumu sürekli tekrar ediyor. Microsoft'un makalesi de berbattı. Çoğu tavsiye sadece "LeetCode'u daha çok çöz" düzeyinde kalıyor ve stresi, yani kortizol etkisini göz ardı ediyor. Ben stresli ortamın kendisine alışmaya yönelik pratik yapıyorum. Arkadaşlar bu kadar yoğun simülasyon yaptıramıyor, koçlar ise saatlik olarak çok pahalı. Bu yüzden bugünlerde Tough Tongue AI adında bir yan proje geliştiriyorum. Sesle yanıt verilen bir live code editor içinde gerçek zamanlı sorular, kesintiler ve anlık geri bildirim sunuyor. Bu pratik sayesinde "birisi beni izliyor" gerginliğine giderek daha çok alışıyorsunuz. Eğer live coding mülakatları devam edecekse, algoritma değil doğrudan fizyolojik tepkiyi, yani stresi eğitmenin yoluna ihtiyaç var.