Wawancara teknis dan kemampuan programmer [ditutup]

14

Apa yang akan saya katakan mungkin sedikit kontroversial tetapi saya sangat berkecil hati hari ini - jadi saya akan bertanya ini.

Saya baru saja melakukan wawancara dengan perusahaan teknologi besar untuk posisi magang, di mana saya ditanyai banyak pertanyaan wawancara berorientasi algoritma yang khas. Sekarang, mengingat latar belakang saya, saya menganggap diri saya kuat dalam algoritma (Saya juga mendapat nilai bagus dalam algoritma tingkat pascasarjana -stuff yang melibatkan NP-kelengkapan dan seterusnya (pendekatan dan algoritma acak), tapi sayangnya saya gagal dalam wawancara. Saya tidak bisa gagal dalam wawancara. pikirkan metode yang sangat efisien untuk menyelesaikan masalah tali dalam kira-kira ~ 10 menit.Setelah wawancara selesai, saya minum segelas air, makan pisang dan bersantai sebentar dan mencoba masalah itu lagi. jawaban saya bisa tiba dalam waktu kurang dari 5 menit Dan yang terburuk dari semuanya - saya benar-benar di jalur itu dan pewawancara memang mengisyaratkan tentang hal itu, tetapi terlalu banyak tekanan yang membuat saya bingung. Seluruh pengalaman saya membuat saya berpikir tentang wawancara teknologi. Saya punya beberapa pertanyaan dan ingin mengajukannya di forum ini -

  1. Apakah benar-benar mungkin untuk menilai kemampuan teknis seseorang dalam setengah jam? Secara jujur? Atau itu hanya lemparan dadu?

  2. Apakah pertanyaan wawancara teknis mengukur kemampuan pemecahan masalah? Poin ini sangat bisa diperdebatkan? Sebagai mahasiswa PhD, saya tahu bahwa pemecahan masalah Matematika melibatkan pemecahan sesuatu yang belum pernah Anda dengar sebelumnya. Di sisi lain pertanyaan seperti - menggabungkan dua daftar terkait dalam urutan, atau mencetak semua elemen pohon biner di tingkat k menjadi "latihan semata" begitu seseorang telah melihat solusi atau menyelesaikan masalah sebelumnya?

  3. Apakah orang-orang yang tampil dengan warna cerah dalam wawancara ini terus menjadi programmer yang hebat? Apakah mereka melanjutkan dan merancang mesin permainan yang ramping, perpustakaan grafik, menulis kerangka kerja garpu-bergabung cepat? Apakah ada bukti yang menunjukkan hubungan positif antara melakukan dengan baik dalam wawancara teknis dan kemampuan pemrograman yang sebenarnya? Atau apakah wawancara ini lebih diarahkan untuk menemukan tipe orang yang "menyelesaikan sesuatu" (Spolsky)?

Saya berani bertaruh bahwa banyak akademisi yang menerbitkan ide-ide terobosan - ICML, VLDB, Mobicom - akan gagal dalam wawancara ini. Tetapi saya dapat meyakinkan Anda bahwa mereka adalah beberapa orang terpintar yang akan Anda temukan di planet ini.

Saya terutama di akademi (mahasiswa pascasarjana) - jadi saya akan sangat menghargai beberapa perseptif dari seseorang di sisi lain pagar. Seseorang yang benar-benar melakukan wawancara ini?

[Ok semuanya. Terima kasih atas semua tanggapan yang baik dan bijaksana. Karena saya tidak ingin menanyakan pertanyaan lain, saya akan meminta Anda untuk menjawab pertanyaan ini untuk saya.

Misalkan kandidat X memiliki portofolio publik yang baik untuk pekerjaan di mana ia telah berkontribusi pada beberapa proyek open source yang dikenal di mana - Anda benar-benar dapat pergi dan memverifikasi tambalannya, memverifikasi bug yang telah ditutup dan melihat desain yang telah ia buat. Dalam hal ini, pertanyaannya adalah berapa banyak bobot yang Anda bersedia berikan untuk pekerjaannya yang tersedia untuk umum / dapat diverifikasi versus seberapa baik yang ia lakukan dalam menjawab beberapa pertanyaan wawancara pohon biner yang sangat rumit dalam waktu kurang dari 15 menit?]

pengguna396089
sumber
11
Ketika saya mewawancarai orang-orang untuk mencari pekerjaan, saya tidak mencari programmer yang baik. Saya mencari Insinyur yang baik. Seorang programmer melihat masalah dan kode solusi. ENGINEER yang baik melihat suatu masalah dan bertanya, "Apakah ini masalah sebenarnya yang harus saya selesaikan?" dan jika tidak, cari tahu apa masalah yang tepat, merancang solusi yang menyeimbangkan semua faktor dalam bermain (jadwal, uang, kemampuan) dan kemudian menyerahkannya kepada programmer untuk mengkodekannya.
PlayDeezGames
2
Hmm, masuk akal. Siapa pun dapat mengambil keterampilan pengkodean mentah dalam C ++ / Java / python dalam 6-12 bulan. Tetapi untuk benar-benar merancang hal-hal yang membutuhkan pemahaman yang sangat hati-hati tentang kinerja, utas, masalah memori dan pertukaran adalah kuncinya. Saya setuju. Maaf! tetapi saya tidak dapat memilih Anda, tidak memiliki cukup perwakilan.
user396089

Jawaban:

11

Ingatlah bahwa ...

  1. Tujuan utama dari proses wawancara bukanlah untuk mencapai kebenaran absolut tentang kemampuan pribadi masing-masing yang diwawancarai tetapi untuk memilih beberapa kandidat dari kumpulan banyak.
  2. JAUH, JAUH lebih mahal untuk menyewa pengembang yang buruk daripada untuk meneruskan yang baik.

Jadi sering kali ketika wawancara, jalan pintas yang tidak sempurna (seperti kuis teknis) diambil karena seperti yang Anda sebutkan, tidak ada proses yang sempurna untuk bisa menilai seseorang dalam 30 menit. Tetapi karena sebagian besar tidak memiliki kemewahan bekerja dengan Anda secara berdampingan, Anda harus menerima saja bahwa itu adalah apa adanya, sebuah permainan odds yang dimainkan semua orang.

DXM
sumber
"BANYAK, BANYAK lebih mahal untuk menyewa pengembang yang buruk daripada untuk meneruskan pengembang yang baik" - ya saya mengerti argumen di sini yang tampaknya berasal dari sudut pandang utilitarian murni, seolah-olah kemungkinan mempekerjakan seorang pengembang yang buruk mendekati nol biaya negatif yang terkait dengannya dapat menyeret total nilai utilitas yang diharapkan dari positif ke negatif.
user396089
5
@ user396089, di dunia akademis orang-orang setidaknya akan membayar layanan bibir untuk menyediakan layanan kepada Anda: pelatihan, bimbingan, pertumbuhan pribadi, dll. Setidaknya secara nominal, itu adalah bagian dari misi mereka. Di sektor swasta hubungan adalah 97% utilitarian. Perusahaan hanya tertarik untuk memberi Anda kesempatan sejauh ada manfaatnya bagi mereka.
Charles E. Grant
Untuk menambah apa yang dikatakan Charles, ketika Anda berjalan melewati pintu, Anda, sama seperti 50 kandidat lainnya, orang asing bagi perusahaan dan manajer perekrutan. Jadi Anda mungkin menjadi orang terbaik yang pernah ada, pada level profesional dan pribadi, tetapi mengingat keadaannya, tujuan perusahaan pada saat itu adalah benar-benar memaksimalkan nilai masa depan mereka, pada saat yang sama meminimalkan biaya pencarian sambil mencari maksimalisasi itu.
DXM
Anda tahu itu lucu bahwa saya berpikir tentang masalah string sederhana yang saya tidak bisa selesaikan hari ini selama wawancara tetapi menyelesaikannya nanti; tetapi, masih setelah mencoba selama hampir 3 minggu saya belum menyelesaikan masalah yang terkait dengan salah satu proyek hobi saya.
Detailnya
1
@ Antonio2011a: "seberapa valid" adalah istilah yang lucu dan tidak hitam putih. Orang yang berbeda menggunakan taktik yang berbeda untuk menilai kualitas calon karyawan. Setiap taktik itu adalah semacam jalan pintas karena satu-satunya ujian yang benar adalah membiarkan orang bekerja dengan Anda dan memungkinkan untuk meningkatkan waktu. Jadi seberapa valid pertanyaan ini? atau seberapa valid bertanya tentang O besar, atau seberapa valid bertanya tentang apa yang dia kerjakan. Ini semua hanyalah area abu-abu dan tidak ada yang sempurna.
DXM
9

Apakah benar-benar mungkin untuk menilai kemampuan teknis seseorang dalam waktu setengah jam?

Tidak persis. Dimungkinkan untuk menyingkirkan orang-orang yang tidak bisa memprogram sama sekali, dan mereka yang tidak bisa menjelaskan hal-hal di CV mereka. Di luar itu saya biasanya hanya mencoba mengukur kecerdasan umum dan minat di lapangan. Sulit mengomentari situasi Anda lebih jauh tanpa mengetahui masalah yang diminta untuk Anda selesaikan.

Apakah pertanyaan wawancara teknis mengukur kemampuan pemecahan masalah?

Itu bukan tujuan dari pertanyaan teknis saya. Alih-alih, saya mencoba mencari tahu apakah kandidat memiliki pemahaman akan dasar-dasar ilmu komputer. Untuk mengukur kemampuan pemecahan masalah, saya meminta seorang kandidat untuk menceritakan tentang masalah menarik yang mereka kerjakan.

Apakah orang-orang yang tampil dengan warna cerah dalam wawancara ini terus menjadi programmer yang hebat? Atau apakah wawancara ini lebih diarahkan untuk menemukan tipe orang yang "menyelesaikan sesuatu" (Spolsky)?

Itu saja. Kebesaran jarang terjadi. Saya senang menemukan seseorang yang kompeten.

kevin cline
sumber
Masalahnya adalah variasi KMP (seperti dan ketika Anda membuat satu melewati string Anda menyimpan jumlah kemunculan beberapa karakter yang telah Anda lihat sebelumnya). Pada akhirnya tergantung pada panjang string dan jumlah yang Anda miliki - Anda dapat menjawab pertanyaan yang sebenarnya. Semua dalam satu pass - O (n) waktu dan menggunakan ruang konstan O (1)
user396089
2
"Aku senang menemukan seseorang yang kompeten."
Pemrogram
2
Lulus wawancara adalah karena (setidaknya!) Sebanyak keberuntungan dan kebesaran. Setelah Anda mencapai tingkat pengetahuan tertentu, kesempatan memainkan peran (!) Yang jauh lebih besar daripada yang disadari hampir semua orang. Saran bacaan: Mlodinow's The Drunkard's Walk .
Konrad Rudolph
Ya, saya telah membaca buku itu dan juga "Fooled by Randomness" yang lebih menarik dan sarkastik oleh Nassim Nicholas Taleb. Tidak perlu dikatakan bahwa saya mengalami depresi untuk sementara waktu setelah membaca buku-buku - jika Anda memahami premis dasar dari dua buku dan itu adalah - "ya, itu semua keberuntungan! Keberuntungan! Dan semua tentang keberuntungan!" Dunia itu acak dan kita harus menghadapinya.
user396089
5
  1. Iya. Ya jujur. Ini bukan untuk mengatakan bahwa 30 menit adalah waktu yang cukup untuk mendapatkan gambaran lengkap tentang kemampuan seseorang. Pekerjaan pewawancara adalah melakukan yang terbaik untuk mengetahui siapa yang diwawancarai dan apa yang dapat mereka lakukan. Menemukan orang-orang yang meletakkan sesuatu di resume mereka yang mereka tidak benar-benar tahu adalah lurus ke depan. Mencari tahu apa yang bisa diwawancarai, termasuk semua keterampilan dan kekuatan mereka, tidak.

  2. Iya. Mereka membiarkan Anda melihat bagaimana orang yang diwawancarai berpikir. Mendapatkan jawaban yang benar tidak selalu diperlukan. Melihat seseorang berurusan dengan masalah yang mereka hadapi sama bermanfaatnya dengan melihat seseorang menjawab masalah dengan benar tanpa banyak kesulitan. Saya selalu mengajukan pertanyaan yang saya pikir orang yang diwawancarai mungkin tidak dapat menjawab.

  3. Saya tidak tahu bukti empiris yang mengatakan wawancara teknis menemukan kandidat terbaik, tetapi itu adalah hal terbaik yang saya coba. Orang yang berbeda pandai dalam hal yang berbeda dan mendapatkan jawaban teknis yang benar bukan satu-satunya hal yang memutuskan jika seseorang dipekerjakan. Menjadi orang yang cocok untuk perusahaan juga sangat penting.

Berdasarkan pertanyaan Anda, saya pikir hal terbesar yang perlu Anda pahami adalah bahwa hari-hari umpan balik yang didefinisikan dengan jelas seperti nilai huruf sudah berakhir. Mendapatkan jawaban yang benar hanyalah sebagian dari hasilnya. Menulis kode yang baik, mengomunikasikan ide-ide Anda dan mendengarkan orang lain sama pentingnya. Namun, area ini lebih subyektif dan perlu diperlakukan seperti itu.

Sama seperti bagaimana Anda memecahkan masalah, mundur selangkah dan jernihkan pikiran Anda. Banyak wawancara dan pewawancara tahu bahwa itu bukan sistem yang sempurna. Mereka berusaha melakukan yang terbaik untuk perusahaan, sama seperti Anda berusaha melakukan yang terbaik untuk Anda.

unholysampler
sumber
2
Itu poin bagus @unholysampler - "Mendapatkan jawaban yang benar hanya sebagian dari hasilnya". Tidak masalah sedikit pun jika Anda memberikan portal penjualan online yang sempurna suatu hari SETELAH natal. Sangat terlambat. Waktu sama pentingnya dengan jawaban yang benar.
jasonk
+1 "Mereka berusaha melakukan yang terbaik untuk perusahaan, sama seperti Anda berusaha melakukan yang terbaik untuk Anda."
Burhan Ali
5

Dalam setengah jam Anda dapat menilai kemampuan teknis seseorang setidaknya sebagus x. Artinya, kemampuan mereka mungkin lebih tinggi dari yang mereka tunjukkan, tetapi Anda bisa yakin itu tidak lebih buruk. Jika x lebih tinggi dari kebutuhan Anda, Anda mempekerjakan mereka. Ya, itu tidak adil jika Anda menunjukkan di bawah kemampuan Anda yang sebenarnya. Yang bisa saya katakan adalah menjadi lebih baik dalam menunjukkan.

Jika seseorang mengemukakan jawaban praktis yang dihafalkan, saya akan memberi mereka masalah yang lebih sulit. Dalam dunia akademis, menghafal adalah keterampilan yang penting. Dalam suatu pekerjaan, sebagian besar berlebihan ketika Anda memiliki google di sana.

Melihat bagaimana sebagian besar programmer hebat bekerja, aman untuk mengasumsikan mereka lulus wawancara kerja di beberapa titik. Tidak, Anda tidak tahu apakah seseorang akan menjadi programmer hebat dari wawancara setengah jam. Untungnya, sebagian besar perusahaan tidak membutuhkan programmer yang hebat. Mereka rukun dengan programmer yang solid dan andal yang tidak takut untuk mengerjakan tugas di luar zona nyaman mereka.

Alasan mengapa pemikir-pemecah-tanah mungkin gagal dalam wawancara kerja adalah bahwa kesempatan untuk menyelesaikan masalah-masalah mencolok, sangat jarang, dan Anda hanya akan dipercaya untuk menyelesaikannya setelah Anda membuktikan bahwa Anda dapat memecahkan masalah duniawi, namun masalah yang sulit rekan kerja Anda tidak bisa, seperti mengapa perangkat lunak mogok ketika mendapat di atas beban 16%.

Karl Bielefeldt
sumber
2
+1 "... biasa saja, namun masalah sulit yang tidak dapat dilakukan rekan Anda, seperti mengapa perangkat lunak mogok saat memuat di atas 16%."
Jaydee
3

Sangat sedikit orang yang tahu apakah teknik wawancara mereka benar-benar berhasil, karena mereka tidak pernah belajar lebih banyak tentang mereka yang gagal. Tetapi ketika tidak ada yang menyangkal hipotesis mereka, mereka menganggapnya sebagai konfirmasi bahwa mereka benar. Jadi ada elemen yang pasti melempar dadu.

Jika teori ekonomi yang mengatakan pasar rasional dan efisien itu benar, maka perusahaan akan mencari untuk mempekerjakan orang yang wawancara buruk dengan cara yang tidak akan membuat mereka buruk dalam pekerjaan mereka. Jadi seseorang yang mengenakan setelan jas yang tidak pas, berkeringat, tampak sangat gugup, dan kesulitan melakukan masalah teknis di bawah tekanan wawancara - jika ada bukti luar mereka bisa melakukan masalah teknis dan tekanan pekerjaan tidak seperti itu dari sebuah wawancara (karena umumnya tidak) - akan mewakili peluang terbaik perusahaan untuk mendapatkan kandidat yang lebih baik daripada yang bisa menarik dan sebaliknya akan bertindak sesuai. (Pikirkan Uang-bola untuk dunia usaha). Akhirnya bias wawancara akan hilang.

Dalam praktiknya ini bertentangan dengan kodrat manusia. Pewawancara seperti orang ekstrover yang percaya diri, tidak peduli apa pun posisinya, dan bahkan jika wawancara teknis memberikan informasi yang lebih buruk daripada resume dan referensi (seperti yang mungkin benar dalam kasus Anda), mereka akan mempertimbangkannya.

Untuk pertanyaan Anda:

  1. Agak. Tes-tes tersebut memiliki rasio sinyal terhadap kebisingan yang buruk tetapi dapat disesuaikan untuk menghilangkan yang benar-benar tidak memenuhi syarat dengan mengorbankan wawancara yang memenuhi syarat-tetapi-buruk-teknis.

  2. Lihat # 1. Sebagian dari kebisingan berasal dari variasi apakah orang telah melihat masalah sebelumnya.

  3. Lihat # 1. Mungkin ada korelasi positif kecil antara tes ini dan menjadi programmer yang hebat.

Saran saya - Pelajari beberapa contoh pertanyaan teknis untuk mendapatkan pengetahuan dasar. Ingat itu adalah sedikit dadu, jadi selama wawancara cobalah untuk percaya diri. Jika Anda dapat menjelaskan apa yang Anda pikirkan tanpa mengalihkan perhatian Anda dari pemikiran yang sebenarnya, maka lakukanlah. Jika itu benar-benar berjalan buruk, akui Anda gugup saat wawancara dan beri tahu mereka bahwa sepertinya Anda tidak akan mengalami kesulitan - mungkin memberikan contoh masalah serupa tetapi lebih sulit yang Anda selesaikan.

psr
sumber
1
"Pewawancara seperti ekstrovert yang percaya diri" ... ini sedikit membingungkan bagi saya, tipe Myers Briggs saya adalah INTJ (anggap MB sedikit mewakili tipe kepribadian yang sebenarnya).
user396089
2
Banyak pengembang perangkat lunak introvert seperti saya. Akibatnya, begitu banyak pewawancara. Tentu, kepercayaan diri membantu. Tetapi jawaban yang masuk akal membantu lebih banyak.
kevin cline