Tes wawancara pemrograman C # yang ditakuti - ada saran? [Tutup]

21

Saya memiliki kemungkinan pekerjaan C # dev berbaris tetapi sebelum saya bisa wawancara, saya harus lulus tes dengan agen tenaga kerja.

Sekarang meskipun saya adalah pengembang senior dengan lebih dari 10 tahun pengalaman pemrograman dan lebih dari 3 tahun ini dengan c #, saya benar-benar tidak menantikan tes ini dan saya pikir ada peluang bagus saya akan gagal.

Dalam pengalaman saya, tes ini tidak dapat diprediksi menanyakan hal-hal yang jarang Anda gunakan dalam situasi kerja sehari-hari.

Saya memerlukan saran terbaik Anda tentang apa yang harus saya revisi - buku atau situs web yang bagus misalnya. Saya memiliki kurang dari 1 minggu untuk mempersiapkan dan sangat penting saya melewati ini.

Terima kasih sebelumnya.

EDIT: Untuk lebih lanjut membenarkan kekhawatiran saya dalam menulis tes semacam itu - Pertimbangkan pertanyaan berikut:

12) Sebuah Acara adalah:

   a) The result of a users action - correct answer
   b) The esult of a party
   c) code to force users action

Jawaban yang benar menurut tes ini adalah A, tetapi karena saya telah melakukan pengembangan SOA (seringkali ketika peristiwa dapat didasarkan pada peristiwa sistem (bukan tindakan pengguna) saya 100% yakin suatu peristiwa tidak harus didorong oleh tindakan pengguna. Ini juga merupakan pertanyaan C # (bukan pertanyaan ASP.net). Berdasarkan pemahaman saya, saya tidak bisa benar-benar menemukan jawaban yang benar tetapi B tampaknya yang terbaik dari semuanya (jika definisi dari partai adalah: apa saja entitas yang dapat memicu suatu peristiwa. Pertanyaan semacam ini membuatku takut.

JL01
sumber
4
Jika Anda seorang 'pengembang senior', dan Anda telah menggunakan C # sehari-hari selama tiga tahun, Anda seharusnya baik-baik saja. Tes ini biasanya dimaksudkan untuk menyingkirkan orang-orang yang tidak tahu bahasa atau kegunaannya. Jika Anda telah menggunakannya sehari-hari selama 3 tahun, maka Anda seharusnya mengalami hampir semua jebakan dalam tes yang diberikan.
George Stocker
11
@ GeorgeStocker - sebenarnya, saya harus mengambil beberapa tes ini (lebih ditujukan pada kerangka NET penuh) dan mereka sangat rinci. Saya menemukan mereka cukup sulit karena pertama-tama mereka pergi ke area kerangka kerja (seperti WCF) di mana saya tidak punya banyak pengalaman, ditambah Anda harus tahu hal-hal seperti opsi konfigurasi apa yang akan Anda gunakan dalam file .config untuk menghidupkan beberapa opsi yang tidak jelas. Itu adalah hal-hal yang jarang Anda hafal karena Anda mungkin hanya akan menggunakannya sekali dan Google melakukannya. Saya menemukan pengalaman itu agak membuat frustrasi.
Scott Whitlock
7
Oh, dan salah satu pertanyaan yang saya salah adalah, "dalam VB.NET, apa kata kunci yang digunakan untuk mendeklarasikan struktur? A) struct b) Struct c) struktur d) Structure". Aku berpikir, "Intellisense tahu ini, jadi aku tidak perlu!" Sekarang, tentu saja, jawabannya menyita ingatan saya.
Scott Whitlock
17
@ScottWhitlock: Tidak mungkin Anda bisa mempersiapkan wawancara yang dirancang dengan buruk. Pada titik tertentu Anda harus percaya bahwa mereka cukup kompeten untuk bertanya dan menilai berdasarkan bidang yang sebenarnya Anda klaim sebagai spesialisasi, serta beberapa kemampuan konseptual. Jika tidak, maka Anda mungkin akan memiliki waktu yang menyedihkan bekerja untuk mereka.
Aaronaught
2
Apakah ini tes bahasa C #, atau tes .NET Framework?
Semut

Jawaban:

24

Meskipun agak lama, mungkin posting blog ini berguna untuk Anda: Yang Hebat. Pengembang NET Seharusnya Tahu (Lebih. Pertanyaan Wawancara NET)

Setiap orang yang menulis kode

  • Jelaskan perbedaan antara Thread dan Proses?
  • Apa itu Layanan Windows dan bagaimana siklus hidupnya berbeda dari EXE "standar"?
  • Berapa jumlah maksimum memori yang dapat ditangani oleh satu proses pada Windows? Apakah ini berbeda dari memori virtual maksimum untuk sistem? Bagaimana ini akan mempengaruhi desain sistem?
  • Apa perbedaan antara EXE dan DLL?
  • Apa itu pengetikan kuat versus pengetik lemah? Mana yang lebih disukai? Mengapa?
  • Produk Corillian adalah "Wadah Komponen." Beri nama setidaknya 3 wadah komponen yang dikirim sekarang dengan Keluarga Server Windows.
  • Apa itu PID? Bagaimana bermanfaat saat memecahkan masalah sistem?
  • Berapa banyak proses yang dapat mendengarkan pada satu port TCP / IP?
  • Apa itu GAC? Masalah apa yang dipecahkannya?

Pengembang NET. Tingkat Menengah

  • Jelaskan perbedaan antara pemrograman yang berorientasi antarmuka, berorientasi objek, dan berorientasi aspek.
  • Jelaskan apa itu Antarmuka dan apa bedanya dengan Kelas.
  • Apa itu Refleksi?
  • Apa perbedaan antara Layanan Web XML menggunakan ASMX dan .NET Remoting menggunakan SOAP?
  • Apakah sistem tipe diwakili oleh XmlSchema dan CLS isomorphic?
  • Secara konseptual, apa perbedaan antara mengikat awal dan mengikat lambat?
  • Apakah menggunakan Assembly.Load referensi statis atau referensi dinamis?
  • Kapan akan menggunakan Assembly.LoadFrom atau Assembly.LoadFile sesuai?
  • Apa itu Nama yang Memenuhi Syarat Asssembly? Apakah itu nama file? Apa bedanya?
  • Apakah ini valid? Assembly.Load ("foo.dll");
  • Bagaimana majelis yang diberi nama kuat berbeda dari yang tidak diberi nama yang kuat?
  • Bisakah DateTimes menjadi nol?
  • Apa itu JIT? Apa itu NGEN? Apa batasan dan manfaatnya masing-masing?
  • Bagaimana cara pengumpulan sampah generasi di .NET CLR mengelola objek seumur hidup? Apa itu finalisasi non-deterministik?
  • Apa perbedaan antara Finalisasi () dan Buang ()?
  • Bagaimana pola penggunaan () bermanfaat? Apa IDisposable? Bagaimana cara mendukung finalisasi deterministik?
  • Apa yang dilakukan baris perintah yang berguna ini? daftar tugas / m "mscor *"
  • Apa perbedaan antara in-proc dan out-of-proc?
  • Teknologi apa yang memungkinkan komunikasi out-of-proc di .NET?
  • Ketika Anda menjalankan komponen dalam ASP.NET, proses apa yang berjalan di dalam Windows XP? Windows 2000? Windows 2003?

Pengembang Senior / Arsitek

  • Apa yang salah dengan garis seperti ini? DateTime.Parse (myString);
  • Apa itu PDB? Di mana mereka harus berada agar debugging bisa berfungsi?
  • Apa itu kompleksitas siklomatik dan mengapa itu penting?
  • Tulis kunci standar () plus “periksa ulang” untuk membuat bagian penting di sekitar akses variabel.
  • Apa itu FullTrust? Apakah majelis GAC memiliki FullTrust?
  • Apa manfaat yang diterima kode Anda jika Anda menghiasnya dengan atribut yang menuntut izin Keamanan khusus?
  • Apa fungsinya? gacutil / l | temukan / i "Corillian"
  • Apa fungsinya? sn -t foo.dll
  • Port apa yang harus terbuka untuk DCOM melalui firewall? Apa tujuan dari Port 135?
  • Kontras OOP dan SOA. Apa prinsip masing-masing?
  • Bagaimana cara kerja XmlSerializer? Izin ACL apa yang diperlukan oleh proses yang menggunakannya?
  • Mengapa menangkap (Pengecualian) hampir selalu merupakan ide yang buruk?
  • Apa perbedaan antara Debug.Write dan Trace.Write? Kapan masing-masing harus digunakan?
  • Apa perbedaan antara Debug dan Rilis build? Apakah ada perbedaan kecepatan yang signifikan? Mengapa atau mengapa tidak?
  • Apakah JITting terjadi per-perakitan atau per-metode? Bagaimana ini mempengaruhi set kerja?
  • Membandingkan penggunaan kelas dasar abstrak dengan antarmuka?
  • Apa perbedaan antara a.Equals (b) dan a == b?
  • Dalam konteks perbandingan, apa itu identitas objek versus ekivalensi objek?
  • Bagaimana cara seseorang menyalin dalam .NET?
  • Jelaskan pemikiran terkini tentang IClonable.
  • Apa itu tinju?
  • Apakah string merupakan tipe nilai atau tipe referensi?
  • Apa pentingnya pola "PropertySpecified" yang digunakan oleh XmlSerializer? Masalah apa yang coba dipecahkannya?
  • Mengapa parameter keluar ide buruk di .NET? Apakah mereka?
  • Bisakah atribut ditempatkan pada parameter tertentu ke suatu metode? Mengapa ini berguna?

C # Pengembang Komponen

  • Menyandingkan penggunaan penggantian dengan yang baru. Apa itu bayangan?
  • Jelaskan penggunaan virtual, disegel, timpa, dan abstrak.
  • Jelaskan pentingnya dan penggunaan setiap komponen dari string ini: Foo.Bar, Versi = 2.0.205.0, Culture = netral, PublicKeyToken = 593777ae2d274679d
  • Jelaskan perbedaan antara publik, dilindungi, pribadi dan internal.
  • Apa manfaat yang Anda dapatkan dari menggunakan Majelis Interop Primer (PIA)?
  • Dengan mekanisme apa NUnit tahu metode apa yang harus diuji?
  • Apa perbedaan antara: catch (Exception e) {throw e;} dan catch (Exception e) {throw;}
  • Apa perbedaan antara typeof (foo) dan myFoo.GetType ()?
  • Jelaskan apa yang terjadi di konstruktor pertama: kelas publik c {public c (string a): this () {;}; publik c () {;}} Bagaimana konstruk ini berguna?
  • Apa ini ? Bisakah ini digunakan dalam metode statis?

Pengembang ASP.NET (UI)

  • Jelaskan bagaimana Formulir POST berbasis browser menjadi peristiwa Sisi-Server seperti Button1_OnClick ...
Konamiman
sumber
1
Setiap jawaban yang tercantum di sini sangat membantu dan bagus, namun saya telah memeriksa setiap pertanyaan dalam daftar Anda (butuh saya 4 jam), dan menulis tes sampel online dan lulus. Saya akan mendorong pengembang .net untuk membahas pertanyaan-pertanyaan itu setidaknya satu kali dan pastikan Anda memahami jawabannya, dan pastikan Anda mendapatkan pendapat ke-2 dan ke-3. Banyak orang menjawab pertanyaan (ditemukan di Google), tetapi banyak jawaban yang tidak ringkas bahkan kadang-kadang salah. Jadi berhati-hatilah. Periksa silang jawaban yang Anda temukan.
JL01
2
Tautan yang bagus! Saya terkejut berapa banyak dari mereka yang saya kenal. this.Ego ++;
Justin Self
@justnS: Hal yang sama terjadi pada saya ketika saya menemukan pos. :-)
Konamiman
Saya pergi untuk wawancara beberapa minggu yang lalu, dan mereka mencetak ini untuk saya jawab. yang bagi saya, tercermin pada pewawancara.
dbones
1
Kapan Anda akan menambahkan jawabannya? ;)
Thijs van Dien
10

Pergi saja, Renee

Saya sudah melakukan tes seperti ini beberapa kali. Sekarang saya pergi begitu saja. Tes mengukur bit paling sepele dari pengetahuan pemrograman. Apakah Anda ingin bekerja untuk seseorang yang menganggap tes ini adalah cara yang baik untuk mengevaluasi pemrogram? Bukan saya.

kevin cline
sumber
1
Mereka adalah cara yang baik sebagai standar minimum , yaitu kondisi yang diperlukan , tetapi bukan kondisi yang memadai .
Sklivvz
4
@ Klivvz: mungkin, jika itu adalah tes yang bagus . Sebagian besar tes komersial adalah latihan konyol dalam trivia: "Kelas mana yang akan Anda gunakan untuk membaca file teks?" Pengembang yang baik mungkin dapat berbicara selama sepuluh menit tentang perbedaan antara stream byte dan stream karakter, dan detail pengkodean UTF, dan masih melewatkan pertanyaan ini. Ketika informasi mudah diakses, tidak ada gunanya menghafalnya.
kevin cline
2
Saya setuju dengan Kevin. Ada terlalu banyak informasi yang tidak relevan dengan pekerjaan Anda yang dapat di tes. Itulah sebabnya mereka menemukan Google dan IntelliSense - ketika kami membutuhkan jawaban, kami menemukannya, atas dasar kebutuhan untuk menggunakannya
ADNow
2
Tergantung tesnya. Ada beberapa tes yang saya jalani, tetapi kemudian ada beberapa tes yang bagus. Kami memiliki tes pertanyaan 3 pemrograman sederhana. Pertanyaan pertama adalah menulis aplikasi C # yang sederhana. Yang kedua meminta untuk menulis 5 query SQL sederhana. Langkah ketiga adalah pertanyaan yang tidak dapat dijawab tanpa peserta tes meminta informasi lebih lanjut. Pertanyaan pertama dan kedua mengesampingkan programmer benar-benar tidak kompeten. Itu menghemat waktu kita dari mewawancarai orang-orang yang tidak sepadan dengan waktu kita. Pertanyaan ketiga memberi kita wawasan tentang bagaimana seorang programmer mendekati pemecahan masalah. Barang yang sangat berharga.
Pete
8

Saya berada dalam situasi seperti Anda tahun lalu. Sudah begitu lama sehingga saya dalam sebuah wawancara bahwa saya takut itu. Saya melakukan pencarian untuk pertanyaan wawancara C # dan menemukan beberapa situs (banyak dari mereka terdaftar oleh poster lain) dan saya mempelajarinya. Yang mengejutkan saya, 90% wawancara berasal dari situs tersebut, kata demi kata . Saya kira pewawancara menggunakan Google juga untuk menemukan pertanyaan :)

Sistem Down
sumber
6

Saya sepenuhnya setuju dengan Anda pada:

tes tidak dapat diprediksi menanyakan hal-hal yang jarang Anda gunakan dalam situasi kerja sehari-hari.

..tapi mereka adalah bagian dari proses, jadi tidak ada yang bisa kita lakukan tentang itu. Saya somthing seperti Anda dengan sekitar 10 tahun pengalaman yang sekitar 5 di. NET C #. Saya menemukan ini bahwa dua buku ini SANGAT bagus:

C # dalam Kedalaman

C # secara singkat

harus mencakup semua yang perlu Anda ketahui tentang C #. Sisanya adalah keterampilan Anda sendiri dan keterampilan yang Anda ambil pada teknologi spesifik berdasarkan C # seperti ASP.NET dll

TheBoyan
sumber
3
tetapi mereka adalah bagian dari proses, jadi tidak ada yang bisa kita lakukan mengenai hal itu. Bagaimana dengan menganjurkan agar tidak melakukan tes pemrograman konyol di tempat kerja Anda sebagai bagian dari proses perekrutan? Proses perekrutan harus menunjukkan kompetensi Anda, bukan berarti Anda dapat menghafal hal-hal sepele yang tidak jelas.
joshin4colours
@ joshin4colours - itu sebabnya saya percaya pada percakapan panjang yang baik pada wawancara ... mereka baik untuk dieliminasi
TheBoyan
2
Saya benar-benar mewawancarai penulis salah satu buku dan menolaknya ...
Sklivvz 5/11
3

Tes ini semakin menjadi bagian dari pelamar pra-penyaringan oleh perusahaan rekrutmen profesional dan beberapa perusahaan. Mereka dirancang untuk memberi pewawancara non-teknis cara untuk menilai kemampuan teknis seseorang. Namun, mereka pada dasarnya hanya tes trivia yang tidak akan mengatakan sesuatu yang bermakna tentang kemampuan seorang programmer selain untuk menyingkirkan mereka yang benar-benar tidak tahu apa-apa. Sayangnya, beberapa perusahaan / perekrut terlalu membebani hasil ini.

Cara belajar untuk mereka adalah dengan menemukan situs pertanyaan wawancara, situs yang sah dan bukan yang mencoba menjual jawaban Anda, diplester dengan iklan popup atau omong kosong semacam itu, dan menjejalkan jawaban. Dengan begitu Anda akan mendapatkan skor yang layak dan melompati rintangan. Jika perusahaan memberi terlalu banyak bobot pada hasil ini, mereka mungkin bukan perusahaan terbaik untuk bekerja.

jfrankcarr
sumber
2

Jika ini merupakan tes agen tenaga kerja, seharusnya tidak sesulit itu. Bukannya mereka memiliki spesialis bahasa untuk mengembangkan tes. Kemungkinan besar yang akan mereka lakukan adalah menyalin / menempelkan pertanyaan dari situs web.

Selama Anda tahu bagaimana kerangka bekerja secara umum, dan ruang nama / pustaka yang paling umum untuk tugas, hal apa yang harus Anda gunakan untuk tugas tertentu, Anda harus baik.

silverCORE
sumber
2

Dengan tes wawancara, banyak tergantung pada budaya perusahaan dan pencipta tes. Jika mereka bermaksud mengajukan pertanyaan yang tidak jelas dan berusaha membuat Anda tersandung, saya akan pindah ke perusahaan atau agensi lain yang lebih tertarik pada individu berkualitas tinggi yang cerdas dan dapat menyelesaikan pekerjaan.

Yang mengatakan, ketika Anda menggunakan c # dalam pekerjaan sehari-hari Anda, saya akan memusatkan Anda upaya pemecahan masalah dan logika dan kurang pada sisi pembelajaran buku hal.

Project Euler adalah tempat yang bagus untuk berlatih dan mengasah keterampilan yang kemungkinan besar telah menjadi sedikit berkarat.

SetiSeeker
sumber