Siapa pun yang telah menggunakan R # atau CodeRush tahu seberapa cepat Anda dapat menyusun konstruksi sederhana (dan yang kompleks refactor) dengan pintasan keyboard sederhana. Namun, apakah plugin produktivitas ini menyebabkan evaluasi kemampuan yang salah selama wawancara?
Bagian dari menjadi penulis kode yang produktif (dan membuat kesan pertama yang baik dalam sebuah wawancara) adalah menulis kode yang baik - cepat.
Jika saya punya dua kandidat:
Tidak menggunakan plugin. Dia berpikir tentang masalahnya, duduk di IDE stok di PC wawancara yang persis seperti miliknya dan mengetikkan kode dalam satu atau dua menit, seperti biasa. Selesai Lulus.
Gunakan plugin. Dia berpikir tentang masalahnya, duduk di IDE stok di PC wawancara dan menyadari "fe + tab" tidak lagi menulis loop foreach secara otomatis, dan semua pintasan hilang. Dia kemudian tersandung keyboard yang mengenai hotkeys normal dan muncul jendela aneh dan menjadi bingung. Butuh 3 menit untuk menulis apa yang biasanya akan memakan waktu 30 detik. Selesai Sepertinya mereka kadang-kadang tidak tahu jalan di IDE. Pasti baru dalam IDE ini dan karenanya tidak punya banyak pengalaman dengannya atau mungkin bahasanya. Lulus, tetapi tanda 'meh' di sebelah nama mereka
Dalam pengalaman Anda, bagaimana Anda menangani plugin selama wawancara sebagai pewawancara atau orang yang diwawancarai? Apa praktik terbaik untuk mendapatkan apa yang benar-benar diketahui kandidat? Mungkin ada kandidat yang tidak mengerti kode, dan menggunakan R # sebagai penopang. Mungkin juga ada kandidat yang mengetahui kode masuk dan keluar dan menggunakan R # karena itu hanya lebih cepat dari yang dibangun di VS atau Eclipse templates. Apakah lebih baik tidak menggunakan IDE sama sekali? Biarkan mereka membawa PC sendiri? Lainnya?
sumber
:w
tanda acak di mana-mana.Jawaban:
Saya adalah kandidat 2 dalam sebuah wawancara baru-baru ini . Saya diberi instalasi vanilla IDE pada PC dengan keyboard non-standar dan kerangka pengujian yang tidak dikenal, dan saya diminta untuk menulis aplikasi Fizz-Buzz sederhana dengan unit test. Saya menggosoknya. Aku pasti terlihat seperti noob, benar-benar tersandung dalam kegelapan mencoba meretas kode. Tak perlu dikatakan, saya tidak ditawari posisi itu.
Apa yang saya pelajari adalah saya sangat bergantung pada plugin saya. Mereka tidak hanya mendapatkan kode yang diketik lebih cepat - mereka benar-benar membentuk cara saya berpikir tentang kode dan cara saya tentang pengkodean. Sebagai contoh, saya biasanya berpikir sangat hati-hati tentang nama-nama variabel karena mereka bisa menjadi sulit untuk berubah setelah fakta. Sekarang, sebaliknya, saya hanya membuat perkiraan setengah matang tentang bagaimana saya akan menggunakan variabel, meretas beberapa kode, biarkan variabel memberi tahu saya untuk apa, dan kemudian tekan Refactor-> Ubah nama untuk menyebutnya sesuatu yang lebih tepat .
Apakah ini membuat saya kandidat yang kurang mampu? Dalam beberapa hal, saya pikir itu terjadi . Seseorang yang dapat menulis kode di Notepad dan mengkompilasinya dan menjalankannya dengan benar memiliki kelebihan tertentu daripada seseorang seperti saya yang membutuhkan semua kebaikan IDE yang bisa dia dapatkan. Dari sudut pandang itu, saya sangat mengerti mengapa perusahaan mana pun memilih untuk tidak menyewa alat seperti saya.
Di sisi lain , saya masih Pengembang Senior yang berbakat dan mampu. Saya telah belajar apa yang berhasil bagi saya, dan saya mempraktikkan jenis kemalasan yang membuat saya produktif, mengingat kelemahan dan keterbatasan saya sendiri. Singkatnya, saya adalah jenis programmer yang benar-benar dapat menguntungkan perusahaan seperti orang yang memalingkan saya .
Menariknya, saya melakukan wawancara lain beberapa minggu yang lalu. Mengikuti pengalaman saya sebelumnya, saya mengajukan pertanyaan tentang alat atau anggaran tambahan untuk membelinya. Menemukan bahwa tidak ada memberi saya satu alasan lagi untuk menolak tawaran (agak murah hati) yang mereka buat kepada saya .
Jadi, dengan kata lain, Groucho, " Saya tidak akan bergabung dengan perusahaan mana pun yang menginginkan seseorang seperti saya sebagai karyawan. "
Tidak, kecuali mereka membiarkan saya menggunakan ReSharper.
sumber
Biarkan mereka ( kandidat ) menggunakan apa pun yang mereka inginkan. Yang lama, bangun Wal-Mart dengan pisau tentara Swiss hanya untuk menunjukkan bahwa Anda dapat mendekati yang sudah sangat tua. Mereka akan menggunakan apa pun yang dibutuhkan dalam pekerjaan sehari-hari mereka (ya, saya harap begitu) jadi biarkan mereka menggunakan apa pun yang mereka inginkan dalam sebuah wawancara. Hasil akhirnya adalah yang terpenting. Dan saya akan dengan senang hati merekrut seorang kandidat yang tahu alat apa yang tersedia di pasar, dan bagaimana menggunakannya secara efisien, lalu orang yang melakukan semuanya secara manual. Ini adalah industri pembunuh.
ps Sebagai contoh, pikirkan Vim (atau Emacs) - apakah Anda ingin menggunakannya tanpa pengaturan khusus, plugin, dll.?
sumber
Saya berpendapat bahwa alat seperti ReSharper sebenarnya membuat Anda menjadi kandidat yang lebih baik dari semua.
Pertama, sesuatu seperti ReSharper akan mengajarkan Anda tentang konstruksi bahasa yang mungkin belum Anda ketahui, serta cara yang lebih baik untuk mengatur kode Anda agar memikirkan masalah atau menyusunnya agar mudah dibaca. ReSharper, dalam arti tertentu, membuat Anda tajam dengan praktik terbaik untuk slinging code, daripada membiarkan Anda kembali ke kebiasaan buruk atau usang, atau lebih buruk lagi jenis kemalasan yang buruk.
Seorang programmer yang baik perlu memahami konstruksi dasar, tetapi tidak secara manual mengetiknya. Jenis malas yang baik memungkinkan alat melakukan pekerjaan kasar, dan waktu ekstra yang dihemat malah dihabiskan untuk memikirkan masalah. Ini menjadikan seseorang pengembang yang lebih baik secara keseluruhan.
Saya akan menyelesaikan garis penalaran dengan menyatakan bahwa jika proses wawancara lebih menyukai tongkat dan pisau batu, itu pada dasarnya rusak.
sumber
Itulah salah satu alasan saya meminta orang untuk kode di papan tulis, bukan di IDE. Ini tingkat bidang bermain. Dan orang-orang mengatakan "oh sayang, penyelamat biasanya menangani ini untuk saya". Heck, built in snippet handle untuk loop dan semacamnya, yang tidak bisa diberikan oleh papan tulis. Dalam hal itu mengatakan sesuatu seperti "Saya harap tanda baca ada di sana; Saya seorang pria # R" mungkin yang Anda butuhkan untuk menjaga saya dari memegang beberapa masalah sintaksis terhadap Anda.
Saya memerlukan beberapa kemampuan untuk menulis kode yang dapat dimengerti di papan tulis sehingga kami dapat mengadakan pertemuan untuk mengetahui bagaimana kami akan melakukan sesuatu. Dan tentu saja, saya ingin melihat apakah Anda pernah benar-benar menulis kode dalam hidup Anda atau tidak. Wawancara Anda dapat bervariasi.
sumber
Pertanyaan bagus BTW - Saya sering memikirkan hal ini.
Penguasaan alat adalah keterampilan yang penting untuk menjadi pengembang yang baik. Saya selalu merasa alarm berbunyi ketika seorang pengembang mengklaim dia lebih suka coding di notepad daripada menggunakan IDE. Ini menunjukkan bahwa dia lebih tertarik pada proses daripada produk.
Ini seperti memilih untuk menggarap tanah dengan cangkul vs traktor - boleh saja jika Anda seorang tukang kebun hobi, tetapi tidak bisa didukung sebagai petani industri dalam ekonomi kompetitif.
Namun, kami menjadi tergantung pada alat kami. Orang-orang tampaknya panik tentang bagaimana kita akan mengatasi situasi hipotetis di mana alat kita tiba-tiba diambil. Ada argumen yang sama tentang mengizinkan kalkulator ke ujian.
Kenyataannya adalah bahwa alat menjadi lebih baik dan lebih baik dan lebih murah dan lebih murah setiap tahun dan tidak ada alasan mengapa Anda seharusnya mengira Anda akan tanpanya. Dan alat sangat hebat dalam melakukan hal-hal yang berulang dengan tingkat kualitas yang tinggi - yang berarti kita dapat memfokuskan kekuatan penuh dari kecerdasan homo-sapien kita yang luar biasa pada bagian-bagian yang sulit (dan menarik).
ReSharper adalah tambahan yang luar biasa untuk Visual Studio. Perusahaan saya saat ini tidak memiliki ReSharper ketika saya diwawancarai - tetapi saya sangat evangelis tentang hal itu dalam wawancara saya sehingga mereka membeli saya salinan ketika saya menerima posisi serta satu untuk pengembang yang mewawancarai saya. Sekarang sedang diluncurkan di seluruh perusahaan. Alat yang bagus membayar sendiri dalam waktu singkat.
Jadi untuk menjawab pertanyaan: ketergantungan Anda pada alat dapat menyebabkan penilaian yang salah atas kemampuan Anda dalam sebuah wawancara, tetapi mereka akan selalu memberikan evaluasi yang benar tentang kemampuan pewawancara. Jika sebuah perusahaan tidak mengenali nilai dukungan alat dalam wawancara Anda - Anda harus menunjukkannya kepada mereka. Dan jika mereka masih tidak melihatnya, maka saya akan sangat khawatir menerima posisi di sana.
sumber