Bagaimana menangani pertanyaan wawancara tentang gaya pemrograman [tertutup]

11

Sebagai seorang programmer C ++ dalam wawancara saya berulang kali menemukan diri saya dalam situasi adalah pewawancara ingin menyelidiki pengetahuan saya tentang gaya pemrograman yang baik. Ini biasanya dipusatkan di sekitar pengetahuan dasar OOP.

Saya tahu OOP berguna untuk merangkum konsep dan saya menggunakannya setiap hari. Namun, karena bahasa seperti C ++ memungkinkan banyak gaya yang berbeda dan beberapa pendekatan C ++ seperti algoritma TMP atau STL sama sekali bukan OOP (melainkan lebih seperti pemrograman fungsional), saya menemukan diri saya terjebak pada cara terbaik "menjual" pengetahuan saya tentang pendekatan lain seperti baik tanpa tampil sebagai sombong atau sebagai seseorang tanpa penghargaan terhadap dasar-dasar. Saya khawatir penekanan pada OOP para penanya ini berasal dari mereka yang disosialisasikan pada tahun 90-an di mana OOP diyakini sebagai obat untuk semua, tetapi itu adalah sudut pandang arogan yang harus diambil.

Bagaimana saya membuat yang terbaik dari pertanyaan seperti ini?

Benjamin Bannier
sumber
1
Hanya ada beberapa konsep dasar OOP. Siapkan contoh kode siap pakai untuk masing-masing dan Anda harus menghapus sebagian besar dari ini. Dan ya, sebuah wawancara adalah untuk memuaskan keraguan pewawancara tentang pengetahuan Anda tentang masalah tersebut dan ini adalah kesempatan terburuk untuk memiliki kebingungan ideologis.
keunggulan

Jawaban:

6

Saya akan mengatakan Anda harus melakukan yang terbaik untuk menjawab pertanyaan semacam ini, seperti Anda harus melakukan yang terbaik untuk menjawab segala jenis pertanyaan.

Kemudian ketika Anda diberi kesempatan untuk mengajukan pertanyaan pewawancara, Anda harus mengangkat subjek, mengajukan pertanyaan seperti:

  • Apakah Anda hanya melakukan OOP?
  • Saya menggunakan pendekatan pemrograman yang berbeda, bagaimana itu bisa diterima di tim Anda?

Dan seterusnya ... dan dengan cara ini Anda tidak hanya dapat memulai percakapan tentang menjual keahlian Anda dengan pendekatan-pendekatan lainnya, Anda juga dapat melihat seberapa kaku dan seberapa besar penekanan yang diberikan kepada OOP di tim / perusahaan tersebut.

Mithir
sumber
5

Jangan terlalu khawatir tentang motivasi si penanya, dan jawab saja dengan jujur. Ingat, wawancara adalah jalan dua arah. Anda tidak ingin terjebak dalam perusahaan yang tidak fleksibel secara ideologis seperti mereka tidak ingin terjebak dengan Anda.

Yang sedang berkata, saya pikir Anda menjadi sedikit paranoid tentang niat pewawancara. Sejumlah besar programmer yang seharusnya profesional tidak memahami dasar-dasar OOP. 99% dari waktu, pewawancara tidak mencoba untuk melihat apakah Anda minum kool-bantuan OOP, tetapi hanya ingin melihat apakah Anda memiliki pemahaman dasar tentang itu. Bahkan jika Anda merasa paradigma lain lebih cocok untuk solusi tertentu, pewawancara ingin tahu bahwa itu adalah kesimpulan yang tepat, dan tidak disebabkan oleh ketidaktahuan OOP.

Rasionalisasi adalah mekanisme pertahanan yang sangat umum ketika seseorang tidak memahami sesuatu. Jika orang tidak memahami suatu konsep, mereka berpendapat bahwa konsep itu bodoh atau tidak dapat diterapkan daripada mengakui ketidaktahuan mereka sendiri. Bahkan jika Anda benar-benar berpikir OOP adalah pilihan yang buruk untuk sebuah jawaban, Anda tetap harus membedakan diri Anda dari para rasionalisator. Cara untuk melakukannya adalah untuk kedua menjelaskan solusi OOP dan mengapa Anda berpikir itu adalah pilihan yang buruk dalam situasi itu.

Karl Bielefeldt
sumber
1
+1 untuk pertanyaan gaya yang lebih banyak tentang kecocokan lingkungan. . .
Wyatt Barnett
3

Saya akan menekankan bahwa Anda mengikuti prinsip SOLID , yaitu OOP dan banyak lagi. Tidak hanya itu menjamin bahwa kode Anda berorientasi objek, tetapi juga dibuat sedemikian rupa sehingga mengganti objek mengikuti prinsip SOLID adalah tugas yang relatif mudah. Tidak hanya akan mengirim pesan bahwa Anda tahu OOP, tetapi menunjukkan bahwa Anda memahami poin halus tentang apa yang membedakan kode OOP baik dari kode OOP rumit rumit yang ditulis oleh seseorang yang dulu memprogram dalam C dan berpikir semua bahasa lain harus diprogram dalam cara yang sama, karena jujur ​​saja, itulah yang membuat Anda seorang programmer yang baik, tidak hanya bisa menggunakan OOP.

Bersiaplah untuk menjelaskan secara menyeluruh untuk masing-masing dari lima prinsip mengapa masing-masing penting dan apa yang mungkin terjadi pada kode yang mengabaikan prinsip itu.

Neil
sumber