Yıkma: Herhangi bir teknik görüşme problemine nasıl yaklaşılır

Herhangi bir sorunun nasıl daha kolay yönetilebilir hale getirileceğini belirleyen güvenli bir tarif.

1. Soruyu aldığınızda (tek bir kod satırı yazmadan önce)

Soruyu anladığınızdan emin olmanın en kolay yolu, sınama durumlarında dolaşmaktır.

Görüşmecinizle netleştirilmesi gerekenler:
Beklenen girdi nedir? Beklenen çıktı nedir?
Belirli test durumları hakkında sahip olabileceğiniz varsayımları

Test senaryolarını inceledikten sonra, izlemeniz gereken değişkenleri ve bu problem için ne tür veri yapılarının en anlamlı olacağını not edin.

Her zaman sorunu çözmenin yollarını düşünün. Çözebileceğiniz daha küçük, daha kolay bir alt problem var mı? Ve eğer öyleyse, bu çözüm neye benzerdi?

2. Kodu yazmak (ve takıldığınızda ne yapılacağını)

Algoritmanızı çözüp mantığınızı açıkladıktan sonra yapmanız gereken bir sonraki şey fikrinizi koda çevirmektir.

Bu noktada, kaba kuvvet tamamen tamamdır. Bir çalışma çözümü oluşturmak (çalışma zamanı ve alan verimliliği mükemmel olmasa bile), kodunuzu erken optimize etmeye çalışmaktan kaynaklanmaktan çok daha iyidir.

Kodunuzu yazarken, unutmayın:

  1. Şu anda hangi kod üzerinde çalıştığınız ve neden çözümünüze eklediğiniz hakkında net bir şekilde konuşun
  2. Belirgin değişken isimleri kullanmaya çalışın ve kodunuzu okumayı kolaylaştırın
  3. Görüşme süreciniz boyunca görüşmeci ile konuşun ve çözümünüzle hangi artıları ve eksileri kazanabileceğinizi öğrenin
  4. Mümkünse kodunuzu modüler yapın (yardımcı işlevler arkadaşlarınızdır!)

Eğer sıkışırsanız ya da düşünmek için biraz zamana ihtiyacınız varsa, bu garip sessizliği kullanma hakkında…

Bu hepimize olur ve bir görüşme sırasında bununla karşılaşmak tamamen normaldir. Tecrübelerime göre, teknik röportajlarımın neredeyse tümü için kendime düşünmem gereken ve görüşmeci ile konuşamayacağım bir an geldi. Bu olduğunda, genellikle aşağıdaki satırlar boyunca bir şeyler söylerim:

Çözümümü düşünmek ve mantıklı gelip gelmediğine bakmak için bir saniyeye ihtiyacım var
Bunun doğru bir yaklaşım olup olmadığından tam olarak emin değilim, çalışmamı iki kez kontrol edeyim.
Görünüşe göre belki (önerilen çözümün bir parçasını ekleyin) aslında işe yaramayabilir (bazı yeni davalar ekleyin)… bunun nasıl ele alınacağını düşünüyorum

Görüşmeci genellikle sizin tarafınızdadır ve başarılı olduğunuzu görmek ister - sadece size bir ipucu verdiğini unutmayın, asla göz ardı etmeyin!

3. Çözümünüzü gözden geçirme ve optimizasyonlar ekleme

Kodunuzu yazmayı tamamladığınızda, programınızın beklediğiniz gibi davrandığından emin olmak için bir test senaryosuyla takip edin.

Bu noktada dikkate almak iyidir:

  1. Kaçırmış olabileceğiniz olası kenar davaları
  2. Herhangi bir hata nedeniyle kapalı (özellikle indekslerken veya bir döngü kullanırken)
  3. Kodunuzda temizleyebileceğiniz herhangi bir tekrarlama var mı?

Optimize etmeye çalışırken sorulacak sorular:

  1. Geçerli çalışma süresi ve mekan karmaşıklığı nedir?
  2. Farklı bir veri yapısı kullandıysanız veya yaklaşımınızı biraz değiştirdiyseniz iyileştirme için yer var mı?

Kodunuzu gözden geçirirken, istenmeyen bir hata yapmış olmanızın tamamen mümkün olduğunu unutmayın; programınızı ilk kez görmekte olduğunuz bir başkasının çalışması gibi izlemeye çalışın!

Hepsini sarmala

Görüşme bir beceridir ve diğer beceriler gibi pratikle de geliştirilebilir! Teknik problemlerle çalışmak, tercih ettiğiniz dilde ve veri yapılarında rahat etmek, görüşme sırasındaki güçlü performans şansınızı arttırmak için önceden yapabileceğiniz işler olabilir.

İncelenecek soruların, veri yapılarının ve kaynakların bir listesi için, burada daha fazlasını görebilirsiniz: 4 Hafta Bir Sonraki Teknik Mülakatınızdan Çekilmeyi Planlayın

Her röportajın bir öğrenme deneyimi olduğunu ve daha önce sahip olmadığınız değerli bir içgörü kazandığınız sonucundan bağımsız olarak unutmayın. Olumlu kalmak ve geribildirimden ders almak, sürekli gelişmek için harika bir yoldur! İyi şanslar!

Eğer bu rehber size herhangi bir şekilde yardımcı olabilseydi, lütfen bir alkış ya da iki tane yollayın :) bu benim için çok şey ifade ediyor - teşekkür ederim ve yolculuğunuzda iyi şanslar!