Wawancara teknis 10 menit [ditutup]


37

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


6
Lebih banyak konteks pada pekerjaan? Apakah ini posisi admin sistem atau posisi programmer dan jika pemrograman level rendah atau tinggi? Adakah bahasa atau teknologi khusus di toko Anda? Ini semua akan menentukan daftar pertanyaan saya.
Chris

4
Pelatihan seperti apa? Pemrograman? IT umum?
Adam Lear

3
Saya membalikkannya dan menghabiskan 10 menit untuk hal-hal pribadi dan 20 menit untuk hal-hal teknis.
Kyralessa

1
Saya tahu, itulah yang akan dilakukan kebanyakan orang. Tetapi saya percaya pada pendekatan yang berbeda.

3
10 menit untuk kandidat terlalu sedikit
Zzz

Jawaban:


55

Tiga pertanyaan, menguraikan akhir jawaban Eric Lippert di sini :

Pertanyaan 1:

Pada skala 1 - 10, di mana Anda menilai diri Anda (beri nama keterampilan di sini)? Mereka menjawab [n], angka antara 1 dan 10.

Pertanyaan 2:

Apa yang bisa Anda pelajari dari seseorang di level [n + 1]?

Pertanyaan 3:

Apa yang bisa dipelajari seseorang di level [n-1] dari Anda?

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.


5
Wow! Metrik yang tidak biasa. Saya tidak pernah memikirkan diri saya seperti itu. Terima kasih!
Andrew Андрей Листочкин

Jelas kandidat menjawab 10 untuk menghindari pertanyaan kedua.
sayap kanan

4
@ IPT Sepuluh itu bohong.
Tim Post

1
Ini luar biasa. Jika seorang majikan menanyakan hal ini kepada saya, saya bisa menjelaskan lebih banyak tentang diri saya hanya dalam beberapa menit dari yang biasanya saya dapatkan dalam wawancara 1 jam.
fearofawhackplanet

28
  1. Apa itu kelas?
  2. Apa itu metode statis?
  3. Apa itu warisan?
  4. Apa itu polimorfisme?
  5. Apa itu kunci utama?
  6. Apa itu kunci asing?
  7. Apa perbedaan antara HTTP GET dan HTTP POST?
  8. Apa itu layanan web?
  9. Sebutkan beberapa struktur data.
  10. Apa tujuan dari Object / Relational Mapper?

Jangan ragu untuk menyarankan penggantian, daftar ini memiliki banyak ruang untuk perbaikan.


1
metode statis dalam banyak bahasa selain C ++, bukan itu relevan di sini. Saya benar-benar menemukan itu adalah konsep sulit bagi banyak siswa untuk dipahami - dan bertanya kepada mereka apakah mereka memahami atau meminta definisi, adalah cara yang buruk untuk mengetahui apakah mereka mengerti atau tidak.
Kate Gregory

3
Ingatlah pertanyaan yang ditentukan sepuluh pertanyaan dalam sepuluh menit. Jika sudah sepuluh pertanyaan dalam tiga puluh menit, saya ingin menaikkan tingkat kesulitan, dan mengajukan pertanyaan terbuka yang lebih bermakna.
Eric Wilson

3
Saya sangat suka pertanyaan 1-8 dalam daftar Anda, walaupun saya mungkin mengganti pertanyaan 9 atau 10 dengan "Mengapa antarmuka penting" dan / atau "Mengapa kelas abstrak penting?" (dalam urutan itu)
Nicole

7
Ada apa dengan semua pertanyaan OO?
Rekursi

3
Eh, ini semua pertanyaan fitur bahasa. Saya tidak begitu yakin mereka penting, melawan lebih banyak hal yang terikat teori.
Andres Jaan Tack

20
  1. Jelaskan petunjuk!
  2. Apa itu penutupan?
  3. Bahasa apa yang Anda gunakan di waktu luang Anda dan mengapa?
  4. Bicara sedikit tentang transaksi!
  5. Apa perbedaan antara juru bahasa dan JIT?
  6. Jelaskan dasar-dasar kompiler.
  7. Apa yang terjadi pada tingkat memori ketika Anda melakukan rekursi (dan apa yang berbeda ketika Anda memiliki TCO)
  8. Apa konsep penting Pemrograman OO (dan mengapa mereka penting)?
  9. Apa hal baru yang Anda cari di rumah dan mengapa itu menarik?
  10. Jelaskan perbedaan antara proses dan utas.

20
Saya tidak berpikir sebagian besar dari ini adalah pertanyaan yang bagus untuk orang-orang yang sama sekali baru mengenal .net (atau pemrograman) - dan bahkan jika mereka tahu jawaban itu 1 menit per pertanyaan ...
FinnNk

9
Saya setuju pertanyaan-pertanyaan ini sepertinya lebih seperti pertanyaan "seberapa geeky kamu" daripada pertanyaan "apa yang kamu ketahui / telah pelajari" untuk siswa.
hyprsleepy

5
Saya akan sangat gagal dalam tes ini, terutama karena saya belum pernah belajar CS atau menggunakan C. Jadi ini dapat membantu menentukan siapa yang telah memperhatikan di kelas, dan siapa yang memprogram untuk bersenang-senang, tetapi saya tidak tahu apakah itu akan membantu dalam konteks OP.
Eric Wilson

3
Kebanyakan orang akan mendapatkan sebagian besar kesalahan ini.
Rekursi

4
Pertanyaan bagus, tetapi beberapa tidak dapat dijawab dalam satu menit.
zvrba

16

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.


6
Saya suka daftar ini, saya akan menambahkan pertanyaan lain: Apa yang Anda ajarkan di universitas yang tidak dapat Anda lihat di dunia nyata? Itu bisa memberikan beberapa indikasi yang berguna tentang bagaimana mereka berpikir.
glenatron

2
Jika mereka bagus maka 10 menit naik setelah pertanyaan 2 :-)
Sean Patrick Floyd

Ketika Anda bertanya tentang "prinsip" OOP, apakah Anda bermaksud menyarankan bahwa OOP adalah agama?
compman

@ kompi - Jelas tidak. Prinsip dapat berlaku untuk agama tetapi tidak eksklusif untuk konteks itu dan juga dapat berlaku untuk organisasi, gerakan atau profesi apa pun.
Jon Hopkins

8

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

  1. Apa sajakah perintah dasar aliran kontrol program?
  2. Apa saja operasi logis dasar?
  3. Apa perbedaan antara while dan untuk loop?

Inti

  1. Jelaskan secara singkat pemrograman berorientasi objek.
  2. Jelaskan secara singkat konsep pewarisan.
  3. Jelaskan secara singkat bagaimana database beroperasi.
  4. Untuk apa enumkata kunci digunakan dan kapan Anda akan menggunakannya?

Maju

  1. Apa yang bisa Anda ceritakan tentang C # generics atau template C ++?
  2. Apa yang bisa Anda ceritakan tentang kelebihan operator?
  3. Apa perbedaan antara kelas dan struct?
  4. Apa yang bisa Anda ceritakan tentang refleksi dalam .NET?

6

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.

  • Apa jenis kontrol versi yang telah Anda gunakan?
  • Apakah Anda terbiasa dengan metodologi pengembangan perangkat lunak seperti gesit, air terjun, tdd?
  • Apa tujuan dokumentasi dalam perangkat lunak?
  • Perbedaan antara bahasa yang diketik secara statis dan dinamis?

5
"Mengapa gaya pengkodean spaghetti berguna?" - yang terbaik
mlvljr

Haha apakah ini untuk mencoba menipu mereka?
billy.bob

@ m.edmondson Sekarang tolong beri contoh kasus ketika tidak bisa dihindarkan untuk menghancurkan abstraksi;)
mlvljr

Hmm saya tidak percaya ada kasus di mana itu tidak bisa dihindari ;-)
billy.bob

4

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


+1 - Ini yang ingin saya katakan. Tanyakan saja kepada mereka apa yang mereka butuhkan untuk dimasukkan dalam pelatihan yang dibuat untuk mereka.
mouviciel

4

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


1
Oh ya, saya berjanji pada seseorang di komunitas bahwa saya akan menanyakan pertanyaan itu. Akan menjadi pertanyaan terakhir, dan saya akan membagikan hasilnya dengan semua orang.

1
@ Tier 303: Saya dulu meminta orang menulis fungsi yang akan memvalidasi kode pos. Saya yakinkan Anda bahwa itu sama mencerahkannya dengan FizzBuzz.
Scott Whitlock

1
Anda memberi saya kesempatan untuk memberikan beberapa hasil yang saya dapatkan dari mengajukan pertanyaan itu. Pada 6 atau 7 wawancara, tidak ada yang bisa menjawabnya. Kebanyakan dari mereka adalah siswa baru, tetapi satu mendapat 8 tahun pengalaman! Jadi saya agak bingung ...

4

Sepuluh pertanyaan:

  1. Perlihatkan for for yang merangkum nilai-nilai array. Tanyakan apa yang dilakukan oleh potongan kode tersebut. [Bisakah mereka membaca loop dasar?]

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

  3. Tampilkan sepotong kode dengan dua referensi, adan b, arahkan ke dua objek berbeda dengan bidang bilangan bulat xdiatur ke, katakanlah, 7dan 5. Kemudian tetapkan kembali: a = b;,, b.z = 9;lalu minta nilai dari a.z. [Apakah mereka mengerti referensi?]

  4. Tampilkan dua bersarang untuk loop (menggunakan indeks idan j), mengumpulkan nilai dari beberapa ekspresi. Di loop paling dalam, miliki dua perhitungan: double x = Math.pow(2.0, i)dan double y = x * j. Minta mereka untuk membuat kode lebih efisien. [Apakah mereka tahu tentang ketergantungan loop sederhana?]

  5. Tanyakan kepada mereka apa yang salah dalam contoh kode A. (Lihat di bawah.) [Bisakah mereka berpikir secara logis?]

  6. Tanyakan kepada mereka apa yang salah dalam sampel kode B. (Lihat di bawah.) [Juga pada pemikiran logis.]

  7. Minta mereka untuk membalikkan kondisi ini: (s != null && s.Length != 0)tanpa menggunakan !. [Apakah mereka tahu Hukum DeMorgan?]

  8. Tampilkan sepotong kode yang mirip dengan iklan Lint lama di majalah: Minta mereka untuk menemukan bug. Misalnya, kelebihan equalsalih-alih menimpanya. [Apakah mereka pengacara bahasa yang baik? Pertanyaan-pertanyaan semacam ini kebanyakan menguji pengalaman: apakah Anda pernah melihat yang ini sebelumnya?]

  9. Bisakah mereka menggambarkan cara melakukan pencarian biner melalui array yang diurutkan?

  10. 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:

if (m != null)
    a = m;
else
    a = null;

Contoh Kode B:

if (x != 0 || x != 1) {
    ...
}

3

Tentunya Anda salah tentang hal ini. Identifikasi pengelompokan yang Anda inginkan untuk menempatkan setiap siswa

misalnya

No previous programming experience
Familiar with procedural constructs like variables, loops, branching
familiar with basic object orientated constructs like classes, interfaces, events, inheritance
familiar with using Generics/Templates
familiar with creating Generics/Templates

dan seterusnya. Ketika Anda telah mengidentifikasi pengelompokan yang sesuai yang akan tergantung pada materi pelajaran, mencari tahu pertanyaan apa yang akan diajukan bersifat sepele.


3

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.


2

Buat 5 konstruksi bagan alur sederhana dan daftar jawaban yang terpisah. Minta mereka untuk mencocokkan gambar dengan frasa.

Gambar berikut ini:

  1. Jika membangun
  2. Jika Lain Bangun
  3. Do While Loop
  4. Lakukan Sampai Loop
  5. Pernyataan Kasus Dibangun

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.


1

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:

Ceritakan secara singkat (Anda punya 5 menit) bagaimana Anda akan menghasilkan proyek C # sederhana di Visual Studio dari membuatnya untuk menjalankannya.

Lalu setelah itu:

OK, ceritakan sedikit tentang yang berikut ini. Ini akan cepat, 1 menit per jawaban, jadi jangan mencoba terlalu detail. Saya hanya ingin merasakan apa yang Anda kenal.

Kemudian ajukan 5 pertanyaan untuk itu dari tindak lanjut:

  • Jelaskan apa kelas itu.
  • Apa perbedaan antara kelas abstrak dan antarmuka?
  • Jelaskan secara singkat cara kerja pengumpulan sampah di .Net

    ....

  • Bagaimana Anda men-debug sesuatu jika Anda memiliki masalah?

  • Yadda-yadda - Saya yakin Anda akan dapat memilih daftar panjang untuk dipilih dari jawaban lainnya

1

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:

  1. Apa yang Anda harapkan dari pelatihan ini?
  2. Apa level Anda (ini harus spesifik domain)?
  3. Apa yang ingin Anda lihat / pelajari selama pelatihan ini (tunjukkan 3 poin paling penting)?
  4. Jika kami melakukan latihan, apa yang menurut Anda lebih bermanfaat bagi Anda? (bengkel, pilihan ganda)?
  5. Apa yang Anda harapkan dari guru?

Daripada Anda dapat pergi dengan beberapa pertanyaan teknis seperti (ini harus sesuai dengan topik). untuk OOP misalnya:

  1. Apa itu enkapsulasi?
  2. Apa itu antarmuka?
  3. Polimorfisme?
  4. Sub-mengetik?
  5. Mengikat secara dinamis?

1

Saya mencari pemecahan masalah, kebiasaan belajar yang kuat, pengembangan profesional, dan pengetahuan luas tentang pendekatan.

  1. Bisakah saya melihat portofolio Anda?
  2. Apa 3 buku teknis terakhir yang Anda baca? Mengapa?
  3. Teks pemrograman mana yang paling mengubah cara Anda berpikir? Mengapa?
  4. Bagaimana Anda mendefinisikan chickenobjek? Bagaimana hubungannya dengan orang lain birds? Bagaimana dengan mammalsdan animals?
  5. Bisakah Anda menjelaskan salah satu dari (REST, Polimorfisme, aljabar relasional, desain parser, MVC) dalam istilah awam?
  6. Perangkat lunak apa yang paling menarik (atau terbaik) yang Anda buat sendiri?
  7. Bisakah Anda mendeskripsikan bahasa yang Anda mahir dari favorit ke paling tidak favorit? Apa yang membuat Anda frustrasi tentang bahasa yang paling tidak Anda sukai?

Saya berharap pengembang untuk:

  • Jadilah cerdas dan cepat
  • Pahami konsep dasar dengan benar
  • Belajarlah untuk grok konsep canggih
  • Lacak keberhasilan dan kegagalan (belajar darinya)
  • Belajar terus-menerus, dengan serius
  • Komunikasikan masalah yang kompleks secara sederhana
  • Tunjukkan keseimbangan dan logika saat membahas masalah dogmatis yang umum

1
Saya jarang membaca buku-buku pemrograman secara langsung. Mereka membuat referensi dan materi klarifikasi yang lebih baik.
Andres Jaan Tack

Anda benar: ada beberapa teks yang tidak dapat Anda baca sampul depan (bahan referensi), tetapi ada sejumlah volume luar biasa yang akan mengubah cara Anda berpikir. Misalnya: Penjelasan Visual Tufte, atau The Paradox of Choice, atau Pemrograman Bahasa Pragmatik (atau apa pun oleh Hofstadter).
Bruce Alderson

"ada sejumlah volume luar biasa yang akan mengubah cara Anda berpikir" yang tidak terbatas pada buku teknis / pemrograman. Juga, saya tidak punya portofolio, semua pekerjaan saya adalah sistem yang aman, saya akan kacau.
NimChimpsky

Menyumbangkan waktu untuk proyek terbuka atau nirlaba. Sangat penting untuk melihat pekerjaan nyata sebelum mempekerjakan seseorang (Anda akhirnya akan menunjukkan pekerjaan Anda yang sebenarnya). Portofolio sama pentingnya dengan CV.
Bruce Alderson

1

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

  1. Apa itu stack underflow?
  2. Apa perbedaan antara objek dan kelas?
  3. Apa perbedaan antara fungsi dan metode?
  4. Identifikasi beberapa kekuatan dan kelemahan Quicksort dan Insertion Sort.
  5. Jelaskan bagaimana sebuah program yang Anda tulis akan menampilkan semua nilai yang disimpan dalam pohon biner.

Praktis

  1. Sudahkah Anda menggunakan sistem kontrol versi? Dengan cara apa itu memungkinkan anggota tim untuk berkolaborasi secara lebih efektif?
  2. Kompiler Anda mengatakan "simbol tidak dikenal." Apa artinya?
  3. Apa itu "pelanggaran segmentasi"?
  4. Beri nama beberapa struktur data yang disediakan oleh sintaks (masukkan bahasa di sini) atau pustaka standar.
  5. Bagaimana Anda menemukan dan menampilkan semua alamat email dalam 10.000 file?

1

Karena mereka sudah dipekerjakan, untuk penilaian cepat saya pikir kita harus (bersama dengan pertanyaan pemrograman), kita harus bertanya tentang

  1. Apa konfigurasi sistem yang telah Anda kerjakan (konfigurasi perangkat keras PC).
  2. Apakah Anda mencoba menguji kode Anda (proyek jika dikerjakan selama kuliah) pada OS yang berbeda.
  3. Apakah Anda lebih suka coding di windows atau Linux (jika mereka sudah bekerja di OS lain maka windows)
  4. coding lebih cepat / lebih lambat / lebih baik tergantung pada sistem? (sistem yang lebih tinggi = rasakan faktor yang baik untuk pengkodean karena sistem lambat memerlukan kompilasi dan semuanya)
  5. Juga jika ditanya apakah mereka tahu setidaknya untuk memformat drive atau menginstal OS jika itu crash / tidak bisa boot insteasd mengandalkan bantuan orang IT (ini adalah untuk mengetahui apakah mereka dapat menangani beberapa situasi OS dengan benar)

Pertanyaan-pertanyaan ini hanya untuk mengetahui kesadaran mereka tentang sistem yang mereka gunakan saat pemrograman,


0

Mulai dari level terendah tumpukan perangkat lunak dan atas.

  1. Apa itu BIOS?
  2. Apa peran sistem operasi?
  3. Apa itu multi-tasking? Apa itu tautan dinamis?
  4. Jelaskan bagaimana kode sumber ditransformasikan ke program kerja untuk bahasa pilihan siswa (contoh jawaban untuk C: preprocessor -> compiler -> banyak file objek -> linker -> executable)
  5. Apa itu cache? Perkirakan waktu akses relatif ke L1 cache, L2 cache, RAM, disk rotasi (yaitu, bukan SSD).
  6. Menghitung struktur data yang dapat Anda terapkan tanpa melihat detail dalam literatur.
  7. Apa program paling kompleks yang Anda tulis? Apa yang membuatnya kompleks?
  8. Jelaskan rekursi pada contoh pilihan sendiri.
  9. Mengapa program macet?
  10. Jelaskan apa yang merupakan bagian kritis dan berikan contoh di mana itu akan digunakan.

4
Sebagian besar pertanyaan ini tampaknya berasal dari sebuah buku tentang sistem operasi dan sejujurnya tidak ada hubungannya dengan pemrograman. Sejujurnya, Anda tidak perlu tahu semua ini untuk pekerjaan pemrograman PALING jika ada.
Bryan Harrington

1
Agak dibesar-besarkan, tetapi: Jika Anda tidak tahu apa peran OS, tidak ada gunanya berbicara tentang keamanan dan hak akses, baik di level OS atau level database. Jika Anda tidak tahu tentang proses kompilasi, Anda tidak bisa men-debug proses build Anda dari A ke Z. Jika Anda tidak tahu tentang latensi cache, Anda akan berakhir dengan kode yang mendorong segala sesuatu dalam DBMS di mana sebuah flat file sudah mencukupi. Jika Anda tidak tahu tentang mutex, Anda tidak tahu apa - apa tentang pemrograman paralel. Selebihnya harus memiliki tautan yang jelas ke pemrograman.
zvrba

1
(Dan jika Anda tidak tahu apa itu BIOS, kemungkinan besar Anda tidak tahu apa-apa tentang pemrograman perangkat keras PC.)
zvrba

4
Mulailah dengan pemahaman dasar tentang listrik. Gores itu: mulai dengan fisika atom. MAKA jalan sampai ke BIOS.
Dan Rosenstark

Walaupun ini adalah pertanyaan yang sangat penting dan mendasar, dan setiap programmer harus mengetahui jawabannya, saya merasa bahwa paruh pertama dari daftar akan membuang-buang waktu Anda, karena itu hal-hal yang juga perlu diketahui oleh para teknisi PC . Mereka tidak akan memberi Anda ide yang baik apakah orang yang Anda pekerjakan tahu apa-apa tentang pemrograman .
Ken Bloom

0
  1. Apakah string bisa berubah atau tidak berubah?
  2. Apa perbedaan antara kelas dan kelas statis?
  3. Apa itu pointer?
  4. Jelaskan Kompleksitas.
  5. Apa perbedaan antara Array dan Daftar Tertaut.
  6. Apa perbedaan antara Urutkan Gabung dan Sortir Cepat?
  7. Diberikan spreadsheet dengan kolom Nama, Alamat, Kode pos, dan Nomor telepon menjelaskan bagaimana Anda akan mengkonversi spreadsheet ke database yang dinormalisasi.
  8. Jelaskan perbedaan antara metode asinkron dan sinkron dan cara penanganannya.
  9. Bagaimana Anda meneruskan informasi dari aplikasi sisi server ke aplikasi web?
  10. Apa bahasa pilihan Anda? Apa beberapa alasan Anda akan menggunakan bahasa itu di atas X? (mis. mengapa Anda ingin menggunakan Java lebih dari C # dan apa saja perbedaan mendasarnya?)
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.