Ketika saya mendapatkannya, memiliki kesalahan (bahkan salah ketik atau hilang ";") dalam kode papan tulis Anda akan sering dikenakan biaya beberapa poin wawancara. Menghindari itu pasti akan membuat satu kode pembacaan bukti berulang-ulang (kehilangan waktu dan mungkin energi / konsentrasi saraf) atau bahkan menggunakan algoritma yang lebih sederhana (dan dengan demikian kurang efektif) - dan kedua cara ini "mahal" lagi!
Jadi, mengapa tidak hanya menulis kode secepat elegan dan efektif seperti Anda akan memiliki kerangka kerja (unit) yang Anda inginkan dan kemudian hanya mengujinya (hanya di papan tulis)?
Adakah yang mencoba / melihat pendekatan ini? Apakah seluruh gagasan itu layak?
[Ini juga berlaku untuk kasing dan kertas tentunya]
Jawaban:
Saya benar-benar ingin Anda menguji kode papan tulis yang saya minta Anda tulis. Saya ingin Anda berbicara dengan lantang saat Anda menulisnya, memeriksanya, menemukan sebagian besar kesalahan sintaksis yang Anda buat, dan menunjukkan bagaimana itu bisa lebih efisien. Bahkan, itulah gunanya melakukannya di papan tulis. Ini bukan jenis sekali tembak, tulis-habis-habisan, uh-huh-you-get-70/100 semacam itu. Ini adalah percakapan, dimediasi oleh kode dan diadakan di papan tulis, bukan di meja saya.
Berikut ini beberapa cara bagus untuk gagal dalam tes "Pengkodean papan tulis":
(misalnya: tulis di Fortran, tafsirkan "tampilan" atau "cetak" sebagai "tulis ke log peristiwa", hal semacam itu. Saya mungkin mengizinkannya jika Anda memberi tahu saya sebelumnya bahwa itu adalah asumsi Anda)
(Kami adalah konsultan di sini. Saya menguji perilaku konsultan sebanyak coding. Meminta klien hanya benar jika klien benar-benar punya pilihan. Mengontrol percakapan dengan orang-orang yang akan membayar Anda sulit. Ini adalah pelajaran 1. Ini adalah pelajaran 1. Ini adalah tandai melawan Anda pada topik apa pun, tetapi untuk spesifik "Anda menyewa seorang programmer X tapi saya tidak ingin menulis dalam X untuk Anda" Anda sekarang memiliki dua tanda hitam besar.)
(Anda pikir saya melebih-lebihkan tetapi saya memiliki seorang pria yang menggeneralisasikan masalah saya secara dramatis - berpegang pada contoh di atas katakanlah alih-alih 1 sampai 5 solusinya akan melakukan urutan bilangan bulat sembarang (dapatkan dari mana? Saya bertanya-tanya) dan berusia 5 tahun. kali selama orang lain - dan dia lupa untuk benar-benar memanggil fungsi yang melakukan pekerjaan. Berulang kali mendorong dan menyarankan bahwa dia berjalan melewatinya seolah-olah dia adalah debugger tidak menyebabkan dia memperhatikan bahwa fungsi itu tidak pernah dipanggil.)
Saya selalu berkata, "Apakah kamu suka itu?" "Bisakah kamu memperbaiki itu?" "tuntun aku melalui itu" dan sejenisnya. Biasanya, titik koma yang hilang terlihat, atau yang tidak diketahui, dalam percakapan itu. Jika tidak, saya biasanya menandai saraf.
Hal-hal lain yang mungkin menurut Anda tidak penting di papan tulis yang penting bagi saya:
Saya sangat merekomendasikan berlatih coding di papan tulis. Saya selalu memperingatkan orang yang diwawancarai bahwa mereka akan diminta untuk melakukannya. Jika Anda memiliki akses ke papan tulis yang sebenarnya maka tentukan sendiri beberapa masalah sederhana dan praktikkan melakukannya di sana. Ini akan membantu kinerja dan kepercayaan diri Anda.
Maaf saya tahu saya berada di wilayah TL; DR, tetapi ada satu hal - pengkodean di papan tulis adalah tentang lebih dari pengkodean . Ini adalah ujian lebih dari pemahaman Anda tentang sintaksis. Ada banyak perilaku programmer yang baik yang ditunjukkan dalam respons Anda terhadap tugas ini. Jika Anda berpikir ini hanya tentang pengkodean, Anda kehilangan intinya.
Dalam percakapan lain tentang pengujian papan tulis, orang mengatakan saya mungkin menolak kandidat yang baik dengannya. Jujur, itu risiko yang bersedia saya ambil. Setiap putaran perekrutan berisi beberapa orang yang bisa saya pekerjakan. Beberapa orang dengan resume yang bagus, yang baik-baik saja di bagian tanya-jawab wawancara, berantakan di papan tulis dan jelas tidak bisa (dengan jumlah yang diminta) menulis kode sederhana dalam bahasa yang mereka klaim ketahui. Saya mungkin telah menyewa beberapa di antaranya. Alat apa pun yang mencegah itu adalah alat yang akan saya terus gunakan. Saya tidak pernah berakhir di tidak seorang pun untuk menyewa kapal karena semua kandidat saya mengacaukan papan tulis dan saya tidak berharap saya akan melakukannya.
sumber
Saya pikir Anda membuat asumsi yang salah di sini. Tidak mungkin saya berharap seorang kandidat menulis kode di papan tulis untuk bisa mendapatkan setiap ';' sempurna di tempat. Jika Anda mewawancarai di tempat yang menghukum Anda untuk itu maka saya sarankan mereka bukan organisasi yang ingin Anda bekerja :-).
sumber
Tes kertas atau papan tulis sangat tidak efektif. Saya ingat suatu kali saya melakukan wawancara di mana saya harus mencari kesalahan dalam beberapa kode di atas kertas. Salah satunya adalah bahwa kelas diwarisi dari antarmuka tetapi tidak ada implementasi anggota. Saya tahu ini kemungkinan merupakan salah satu kesalahan, saya mencarinya dan untuk alasan apa pun di tempat saya tidak bisa melihatnya (walaupun saya menyebutkan bahwa saya sedang mencari itu sebagai salah satu masalah).
Ketika itu terjadi, saya masih mendapatkan pekerjaan itu, tetapi itu membuat saya berpikir tentang apa yang telah terjadi. Dalam skenario realistis untuk hal semacam itu saya akan mendapatkan garis berlekuk saat ada sesuatu yang salah (ini adalah C # di Visual Studio) dan hal itu tidak akan dikompilasi. Saya tidak pernah memeriksa ini dalam kehidupan nyata karena itu tidak pernah terjadi (tidak mungkin) dan karenanya saya tidak bisa melihat hal semacam ini. Semi-titik dua yang hilang adalah contoh yang lebih ekstrem dari ini - benar-benar tidak realistis di dunia nyata kecuali jika Anda menulis di notepad dan mengirimkan kode Anda ke orang lain untuk dikompilasi!
Jika seseorang meminta untuk menggunakan papan tulis selama wawancara untuk mendukung sesuatu yang ingin mereka katakan, bagus, tetapi saya tidak akan pernah melakukannya sebaliknya.
sumber
Saya sudah melakukan itu. Pada sebuah wawancara saya diminta untuk menerapkan pengkodean run-length pada papan tulis, dan sementara saya memotong beberapa kode (menjelaskan apa yang saya singkatan) agar sesuai dengan papan tulis saya masih datang dengan koleksi tes untuk unit ini, dan menelusuri salah satunya untuk memvalidasi solusi saya dan menunjukkan bagaimana pengujian akan membantu. Saya ditawari posisi itu jadi saya menganggap pengujian itu membantu, atau paling buruk tidak mengganggu.
sumber
Saya menggunakan pendekatan ini ketika mengambil tes untuk sekolah. Saya pertama-tama menulis fungsi, lalu ke samping saya menulis tabel kecil input, output, dan vars. Saya telah menangkap beberapa kesalahan bodoh dengan cara ini. Pengujian, bahkan pengujian di atas kertas / papan tulis, selalu lebih baik daripada tidak menguji.
Saya tidak setuju dengan panik atas titik koma dalam pengaturan profesional, meskipun.
sumber
Meminta seorang kandidat untuk menulis kode di papan tulis adalah konyol. Ada alat modern seperti snippits, jsfiddle, dan intellisense. Selain itu, tidak ada insinyur yang diminta untuk menghafal sintaksis. Sintaksnya dicari dan dirujuk. Jika Anda menghafal kode, Anda mungkin tidak menghabiskan waktu dalam karier Anda mempelajari cara membuat kode di lingkungan multantan, mengoptimalkan sintaksis atau bahkan lingkungan yang dihosting.
sumber
Ketika sebuah restoran ingin mempekerjakan seorang koki, pemiliknya tidak memintanya untuk memasak "pot au feu" dengan tusuk gigi dan topi.
Jangan meminta pengembang untuk menulis kode di papan tulis dalam sebuah wawancara.
sumber
Pengodean papan tulis sulit. Saya tidak pernah diperkenalkan dengan hal itu sampai saya diwawancarai oleh Disney. Tidak tahu apa yang diharapkan dan tidak bisa men-debug itu, saya tersandung melalui itu membicarakannya dan menyelesaikan masalah, tetapi dalam kode pseudo agak cara. Ketika mereka bertanya, bisakah itu berjalan.
Maksud saya yakin itu bisa Anda hanya perlu memperbaiki kesalahan sintaks, benar. Saya percaya mereka kehilangan kandidat yang sangat baik jika saya tidak dipekerjakan karena papan tulis. Saya melihat kualifikasi dan sepertinya saya memenuhi syarat untuk posisi itu dan dapat melakukan pekerjaan itu. Saya unggul di pekerjaan saat ini dan berharap bisa bersama mereka.
Terima kasih atas masukan Anda Kate, saya membaca setiap kata. Hanya bagi saya sebagai seorang programmer, papan tulis benar-benar tidak menunjukkan keahlian Anda. Saya seorang programmer hebat yang bekerja dalam berbagai bahasa. Saya tahu bahasa yang harus saya ikuti, tetapi di papan tulis tiba-tiba saya lupa.
Saya membangun integrasi kompleks dan pemrosesan kartu kredit, tetapi di papan tulis saya tidak dapat mengingat bagaimana melakukan sintaksis yang tepat tidak ada yang mendorong saya.
Sebagai majikan saya suka pengujian papan tulis; Namun, saya menyewa seorang programmer saya ingin melihat keterampilan mereka yang sebenarnya jika mereka melakukan pekerjaan itu. Sangat bagus jika mereka dapat berkomunikasi, tetapi saya perlu melihat mereka dapat menyelesaikan masalah.
sumber