Apakah mungkin (diharapkan) bagi seseorang untuk mengetahui (belum pernah melihatnya sebelumnya) algoritma jika ditanya dalam sebuah wawancara? Apa masalah lain yang memiliki solusi yang sama menariknya?
Sunting: Karena kebingungan dari algoritma aktual yang saya maksudkan, itu adalah algoritma pencarian siklus Floyd , alias, algoritma kura-kura dan kelinci.
interview
algorithms
picakhu
sumber
sumber
Jawaban:
Yah, tidak ada yang mustahil seperti yang mereka katakan.
Namun, jika Anda belum pernah mendengar tentang Dijkstra atau Flloyd, mustahil untuk mengetahui hal ini dalam rentang satu wawancara.
Orang-orang menghabiskan seluruh hidupnya dalam mengembangkan algoritma tunggal, kalau-kalau Anda berada di dua pikiran tentang hal itu.
sumber
Tidak, tidak. Butuh bertahun-tahun bagi matematikawan / ilmuwan komputer terhebat waktu mereka untuk merumuskan algoritma tersebut, Anda tidak akan melakukan hal yang sama dalam 2 menit saat berada di bawah tekanan.
Untuk bagian kedua dari pertanyaan Anda ... Ya, saya tidak benar-benar tahu apa yang Anda anggap menarik di sini. Jika algoritma, struktur data, dan kombinatorik seperti apa yang Anda sukai, cukup baca "Programing seni atau komputer", tidak ada yang lebih baik dari itu.
sumber
Pewawancara mungkin mengajukan pertanyaan yang mustahil atau tidak masuk akal untuk melihat reaksi Anda.
Mereka hanya ingin memahami pendekatan Anda terhadap masalah, belum tentu pengetahuan itu sendiri.
Ada begitu banyak informasi di luar sana untuk disimpan, yang penting adalah kompetensi google dan cara mengonsumsi informasi dari firehose.
sumber
Seperti kata @ fanatic23, jika Anda belum pernah mendengar tentang Dijsktra, cukup sulit untuk mengetahui algoritma Floyd, namun, jika Anda telah melakukan beberapa studi grafik, Floyd adalah salah satu algoritma dasar. Jika Anda mencari posisi pekerjaan yang mungkin mengharuskan Anda memiliki beberapa keterampilan algoritmik yang kompeten, saya akan mendorong Anda untuk setidaknya membaca tentang beberapa algoritma yang dianggap penting ketika menggunakan grafik:
Dengan 4 topik ini, Anda dapat menavigasi melalui pertanyaan dasar hingga pertengahan grafik dalam sebuah wawancara.
sumber
Karena ini adalah pertanyaan wawancara, Anda harus selalu bertanya pada diri sendiri pertanyaan terpenting:
Jelas, hampir tidak ada seorang pun (dan tentu saja bukan kandidat prototipikal) akan dapat melakukan pekerjaan yang membutuhkan ilmuwan brilian bertahun-tahun dalam batasan waktu wawancara. Jadi bukan itu yang mereka harapkan dari Anda.
Apa lagi yang bisa diharapkan majikan?
Anda mungkin sudah tahu algoritmanya. Ini sederhana dan membosankan. Anda bisa mengatakannya begitu saja dan kemungkinan besar topiknya akan beralih, karena tidak banyak lagi yang bisa dipelajari tentang diri Anda (dari sudut pandang majikan).
Anda mungkin tidak tahu algoritmanya. Ini sebenarnya keadaan calon yang biasa, dan jika itu diharapkan, apa hasilnya? Pertimbangkan perspektif perusahaan di sini dan Anda akan menemukan bahwa kemungkinan besar bukan hal yang baik jika seorang kandidat tidak dapat menyatakan yang sudah jelas: Saya tidak tahu algoritma ini. Jika Anda mulai memberikan kalimat yang tidak jelas dan membicarakan masalah sebenarnya di sini, maka Anda akan memberi kesan buruk. Jadi tujuan utama mengajukan pertanyaan semacam itu bukan untuk mengharapkan Anda dapat menjawabnya, tetapi untuk menguji reaksi Anda ketika menghadapi hal-hal yang tidak Anda ketahui.
Anda mungkin tidak tahu algoritmenya, tetapi ... untuk kembali ke pertanyaan awal di atas: bagaimana Anda bisa melakukan yang lebih baik? Anda mungkin tahu algoritme yang serupa, jadi jelaskan persamaan yang Anda kenali (misalnya, algoritma Floyd's Tortoise + Hare menggunakan pendekatan yang sama dengan Algoritma Polard-Rho). Anda mungkin memiliki keterampilan membaca kode / pemahaman yang mengesankan, dll. Tentu saja, bagian ini adalah yang paling sulit, tetapi sekali lagi, ini hanya tersedia jika Anda benar-benar lebih baik daripada kandidat rata-rata, yang menurut definisi membuatnya agak lebih mudah.
sumber
Apa itu mungkin? Itu tergantung pada algoritma dan kandidat. Saya akan mengatakan bahwa sebagian besar kandidat akan berjuang untuk benar-benar melakukan hal semacam ini. (Jika masalah ini sesederhana itu, mengapa seseorang terkenal karena memecahkannya?)
Apakah itu diharapkan? Itu tergantung pada kelemahan pewawancara, dan harapan mereka terhadap kandidat. Saya akan mengatakan bahwa jika mereka benar - benar berharap kandidat dapat melakukan hal semacam ini dalam sebuah wawancara, mereka harus mewawancarai banyak kandidat. Pertanyaan seperti ini lebih cenderung ditanyakan untuk melihat bagaimana kandidat bekerja / berpikir di bawah tekanan.
Saya tidak akan menjawab itu. Sebaliknya saya akan mengatakan bahwa:
Kemungkinan bahwa Anda (sebagai kandidat) akan diharapkan untuk melakukan ini kecil, untuk pekerjaan biasa. Namun, jika Anda melamar pekerjaan IT spesialis di mana ada persyaratan khusus untuk mengetahui algoritma tertentu, Anda mungkin akan diminta untuk menjelaskannya.
Ada sedikit gunanya belajar untuk menurunkan algoritma jika Anda diminta. (Atau "menipu" dengan mengetahui algoritme sebelumnya.) Jika Anda benar-benar diminta untuk melakukan ini, Anda mencoba yang terbaik ... dengan pengetahuan bahwa sebagian besar kandidat lain kemungkinan akan berjuang juga.
Sangat berguna untuk mengetahui berbagai algoritma, atau paling tidak mengetahuinya , karena mereka mungkin berguna dalam pekerjaan Anda. Namun, hal itu sangat tergantung pada bidang TI tempat Anda akan bekerja.
sumber