Saya harus melakukan penilaian cepat terhadap puluhan siswa baru dengan sangat cepat. Saya memiliki 30 menit pertemuan dengan mereka masing-masing (dalam dua atau tiga hari). Saya ingin menggunakan sebagian besar waktu untuk membahas aspek-aspek non teknis. Jadi saya berencana menggunakan 10 menit untuk pertanyaan teknis. Pertanyaan yang sama untuk mereka semua.
Mereka semua sudah dipekerjakan (mereka adalah siswa), yang perlu saya ketahui adalah tingkat rata-rata untuk mempersiapkan pelatihan.
Idealnya, kesulitan must be progressive
untuk mengatur level untuk masing-masing. Level I akan rata-rata, dan saya akan melakukan rata-rata pada setiap pertanyaan juga.
Jika Anda hanya memiliki 10 menit dan 10 pertanyaan untuk diajukan kepada seorang kandidat, apa yang akan menjadi 10 teratas Anda?
Jawaban:
Tiga pertanyaan, menguraikan akhir jawaban Eric Lippert di sini :
Pertanyaan 1:
Pertanyaan 2:
Pertanyaan 3:
Faktor terpenting dalam keputusan Anda adalah menentukan di mana seorang siswa (secara realistis) menempatkan diri mereka sendiri , dan ketiga pertanyaan itu akan membantu Anda menentukannya dengan cepat. Ini juga membantu mengidentifikasi orang yang mungkin dikompromikan oleh efek Dunning-Kruger (di kedua ujungnya), tetapi itu adalah topik lain.
Jika ada yang bisa menemukan referensi untuk metode ini pada SO dan mengedit posting ini untuk menyertakan tautan, saya akan sangat menghargainya.
Bagaimanapun, itu akan jatuh di bawah sepuluh menit.
sumber
Jangan ragu untuk menyarankan penggantian, daftar ini memiliki banyak ruang untuk perbaikan.
sumber
sumber
Pengalaman saya sebagai mahasiswa, saya mulai dari awal - saya telah menemukan apa yang dipelajari orang-orang di Universitas dan yang bermanfaat adalah dua set yang terpisah.
Tetapi karena Anda memiliki kesempatan untuk berbicara dengan mereka, akan konyol untuk tidak menerimanya.
Asumsi saya adalah bahwa ada sedikit kesamaan di latar belakang mereka, jadi saya menghindari pertanyaan spesifik bahasa. Satu-satunya pengecualian yang saya buat untuk ini adalah asumsi bahwa mereka telah melakukan sesuatu di web tetapi pertanyaan ini dapat disesuaikan dengan sesuatu yang setara jika mereka merupakan spesialis yang disematkan atau apa pun.
Anda telah meminta mereka untuk menjadi progresif yang telah saya coba lakukan tetapi jika asumsi saya tentang tidak ada kesamaan adalah benar / pertanyaan yang salah relatif rumit dan banyak kompetensi mereka akan datang dari seberapa baik jawaban mereka menjadi lebih umum pertanyaan adalah.
Bagaimanapun...
1) Bahasa dan teknologi apa yang Anda gunakan? Berapa banyak dari ini (dan yang mana) yang telah Anda habiskan lebih dari 50 jam untuk pemrograman (itu tidak termasuk kuliah, waktu praktikum dan sebagainya, tetapi termasuk proyek dan tugas di mana Anda mengkode solo).
2) Jelaskan program paling kompleks yang pernah Anda tulis. Apa yang membuatnya kompleks?
3) Apa yang Anda ajarkan di universitas (terkait pemrograman) yang Anda pikir tidak Anda pahami dengan benar? Jika Anda berpikir bahwa Anda memahami segalanya (periksa nilainya pada saat ini) maka bicarakan aplikasi atau elemen aplikasi yang Anda lihat tidak akan tahu cara membuat kode dan bagaimana Anda mungkin mulai memikirkannya.
4) Apa prinsip dasar Pemrograman Berorientasi Objek?
5) Ceritakan banyak tentang database relasional sebanyak yang Anda bisa dalam 1 menit
6) Untuk aplikasi web, jelaskan metode untuk mempertahankan informasi tentang pengguna di antara halaman. Apa kelebihan dan kekurangan yang ada untuk mekanisme yang Anda jelaskan.
7) Pilih bagian fungsionalitas yang umum digunakan dalam komputasi dan jelaskan secara singkat bagaimana kerjanya pada level program (misalnya enkripsi, kompresi). Juga jelaskan bagaimana Anda harus menggunakan fungsionalitas yang akan Anda terapkan itu (di sini saya akan mencari fakta bahwa meskipun Anda mungkin tahu cara kerja sesuatu, mungkin lebih baik untuk mengambil perpustakaan untuk itu).
EDIT: Direstrukturisasi dan menambahkan beberapa pertanyaan tambahan untuk membuatnya lebih progresif seperti yang ditanyakan semula.
sumber
Jika ini adalah siswa dan Anda ingin mengukur di mana mereka berada dalam studi mereka maka seharusnya tidak ada pertanyaan jebakan atau pertanyaan yang akan membuat mereka berpikir keras. Saran saya adalah hanya fokus pada dasar-dasar - tidak ada gunanya meminta mereka untuk menjelaskan bagaimana refleksi bekerja jika mereka masih belum sepenuhnya mempercepat objek dan warisan.
Berikut adalah beberapa contoh pertanyaan yang dapat digunakan dan Anda mungkin dapat memulai dengan sesuatu dari kategori pengetahuan inti dan kemudian bergerak berdasarkan bagaimana mereka menjawab pertanyaan, seperti bagaimana cara kerja pengujian adaptif .
Fundamental
Inti
enum
kata kunci digunakan dan kapan Anda akan menggunakannya?Maju
sumber
Tanpa jawaban atas komentar saya di atas, ini adalah hal-hal yang muncul di pikiran secara umum tetapi saya tidak yakin saya akan mempertimbangkan teknis ini.
sumber
Saya menyadari Anda sedang mencoba untuk membangun pelatihan berdasarkan apa yang tidak mereka ketahui, dan bahwa Anda berencana untuk memiliki beberapa "ember" pelatihan untuk berbagai kelompok siswa. Karena Anda hanya memiliki sepuluh menit yang dialokasikan, mengapa tidak membuat daftar hal-hal yang Anda pikirkan termasuk dalam pelatihan, dan ajukan pertanyaan spesifik itu. Jadi Anda berencana untuk mengajar mereka C #. Tanyakan apakah mereka mengetahuinya dengan baik. Tanyakan apakah mereka telah menggunakan fitur yang lebih baru (LINQ, tipe yang dapat dibatalkan, generik, ...). Jika ada konten basis data dalam pelatihan Anda, ajukan beberapa pertanyaan tentang itu. Pada akhirnya Anda mungkin melihat bahwa salah satu topik yang Anda rencanakan tidak perlu, karena mereka semua mengetahuinya, dan beberapa topik lain diperlukan oleh semua orang, dan sebagainya. Itu lebih praktis daripada mencoba memunculkan pertanyaan yang tidak terkait dengan apa pun yang Anda
sumber
Tanyakan kepada mereka pertanyaan FizzBuzz
Apakah mereka tahu cara membuat kode? Bahasa apa yang mereka gunakan? Mengapa mereka membuat kode seperti itu? Apakah mereka menggunakan Rekursi? Loop? Metode / Fungsi Lainnya? Pointer?
Anda juga dapat menggunakan pertanyaan sebagai dasar untuk pertanyaan lain (yaitu Mengapa Anda tidak menggunakan Rekursi? Bagaimana Anda menulis ini menggunakan petunjuk?)
Itu tidak mencakup segalanya, tetapi mungkin memberi Anda gambaran tentang keterampilan pengkodean mereka
sumber
Sepuluh pertanyaan:
Perlihatkan for for yang merangkum nilai-nilai array. Tanyakan apa yang dilakukan oleh potongan kode tersebut. [Bisakah mereka membaca loop dasar?]
Minta mereka untuk menulis perulangan for yang mencetak angka 1 hingga 10, dipisahkan dengan koma. [Selain "bisakah mereka melakukan ini?" Anda dapat menilai seberapa berulang kode mereka.]
Tampilkan sepotong kode dengan dua referensi,
a
danb
, arahkan ke dua objek berbeda dengan bidang bilangan bulatx
diatur ke, katakanlah,7
dan5
. Kemudian tetapkan kembali:a = b;
,,b.z = 9;
lalu minta nilai daria.z
. [Apakah mereka mengerti referensi?]Tampilkan dua bersarang untuk loop (menggunakan indeks
i
danj
), mengumpulkan nilai dari beberapa ekspresi. Di loop paling dalam, miliki dua perhitungan:double x = Math.pow(2.0, i)
dandouble y = x * j
. Minta mereka untuk membuat kode lebih efisien. [Apakah mereka tahu tentang ketergantungan loop sederhana?]Tanyakan kepada mereka apa yang salah dalam contoh kode A. (Lihat di bawah.) [Bisakah mereka berpikir secara logis?]
Tanyakan kepada mereka apa yang salah dalam sampel kode B. (Lihat di bawah.) [Juga pada pemikiran logis.]
Minta mereka untuk membalikkan kondisi ini:
(s != null && s.Length != 0)
tanpa menggunakan!
. [Apakah mereka tahu Hukum DeMorgan?]Tampilkan sepotong kode yang mirip dengan iklan Lint lama di majalah: Minta mereka untuk menemukan bug. Misalnya, kelebihan
equals
alih-alih menimpanya. [Apakah mereka pengacara bahasa yang baik? Pertanyaan-pertanyaan semacam ini kebanyakan menguji pengalaman: apakah Anda pernah melihat yang ini sebelumnya?]Bisakah mereka menggambarkan cara melakukan pencarian biner melalui array yang diurutkan?
Bisakah mereka menggambarkan bagaimana metode penyortiran mungkin diterapkan?
Ini mungkin tampak "terlalu pendek," tetapi saya percaya untuk menilai siswa Anda mungkin menemukan sepuluh menit cukup ketat. Anda benar-benar ingin melihat mereka melakukan pengkodean. (Sepertinya Anda akan melakukan FizzBuzz, berdasarkan satu komentar.)
Jika Anda dapat mengasumsikan siswa yang lebih kuat, maka Anda juga ingin menanyakan beberapa hal klasik, seperti rekursi, membalikkan daftar yang tertaut, dan mungkin kartu liar lanjutan seperti menjelaskan daftar XOR, atau intuisi apa yang mungkin mereka miliki untuk mengapa mengurutkan serangkaian angka membuatnya lebih mudah untuk dikompresi daripada tidak disortir.
Contoh Kode A:
Contoh Kode B:
sumber
Tentunya Anda salah tentang hal ini. Identifikasi pengelompokan yang Anda inginkan untuk menempatkan setiap siswa
misalnya
dan seterusnya. Ketika Anda telah mengidentifikasi pengelompokan yang sesuai yang akan tergantung pada materi pelajaran, mencari tahu pertanyaan apa yang akan diajukan bersifat sepele.
sumber
Para siswa sudah dipekerjakan dan Anda ingin membuat program pelatihan, jadi bagian dari kesepakatan itu adalah untuk mengetahui seberapa cepat mereka dapat belajar (dan / atau apa yang mereka tahu: siapa yang peduli?). Mengapa tidak memilih beberapa pertanyaan yang mudah, sedang dan sulit dan berikan kepada mereka sebelumnya. Mengapa menyergap mereka dengan pertanyaan yang mungkin tidak mereka ketahui, jika mereka dapat dengan mudah dipelajari (oleh sebagian orang)?
Anda akan melihat, bertentangan dengan apa yang dibayangkan kebanyakan orang, bahwa banyak dari siswa tidak akan melakukannya dengan baik bahkan dengan pertanyaan-pertanyaan yang ada. Dengan cara ini, Anda akan belajar tentang siswa Anda, pengetahuan mereka, dan kemampuan mereka untuk belajar.
sumber
Buat 5 konstruksi bagan alur sederhana dan daftar jawaban yang terpisah. Minta mereka untuk mencocokkan gambar dengan frasa.
Gambar berikut ini:
Mintalah mereka untuk menjelaskan perbedaan antara 1 dan 2.
Mintalah mereka untuk menjelaskan perbedaan antara 3 dan 4.
Mintalah mereka untuk contoh kapan Pernyataan Kasus Membangun akan berlaku.
sumber
Saya tidak yakin bahwa ini bisa dilakukan dalam 10 pertanyaan dalam 10 menit. Mungkin beri mereka 5 menit untuk memberi tahu Anda apa yang mereka ketahui tentang .net. Kemudian siapkan daftar mungkin 20 topik dan pilih 2 atau 3 dari hal-hal yang telah mereka sebutkan dan 2 atau 3 dari hal-hal yang belum mereka bahas.
Misalnya Anda bisa mulai:
Lalu setelah itu:
Kemudian ajukan 5 pertanyaan untuk itu dari tindak lanjut:
Jelaskan secara singkat cara kerja pengumpulan sampah di .Net
....
Bagaimana Anda men-debug sesuatu jika Anda memiliki masalah?
sumber
Saya percaya pada "penilaian diri"! Jika Anda menjelaskan kepada orang itu situasi yang tepat ia akan menemukan dirinya, misalnya: "Anda harus kode SQL ... dengan database 100 + tabel dan catatan 500K +, yang harus berjalan di bawah 4 detik ...". Dan jika Anda bertanya kepadanya: "Apakah Anda pikir Anda bisa berhasil?" - Anda akan mendapatkan jawaban yang benar.
Saya akan menghabiskan 5 pertanyaan pada harapan siswa dan 5 lebih teknis:
Daripada Anda dapat pergi dengan beberapa pertanyaan teknis seperti (ini harus sesuai dengan topik). untuk OOP misalnya:
sumber
Saya mencari pemecahan masalah, kebiasaan belajar yang kuat, pengembangan profesional, dan pengetahuan luas tentang pendekatan.
chicken
objek? Bagaimana hubungannya dengan orang lainbirds
? Bagaimana denganmammals
dananimals
?Saya berharap pengembang untuk:
sumber
Taksonomi Bloom bermanfaat di sini. Anda ingin mencapai berbagai tingkat pengetahuan, mulai dari menghafal sampai analitik. Ini memberi Anda kesempatan untuk mencari tahu di mana tingkat keterampilan mereka berada. Karena OP sedang mencari pertanyaan untuk diajukan kepada siswa, daftar di bawah ini tidak mengandaikan lebih banyak pengetahuan daripada yang dimiliki oleh siswa tahun ke-3 atau ke-4.
Konseptual
Praktis
sumber
Karena mereka sudah dipekerjakan, untuk penilaian cepat saya pikir kita harus (bersama dengan pertanyaan pemrograman), kita harus bertanya tentang
Pertanyaan-pertanyaan ini hanya untuk mengetahui kesadaran mereka tentang sistem yang mereka gunakan saat pemrograman,
sumber
Mulai dari level terendah tumpukan perangkat lunak dan atas.
sumber
sumber