InterviewStreet ile ilgili soruları nasıl çözeceğinizi öğrenmenin iyi bir yolu [kapalı]


10

Olası Çoğaltma:
Görüşme öncesi meydan okuma sorularına nasıl adapte olabilirim?

InterviewStreet, şirketlerin kod yazabilecek programcıları bulmaları için bir filtre görevi gören yeni bir şirkettir. Benim sorunum, benim matematik oldukça zayıf ve sıfırdan olsa bile, kendi sitesinde bulunan bu gibi soruları çözmek için incelemek istiyorum:

Find the no of positive integral solutions for the equations (1/x) + (1/y) = 1/N! (read 1 by n factorial) Print a single integer which is the no of positive integral solutions modulo 1000007

Şimdi, lütfen bu sorunun cevabını GÖNDERMEYİN, doğrudan InterviewStreet'ten alınır ve buraya gönderilmemelidir. Bu iş parçacığında aradığım cevap değil. Sorduğum şey muhtemelen SO topluluğundaki bazı bilgisayar korsanları tarafından cevaplanabilecek daha temel bir soru.

Kişi böyle bir soruya nasıl hazırlanır? Bu tür bir sorunun nasıl çözüleceğini öğrenmek / öğrenmek için hangi kaynaklar mevcut? Bu MIT açık eğitim yazılımı kapsamında mı? Khan Academy? Belirli bir kitap var mı? Yukarıdaki sorunu çözmeye nereden başlayacağımdan bile emin değilim ve bunu yapmak için hangi adımları atabileceğimi öğrenmek istiyorum.


beni yanlış anlamayın - bu tür bir soruyu çok seviyorum (hafta sonu için küçük bulmacalar) - ama gerçekten bunlarla iyi programlar bulacağınızı sanmıyorum - matematik meraklıları bulacaksınız (bu iyi olabilir) programmig) - ve hepimiz biliyoruz ki bu insanlar kodları hazırlıyorlar, ama yanlarındaki kişi asla kodlarını okuyamayacak :) ... birinin iyi olup olmadığını bilmek ister misiniz? Otur ve bu kişi ile 2 saat çifti programlama ve o Gardner-puzzles gibi olur çok daha fazla şey öğreneceksiniz
Carsten

Yanıtlar:


9

Genellikle mülakat soruları, herhangi bir uzman bilgisine ihtiyaç duymadan problem çözme becerilerinizi test etmek için tasarlanmıştır. Ancak sorunuz için bazı matematiksel bilgiler kesinlikle yardımcı olacaktır. En azından, 'pozitif integral' ve 'modulo' tanımlarını anlamanız gerekir. Sayı teorisine giriş dersi, belki de OCW'den gelen bu ders yararlı olabilir .

Project Euler'i örnek problemler için de öneririm - bu, matematik ve programlama bilginizi geliştirmenin harika bir yoludur. Bir dil seçin ve alıştırmalarla çalışmaya başlayın.


6

Bir kitabı ezberleyerek bu tür problemlere hazırlanamazsınız. Problem çözme iyi olmak için tek yol yaparak olduğunu çok ve çok sorunlar. Ben bir algoritma ve veri yapıları kitap almak ve olsa üzerinden okuma öneririz. Süreci önemli ölçüde hızlandıracaktır.

Birkaç yıl önce hatırlıyorum, bütün bir yaz (günde 5+ saat) bu tür problemleri sadece eğlence için çözmeye çalıştım.

Bunu yapabileceğiniz birkaç yer var. Euler Projesi iyi bir başlangıç ​​noktasıdır. UVa Online Judge'ın da tonlarca sorunu var.


Bu bir taahhüt. Genel programlama yeteneğinizde size yardımcı olduğunu buldunuz mu?
Darren Young

3
Kesinlikle. Lisede ABD Bilişim Olimpiyatlarına katıldım ve hiç kimseden ABD'de ilk 20'ye girdim. "Gerçek dünya" programlama açısından, becerilerimin önemli ölçüde keskinleştirildiğini son derece güvenle söyleyebilirim. Şimdi herkesin dışarı çıkıp benim yaptığımı yapması gerektiğini söylemiyorum ama bence problem çözme becerilerini geliştirmek için biraz zaman ayırmaya değer. Gerçekten çok şey öğrenebilirsiniz ve bu kesinlikle yazılım geliştirme için geçerlidir.
tskuzzy

0

Bu özel problem, temel sayı teorisini, özellikle kompozit sayıları çarpanlara ayırma, asal sayıların bazı özellikleri ve nispeten asal sayı çiftlerini anlama gibi fikirleri bilmenizi gerektirir.

Sitedeki diğer problemler, büyük O gösterimi, basit veri yapıları, sıralama gibi temel algoritmalar ve kombinatoriklerin anlaşılmasını gerektirir. 5 problemden 3'ünü geçtim ve neredeyse 4'ümle bitirdim ve üniversitedeki CS sınıflarımın ilk yılından sonra belirli bir bilgi kullanmadım . Bununla birlikte, bunlar zor problemler. Bazıları şaşırtıcı miktarda matematiksel sezgi gerektirir.

Bu tür şeylere hazırlanmak için matematiksel problem çözmede iyi olmalısınız. Olimpiyat'a (lisede iseniz) veya Putnam sınavına (üniversitede iseniz) bakın ve bulduğunuz uygulama sorunlarını yapın. Zorlar, ama sonunda onlarda daha iyi olursun.

Ayrıca, önce 30 puanlık soruyu - Çeyrek Sorguları - yapmayın. Şimdiye kadar en zor olanı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.