Zephyrnet Logosu

Veri Bilimi Kodlama Mülakat Sorularına Nasıl Cevap Verilir?

Tarih:

Veri Bilimi Kodlama Mülakat Sorularına Nasıl Cevap Verilir?


 

Veri bilimi kodlama mülakat sorularını nasıl yanıtlamanız gerektiğine dair bir tarif yok. Her zaman işe yarayacak tek bir yaklaşım yoktur. Ancak, çoğu durumda kodlama sorularını daha iyi yanıtlamanıza yardımcı olacak bazı yol gösterici ilkeler vardır.

Bu yönergeler, görüşmelere gitme ve kodlama sorularını yanıtlama deneyimi üzerine oluşturulmuştur. Bu yönergeleri dört bölüme ayırdık. Bu yönergeleri, özellikle bu konuda deneyimli değilseniz, bir kontrol listesi olarak kullanabilirsiniz. veri bilimi kodlama mülakat soruları. Daha sonra, elbette, kendi yaklaşımınızı bulabileceksiniz, belki bazı noktaları görmezden geleceksiniz ve hatta sizin için daha iyi olan bir şey ekleyebileceksiniz.

Ancak deneyiminiz ne olursa olsun, bu kontrol listesini takip ederseniz, bir kodlama sorusuna harika bir cevap verme şansınızı artırıyorsunuz.

Dört Parçalı Kontrol Listesi

 
Bu kontrol listesinin dört bölümü şunlardır:

  1. Soru Analizi
  2. Çözüme Yaklaşım
  3. Kod Yazma
  4. Kodunuzu İnceleme

Artık kontrol listesi ana hatlarına sahip olduğunuza göre, her bölümü inceleyeceğiz ve içerdiği kontrol listesi noktalarını açıklayacağız.

1. Soru Analizi

 
Kontrol listesinin Soru Analizi kısmı, birkaç dakika ayırma ve az önce aldığınız soruyu derinlemesine düşünme ile ilgilidir. Gerçek iş sorunlarıyla uğraşırken göreceğiniz gibi, önce sorun hakkında düşünmek ve onu tüm açılardan görmek için biraz zaman "kaybetmek" her zaman daha iyidir. Unutma, düşünmek asla zaman kaybı değildir!

Bu birkaç dakika daha sonra karşılığını verecek. Hemen çözümü yazmaya başlarsanız, yaklaşımınızın istenen çözüme ulaşmadığını fark ettiğinizde sıfırdan başlamak zorunda kalma olasılığınız yüksektir. Veya kodunuzu sürekli olarak değiştirmeniz ve yeniden yazmanız gerektiğini.

Sorun hakkında düşünme alıştırması yapmanıza yardımcı olacak noktalar şunlardır:

  1. soruyu anla
  2. Çalıştığınız tabloları ve verileri analiz edin
  3. Kod sonucunu düşünün

Bence. Soruyu Anlayın

Soruyu anladığınızdan emin olmak için soruyu çok dikkatli okumalısınız. Yavaşça okuyun. Ve hiçbir şeyi kaçırmadığınızdan emin olmak için 2-3 kez okuyun. Bu herkes için geçerlidir veri bilimi mülakat soruları, ne kadar kolay ya da zor olurlarsa olsunlar. Mesele şu ki, sorduğun sorunun zor mu kolay mı olduğunu bilemezsin. Sorulardan bazıları aldatıcı bir şekilde basit görünebilir, ancak yeterince ayrıntılı olmayan ve yüzeysel olma eğiliminde olan adayları ortadan kaldırmak için tam olarak orada olan bazı noktaları vardır.

Soru yazılı değilse, bir şey yakalamadıysanız görüşmeciden soruyu tekrarlamasını istemekten çekinmeyin. Bu durumda, soruyu anladıktan sonra görüşmeciye tekrarlamanız da tavsiye edilir. Bu şekilde, her şeyi doğru anladığınızdan emin olacak ve size gerekli tüm bilgileri vermemeleri durumunda görüşmecinin kendilerini düzeltmesine izin vereceksiniz.

ii. Çalıştığınız Tabloları ve Verileri Analiz Edin

Soruyu anladıktan sonra, bir sonraki mantıklı adım size verilen tabloları analiz etmektir. Bu, kaç tane tablo olduğunu ve bunların birbirine nasıl bağlı olduğunu (yabancı anahtar ve birincil anahtar) analiz etmeniz gerektiği anlamına gelir.

Ayrıca bu tablolarda hangi verilerin olduğunu görmek isteyeceksiniz. Her tabloda hangi sütunların olduğu anlamına gelir. Her sütunda ne tür veriler var. Bu önemlidir çünkü kodunuz, dize verilerini, tamsayıyı, parayı veya başka türde verileri işlemenize bağlı olacaktır. Belki de istenen sonucu elde etmek için bir veri türünü diğerine dönüştürmeniz bile gerekebilir.

Veri türünün yanı sıra, verilerin nasıl düzenlendiğini, sıralandığını ve ayrıntılandırıldığını anlamak da önemlidir. Anlamı, tabloda yinelenen değerler var mı? Veriler, örneğin müşteri düzeyinde, işlem düzeyinde vb. sunuluyor mu?

iii. Kod Sonucunu Düşünün

Kodlamaya başlamadan önce, sonucunuzun nasıl görünmesini istediğinizi bilmelisiniz. Bu, elbette, cevaplamak istediğiniz soruya da bağlıdır.

Ancak sonucu edebi araçlar hakkında düşünmek, bir satırda yalnızca bir değer mi yoksa birkaç sütunlu bir tablo mu olacak. Bu bir tabloysa, verilerinizin nasıl toplanacağını ve sıralanacağını, kaç sütun göstermeniz gerektiğini vb. yeniden düşünmeniz gerekir.

 
Soru Analizi – Örnek

Kontrol listesinin bu ilk bölümünün nasıl uygulanması gerektiğini size göstermek için Dropbox kodlama sorusunu kullanacağız. Soru şu şekilde:

Veri Bilimi Kodlama Mülakat Sorularına Nasıl Cevap Verilir?


 

“Pazarlama ve mühendislik departmanlarında bulunan en yüksek maaşlar arasındaki farkı hesaplayan bir sorgu yazın. Sadece maaş farkını çıkarın.”

Soruya bağlantı: https://platform.stratascratch.com/coding/10308-salaries-differences

Soruyu dikkatlice okursanız, en yüksek maaşı bulmanız gerektiğini anlayacaksınız. Tamam, ama her departmandaki en yüksek maaş değil, sadece iki departman: pazarlama ve mühendislik. Bu iki bölümdeki en yüksek maaşı bulduktan sonra aralarındaki farkı hesaplamanız gerekiyor.

Artık soruyu anladığınıza göre, içindeki tabloları ve verileri analiz edebilirsiniz. Çalışacağınız tablolar db_employee ve db_dept'tir. db_employee tablosu, şirket çalışanları hakkında verileri içerir. Beş sütunu vardır:

id int
İsim Varchar
soyadı Varchar
maaş int
departman_kimliği int

Görüyorsunuz, isim sütunları varchar veri tipindeyken maaş bir tam sayıdır. Maaş değerlerinde ondalık sayı olmadığını bilmek önemli olabilir. Burada bulunan önizleme seçeneğini kullanırsanız, bu verilerin benzersiz olduğunu görürsünüz: her çalışanın kendisine tahsis edilen yalnızca bir maaş değeri vardır. Ayrıca bilinmesi gereken önemli bir husus; ayrıca, her çalışan için yıllar boyunca tüm önceki maaşlara sahip olacağınız geçmiş veriler de olabilir. Bu tabloyu db_dept tablosuna bağlayan bir yabancı anahtar olan Department_id sütunu vardır:

id int
bölüm Varchar

Bu tabloda sadece iki sütun var. Bu, tabloda gösterilen altı departmanla, yinelenen yok, yalnızca departmanların bir listesidir.

Güzel, verileri analiz ettin. Şimdi soruya geri dönün ve ikinci cümleyi okuyun. Evet, bu, çözümünüzün ne olması gerektiğine dair talimattır. Bir sütunda bir bölümden en yüksek maaşı, ikinci sütunda diğerinden en yüksek maaşı ve üçüncü sütunda aralarındaki farkı göstermenize gerek yoktur. Hayır, çıktı yalnızca fark olacaktır:

Veri Bilimi Kodlama Mülakat Sorularına Nasıl Cevap Verilir?


 

Bu çıktı sütununun ne adlandırılması gerektiğine dair bir talimat yoktu. Bu nedenle, adını ne koyarsanız koyun veya hiç adlandırmamanız bir hata olmayacaktır. Önemli olan, bu sonucu elde etmeniz ve başka bir şey olmamasıdır.

Bununla, kaliteli bir kod yazmak için temellere sahip olursunuz. Şimdi sıra stratejiye geldi: Nasıl bir kod yazacaksınız?
 

2. Çözüme Yaklaşım

 
Bir kod yazmaya başlamadan önce, kodunuzun nasıl görüneceği konusunda net bir fikriniz olması da önemlidir. Kodlama, yalnızca sizin (açık!) çözüm fikrinizi programlama diline çevirmek olmalıdır.

Çözümünüze nasıl yaklaşmanız (veya bir kod yazmanız) gerektiğini düşündüğünüzde, aşağıdakileri göz önünde bulundurun:

Veri Bilimi Kodlama Mülakat Sorularına Nasıl Cevap Verilir?


 

  1. Kod yazmanın birkaç yolu var mı?
  2. Varsayımlarınızı belirtin
  3. Çözümünüzü adımlara ayırın
  4. Kodlamaya başla

Bence. Kod Yazmanın Birkaç Yolu Var mı?

Çözüm denilince akla ilk gelen bazen en iyi çözümdür. Ve bazen değil. Nasıl bilebilirsin? İlk fikri edindikten sonra işin püf noktası, sorunu çözmenin başka bir yolu olup olmadığını düşünmektir. İçinde Programlama dilleri, çoğu zaman birkaç olası çözüm vardır.

Bunu aklınızda bulundurun. Bunun önemli olmasının birkaç nedeni var. İlk olarak, uzun bir kodla çözmeyi düşündüğünüz bir şeyi kolayca çözen bazı basit numaralar veya işlevler olabilir; örneğin, pencere fonksiyonları veya sonsuz alt sorgularla bir kod yazmak yerine CTE'ler.

Her zaman mümkün olduğunca az kod satırıyla yazması daha kolay olanı kullanın. Görüşmedeyken, emrinizde olan zamanı da yönetmeniz gerekir. Bu yollardan biridir.
Tabii ki, birkaç eşit derecede karmaşık çözüm varsa, kodun nasıl performans göstereceğini düşünün. Büyük miktarda veride, farklı kodların gerçekleştirilmesi diğerlerinden çok daha fazla zaman ve bellek gerektirebilir.

Kısacası, kod verimliliğini iki şekilde düşünmelisiniz. Biri kişisel verimlilik veya ne kadar hızlı kod yazabileceğinizdir. İkincisi, kodun verimliliği veya kodun istediğinizi ne kadar hızlı gerçekleştireceğidir.

ii. Varsayımlarınızı Belirtin

Varsayımlarınızı belirtmek birkaç nedenden dolayı önemlidir. Birincisi, yüksek sesle söylemek ve yazmak, yaklaşımınızla ilgili olası sorunları görmenize yardımcı olacaktır.

İkinci önemli neden, görüşmecinizi sizinle iletişim kurmaya ve hatta genellikle yaptıkları gibi yardım teklif etmeye davet etmesidir. Ne yapmak istediğinizi ve nedenini bilmiyorlarsa, size yardımcı olamazlar. Daha önce de belirttiğimiz gibi, genellikle aynı sonucu veren birkaç çözüm vardır. Varsayımlarınızı iletmek, görüşmecinin seçtiğiniz yaklaşıma göre sizi doğru yöne yönlendirmesini sağlar. Hatta sizi çözümünüzü alt üst edecek tamamen yanlış varsayımlardan uzaklaştırır.

Üçüncü neden, bazen sorunun kasıtlı olarak belirsiz olacak şekilde kurulabilmesidir. Bu sorular doğru çözümle değil, nasıl düşündüğünüzle ilgilidir. Bu nedenle, varsayımlarınızı belirtirseniz, görüşmeciye nasıl düşündüğünüzü ve genellikle çok ilgilendiklerini gösterecektir.

Varsayımlarınızı belirtmenin dördüncü ve son nedeni, cevabı tamamen yanlış, ancak belirttiğiniz varsayımlarda doğru alsanız bile, bunun için hala bazı puanlar alacaksınız. Bu durumda düşünce şu satırlar etrafında döner: Tamam, belki aday sorulan şeyi tamamen yanlış anladı, ancak çözüm aslında anladıkları bağlamında doğrudur.

Tüm bunlar yol açar bir röportaj sorusuna doğru cevabı verdiğinizden emin olmak.

iii. Çözümünüzü Adımlara Ayırın

Bu aynı zamanda net bir çözüm fikrine sahip olmanızı ve daha sonra temiz bir kod yazmanızı kolaylaştıracak faydalı bir noktadır.

Bu durumda yıkmak, yazmak anlamına gelir. Evet, çözümünüzün tüm temel adımlarını ve işlevlerini yazın. Tabloları birleştirmeniz gerekip gerekmediğini, kaç tane tablo kullanacağınızı ve hangi birleştirmeyi kullanacağınızı düşünün. Bir alt sorgu mu yoksa CTE mi yazmalısınız? Seçiminizi yazın. Hangi toplu işlevleri kullanmanız gerektiğini, veri türlerini dönüştürmeniz gerekip gerekmediğini, verilerin belirli bir şekilde sıralanıp sıralanmayacağını, filtrelenip gruplandırılıp gruplanmayacağını vb. düşünün.

Tüm bunlar farklı adımlardır, bu nedenle bunları ve her adımda kullanacağınız ana anahtar kelimeleri not edin.

iv. Kodlamaya Başla

Bu bir bakıma acil durum noktası. Çözüme yaklaşımınızı düşündüyseniz, ancak tam çözümü gözünüzün önünde göremiyorsanız, o zaman bir kod yazmaya başlamanız yeterlidir.

Bunun arkasındaki düşünce, eksik bir çözüm verseniz bile, kesinlikle tek bir kod satırı yazmamaktan daha değerlidir. Ayrıca, bazı sorular gerçekten zor olabilir ve en deneyimli kişiler için bile tüm çözümü hemen görmek zordur. Kodlamaya başlayın ve yol boyunca bir fikir bulma şansınız var. Ve değilse, yine, en azından gösterecek bir şeyiniz var.

Aklınızda bulundurmanız gereken bir neden daha var: bazı soruların cevaplanması bile amaçlanmamıştır. Bazıları basitçe (ve kasıtlı olarak!) görüşmede size verilen süre içinde çözülmesi çok zordur. Kimse onları tamamen çözemez. Kısmi çözüm, herkesin elde edebileceği en iyisidir. Böylece diğer eksik çözümlere kıyasla ne kadar ilerlediğiniz konusunda işaretleneceksiniz.

 
Çözüme Yaklaşım – Örnek

Artık çözüm yaklaşımınız hakkında nasıl düşünmeniz gerektiğini bildiğinize göre, pratikte nasıl çalıştığını göstermek için bir röportaj sorusu kullanalım. Amazon kodlama mülakat sorusunu kullanacağız:

Veri Bilimi Kodlama Mülakat Sorularına Nasıl Cevap Verilir?


 

“Her müşterinin siparişlerinin toplam maliyetini bulun. Müşterinin kimliğini, adını ve toplam sipariş maliyetini çıkarın. Alfabetik olarak müşterinin adına göre sipariş kayıtları.”

Soruya bağlantı: https://platform.stratascratch.com/coding/10183-total-cost-of-orders

Bu soruyla iki tablodan, masa müşterilerinden ve masa siparişlerinden gelen verileri kullanmamız gerekecek. Bu sorunu aşmak için alt sorguları olan bir kod yazabiliriz. Ancak, sorgu ve alt sorgu birden çok tablodan veri kullanıyorsa, çözümün JOIN kullanılarak da yazılabileceğini muhtemelen biliyorsunuzdur. Mümkün olduğunca az kod satırı yazma tavsiyesini akılda tutarak, JOIN kullanmak daha iyidir.

Bu çözümün varsayımları nelerdir? Bir varsayım, sıfır siparişi olan müşterilerin olabileceği olabilir. Bu, masa siparişlerinde görünmeyen masa müşterileri olabileceği anlamına gelir. İkinci varsayım, soru açıkça söylemediği için müşterilere sıfır sipariş göstermeyeceğimizdir.

Şimdi, bu bizi zaten bir çözüm dökümüne götürüyor. Halihazırda var olan iki sütunun çıktısını almamız gerekiyor, bu yüzden kesinlikle SELECT kullanacağız. Her müşterinin siparişlerinin toplamını bulmamız gerekiyor. SUM() toplama işlevini kullanarak toplamamız gerekecek. Tamam, masaların birleştirilmesi gerekiyor. Bunu JOIN anahtar sözcüğünü kullanarak yapacağız. Neden başka biri katılmıyor? Çünkü varsayımımız, yalnızca en az bir siparişi olan müşteriler istediğimizi söylüyor. JOIN kullanmak bize tam olarak şunu verecektir: iki tabloyu birleştirecek ve yalnızca her iki tabloda bulunan değerleri (müşterileri) bulacaktır. Sıradaki ne? Toplama işlevini kullandım, bu yüzden GROUP BY kullanmam gerekecek. Ve sonucun alfabetik olarak sıralanması gerekiyor, bu yüzden ORDER BY ve ASC kullanacağım.

Ortaya çıkan çözüm dökümü daha sonra şöyle görünebilir:

  • SEÇİN
  • TOPLA (toplam_sipariş_maliyeti)
  • JOIN
  • GROUP BY
  • ASC'YE GÖRE SİPARİŞ

Sizin durumunuzda, her şeyi anladığınız için bu bir acil durum değildir, dolayısıyla bir sonraki kontrol listesi bölümüne geçebilirsiniz. Veya en yaygın olanı da bulabilirsiniz. SQL JOIN mülakat soruları burada.

3. Kod Yazma

 
Soruyu değerlendirdikten ve kodunuz için stratejiyi belirledikten sonra, onu yazmaya başlamanın zamanı geldi.

Veri Bilimi Kodlama Mülakat Sorularına Nasıl Cevap Verilir?


 

  1. Seçilen bir lehçeye bağlı kalın
  2. Kod yazarken satır satır ilerleyin
  3. Kodlarken konuşun
  4. Okunabilir yap
  5. Seçilen sözleşmelerle tutarlı olun

Bence. Seçilmiş Bir Lehçeye Bağlı Kalmak

Bu, özellikle SQL kodlama mülakatındaysanız önemlidir. Bildiğiniz gibi, bir ANSI/ISO SQL standardı vardır ve birçok SQL lehçesi vardır. Hemen hemen her RDBMS kendi SQL lehçesini kullanır. Elbette hepsini bilemezsiniz. Ve görüşme yaptığınız şirket muhtemelen bu lehçelerden birini kullanıyor.

Görüşmeyi yapan kişi hangi lehçeyi kullandığınızı umursamıyorsa, en rahat ettiğinizi seçin. O lehçede kodlama konusunda çok güçlü değilseniz, kullandıkları SQL lehçesini seçerek görüşmeciye hitap etmeye çalışmayın. En iyi bildiğiniz lehçeyi seçip sorunu çözmek, emin olmadığınız başka bir lehçe kullanmaktan daha iyidir. İkincisini seçerseniz, muhtemelen gereğinden fazla gergin olacaksınız. Ayrıca, belirli bir SQL lehçesine aşina olmamak, çözümü mahvetmenize neden olabilir.

SQL lehçesini seçtikten sonra ona bağlı kalın. Örneğin, PostgreSQL'de yazmayı seçerseniz, bunu T-SQL ile karıştırmayın.

ii. Satır Satır Git

Net bir çözüm dökümüne sahip olmak, bu noktayı neredeyse fark edilmeden kontrol etmenize yardımcı olacaktır. Kodunuzun işlevleri ve bölümleri zaten ana hatlarıyla belirtildiği için, sakin olmanız ve çözüm ana hatlarını izleyerek sistematik olarak bir kod yazmanız yeterlidir. Kod, düşüncelerinizin bir programlama dili versiyonundan başka bir şey değildir. Düşünceleriniz ve çözüm taslağınız netse kodunuz da net olacaktır.

Bir satırdan diğerine atlamaya başlarsanız, kendinizin ve görüşmecinin kafasını karıştırırsınız. Bu muhtemelen doğru kodu yazmamaya yol açacaktır.

iii. Kodladığınız Gibi Konuşun

Kodunuzu satır satır yazarken yaptığınız işten de bahsetmelisiniz. Bu önemlidir çünkü ne yaptığınızı yüksek sesle söylerken yanlış bir şey yapıp yapmadığınızı görmeniz daha kolay olur. Her şey kafanızda harika görünebilir. Ama bunu dile getirdiğinizde, o kadar da harika olmayan fikirler gerçekten göze çarpıyor! Bu size ilerledikçe kodu düzeltme fırsatı verir. Aksi takdirde, yanlış bir şey yaptığınızın farkına bile varmadan kodunuzu tamamlayabilirsiniz.

Yazarken her satırı açıklamanın önemli olmasının nedenlerinden biri, görüşmeciyi tekrar çözümünüze katılmaya davet etmesidir. Ne yaptığınızı anlamalarını ve size bazı ipuçları vermelerini mümkün kılar. Sadece bir kod yazar ve ne yaptığınızı kendinize saklarsanız, görüşmeci muhtemelen kapanacak ve nasıl yaptığınızı size bildirmek için kodu bitirmenizi bekleyecektir.

iv. Okunabilir Yap

İyi yapılandırılmış bir koda sahip olmak, sadece estetik açıdan görmek bir zevktir. Sadece bu değil, sizin ve görüşmecinin kodunuzu okumasını da kolaylaştırır.

Kodunuzu okunabilir yapan ana şey yukarıdaki noktalardan birinde belirtilmiştir: mümkün olduğunca basit yazın. Ancak, bazı çözümler basit olamaz. Ve okunabilir kılmak için çaba göstermezseniz, birkaç satır kod bile okunması kabus olabilir.

Akılda tutulması gereken ipuçlarından biri boşluk, sekme ve enter kullanmaktır. Ve çokça kullanın! Bu anahtarlar, kodunuzu bölümlere ayırmak ve kodun ne yaptığını anlamayı kolaylaştırmak için vardır. Söylediğin veya yazdığın her şey gibi düşün. Boşluk, sekme ve enter, kodunuzda virgül, cümle ve paragraf olmasını sağlar.

Mümkünse tablolar için takma adlar kullanın. Ama onları açıklayıcı hale getirmeye çalışın. Tek harfli takma adlar kullanmaktan kaçının, ancak takma adları çok ayrıntılı ve açıklayıcı yapmayın. Aynı şey değişken isimleri için de geçerlidir.

SQL büyük/küçük harfe duyarlı olmasa da SQL anahtar sözcüklerini büyük harfle yazmak her zaman daha iyidir. Bu aynı zamanda, özellikle tüm sütun ve tablo adları küçük harfle yazılmışsa, kodda yapışmalarını sağlar.

Yazımıza göz atın”SQL Sorguları Yazmak için En İyi Uygulamalar: Kodunuzu Nasıl YapılandırırsınızBu, özellikle performans ve okunabilirlik söz konusu olduğunda SQL sorgularınızın nasıl geliştirilebileceğine odaklanır.

v. Seçilmiş Sözleşmelerle Tutarlı Olun

Büyük veya küçük harfle yazmanızı sağlayacak kurallar yoktur; önceden belirlenmiş bir adlandırma kuralı yoktur, bu yüzden size ve nasıl sevdiğinize bağlıdır. Ama ne yaparsan yap, tutarlı ol.

Tüm yeni sütun adlarını küçük harfle yazmak ve kelimeleri alt çizgi ile ayırmak istiyorsanız, lütfen bunu yapın ve bu şekilde tutun. Bir sütun maaş_per_employee adlandırmak oldukça iyi görünüyor. Ancak bir sütuna maaş_per_employee, diğerine SalaryPerDepartment, üçüncüsü 'Toplam Maaş' ve dördüncüsü MAX_sALARyPerdeparment olarak adlandırmaktan kaçının. Özellikle sonuncusu ile kodu okumaya çalışırken kendinize zarar vereceksiniz.

Aynı durum tablo adları yazarken, takma adlar kullanırken vb. için de geçerlidir. Tutarlılığı korumak, kodunuzun okunabilirliğini de artıracaktır.

Tutarlılıktan bahsetmişken, size bu kontrol listesi bölümünün pratikte nasıl çalıştığını göstereceğiz.

 
Kod Yazma – Örnek

İşte Facebook'tan bir kodlama sorusu:

Veri Bilimi Kodlama Mülakat Sorularına Nasıl Cevap Verilir?


 

“Kullanıcılar oturum açmak için platforma 2FA (2 faktörlü kimlik doğrulama) yapmaya çalıştığında Facebook SMS metinleri gönderir. 2FA'yı başarılı bir şekilde yapabilmek için SMS metin mesajını aldıklarını onaylamaları gerekir. Onay metinleri yalnızca gönderildikleri tarihte geçerlidir. Ne yazık ki, 'fb_sms_sends' tablosunda saklanan günlüklere arkadaşlık istekleri ve geçersiz onay kayıtlarının eklendiği veritabanında bir ETL sorunu vardı. Bu mesaj türleri tabloda olmamalıdır. Neyse ki, 'fb_confirmers' tablosu geçerli onay kayıtları içerir, böylece kullanıcı tarafından onaylanan SMS metin mesajlarını tanımlamak için bu tabloyu kullanabilirsiniz.

4 Ağustos 2020 için onaylanmış SMS metinlerinin yüzdesini hesaplayın.”

Soruya bağlantı: https://platform.stratascratch.com/coding/10291-sms-confirmations-from-users

Bunun gibi bir kod yazarsanız, bu kontrol listesi bölümünde bahsettiğimiz her şeyi kapsayacaktır:

SELECT cust_id, SUM(total_order_cost) AS revenue
FROM orders
WHERE EXTRACT('MONTH' FROM order_date :: TIMESTAMP) = 3 AND EXTRACT('YEAR' FROM order_date :: TIMESTAMP) = 2019
GROUP BY cust_id
ORDER BY revenue DESC

Facebook'un SQL Server kullandığını düşünelim, ancak kodunuzu hangi SQL lehçesinde yazacağınızı size bırakıyor. T-SQL'e aşina değilsiniz, bu yüzden PostgreSQL'de yazmaya karar veriyorsunuz.

Örneğin, EXTRACT() ve iki nokta üst üste (::), PostgreSQL için tipik işlevlerdir. İlki, tarihin bir kısmını datetime veri türünden çıkarır. T-SQL'de mevcut değil! Yani görüşmeciye T-SQL ile yazdığınızı söyleyip bu işlevi kullandıysanız, hata yapmış olursunuz. T-SQL'de DATEPART() işlevini kullanmalısınız. Ve PostgreSQL'deki bu işlevin DATE_PART() olarak adlandırıldığını bilmelisiniz. Bir alt çizgi, kodunuzun çalışması ve çalışmaması arasında bir fark anlamına gelebilir.

Benzer şekilde, veri türü dönüştürme için PostgreSQL'de çift kolon (::) kullanılır. T-SQL'de çalışmıyor; CAST() veya CONVERT() kullanmanız gerekecek.

Bu kod için çözüm kırılımının olması, satır satır yazmanızı kolaylaştıracaktır. Aslında kolay. İlk olarak, bir tablodan bazı verileri seçmeniz, filtrelemeniz, gruplandırmanız ve son olarak da sıralamanız gerekir. Önce WHERE yan tümcesini yazmayın, ardından SELECT deyimine, ardından veri tipi dönüştürmeye veya kodunuza yaklaşmanın başka herhangi bir tuhaf yoluna gitmeyin.

Kod yazarken görüşmeciyle şöyle konuşabilirsiniz: Tablo siparişlerinden elde edilen geliri hesaplamak için SUM() işlevini kullanarak cust_id sütununu seçiyorum. Ardından, order_date sütunundan ay ve yıla göre verileri filtrelemek için WHERE yan tümcesini kullanıyorum. Bundan sonra, verileri müşteri düzeyinde gruplandırıyorum ve sonucu azalan bir düzende sıralıyorum.

Görüyorsunuz ki bu kodda girinti var, kodun her önemli parçası için yeni bir satır var ve adlandırma kuralları tutarlı. Bunu takip etmeseydik kodun nasıl görünebileceğini görmek ister misin? İşte burada:

SİPARİŞLERDEN GELİR OLARAK cust_id,SUM(total_order_cost) SEÇİN (sipariş_tarihinden 'AY' :: TIMESTAMP) = 3 VE ÖZÜ( order_date :: TIMESTAMP'DAN 'YEAR') = 2019 GRUP , cust_id , Gelir TANIM SİPARİŞE GÖRE

Okurken iyi şanslar!

4. Kodunuzu İnceleme

 
Kodu yazdıktan sonra, son cevabınız olmadan önce gözden geçirmenizin zamanı geldi. Şimdiye kadar bir kontrol listesindeki tüm maddeleri izlediyseniz, gözden geçirmeniz kolay olacaktır.

Kodunuzu gözden geçirmek, bir bakıma, onu kontrol listenizdeki bazı noktalara göre kontrol etmektir:

  1. Ne kadar zamanınız kaldığını kontrol edin
  2. Gerekli çıktıya karşı kontrol edin
  3. Belirtilen varsayımlara karşı kontrol edin
  4. Okunabilirliğini kontrol edin
  5. Görüşmeciyi çözüm boyunca yönlendirin
  6. Kodunuzu optimize edin

Bence. Ne Kadar Zamanınız Kaldığını Kontrol Edin

Kontrol listesinin bu bölümündeki diğer tüm noktalar buna bağlıdır. Vaktiniz yoksa hiçbir şey yapamazsınız. Yaptığınız şeyi yaptınız ve kodunuz beğenseniz de beğenmeseniz de aldığınız cevaptır.

Zaman yönetimi önemlidir, bu nedenle bir kodu gözden geçirmek için kasıtlı olarak biraz zaman ayırmalısınız. İdeal olarak, aşağıdaki üç kontrolü gerçekleştirmek için zamanınız olacaktır.

ii. Kodu Gerekli Çıktıya Karşı Kontrol Edin

Sorunuza geri dönmeli ve kodunuzun gerçekten gerekli olanı döndürüp döndürmediğini görmelisiniz. Bazı gerekli sütunları eklemeyi unuttunuz mu? Sonucu gerçekten istendiği gibi sipariş ettiniz mi? Bu ve benzeri soruları kendinize sormalısınız.

Vaktiniz varsa yaptığınız hataları düzeltin. Zaman yoksa, kodu olduğu gibi bırakın, ancak neyi yanlış yaptığınızı yazın.

iii. Kodu Belirtilen Varsayımlara Karşı Kontrol Edin

Kodunuzu bazı varsayımlara dayanarak yazdınız. Varsayımlar listenize geri dönün ve bunları takip edip etmediğinizi kontrol edin.

Yapsaydın mükemmel olurdu. Ancak daha karmaşık kod yazarken bazı varsayımlardan vazgeçmiş veya yenilerini sunmuş olabilirsiniz. Bunu da yazın. Tüm varsayımları takip etmediyseniz, ancak sahip olmanız gerektiğini düşünüyorsanız ve kodu değiştirmek için zamanınız varsa, yapın. Değilse, olduğu gibi bırakın.

iv. Kod Okunabilirliğini Kontrol Edin

Burada az önce yazdıklarınızı anlayıp anlamadığınızı kontrol etmelisiniz. Kodunuza geri dönün, sözdizimi ve mantığı için her satırı bir kez daha kontrol edin. Satır satır ilerlerken, kodun okunabilirliğinin geliştirilip geliştirilemeyeceğini değerlendirin. Adlandırma kurallarında tutarlı mıydınız? Takma adlarınızın anlaşılması açık mı? Herhangi bir belirsizlik var mı? Kod mantıklı bir şekilde ve mantıksal bölümlere ayrılmış mı?

Yine, zamanınız varsa, kodun okunabilirliğini iyileştirin. Vaktiniz yoksa, yazmayı deneyin ya da daha iyi yapabileceğiniz şeyleri hatırlamaya çalışın.

v. Görüşmeciye Çözüm Yoluyla Liderlik Edin

Yukarıdaki tüm adımları yaptıysanız, bu size doğal olarak gelmelidir. En önemli şey, kodunuzu açıklarken dürüst olmanızdır.

İncelerken kodunuzda bulduğunuz hatalar ne olursa olsun, bunları açıkça belirtin. Görüşmecinizin onları fark etmeyeceğine güvenmeyin. Onları saklamaya çalışmayın. Hatalarınıza sahip çıkın ve neyi yanlış yaptığınızı bildiğinizi gösterin. Herkes hata yapar ama herkes hata yaptığını anlayamaz ve kabul edemez. Hata yapmış olsanız bile ne yaptığınızı bildiğinizi gösterir. Hatalardan bahsetmişken, İşte insanların veri bilimi görüşmelerinde en sık yaptıkları şeyler.

Çıktınıza gereksiz bir sütun eklediyseniz, bunu söyleyin ve sahip olduğunuz çıktıyı açıklamaya devam edin. İlk varsayımlarınızdan uzaklaştınız mı yoksa yenilerini mi eklediniz? Öyle söyle ve nedenini açıkla. Yanlışlıkla yaptıysanız, kasıtlı olmadığını söyleyin, ancak çözümünüzün bazı ek varsayımlar içermesi gerektiğini görüyorsunuz. Kodunuzun çalışması için ne olması gerektiğini belirtin. Aynı şey okunabilirlik için de geçerlidir: Kodunuzu daha iyi hale getirebileceğinizi görürseniz, nasıl yapılacağını açıklayın.

Tüm bunları yaparak, yalnızca kodlama yeteneğinizi değil, aynı zamanda ne kadar hızlı düşündüğünüzü, sorumlu ve dürüst olduğunuzu da göstereceksiniz. Bunların hepsi, tüm şirketler tarafından çok saygı duyulan özelliklerdir.

vi. Kodunuzu Optimize Edin

Kodlama mülakatındaki son soru genellikle sizden kodunuzu optimize etmenizi isteyen sorudur. Bu şekilde, görüşmeci SQL teorisi bilginizi test edecektir. Örneğin, JOIN'lerin hesaplama açısından zaman alıcı olabileceğini biliyorsanız? JOIN'i veya bir alt sorguyu ortadan kaldırmanın bir yolu olup olmadığını öğrenmeniz istenecektir. Örneğin, maksimum değeri bulmaya çalışıyorsanız, genellikle WHERE yan tümcesindeki bir alt sorguyu, sıralama işlevi gibi bazı işlevlerle kaldırabilirsiniz.

Veya belirli veri türleri üzerinde işlemlerin ne kadar hızlı gerçekleştirildiğini biliyorsanız. Örneğin, dize karşılaştırması tamsayı karşılaştırmasından daha yavaştır, bu yüzden belki bunu dize verilerinde yapmanın bir yolu var mı?

Sonuç

 
Bütün bunlar şunu özetliyor: Yaklaşımınızı iyi yapılandırırsanız, bir kod yazmak neredeyse bir teknik olmalıdır. Vurgu daha çok düşünmeye ve daha az kodlamaya dayanıyor. Ve kod yazmak çok organize bir şekilde yapılmalıdır.

Soruyu, önünüzdeki verileri, olası çözümleri, varsayımlarınızı ve ihtiyaç duyacağınız işlevleri düşünmelisiniz. Ancak bundan sonra kodlamaya başlamalısınız. Kodlamaya başladığınızda, görüşmeciyi yaptığınız işe dahil edebilmeli ve attığınız her adımı onlara bildirebilmelisiniz. Gerçek hayatta olduğu gibi, üretimde kullanmaya başlamadan önce kodunuzu kontrol etmeniz ve optimize etmeniz gerekir. Bu röportaj sizin prodüksiyonunuz; çözümünüzü gözden geçirebilmeniz için zamanınızı yönetin.

Bunlar yapman gereken şeyler. Ayrıca yazımızda daha fazla hazırlık ipucu var: Veri Bilimi Mülakatına Hazırlanmak için 5 İpucu.

Bütün bunlar kolay değil. Tecrübe ve pratik gerektirir; bunu kimse uyduramaz. Ancak bu kontrol listesini takip etmek, deneyiminiz ne olursa olsun, düşünme ve görüşme performansınıza kesinlikle sağlam bir yapı katacaktır. Sadece daha iyi performans göstermenizi sağlayabilir.

 
 
Nate Rosidi bir veri bilimcisi ve ürün stratejisidir. Aynı zamanda analitik öğreten bir yardımcı profesördür ve kurucusudur. StrataScratch, veri bilimcilerinin en iyi şirketlerden gelen gerçek röportaj sorularıyla röportajlarına hazırlanmalarına yardımcı olan bir platform. onunla bağlantı kurun Twitter: StrataScratch or LinkedIn.

orijinal. İzinle yeniden yayınlandı.

Kaynak: https://www.kdnuggets.com/2022/01/answer-data-science-coding-interview-questions.html

spot_img

En Son İstihbarat

spot_img

Bizimle sohbet

Merhaba! Size nasıl yardım edebilirim?