Meminta sampel kode perusahaan pada wawancara [ditutup]

69

Meminta pencari kerja untuk menunjukkan kode adalah praktik yang cukup umum untuk perusahaan perangkat lunak. Namun, akankah dapat diterima jika kandidat meminta pewawancara untuk menunjukkan kepadanya sepotong kecil kode yang menurutnya ditulis dengan baik?

Simon Bergot
sumber
14
Saya lebih suka bertanya tentang standar pengkodean, ulasan kode, dll.
user16764
5
Apakah perusahaan lulus "Joel test": joelonsoftware.com/articles/fog0000000043.html
Martin York
2
@LokiAstari tes joel tidak secara langsung menyangkut budaya pengkodean (hanya lingkungan kerja).
Simon Bergot
8
@ user16764 itu seperti mengajukan pertanyaan teoritis kepada kandidat: itu adalah langkah pertama yang baik, tetapi itu tidak benar-benar menunjukkan kepada Anda bagaimana ia menerapkan pengetahuan ini.
Simon Bergot
2
programmers.stackexchange.com/questions/160922/... Mirip dengan pertanyaan ini.
Anonim

Jawaban:

69

Saya selalu meminta untuk melihat beberapa kode, karena beberapa alasan:

  • Saya ingin tahu apa yang saya hadapi. Tentu saja tidak ada perusahaan perangkat lunak yang sempurna, dan saya tidak berharap setiap orang untuk memancarkan keajaiban keanggunan sepanjang waktu (karena saya juga tidak), tetapi jika saya meminta kode terbaik perusahaan, dan yang bisa mereka tunjukkan kepada saya adalah sub-par kekacauan spaghetti, aku tahu aku berada dalam waktu yang menyedihkan, membuka bungkus rambut dan melawan hutang teknis untuk menyelesaikan apa pun. Melihat kode terbaik yang dapat ditunjukkan perusahaan menetapkan batas atas kualitas seperti apa yang mungkin ada di sana; bahkan jika itu tidak mungkin bahwa semua kode mereka terlihat seperti itu, Anda masih tahu itu adalah sesuatu yang mereka perjuangkan.
  • Melihat contoh kode memberi tahu saya banyak tentang budaya pengkodean perusahaan. Apakah mereka menggunakan komentar dokumentasi? Apakah mereka condong ke arah gaya Berorientasi Objek, apakah mereka memiliki kecenderungan Pemrograman Fungsional? Apakah mereka konservatif atau progresif? Apakah mereka menghargai penamaan yang konsisten, pemformatan dan indentasi yang tepat, dan kode yang rapi secara umum? Apakah kode mudah diikuti? Bagaimana mereka menyusun proyek mereka? Bagaimana mereka mendekati hal-hal penting - pengujian otomatis, penanganan kesalahan, dll? Seberapa defensif gaya pengkodean mereka?
  • Melihat kode mereka yang ada akan memungkinkan Anda menilai apakah Anda dapat memenuhi standar mereka .
  • Fakta bahwa suatu perusahaan bersedia untuk membagikan sampel kode saja merupakan pertanda baik pada prinsipnya. Itu berarti bahwa mereka menawarkan saya, pemohon, beberapa kepercayaan , karena basis kode mereka adalah salah satu aset mereka yang paling berharga. Itu juga berarti bahwa mereka tidak malu dengan kode mereka, bahwa mereka yakin bahwa menunjukkan kepada saya kode itu akan membantu saya tertarik untuk bekerja dengan mereka.
  • Jika mereka tidak akan menunjukkan sampel kode apa pun kepada Anda, maka itu tidak harus berupa bendera merah, tetapi sebaiknya keduanya bertanya mengapa mereka tidak akan membagikan (kemungkinan besar, mereka tidak bisa karena alasan hukum), dan jelaskan mengapa Anda ingin melihatnya. Saya tidak berpikir menunjukkan minat pada kode mereka akan dilihat sebagai tanda negatif, asalkan Anda bertanya dengan sopan dan positif.

Dan kemudian ada beberapa efek samping lagi:

Perusahaan, yang setuju untuk menunjukkan kode Anda, tidak mungkin hanya mengirimi saya tarball file sumber yang berisi versi terbaru dari seluruh basis kode mereka, untuk alasan yang jelas. Jika mereka menunjukkan kode apa pun kepada mereka, mereka akan melakukannya dalam bentuk demonstrasi kecil, yang hebat: itu berarti saya bisa berbicara dengan salah satu rekan potensial saya, itu memungkinkan saya untuk mengajukan lebih banyak pertanyaan tentang budaya pengkodean, proses, dan basis kode, dan idealnya, ini akan membantu memulai diskusi profesional di mana saya dapat menunjukkan keterampilan dan pengetahuan serta belajar lebih banyak tentang lingkungan kerja. Ini juga berarti bahwa saya dapat melihat alat yang mereka gunakan, yang juga cukup wawasan - misalnya, jika proyek yang mereka tunjukkan sangat bergantung pada IDE tertentu, ini berarti bahwa setiap orang menggunakan itu, yang bisa baik atau buruk. Dan akhirnya,

tammmer
sumber
1
Jika pemberi kerja potensial menunjukkan kode yang jelas-jelas buruk kepada Anda, ingat itu bisa menjadi peluang untuk mengarahkan mereka memperbaiki kode dan proses mereka. Seperti pepatah lama, "Saya hanya bisa mengacaukan yang sempurna tetapi saya bisa memperbaiki yang rusak!". Juga, ingat kode yang ditunjukkan kepada atau oleh seorang kandidat mungkin dikenakan lebih banyak kekakuan dan ulasan daripada kode lainnya.
akton
@akton Ini adalah sikap saya terhadap kode yang buruk. Namun tidak ada gunanya ketika Anda sendirian dalam pencarian "memperbaiki kode berantakan" Anda. Meminta untuk melihat beberapa kode yang baik dapat membantu untuk merasakan jika tim masa depan Anda menghargai hal-hal seperti SOLID
Simon Bergot
1
"Aku selalu bertanya untuk melihat beberapa kode" Bagaimana setelah kamu benar-benar ditampilkan kode? Apakah Anda meminta mereka untuk menyiapkan sesuatu sebelumnya atau mengirim sesuatu kepada Anda sesudahnya? Tidak peduli ke arah mana Anda melihatnya, tampaknya tidak praktis.
Burhan Ali
1
@ BurhanAli: Saya hanya bertanya. Banyak yang menolak untuk menunjukkan kepada saya apa pun, dan biasanya mereka memberi saya alasan yang bagus, yang tidak masalah. Mereka yang setuju memberi saya tur yang diawasi; Saya ragu ada orang yang akan mengirimi saya satu set sumber lengkap untuk dicuri, tetapi mengklik sekitar proyek dalam IDE sementara saya menonton sering diterima.
tdammers
Dalam banyak kasus saya akan berpikir kode yang saya benar-benar ingin lihat akan dianggap tertutup sebagai keunggulan kompetitif. Itu akan menjadi kode yang paling berarti bagi saya ... namun, jika mereka setuju untuk menunjukkan kode kepada Anda dan itu menyebalkan bahwa mungkin itu pertanda mereka tidak mengerti kode yang baik. Jika saya seorang pemimpin saya mungkin tidak akan menunjukkan kode internal yang tidak sepele. Hanya aku saja.
Rig
14

Namun, akankah dapat diterima jika kandidat meminta pewawancara untuk menunjukkan kepadanya sepotong kecil kode yang menurutnya ditulis dengan baik?

Saya kira itu termasuk dalam mantra 'wawancara adalah dua arah', tetapi saya tidak berharap untuk mendapatkannya. Kekhawatiran Kekayaan Intelektual adalah masalah yang paling jelas setelah fakta bahwa tidak ada komputer di ruang wawancara, dan membawa Anda ke komputer agak canggung.

Lebih lanjut, mereka hanya akan memilih kode yang paling baik, paling tidak berarti yang mereka bisa. Kode terbaik tidak benar-benar masalah, yang terburuk adalah. Itu alasan yang sama bahwa mengambil sampel kode dari kandidat hampir tidak berguna.

Telastyn
sumber
10
Masih berguna untuk melihat apakah mereka dapat memilih kode yang baik untuk ditunjukkan kepada Anda. Bagian yang paling membuat frustrasi dari berurusan dengan kode buruk sering adalah bahwa tidak ada yang mengakui itu buruk dan harus diperbaiki.
JGWeissman
5
Gagasan pewawancara tentang kode yang baik mungkin bukan ide Anda tentang kode yang baik. Saya pikir akan bermanfaat untuk mengetahui hal itu lebih cepat daripada nanti.
Eric King
1
Sedihnya ketika saya mencoba menggunakan pendekatan "wawancara adalah dua arah ', sebagian besar majikan merasa kesal. Saya belum pernah diperlihatkan kode. Hal lain yang saya minta lihat adalah model data, tetapi tidak ada keberuntungan di sana.
Antonio2011a
12

apakah akan dapat diterima bagi kandidat untuk meminta pewawancara untuk menunjukkan kepadanya sepotong kecil kode yang menurutnya ditulis dengan baik?

Anda dapat bertanya apa pun yang Anda inginkan, tetapi:

  • Anda mungkin tidak akan mendapatkannya.

  • Jika Anda mendapatkannya, itu tidak akan memberi tahu Anda apa pun yang berguna. Jika 10% dari kode mereka indah dan sisanya adalah spageti, Anda masih akan berurusan dengan spageti.

  • Anda akan terlihat seperti celana cerdas. Itu bukan bantuan besar jika Anda akhirnya memutuskan ingin bekerja di sana.

  • Ini buang-buang waktu wawancara yang berharga.

  • Ada cara yang lebih baik untuk mencari tahu apa yang ingin Anda ketahui. Ajukan pertanyaan seperti:

    • Apa indikator kualitas kode yang paling penting?
    • Apakah sebagian besar saya akan mempertahankan kode yang ada atau menulis kode baru?
    • Bisakah Anda jelaskan secara singkat bagaimana sistem Anda bekerja?
    • Apakah Anda memiliki dokumen standar pengkodean, dan apakah semua orang mengikutinya?
Caleb
sumber
Poin bagus! Sedih mengajukan pertanyaan seperti "Apa indikator paling penting dari kualitas kode?", Dapat dianggap sebagai celana cerdas juga. (Dari sudut pandang saya, ini adalah pertanyaan yang masuk akal, tetapi banyak majikan tidak suka merasa mereka sedang ditanyai oleh bawahan potensial).
Antonio2011a
2
@ Antonio2011a Seharusnya tidak masalah jika Anda bertanya dengan benar - mungkin "metrik kualitas kode apa yang Anda cari di sini?" cukup jelaskan bahwa Anda ingin belajar lebih banyak tentang bagaimana mereka melakukan sesuatu. Anda belajar tentang mereka, bukan melakukan tes. Dapat bekerja bahkan ketika meminta kode: "Bisakah saya melihat seperti apa kode Anda?" daripada "Saya ingin sampel dari apa yang Anda anggap kode yang baik."
Caleb
3

Yah, itu tergantung. Saya selalu suka tahu di mana saya akan bekerja.

Saya melihat wawancara kerja sebagai bidirectional. Perusahaan mencari tahu tentang Anda dan mencari tahu tentang perusahaan. Meminta kode mungkin sedikit banyak, tetapi mengajukan pertanyaan terkait pengembangan harus OK.

Misalnya, saya tidak akan menerima pekerjaan di mana perusahaan tidak menggunakan teknik gesit atau TDD atau tidak berencana untuk merangkul dan mendorong praktik-praktik semacam itu. Saya juga menghargai ketika sebuah perusahaan bangga dengan produk dan kode mereka - ketika tampaknya pewawancara sedang menunggu Anda untuk melihatnya sehingga ia memiliki alasan untuk menjelaskan semua hal keren yang mereka lakukan.

Patkos Csaba
sumber
Sepakat. Saya mencoba mempelajari alat yang mereka gunakan? Apakah manajemen membayar alat tambahan (komponen, utilitas) yang tidak dimiliki oleh banyak tempat. Sikap terhadap alat open source juga selalu bagus.
ozz
2

Haha, itu pertanyaan lucu. Saya tidak akan tersinggung jika seseorang meminta saya untuk sampel kode saat mereka sedang wawancara, tetapi saya mungkin juga tidak akan menunjukkan kepada mereka kode apa pun, kecuali mereka telah meminta sebelumnya dan saya punya waktu untuk merencanakan dengan hati-hati.

Saya pasti mengerti maksud mengajukan pertanyaan seperti itu. Sebagai pencari kerja, saya telah meminta Tes Joel kepada pewawancara sebelumnya. Mereka tidak tahu apa itu, tetapi mereka senang menjawab.

Di beberapa tempat, mengajukan pertanyaan-pertanyaan semacam itu dapat meningkatkan peluang Anda sementara itu mungkin merugikan peluang Anda di tempat lain. Keindahan hidup adalah jika hal itu meningkatkan peluang Anda, maka itulah tempat yang Anda inginkan untuk bekerja. Jika itu melukai peluang Anda, berarti Anda tidak akan menginginkan pekerjaan itu.

Saya melihat tidak ada ruginya dengan bertanya dengan sopan dan bisa menjelaskan mengapa Anda ingin melihatnya.

Mark E. Haase
sumber
"Keindahan hidup adalah bahwa jika itu meningkatkan kesempatanmu, maka itu adalah tempat yang ingin kamu kerjakan." +1
Spidey
2

Saya telah mengajukan pertanyaan ini di dua wawancara saya di mana mereka mengklaim mereka memiliki dev senior yang bermigrasi ke asp.net mvc3 atau 4 atau ketika mereka mengatakan mereka ingin kode sangat komentar. Saya telah menolak pada kedua kesempatan karena kurangnya pengetahuan mereka tentang standar kode aktual. Satu-satunya standar yang saya temukan adalah jika berfungsi salin dan tempel dan itu akan berfungsi. Saya tidak akan menanyakan pertanyaan ini jika saya melakukan proyek baru atau harus menulis sepotong kode independen dari orang lain dalam tim. Saya pasti akan melihat kode jika saya disewa untuk memperbaiki perangkat lunak atau fungsi yang ada dan saya tidak akan mengatakan ya kecuali saya tahu jawabannya. Asumsikan Anda tidak bertanya dan mereka mengatakan dapatkah Anda memperbaiki datepicker mulai dari tanggal hari ini. Saat Anda melihat kode lawas, Anda tidak melihat jquery atau jquery ui tetapi pemetik tanggal yang dibuat khusus yang memiliki semua tanggal yang disimpan dalam file xml dan setiap malam tugas cron dijalankan untuk memperbarui bulan mendatang. Itu akan memulai sakit kepala karena kode untuk mencapai ini kurang dari kata-kata dalam contoh ini. Jika Anda akan mengerjakan kode mereka, minta untuk melihatnya. Tidak bertanya sama seperti mengutip pekerjaan berdasarkan keyakinan bahwa kata pelanggan itu kecil. Dia mungkin memiliki tanah 20 acre dan berkebun di 1 acre kecil untuknya tetapi gardner tidak dapat membebankan 50 quid hanya karena semua pekerjaan kecilnya dimulai dari 50.

Farrukh Subhani
sumber
1

Saya cenderung bekerja untuk perusahaan di mana setidaknya sebagian dari pekerjaan mereka adalah open source, jadi sepele untuk menemukan contoh kode. Saya mencari tahu siapa yang bekerja di perusahaan, lalu mencari tahu pegangan online mereka. Karena orang cenderung menggunakan nama layar yang sama, berulang-ulang, mudah untuk menemukan di mana mereka melakukan kode, apakah mereka berada di Github, Bitbucket, atau di tempat lain sepenuhnya.

Perusahaan saya saat ini memiliki banyak kode yang di-host di Github, jadi mudah untuk melihat apa yang mereka kerjakan, seberapa besar basis kode mereka, dan apa yang tampaknya tidak lagi menarik.

Saya tidak akan pernah meminta sampel, hanya karena mereka akan menunjukkan kepada Anda kode terbaik yang mereka miliki. Ini bukan kode yang akan Anda gunakan. Mungkin disimpan di toples di ruang terkunci. Anda akan bekerja dengan kode berantakan yang harus dipusingkan banyak orang.

kcunning
sumber
0

Ini luar biasa jika Anda bisa mendapatkannya. Terkadang tidak mungkin tanpa perjanjian tipe NDA, tetapi selalu baik untuk mencoba. Untuk meningkatkan peluang Anda, beri tahu pewawancara Anda bahwa Anda menginginkan ini jauh-jauh hari (beberapa hari) sehingga mereka dapat merencanakan sesuatu untuk Anda.

segera
sumber