Pertanyaan wawancara Python [ditutup]

25

Saya akan wawancarai dalam dua minggu untuk magang yang akan melibatkan pemrograman Python.

Adakah yang bisa menyarankan area apa yang harus saya poles? Saya mencari hal-hal yang biasa ditanyakan dalam wawancara untuk pembukaan Python. Terlepas dari kenyataan bahwa saya sudah melakukan bahasa selama lebih dari satu tahun sekarang, saya gagal memahami apa yang bisa mereka tanyakan kepada saya.

Seperti untuk wawancara C atau C ++, ada banyak pertanyaan mulai dari membalik string untuk membangun daftar terkait, tetapi untuk wawancara Python, saya tidak mengerti.

Pengalaman dan / atau saran pribadi disambut.


sumber
Jika ini magang, dan Anda telah memprogram dalam Python selama setahun, saya pikir Anda akan baik-baik saja. Tha berkata, saya pikir sifat umum pertanyaan untuk Python akan sama dengan yang Anda sebutkan untuk c ++.
Robert Harvey
Robert, pemrograman tanpa pengawasan dan bimbingan apa yang mengganggu saya. Mungkin saya kurang di beberapa bidang.
1
Jika ini magang, mengapa Anda tidak memiliki panduan? Itulah definisi magang. Yang mengatakan, magang tempat saya bekerja tidak mendapatkan kelas pemrograman, tetapi mereka mendapatkan instruksi dan harapan kerja yang jelas. Sebagai pekerja magang, mereka harus berharap bahwa Anda akan belajar pada pekerjaan itu, dan bahwa pekerjaan itu akan memakan waktu sedikit lebih lama daripada jika seseorang dengan pengalaman melakukannya.
Robert Harvey
Anda membuat kesalahan umum yang membuat banyak orang keluar dari sekolah - wawancara bukan ujian, itu lebih seperti pergi kencan pertama. Pewawancara yang baik tidak akan berusaha keras untuk mencari tahu apakah Anda tahu sudut-sudut gelap suatu bahasa, tetapi mencoba untuk membangun, secara umum, jika Anda benar-benar mengetahuinya. Pewawancara yang baik akan fokus pada pengetahuan pemrograman umum, keterampilan pemecahan masalah, keterampilan & pengalaman interpersonal. Jika seseorang mulai bertanya secara spesifik tentang bagaimana Python magang string, itu berarti mereka hilang dan tidak tahu bagaimana cara mewawancarai.
Sean McSomething

Jawaban:

8

Berikut ini beberapa yang mudah:

  1. Apa itu dekorator Python dan bagaimana Anda menggunakannya?
  2. Bagaimana Anda men-debug kode Python Anda?
  3. Bagaimana Anda mengatur banyak proyek di mana masing-masing menggunakan versi berbeda dari Python dan perpustakaan pihak ketiga?
  4. Apakah Anda mengikuti PEP8 saat menulis kode Anda?
Thierry Lam
sumber
7

Bagaimana dengan sesuatu yang melibatkan pemahaman daftar Python ? Bagi saya, itu adalah salah satu nilai jual terbesar di atas C ++, setelah saya membaca tentang mereka di Dive into Python .

"Tulis pemahaman daftar yang membangun daftar angka genap dari 1 hingga 10 (inklusif)".
Di mana jawabannya adalah seperti ini (perhatikan nilai rentang hindari kesalahan fencepost):

foo = [x for x in range(1, 11) if (x % 2) == 0]
print foo
[2, 4, 6, 8, 10]

Untuk itu, jika Anda memahami semua konsep yang tercantum dalam Dive into Python, itu harus mencakup sebagian besar fitur penting.

Cyclops
sumber
13
Ini unpythonic. Di Python 2.x, Anda cukup melakukannya range(2,11,2)dan dalam Python 3.x list(range(2,11,2)),.
Chinmay Kanchi
@ Cyclops, sepertinya Anda perlu wawancara untuk pekerjaan Anda sendiri di INNOTECH.
Pekerjaan
5
@Chinmay Kanchi Meskipun saya tidak berpikir itu akan menjadi pertanyaan wawancara yang baik, sebagian besar pengantar fitur-fitur canggih melakukan hal-hal paling sederhana yang mereka bisa (agar tidak membingungkan pembaca). Meskipun ada solusi yang lebih sederhana untuk masalah khusus ini, intinya adalah bukan untuk menjawab masalah khusus ini. Intinya adalah menggunakan daftar pemahaman (yang sangat efektif dan cara yang terkenal untuk mengoptimalkan hal-hal dengan Python).
jsternberg
6

Apakah Python lulus dengan referensi atau lewat nilai juga merupakan pertanyaan yang sangat bagus.

ismail
sumber
1
Pertanyaan tindak lanjut yang bagus adalah menanyakan bagaimana mereka bisa menunjukkannya dan mengapa itu penting
mcotton
@Ismail - Maaf, tapi mengapa ini pertanyaan yang bagus?
Theodor
7
@Cervo: Jika saya mengerti dengan benar, Python adalah pass-by-value seperti halnya C #, Java, Scheme, dll. Adalah pass-by-value ... satu - satunya bahasa pass-by-reference yang saya lihat adalah VB6, di mana semuanya lewat referensi kecuali ditentukan sebaliknya. Fakta bahwa Anda dapat bermutasi objek tidak membuatnya lulus dengan referensi dengan cara apa pun, dan fakta bahwa Anda dapat memiliki objek yang tidak dapat diubah tidak menyiratkan bahwa mereka dilewatkan oleh nilai juga ... jadi berkata " jawabannya adalah " sama sekali salah . Saya merasa sangat kasihan dengan kandidat yang pewawancara percaya bahwa jawabannya adalah "tidak" ...
Mehrdad
1
@Cervo: FYI, bahkan jawaban 100+ dalam tautan Anda pun membantah argumen Anda: ia mengatakan dengan jelas bahwa "Parameter dilewatkan oleh nilai."
Mehrdad
11
Saya percaya jawaban yang benar adalah: "Parameter adalah referensi yang diberikan nilai."
user16764
6

Pertanyaan yang pernah saya tanyakan:

  • Jelaskan dua metode meta-pemrograman dengan Python.
  • Apa itu GIL?
  • Mengapa GIL itu penting?
  • Mengapa ada implementasi alternatif dari Python yang disebut Unladen Swallow ?
  • Django, Pylons, atau Zope? Pertahankan posisi Anda.
Hanya sedikit Roger
sumber
5

Saya tidak punya pengalaman seperti itu, tetapi di sini ada beberapa tebakan:

  1. (Kekekalan
  2. Fungsi / kelas kelas satu
  3. Penutupan

Itulah beberapa hal yang harus diketahui oleh programmer python, jika tidak, Anda juga bisa menyewa programmer C untuk posisi itu.

Kugel
sumber
3

Saya akan mengikuti daftar dalam jawaban ini . Cobalah untuk menyegarkan apa yang Anda ketahui mengikuti daftar sejauh yang Anda bisa. Jangan khawatir jika Anda tidak bisa sampai akhir.

Benjamin Bannier
sumber
2

Selain tautan lain yang disediakan orang. Saya juga merekomendasikan Fitur Tersembunyi Python . Untuk berjaga-jaga jika mereka mengajukan beberapa pertanyaan rumit kepada Anda.

grokus
sumber
2

Apa pendapat Anda, apakah mereka akan mencoba menguji apakah Anda tahu Python, melihat apakah Anda dapat menyelesaikan sesuatu dengan Python, atau menguji apakah Anda dapat memprogram (dengan Python)?

Itu adalah hal-hal yang sangat berbeda.

Jika mereka ingin Anda menunjukkan bahwa Anda tahu Python, mereka mungkin memaksa Anda untuk melakukan hal-hal seperti membuat generator, kemudian melakukannya tanpa menggunakan yield. Jelaskan bagaimana kelas bekerja. Jelaskan urutan resolusi metode C3. Dan seterusnya.

Jika mereka ingin Anda menunjukkan bahwa Anda dapat menyelesaikan sesuatu dengan Python, Anda harus kompeten dengan struktur data dasar, dan memiliki daftar pustaka yang akan Anda kunjungi untuk berbagai jenis tugas. Jadi, Anda harus nyaman dengan kamus, set, array. Demikian juga Anda perlu tahu tentang hal-hal seperti BeautifulSoupuntuk parsing HTML, dapat berbicara tentang kerangka kerja yang dapat digunakan untuk pengembangan web, dll. Anda tidak perlu tahu cara menggunakan hal-hal itu dengan baik, tetapi Anda harus tahu di mana harus pergi, bagaimana mencari tahu lebih banyak, dan dapat benar-benar menggunakannya setelah pewawancara memberi Anda hal-hal yang didokumentasikan.

Jika mereka ingin Anda menunjukkan bahwa Anda dapat memprogram (dengan Python), Anda harus mengetahui struktur data dasar, dan mengetahui algoritma Anda. Ini jauh lebih dekat dengan pertanyaan C / C ++ yang akan Anda tanyakan, kecuali bahwa Anda diharapkan untuk menggunakan struktur data asli yang memudahkan hidup Anda.

Agar aman, Anda harus mempersiapkan sampai batas tertentu untuk ketiganya. Misalnya, baca http://docs.python.org/tutorial/ dan buat beberapa catatan untuk Anda sendiri. Semoga Anda sudah tahu cara memprogram. Dan kemudian coba beberapa tugas acak, dan paksa diri Anda untuk menggunakan perpustakaan yang mungkin Anda lewatkan. Jadi, misalnya, baca beberapa CSV, ekstrak informasi secara terprogram dari halaman web, buat situs web kecil dengan kerangka kerja, dll.

btilly
sumber