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":
- tolak itu
- jangan ajukan satu pun pertanyaan klarifikasi (bahasa, platform, sesuatu tentang persyaratan) DAN jangan katakan asumsi Anda tentang semua itu DAN buat asumsi yang jauh dari apa yang akan saya jawab
(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)
- tanyakan pada saya bahasa apa yang saya inginkan, terima jawaban yang ada di deskripsi pekerjaan, dan kemudian tulis dalam bahasa yang berbeda karena Anda tidak nyaman dengan bahasa yang saya minta.
(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.)
- tunjukkan kepada saya apa astronot arsitektur Anda dengan mengisi dua papan tulis dengan antarmuka, pola pabrik, abstraksi, suntikan, dan tes ketika saya ingin Anda "mencetak angka dari satu hingga 5".
(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:
- setelah selesai, apakah saya masih bisa membacanya? Sudahkah Anda mencoreng, mencoret-coret, mengganti warna, menggambar panah, mencoret, dan umumnya meninggalkan kekacauan yang sekarang tidak dapat digunakan? Atau apakah Anda sadar bahwa papan tulis dapat dihapus, menunjuk ke baris kode di udara alih-alih melingkari / panah mereka, dan meninggalkan saya sesuatu yang bisa saya ambil dan simpan dalam file desain?
- berapa banyak yang kamu tanyakan padaku sama seperti kamu melakukannya? Apakah Anda suka ditinggal sendirian dan tidak membahas kode Anda, atau apakah Anda melihat kode sebagai hal yang kolaboratif? Bagaimana Anda merespons ketika saya menanyakan sesuatu kepada Anda saat Anda masih menulisnya?
- apakah Anda mencibir pada tugas "mudah" atau pingsan pada yang "sulit"? Apakah Anda tidak sopan diminta menunjukkan kode? Apakah Anda mudah diintimidasi oleh masalah teknis, atau sombong tentang kemampuan Anda menghasilkan algoritma yang baik?
- apakah Anda memikirkannya, atau mengingat solusi yang Anda baca di suatu tempat? Saya biasanya bisa tahu masalah sulitnya.
- apakah Anda berencana ke depan tentang di mana Anda mulai menulis? Orang-orang yang kehabisan papan tulis biasanya mulai terlalu rendah atau menulis terlalu besar - Saya tahu mereka tidak tahu ini akan menjadi 20 baris kode dan hanya menyisakan ruang untuk 5 orang - percaya atau tidak detail kecil ini dicerminkan dalam tugas estimasi yang lebih besar juga.
- Apakah Anda sudah memeriksanya sebelum mengatakan bahwa Anda selesai? Apakah saya melihat Anda menunjuk atau memanfaatkan jalan Anda dan mengujinya sendiri sebelum saya memintanya? Ketika saya meminta Anda, atau menanyakan pertanyaan spesifik tentang itu, apakah Anda melihatnya lagi, atau hanya pergi dari memori? Apakah Anda bersedia mempertimbangkan bahwa draf pertama Anda mungkin tidak lengkap?
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.