Saya baru saja melakukan wawancara telepon yang cukup baik (untuk posisi terkait CakePHP, bukan karena itu penting untuk pertanyaan). Pewawancara sepertinya terkesan dengan resume dan kepribadian saya. Namun, pada akhirnya, dia meminta saya untuk mengirim email kepadanya contoh kode dari proyek kerja saya yang sudah ada, "untuk memeriksa Anda tidak diam-diam seorang programmer yang mengerikan, ha ha!"
Saya tidak terlalu khawatir bahwa kode saya tidak dapat berdiri sendiri, tetapi saya sangat banyak programmer menengah daripada seorang ahli. Apa jebakan jelas yang harus saya pastikan sampel kode saya tidak jatuh ke dalam, jika mereka mengesampingkan saya di tempat? Kedua, dan ini mungkin bagian yang lebih sulit dari pertanyaan untuk dijawab, fitur apa dalam contoh kode yang akan sangat mengesankan sehingga mereka akan langsung membuat Anda lebih condong ke arah programmer?
Semua ide atau saran disambut!
sumber
Jawaban:
Saya ingin melihat kode Bersihkan :
Itu berarti:
i
kecuali itu satu-satunya nilai kenaikan. Jangan gunakan nama variabel yang tidak masuk akal.Anda ingin mengirim mereka sesuatu yang cukup kompleks untuk menjadi menarik tetapi cukup bersih sehingga pengembang yang baik dapat segera memahami apa yang dilakukannya.
Beberapa komentar di atas tampaknya berkaitan dengan betapa mudahnya memalsukan ini. * Jika Anda ingin melindungi dari hal ini, maka mungkin kirimkan deskripsi cepat mengenai tujuan dan riwayat kode dalam email.
* Paling tidak jika pewawancara bertanya tentang proyek-proyek sebelumnya di muka, kemudian meminta Anda untuk sampel dari proyek ini, dan bertanya apa yang mengharuskan Anda untuk menulisnya atau bagaimana berevolusi, saya pikir prosesnya akan cukup pembohong-bukti. Saya pikir sebagian besar kandidat yang akan berbohong akan menunjukkan masalah di bidang lain.
sumber
Ketika saya sedang mencari pekerjaan, saya memecahkan banyak pertanyaan kontes pemrograman ACM, dalam beberapa bahasa yang berbeda, dan menggunakannya untuk contoh kode sejak saat itu. Saya pikir mereka membuat contoh kode yang baik karena:
Dan kemudian, kode yang Anda buat harus jelas, konsisten, mudah dibaca, dan mudah dimengerti.
Dan terakhir:
sumber
sumber
Nah, jika saya mewawancarai Anda, saya ingin melihat kode Anda .
Bersih itu baik, pemecahan masalah itu baik, tetapi kode sebenarnya lebih baik. Seorang programmer yang baik tahu kapan dia di-scammed oleh programmer lain, sehingga kepercayaan diri bisa turun.
Membaca kode orang lain seperti
menariberhubungan seks: Anda tahu kapan itu hal yang nyata, dan jika orang lain berpura-pura, pada akhirnya bencana akan terjadi. (Baru sadar kutu buku nyata tidak tahu bagaimana menari)Percayalah pada diri sendiri dan kemampuan coding Anda . Kecuali jika Anda benar-benar mengenal pewawancara Anda, Anda tidak dapat mengantisipasi apa yang dia harapkan dari gaya pengkodean Anda.
sumber
Juga sangat berhati-hati bahwa itu BUKAN kode dari atasan Anda saat ini (Mereka memilikinya, Anda tidak dan saya jamin mereka tidak akan suka Anda membagikannya.). Ambil sesuatu yang Anda banggakan dan kerjakan sendiri agar tidak menjadi spesifik bagi perusahaan (singkirkan referensi apa pun ke tabel basis data atau nama server mereka, dll.). Apa pun yang Anda lakukan jangan mengirimkan kode yang memiliki kesalahan atau teknik yang buruk untuk jenis kode itu (saya mungkin akan menolak seseorang yang mengirimkan kursor ketika operasi berbasis set akan lebih sederhana dan berkinerja lebih baik ketika meninjau kode SQL. Ada teknik serupa untuk bahasa lain yang ada di sana untuk menyelesaikan satu masalah masalah yang relatif jarang yang dapat digunakan untuk masalah lain yang lebih umum tetapi bukan pilihan terbaik untuk masalah lainnya. Apakah kalimat itu masuk akal?)
sumber
Saya akan posting kedua dari Renesis tentang kode bersih, tetapi akan menambah daftar memasok tes unit kualitas dan didokumentasikan dengan baik untuk kode yang Anda kirimkan. Seorang programmer yang baik harus menulis unit test untuk kode mereka.
sumber
Sebagai satu pendapat dari seseorang yang meminta sampel kode ketika mengevaluasi kandidat, ada beberapa fitur tingkat tinggi (isi kode) dan beberapa fitur tingkat rendah (struktur kode). Fitur tingkat tinggi:
Aspek tingkat rendah lebih sederhana:
Untuk kandidat yang baik, saya berharap sampel menjadi: A) Sampel kecil antipeluru atau B) Bagian yang baik dari proyek menarik yang lebih besar (misalnya, modul dari repo pribadi Github). Saya berharap mereka menjadi proyek pribadi atau proyek akademik. Jika mereka mengirim satu dari proyek berbayar, saya berharap catatan bahwa mereka diberi izin untuk menggunakannya. Jika saya tidak mendapatkan catatan itu, saya akan memotong mereka dari kandidat (kandidat yang lemah) atau bertanya kepada mereka tentang hal itu selama wawancara (kandidat kuat). Tidak memiliki izin akan menjadi bendera merah besar (mungkin tidak dapat diatasi). Untuk kandidat yang maju, saya berharap penafian mencatat bahwa beberapa sampel sumber terbaik mereka tidak dapat ditampilkan karena dilakukan sebagai bagian dari pekerjaan mereka. Namun, saya kemudian mengharapkan kesaksian yang memancar tentang mengapa mereka bangga dengan desain yang tidak dapat dipertontonkan itu dan bagaimana mereka menyukainya seperti anak kecil.
Akhirnya, seperti halnya sebagian orang mencela bahwa "Oh, seseorang hanya bisa mendapatkan sampel kode dari internet," argumen tandingannya adalah bahwa kebanyakan orang yang tidak mengerti kode kualitas produksi yang baik juga tidak memahaminya ketika mereka melihatnya . Selain itu, orang dapat selalu memeriksa baris khusus untuk kode Google. Juga, paling-paling, mencuri kode akan membuat seorang kandidat diwawancarai di mana mereka mempermalukan diri mereka sendiri ("Jadi mengapa Anda melakukannya dengan cara ini ...?").
Sebagai catatan terakhir pada kode dari pekerjaan sebelumnya: Hanya saja, jangan. Dari sudut pandang SDM, meminta kode dari pekerjaan sebelumnya tidak pantas dan merupakan tanda bahaya tentang perusahaan. Anda berdua akan memiliki tanggung jawab hukum (yaitu, Anda berdua dapat dituntut) dan itu menunjukkan bahwa mereka tidak tahu apa yang mereka lakukan. Kode yang dilakukan untuk pemberi kerja sebelumnya tidak boleh diberikan kecuali kode tersebut sudah tersedia untuk umum atau Anda memiliki izin eksplisit dari pemberi kerja itu. Lebih buruk lagi, di perusahaan besar, atasan langsung Anda mungkin tidak memiliki kekuatan untuk memberi Anda izin, jadi bersenang-senang dengan departemen hukum dalam kasus itu? Saya yakin mereka akan sangat senang untuk mengekspos IP mereka untuk karyawan yang keluar.
sumber