Efek ReSharper pada coding coding [ditutup]

18

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:

  1. 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.

  2. 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?

Ryan Hayes
sumber
4
Saya memberikan suara untuk menutup pertanyaan ini sebagai di luar topik karena pertanyaan ini adalah tentang bagaimana cara mewawancarai dengan baik , yang di luar topik per pusat bantuan . Namun, pertanyaan ini memang memiliki komponen pada topik, yaitu " bagaimana alat seperti ReSharper memengaruhi kemampuan seseorang untuk membuat kode tanpa alat semacam itu "), tetapi menyuntingnya menjadi pertanyaan yang terlalu agresif untuk diedit dan akan membatalkan jawaban yang ada.
durron597
Jika saya harus menulis kode demo dalam IDE standar, itu akan diisi dengan :wtanda acak di mana-mana.
LindaJeanne

Jawaban:

31

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.

Kramii Reinstate Monica
sumber
2
Ketika saya mewawancarai orang-orang, saya minta mereka menulis kode di selembar kertas kosong. Tidak harus cantik, dan tidak harus dikompilasi, tetapi harus menyerupai bahasa target. Saya tidak mencari produk yang berfungsi; apa yang saya cari adalah pola pikir; dapatkah orang yang diwawancarai memikirkan masalah dan menyelesaikannya menggunakan kode?
Robert Harvey
BTW itu harus menyenangkan untuk dapat menolak tawaran menarik dalam iklim ekonomi saat ini.
Robert Harvey
12

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.?

Benteng
sumber
+1 Selain itu, jika tugas pengkodean Anda benar-benar hanya memeriksa bahwa mereka tahu tentang foreach, saya mempertanyakan seberapa berguna itu sebenarnya (bahkan sesuatu seperti FizzBuzz melihat jauh lebih banyak dari itu). Saya sedang mengobrol dengan seseorang dari komunitas Java dan dia berkata Anda bisa tahu siapa .net coder yang baik karena mereka menggunakan Resharper. Tidak yakin itu 100% akurat - tetapi Anda mendapatkan intinya ...
FinnNk
1
Mendapatkan kandidat untuk menulis kode di papan tulis saat wawancara adalah SANGAT mengungkapkan kemampuan mereka untuk memprogram. Sebagai pewawancara, Anda membuat penilaian tentang seberapa besar dukungan yang dibutuhkan orang ini untuk melakukan peran tersebut.
Michael Shaw
8

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.

Walt Stoneburner
sumber
1

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.

Kate Gregory
sumber
Saya benar-benar mengerti mengapa Anda ingin melakukan semua hal tentang Whiteboard - saya bayangkan itu menyingkirkan banyak kandidat yang buruk - tetapi itu juga akan membuang beberapa talenta hebat juga. Tentu saja, itu tidak menjadi masalah selama Anda memiliki kumpulan papan tulis yang bagus.
Kramii Reinstate Monica
2
@ Kramii: Anda tahu, "hebat" bakat harus bisa menjelaskan diri mereka sendiri dan kode mereka dengan papan tulis. Jadi saya tidak bisa benar-benar melihat mengapa itu akan menyingkirkan mereka.
Spoike
1

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.

sheikhjabootie
sumber
Saya sangat jelas dalam wawancara tentang alat yang saya gunakan untuk bekerja, dan apa yang saya harapkan dari perusahaan. Apakah Anda yakin beberapa perusahaan masih hanya menyediakan satu monitor per pengembang? Saya tidak punya masalah mengatakan kepada pewawancara "Saya berlari dengan kecepatan setengah karena alat yang saya andalkan tidak ada di sini", terutama ketika saya menggunakan kombo kunci dan itu tidak berfungsi. Bahkan dalam IDE vanilla nominal saya menyesuaikan hal-hal, karena tangan saya tahu di mana semuanya berada dan saya tidak dapat diganggu pelatihan ulang. Untuk keyboard Dvorak atau menulis komentar dalam bahasa Jerman, atau cacat apa pun yang ingin mereka berikan kepada saya.
@moz - Sepenuhnya setuju Anda harus memberi tahu majikan bahwa mereka tidak akan mendapatkan hasil maksimal dari Anda tanpa berinvestasi dalam alat. Saya akan melangkah lebih jauh dan membuat mereka berkomitmen untuk mendapatkan alat yang tepat. Mungkin tidak akan menyenangkan bekerja untuk mereka jika mereka tidak mau. Setiap kali Anda melakukan refactor secara manual, Anda akan memaki-maki mereka karena tidak cukup menilai waktu Anda. Bekerja di tempat yang biasa-biasa saja dapat memengaruhi daya penghasilan Anda di masa depan juga. Ini bisa menjadi menarik jika Anda melakukan pemrograman pasangan apa pun jika kedua pengembang memiliki konfigurasi pintasan yang berbeda. Saya mencoba untuk tetap dengan konfigurasi standar sebanyak mungkin.
sheikhjabootie