Pertanyaan Asli
Saya sudah melakukan beberapa wawancara untuk perusahaan saya, kebanyakan ilmuwan komputer untuk posisi dev tetapi juga beberapa penguji dan manajer proyek. Sekarang saya harus mengisi lowongan di grup penelitian kami di dalam departemen R&D (catatan: "penelitian" berarti bahwa kami mencoba menyelesaikan masalah dalam domain / ceruk pasar profesional kami menggunakan perangkat lunak dalam proyek penelitian bersama dengan universitas, perusahaan lain, pusat penelitian dan organisasi pengguna akhir. Ini bukan penelitian ilmu komputer; kami tidak akan menyelesaikan masalah P = NP).
Sekarang kami mengundang seorang pria yang memegang gelar MSc dalam bidang kimia (dengan banyak fisika di CV-nya juga), yang tidak pernah memiliki pelajaran ilmu komputer. Saya sudah berbicara dengannya sekitar setengah jam di hari-hari karir universitas lokal dan tidak diragukan lagi pria itu cerdas. Juga nilainya sangat bagus dan dia lulus dengan perbedaan. Untuk gelar BSc, dia perlu belajar pemrograman di Mathematica dan memberi tahu saya bahwa dia sangat menyukai pemrograman. Dia juga memecahkan beberapa masalah kimia fisik yang saya mungkin tidak mengerti menggunakan perangkat lunaknya sendiri, diimplementasikan dalam Mathematica, untuk tesis MSc-nya. Ini termasuk GUI dan ukuran penting 8.000 LoC. Dia tampaknya sangat tertarik dengan apa yang kami lakukan di grup riset kami dan jujur saja itu cukup sulit bagi UKM seperti kami untuk mendapatkan orang baik. Saya juga sangat tertarik untuk mempekerjakannya karena dia dapat membantu saya dalam menulis proposal proyek, laporan, melakukan presentasi dan sebagainya. Dia mungkin akan cocok untuk tim kami juga.
Satu-satunya pertanyaan yang tersisa adalah: Bagaimana saya bisa memeriksa apakah dia akan mendapatkan keterampilan pemrograman yang dia butuhkan untuk melakukan implementasi perangkat lunak dalam proyek-proyek kami karena ini akan menjadi bagian penting dari pekerjaan?
Tentu saja saya akan bertanya kepadanya apa itu, yang membuatnya tertarik tentang pemrograman. Saya juga akan bertanya bagaimana ia mulai menulis perangkat lunak ilmu alamnya dan bagaimana ia menyusunnya. Saya akan bertanya tentang bagaimana ia berhasil memperoleh keterampilan dan informasi tentang pengembangan perangkat lunak yang ia butuhkan. Tetapi apakah ada hal lain yang bisa saya tanyakan? Mungkin ada sesuatu yang lebih konkret? Haruskah saya memintanya untuk menjelaskan solusi Mathematica-nya?
Untuk lebih jelasnya: Saya tidak mencari pengetahuan dalam bahasa atau tumpukan teknologi tertentu. Kami adalah .NET shop dalam pengembangan produk tetapi saya ingin memiliki pilihan gratis untuk proyek penelitian kami. Jadi saya tertarik pada kompetensi meta untuk dapat mempelajari apa pun yang sebenarnya dibutuhkan.
Saya harap pertanyaan ini dapat dijawab dan tidak terbuka karena saya benar-benar ingin tahu apakah ada cara standar untuk memeriksa kemampuan untuk mendapatkan keterampilan pemrograman lebih lanjut di tempat kerja. Jika ada sesuatu yang tidak jelas bagi Anda, tolong beri saya beberapa komentar dan biarkan saya meningkatkan pertanyaan saya.
Pembaruan untuk mencerminkan jawaban yang diberikan hingga 2011-12-01
Apa jawaban yang saya terima dan mengapa
Terima kasih atas jawaban Anda, sebagian besar dari mereka sangat membantu, jadi saya sangat banyak mendapat peningkatan! Meskipun jawaban Tom Squires mendapat suara terbanyak, saya akan menerima jawaban yang diberikan oleh Pangeran Goulash . Tentu saja Tom secara objektif benar, tetapi jawaban Pangeran hanya lebih membantu bagi saya dan saya memeriksa ulang FAQ bahwa ini adalah kriteria untuk menerima jawaban.
Apa yang akan saya tanyakan kepadanya selama wawancara
Saya akan membiarkan dia menjelaskan beberapa tugas sederhana seperti contoh dalam The Camel Has Two Humps yang disebutkan oleh Chris Burt-Brown
Saya akan memintanya untuk menjelaskan beberapa aliran kontrol yang lebih maju mungkin dalam notasi grafis.
Saya akan memeriksa pemahamannya tentang rekursi menggunakan contoh matematika.
Saya akan membiarkan dia menjelaskan algoritma pilihannya dalam bahasa alami.
Saya akan membiarkan dia menjelaskan solusi Mathematica-nya, khususnya saya akan meminta model prosedurnya, penggunaan alat, penataan kode dan perangkat lunak secara umum serta berbagai lapisan abstraksi.
Untuk memeriksa motivasinya, saya akan meminta daya tarik pengembangan perangkat lunaknya.
Saya akan bertanya kepadanya apakah dia tahu apa yang perlu dia pelajari tentang pengembangan perangkat lunak perusahaan. Terutama saya ingin mengubah diskusi menjadi arah bekerja dalam tim, pemrograman pasangan, TDD karena saya berharap dia tidak tahu banyak tentang ini setelah bekerja pada MSc-nya saja.
Kedengarannya seperti wawancara panjang;)
Pembaruan setelah wawancara 2011-12-09
Sekali lagi terima kasih atas jawaban baik Anda. Dia lulus wawancara dengan warna-warna cerah. Saya tidak pernah lebih puas dengan pelamar. Solusi Mathematica-nya tampaknya terstruktur dengan cukup baik. Dia bisa menjelaskan di mana dia menggunakan fungsi tingkat tinggi, meskipun dia tidak tahu bahwa ini disebut seperti ini. Dia menjawab pertanyaan rekursi berbasis matematika saya serta tugas-tugas sederhana dan mengontrol berbagai hal dari The Camel Has Two Humps. Ketika dia menjelaskan beberapa algoritma saya belajar banyak tentang pemasangan non-linear;) Juga dia dengan jujur mengatakan bahwa tentu saja dia tidak dapat menjamin bahwa dia akan dapat mempelajari hal-hal tentang pengembangan perangkat lunak profesional yang dia tidak ketahui sejauh ini. Tapi dia percaya bahwa dia selalu baik dalam mempelajari konsep-konsep baru - bahkan oleh dirinya sendiri - dan benar-benar tertarik pada pengembangan perangkat lunak. Dia juga meminta tumpukan teknologi proyek, dia akan diterapkan terlebih dahulu, untuk melihatnya di rumah. Dia ingin tahu tentang pemrograman pasangan dan kerja tim juga. Sekarang saya berharap kontrak kerja akan selesai.