Facebook’ta bir geliştirici işi buldum. Röportajlarım için şu şekilde hazırlandım.

Silicon Valley teknoloji şirketlerinde yedi yerinde röportajı bitirdim. Sonunda Facebook’tan bir yazılım mühendisliği işi teklifini kabul ettim.

İşte bu röportajlara nasıl hazırlandım ve bu arada öğrendiklerim.

Silikon Vadisi’ne doğru çok yıllık yolculuğum

Avustralya’daki üniversitemde Bilgisayar Bilimi okurken, Silikon Vadisi’nde bir yazılım mühendisi olarak geleceğimi hep hayal etmiştim.

Tüm teknoloji endüstrisinin yenilikçiliğinin ve hatalarının merkezinde olma fikrini sevdim. Bu hedef beni motive etti. Odaklanmamı sağladı.

p Lider iOS Mühendisi olarak Melbourne’daki harika bir şirketten ayrıldım ve okumak için doğduğum şehir Perth’e geri döndüm. Orada Silikon Vadisi’nde önümdeki görüşme sürecine hazırlanacaktım. İnanılmaz derecede zor ve çetin olacağını biliyordum.

Bir yazılım mühendisleri odasına teknik görüşme sürecinden bahsederseniz, çoğu kişi genel görüşme uygulamalarına karşı çıkacaktır. Bir çok argüman, bir beyaz tahtadaki algoritmaları çözmenin aslında bir yazılım mühendisinin günlük görevlerini temsil etmediği veya bunlara tercüme etmediği gerekçesinden gelir.

Bu makale uğruna, o konuşmaya girmeyeceğim. Bunun yerine, bu farklı türde mülakat uygulamalarını bir adayın bakış açısından inceleyeceğim, ayrıca süreçten öğrendiklerime de odaklanacağım.

Röportaj bir beceridir

Hazırlığım sırasında, görüşmenin zor olacağını her zaman biliyordum. Ama dürüst olmak gerekirse, ilk röportajıma diz boyu girene kadar ne kadar zor olacağı hakkında hiçbir fikrim yoktu.

Görüşmelerin öncesinde, adaylarla röportaj yapma konusunda sektör deneyimi olan kişilerle telefonda kodlama ve beyaz tahta görüşmelerini simüle eden hem ücretli hem de ücretsiz hizmetleri kullandım. Bu uygulama görüşmeleri beni ilgili baskıya hazırlamak için çok önemliydi. Ancak daha sonra fark ettiğim gibi, gerçek bir röportajın yalnızca küçük bir kısmını oluşturdular.

Hayalinizdeki işte röportaj yapmamanızı tavsiye ederim. Gerginlik inanılmaz derecede bunaltıcı olabilir ve ancak pratikle köreltilebilir.

Hayattaki diğer pek çok şeyde olduğu gibi, pratik yapmak kendinize olan güveninizi artıracaktır.

Karşılaştığım farklı röportaj türleri

Ön telefon ekranlarında yeterince hazırlanır ve iyi performans gösterirseniz, sahaya gelip tam gün boyunca röportaj yapma fırsatınız olacak. Bu görüşmeler, görüşme yaptığınız şirkete bağlı olarak genellikle dört ila altı saat sürer.

Silikon Vadisi’ne yaptığım seyahat sırasında, toplamda yedi yerinde görüşme ayarlamayı başardım. Bu bana röportaj için mevcut durum hakkında benzersiz bir bakış açısı sağladı.

Tipik olarak, yerinde bir site üç ana konuyu kapsayacaktır: algoritma, mimari tasarım ve davranışsal. Ben de bunun için çalıştım ve hazırlandım. Ancak, bu eğilimi bozan ve görüşmelerini daha pratik becerileri kapsayacak şekilde genişleten bazı şirketler var.

Karşılaştığım her konuyu kısaca gözden geçireceğim.

Algoritma Görüşmeleri

Karşılaşacağınız en yaygın röportaj türü. Görüşmeci sizden, veri yapıları, sıralama algoritmaları, özyineleme, zaman / uzay karmaşıklığı analizinin yanı sıra desen ve uç durum tanıma hakkındaki bilginizi değerlendirecek bir beyaz tahtadaki bir sorunu çözmenizi isteyecektir. Bu röportajda, genellikle bir kaba kuvvet çözümü bulacak ve daha sonra bu çözümü geliştirmeye çalışacak ve önerdiğiniz farklı çözümlerle varsa ödünleşimleri tartışacaksınız.

Bu, hazırlığımın temelini oluşturuyordu. Altı hafta boyunca her gün, algoritmaları ucuz bir takılan beyaz tahtada çözdüm, zaman / mekan karmaşıklıklarını analiz ettim ve her kod satırında ne olduğunu gerçekten anlamaya çalıştım .

Şahsen, beyaz tahta algoritmalarından gerçekten zevk alıyorum çünkü derlenebilir sözdizimi yazma konusunda endişelenmeme gerek yok (çoğu zaman), bu da yalnızca elimdeki soruna odaklanmama izin veriyor. Başkaları beyaz tahtadan hoşlanmayabilir, ancak onlara sürekli olarak pratik yapmayı söyleyebilirim ve bu onların fikirlerini değiştirebilir.

Mimari Tasarım Görüşmeleri

Bu ilginç ve gerçekten hafife aldığım bir röportaj. Görüşmeci sizden diğer yaygın sistemlerin yanı sıra otopark bilet sistemi, chat messenger, twitter feed gibi bir sistem (tabii ki beyaz tahta üzerinde) tasarlamanızı isteyecektir.

Değerlendirildiğiniz şey, geniş bir konsepti nasıl ele aldığınız ve tüm gereksinimleri ve kısıtlamaları karşılayan bir sistemi nasıl tasarladığınızdır. Ancak, gereksinimleri ve kısıtlamaları tanımlayan doğru soruları sormak adaya kalmıştır. Bu röportaj, daha çok bazı çizim şemaları ve hatta belki de sınıf yapılanmasıyla karıştırılmış bir konuşma. Her şey oldukça üst düzey olduğundan gerçek bir uygulama kodu yazmayacaksınız.

Doğal olarak, sistemlerin nasıl çalıştığına dair bilgilerinizi kapsayacak şekilde sohbeti yönlendirmelisiniz. Bir arka uç mühendisi iseniz, o alanda daha önce biraz uzmanlığınız olmadıkça istemci uygulaması ayrıntılarının işleyişine gerçekten giremezsiniz. Ben bir iOS mühendisiyim, bu yüzden API uç noktalarının nasıl ölçekleneceği yerine mimari kalıplar, işlevselliğin modülerleştirilmesi, tasarım kalıpları, işçiler, AWS vb. Hakkında konuştum.

Davranışsal Görüşmeler

Görüşmeci size kendiniz ve belirli tür durumlarla nasıl başa çıktığınız hakkında sorular soracaktır. Bunun için hazırlık yapmak diğerleri kadar zor değil ancak sizin adınıza çok fazla iç gözlem gerektiriyor.

Sorular genellikle şu çizgidedir:
Başarısızlıkla nasıl başa çıkarsınız?
En büyük zayıflığınız nedir?
Anlaşmazlıkları nasıl çözersiniz?
Neyi farklı yapardınız?

Bunu alt üst etmenin oldukça zor olacağını düşünüyorum ama birçok insanın yaptığını duydum. Güçlü yönlerini zayıf yönler olarak gizlemeye, görüşmecinin duymak isteyeceğini düşündükleri bir şeye yanıtlarını değiştirmeye çalışıyorlar ve hatta başarısız projelerin suçunu başkalarına aktarıyorlar.
“Benim zayıflığım benim” fazla odaklandım ”
” Tamamen Jerry’nin hatasıydı, projenin çoğu için hastaydı “

Bu görüşmeciler, berbat insanları tespit etmek ve saçmalıklara son derece dikkat etmek için eğitilmiş ve kalibre edilmiştir. Adaylığınızın pencereden atılmasını sağlamanın hızlı bir yoludur. Sadece samimi olun, işinize tutku gösterin, kusurlarınıza sahip çıkın, gelişim için inisiyatif gösterin ve başaracaksınız.

Kültür Uyumu

Bu genellikle Davranışsal görüşmeyle eşleştirilir ve şirketin değerleriyle uyumlu olup olmadığınızı bulmaya odaklanır. Örneğin Facebook, hacker benzeri cesur olma ve yeni fikirler gönderme, deney yoluyla deneme, bir şeyleri kırmaktan korkmama kültürünü takip ediyor. Airbnb, insanların gittikleri her yere ait olduklarını hissettiği bir dünya yaratmak isterken, harika konukseverlik becerilerine sahip insanlar arıyorlar.

Pek çok büyük teknoloji şirketi, kültüre büyük önem verir ve o kişinin değerleriyle uyumunu temel alarak insanları işe alır. Bu şirketlerden birinde röportaj yapıyorsanız, değerlerine bakmanız ve görüşmecinizle ilişkilendirebileceğiniz ve onlarla iletişim kurabileceğiniz geçmiş deneyimleri bulmanız önemlidir.

Çift Programlama

Gerçek dünyada kullanacağınız gibi, geliştirme ortamı ile kurulmuş bir bilgisayarın önünde başka bir mühendisle eşleştirileceğiniz ilginç bir kategori. Size tamamlamanız gereken bir gereksinim listesi içeren temel bir görev verilir, her bir görevi bitirdiğinizde görüşmeci süre sınırına ulaşılana kadar daha fazla işlevsellik uygulamanızı isteyecektir. Stack Overflow veya çevrimiçi belgeler gibi istediğiniz kaynakları kullanmakta özgürsünüz.

Bu röportajda bir adayın başarısının gerçek dünya deneyimlerine maruz kalmasıyla belirleneceğini düşünüyorum. Beyaz tahtadan farklı olarak, sözdizimsel olarak doğru kod yazmak gerekir; bu nedenle, internette veya belgelerde yanıt aramak için çok fazla zaman harcamak istemediğiniz için dilinizi ve ortamınızı içten dışa bilmelisiniz.

Önceki görevim sırasında, bir görev üzerinde çalışırken temiz kod yazıyordum ve ardından görevin tamamlandığını hissettiğimde optimizasyon yapıyordum. Bu tür bir iş akışı, bu tür görüşme için yararlı olmadı. Çok erken optimize ederek kendimi bir köşeye kadar temizlemeyi başardım ve bu da kurtarmayı daha zor hale getirdi. Hurda kod yazmanın ve görüşmeciye bunu üretimde farklı şekilde yapacağımı söylemenin temiz ve optimize edilmiş yazmaktan yeterli olduğunu gördüm.

Hataları Bulma ve Düzeltme

Mühendisler olarak yaptığımız işlerin çoğu, bize çeşitli kaynaklardan bildirilen hataları bulma ve düzeltme üzerine odaklanıyor. Bu röportajda size bulup yamalamanız gereken bir hata listesi verilecek ve ayrıca yol boyunca diğer potansiyel olarak sorunlu kodları tanımlayacaksınız.

Bu tür bir röportajın yalnızca bir örneğini gördüm ve birisinin, özellikle de küçükse, gerçekten hazırlanmasının oldukça zor olacağını düşünüyorum. Her kodlama ortamının kendi küçük tuhaflıkları ve nüansları vardır, yaptığım yama çalışmalarının çoğu, IDE (Entegre geliştirme ortamı) ve yıllar boyunca biriktirdiğim ilgili çerçevelerle ilgili önceki deneyimlerimden geldi.

Alan Bilgisini Test Etme

Programlama, bugün gördüğümüz yaygın dillerin çoğunda temelde aynıdır. Muhtemelen, bir dilde nesne tabanlı programlamayı biliyorsanız, bu beceriler çoğunlukla başka bir dilde aktarılacaktır.

Ancak bu röportaj, diller veya çerçeveler arasında aktarılamayan yönlere odaklanıyor. API, bellek yönetimi, yetenekler, kısıtlamalar, geçmiş ve benzeri konularla ilgili ortam özellikleri hakkında röportaj yapılacak.

Bu belirli konu için pratik yapmak zor olabilir. Bug bulma ve yama görüşmesine benzer şekilde, yanıtların çoğunun önceki deneyimlerden kaynaklanacağını hissediyorum. Başvurduğunuz rolün düzeyine bağlı olarak, sağladığınız yanıtlar farklı şekilde ağırlıklandırılabilir. Örneğin, kıdemsiz bir rol için başvuran bir kişi bir API’nin neden belirli bir şekilde yapılandırıldığının geçmişini bilmiyorsa, kendisine bir imtiyaz verilebilir. Ancak, kıdemli bir rol için başvuran bir aday bilmiyorsa, o zaman daha sert bir şekilde işaretlenebilir.

İşletim Sistemlerini Anlamak

Mülakat yaptığınız role veya ekibe bağlı olarak, yalnızca işletim sistemlerine odaklanan bir mülakatınız olabilir. Bu röportajda, bir bilgisayarın işletim sisteminin alt düzey mekaniğine ilişkin anlayışınızı değerlendirecek sorular sorulacak.

Kuşkusuz, bu röportaj beni hazırlıksız yakaladı. İşletim sistemleri üniversitenin ilk yıllarında öğrendiğim bir şeydi, ancak o zamandan beri performansıma yansıyan konu hakkındaki bilgilerim bulanıklaştı.

Nasıl hazırlanmalısınız

Daha önce yazdığım gibi, görüşme başlı başına bir beceridir. Günlük işinizde zaten harika bir programcı olsanız veya çalışmalarınızda harika notlar alsanız bile, bu beceriler küçücük bir görüşme odasında olduğunuzda tam olarak 1: 1 aktarılmaz. Mülakat hazırlığı ve alıştırmasında ısrar, tekrar ve tutarlılık, sonucunuzun temel belirleyici faktörleri olacaktır.

Minimum bilgi

Biri bana odaklanmam gereken alanlar olduğunu düşündüğümü sorsa, şunları öneririm:

Ne zaman başlamalı

Zaman çizelgenize bağlı olarak, daha erken başlamak isteyebilirsiniz. Görüştüğüm birçok şirket, başarısız bir adayın yeniden başvurabilmesi için 12 aylık bir bekleme süresine sahipti. Diğer taraftan, bir yıl içinde hazır olmayacağınızı biliyorsanız, şimdi sürece başlayabilir ve röportaj sürecinden geçmenin nasıl bir şey olduğunu biraz tadabilirsiniz, böylece hazır olduğunuzda kazanır ” neredeyse aynı derecede korkutucu.

Merak etmeyin

Bunu anladınız.

<”Kaynaklar

Sahte Görüşmeler

Algoritmalar

İşletim Sistemleri

Mimari Tasarım

Davranışsal

Bugün okuduklarınızı beğendiyseniz, diğer makalelerimizi iOS ve Swift geliştirmeyle ilgili kontrol edebilir veya temasa geçmek isterseniz, lütfen bana bir tweet gönderin veya beni Twitter’da takip edin <@andyyhope , bu gerçekten benim günümü güzelleştirir. Ayrıca macOS için bir metin farklılaştırma uygulaması geliştiriyorum. Gelişimini takip ettiğinizden emin olun, @SameSame_app