Kebetulan saya ingin menjadi seorang programmer saat masih belajar di sebuah universitas di Moskow, tetapi saya menjadi seorang yang sudah berada di luar Rusia dan tidak segera - jalannya panjang dan berduri. Saya pergi ke banyak wawancara (awalnya saya mencari, kemudian mereka sudah mencari saya), saya menggali seluk-beluk pekerjaan dan berpikir tentang bagaimana menjadi programmer yang baik.
Salah satu aspek yang relevan sepanjang karier saya adalah menemukan pekerjaan dan menjalani wawancara. Saya sendiri melakukan sangat sedikit wawancara (4-5), tetapi saya mengunjungi banyak dari mereka (> 100). Saya memiliki 3-4 periode untuk mencari pekerjaan selama ~ 7 tahun terakhir, ketika saya pergi untuk wawancara satu atau dua bulan, kadang-kadang 1-2-3 sehari.
Dalam artikel ini saya ingin berbagi pengalaman lulus wawancara, untuk memberikan semacam sistematisasi tentang bagaimana itu terlihat dan terjadi, apa yang harus dipersiapkan.
Apa yang ingin saya ketahui dalam komentar - seperti yang terjadi pada orang lain, terutama di Moskow / Rusia, mungkin ada perbedaan dengan Eropa.
Berdasarkan pengalaman pribadi saya, berbicara dengan kolega, membaca forum, buku, dan sebagainya. Saya akan mengatakan ini - ini adalah pendapat subjektif saya tentang situasi secara keseluruhan, posting ini mengklaim sebagai informasi lengkap dan mencakup, jika tidak semua, maka sebagian besar aspek. Di mana pendapat saya, saya menulis menurut pendapat saya. Kalau tidak, saya pura-pura objektif.
Hampir semua pengalaman saya telah mewawancarai TI di perusahaan keuangan Eropa untuk posisi pengembang (senior) java, terutama di London. Tidak ada web (dalam bentuk apa pun, front / end-backend), tidak ada integrasi, tidak ada pekerjaan untuk pelanggan (berdasarkan tipe - ada CRM dan perusahaan mengimplementasikannya di bank), Amazon, Facebook, Google juga tidak terwakili - Saya tidak tahu bagaimana Saya tidak benar-benar berjuang di sana, saya kira. Pengalaman saya dimulai dengan programmer sederhana dan berakhir dengan pengembang senior. Tim / pemimpin tim / manajer - no.
Tentang wawancara secara umum
Proses wawancara bersifat statistik, mis. - kami melayani di mana pun itu menarik, sesuatu tidak akan berhasil hanya karena kami tidak beruntung, kami telah mempekerjakannya, tidak ada cukup pertimbangan atau pengalaman pasar lain, atau hanya kandidat yang lebih baik ditemukan. Yaitu sangat sulit untuk melalui wawancara jika ini hanya satu posisi perusahaan. Dalam hal ini, menurut saya Google bermasalah - sangat sendirian. Ada banyak bank yang terlibat dalam hal serupa, tidak dalam satu, jadi di lain ada proyek yang menarik, hari akan sukses, dll.
Wawancara adalah permainan sesuai dengan aturannya sendiri, yang biasanya diikuti, pengetahuan tentang aturan ini membantu menetapkan harapan dan proses persiapan, melewati. Pada akhirnya, ini menunjukkan bahwa Anda dapat bermain sesuai aturan dan menerimanya, mampu memperhitungkan kebiasaan tim. Tidak ada yang menulis penyortiran secara manual, dan bahkan disinkronkan tidak mungkin harus menulis, belum lagi beri tahu / beri tahuAll. Seperti halnya tidak mungkin bahwa pengetahuan terperinci tentang perangkat internal hashmap akan diperlukan - tetapi ini adalah salah satu pertanyaan paling populer - 70 persen wawancara tidak dapat dilakukan tanpanya, hanya kontrak antara equals dan kode hash yang dapat membantah pertanyaan ini. Di sisi lain, ini menunjukkan persiapan umum kandidat, seberapa baik dia mendekati tugas kerja (dan pencarian pekerjaan juga semacam proyek kecil).
Dari masalah administrasi
Lupa menunggu jawaban. Tidak ada jawaban - jawabannya tidak.
Kadang-kadang menurut saya ini adalah aturan selera mereka - mereka tidak merespons jika mereka tidak tertarik. Ini adalah contoh dengan perekrut - jika Anda menjawabnya bahwa pekerjaan tidak diperlukan sekarang, maka ini seperti seorang pengecut. Bagi mereka sendiri, tentu saja, jangan memotong-motong, jika kita tidak membutuhkannya, logikanya adalah waktu harus disia-siakan. Secara umum, perekrut adalah orang-orang yang luar biasa, begitu saya mulai berpikir bahwa mereka seperti sirene - layak untuk dijawab dan itu saja, Anda sudah menghadiri wawancara yang tidak akan Anda kunjungi. Kemampuan untuk mengatakan dengan jelas, atau merumuskan apa yang saya butuhkan, adalah keterampilan yang baik. Saya percaya agen, tapi tidak pernah percaya. Saya hanya mengambil fakta, dan yang dapat dibuktikan, dari kategori "ini adalah proyek baru, semuanya sangat bagus di sana" - ini adalah kejutan udara. Dan jika "mereka siap untuk menaikkan gaji mereka sebesar 10 ribu" - maka ini sudah sesuatu :-)
Beberapa informasi menarik - agen (agensi) menerima bagian yang baik dari gaji tahunan seorang kandidat yang berhasil (dan melewati masa percobaan). Tampaknya perusahaan memiliki anggaran terpisah untuk agen, mis. jika Anda menemukan pekerjaan yang sama tanpa agen, maka, kemungkinan besar, Anda hampir tidak dapat mengandalkan gaji yang lebih tinggi. Saya tidak begitu mengerti mengapa demikian, mungkin di perusahaan kecil itu berbeda.
Tentu saja, ada perasaan dari agen, kadang-kadang mereka berguna dan bagus. Faktanya adalah bahwa beberapa lowongan yang sangat menarik datang kepada saya hanya melalui agen. Tetapi yang terjadi adalah kebalikannya, meskipun ada kepercayaan luas bahwa bekerja tanpa agen dapat dan harus ditemukan. Terutama jika Anda tertarik untuk bekerja di bidang yang kurang jelas - kami mengambil 20 perusahaan teratas di seluruh dunia / negara dalam industri ini dan pergi ke situs mereka. Jadi saya menemukan pekerjaan pertama saya di London, yang sangat saya sukai.
Perlu juga disebutkan bahwa Anda perlu mempersiapkan diri untuk wawancara, formulir di awal lomba berbeda secara signifikan setelah sebulan melewati wawancara. Pertanyaan diulangi, tugas-tugas sederhana ditulis sederhana, segera dan cepat. Kisah pengalamannya, kekuatan, proyek dan rencana untuk masa depan memantul dari giginya. Pada titik tertentu, saya ingin membawa poster dengan arsitektur sistem kami, sehingga akan lebih mudah untuk mengatakan apa yang saya lakukan.
Secara umum, selalu dan di mana-mana - tingkat menengah tidak tertarik, Anda harus DI ATAS rata-rata, termasuk, dan di atas kemampuan Anda, dalam arti bahwa Anda harus memberikan semua yang terbaik.
IT Finansial adalah birokrasi yang sangat besar, dan kita harus dapat eksis di dalamnya, ya, sumber daya dihabiskan untuk itu dan semuanya tidak efisien, tetapi ini adalah aturannya dan terkadang tidak ada pilihan yang lebih baik. Dari plus - ada proyek yang menarik, sangat menarik, birokrasi dan analis bisnis tidak mendapatkan banyak uang dan sangat baik.
Saya tidak akan mempertimbangkan persiapan untuk wawancara sama sekali. Kami percaya bahwa ini adalah tahap yang selesai, ada pengetahuan yang diperlukan, dan ada undangan untuk wawancara.
Tahap wawancara
Tahap pendahuluan adalah wawancara telepon.
Seringkali dengan agen - mereka akan menanyakan informasi dasar dari resume bahwa Anda benar-benar bekerja sekarang di mana Anda bekerja, harapan gaji dan gaji saat ini (ini adalah topik yang terpisah - saya akan ceritakan di bawah), status visa dan seberapa cepat Anda dapat mulai bekerja. Agen, sebagai suatu peraturan, akan memberi tahu tentang perusahaan dan tentang lowongan (tetapi sayangnya, hanya informasi umum) dan menanyakan apakah itu menarik bagi saya dan secara umum apa yang saya cari. Mereka bertanya dengan serius tentang motivasi, mengapa Anda mencari, berganti pekerjaan.
Jika percakapan itu langsung dengan perwakilan perusahaan, maka percakapan telepon pertama dapat dengan HR atau langsung dengan perwakilan dari tim yang mereka pekerjakan, sebagai aturan, oleh manajer perekrutan, yaitu. seseorang cukup tumpul, yang mengidentifikasi dan menyaring kandidat yang tepat, dan apakah layak untuk dibelanjakan pada wawancara teknis.
Keuntungannya adalah Anda dapat segera menemukan lebih banyak informasi tentang proyek dan menolaknya itu tidak menarik, atau sebaliknya, bahkan lebih tertarik, menyadari bahwa itu sangat menarik.
Ada beberapa kasus (tetapi mereka stabil), ketika semuanya dimulai dengan kaku pada wawancara pertama - halo, halo, yah, mari kita telusuri java, algoritma, dll. Hanya 40-50 menit dari pertanyaan-pertanyaan itu dalam semangat ujian ilmu komputer.
Tentang uang
Untuk waktu yang lama saya memiliki tabu tentang topik ini - saya tidak ingin tahu berapa banyak rekan kerja saya - itu akan menurunkan motivasi saya dan menurunkan harga diri saya. Kemudian dia mengubah sudut pandangnya menjadi sebaliknya - menyembunyikan gaji di tangan majikan, oleh karena itu, di antara rekan-rekannya tidak keberatan bertukar nomor, tetapi di antara hanya kenalan - tidak. Untuk London - Anda dapat melihat pintu kaca dan kalikan dengan 1,5. untuk beberapa alasan, bagian atas gaji tidak terwakili di sana, meskipun ini adalah bagian paling manis dan, yang penting, cukup dapat dicapai. Bagaimanapun, programmer di London di bank adalah uang yang sangat, sangat baik dan standar hidup lebih tinggi daripada di Moskow (ini adalah pendapat subjektif saya, berdasarkan ide-ide saya tentang standar hidup dan kebutuhan, kota-kota itu sendiri juga memberlakukan pembatasan, di Moskow, saya Saya pikir saya bahkan tidak akan berpikir tentang hipotek, di London, Eropa, 2% per tahun adalah normal, uang muka 20-25% sudah cukup).
Kembali ke wawancara, seperti yang saya mengerti, majikan ingin melihat seorang kandidat dengan jumlah tertentu. Saya akan mengatakan bahwa itu lebih baik untuk menjawab pada interval tertentu, tetapi Anda perlu mengaturnya secara wajar sehingga tidak nanti, semuanya baik-baik saja, tetapi saya ingin lebih banyak uang. Secara umum, saya akan mengatakan bahwa + 10-15% dari gaji saat ini adalah opsi rata-rata. Peningkatan gaji yang hampir dua kali lipat juga dimungkinkan, dan kenaikan 10% per tahun di tempat saat ini juga dimungkinkan, tidak peduli apa kata agen. Saya akan menjelaskan, di satu sisi, semakin mahal agen akan menjual, semakin banyak dia akan menerima, tetapi prioritasnya adalah menjual Anda secara umum, dan untuk berapa banyak, bagaimana hasilnya, 5-10% dari perbedaan gaji Anda untuk agen tidak begitu besar perbedaannya dalam hal itu. agen akan mendapatkannya di tangan (ini adalah asumsi).
Pertanyaan organisasi
Saya memiliki pengamatan yang menarik tentang bagaimana wawancara itu sendiri diselenggarakan, di mana itu dilakukan, kantor itu sendiri dan ruang rapat. Konfirmasi tanggal, waktu, tempat - jarang, ketika hanya dengan telepon, tapi ternyata begitu. Sebagai aturan, sebuah surat. Seringkali dari agen dengan informasi minimum. Hal yang paling menyenangkan adalah surat yang diformat dengan baik, dengan nama dan posisi, dengan siapa pertemuan itu dan apa yang menarik - menunjukkan ruang pertemuan (yang berarti mereka dapat merencanakan ke depan, dan tidak mencari ruang pertemuan gratis 5 menit sebelum wawancara), agen sering mengirim pewawancara yang terhubung - selamatkan saya waktu, karena saya selalu melihat profil yang berpotensi saya harus bekerja dengan. Jika ada artikelnya, saya akan membacanya.
Ngomong-ngomong, jika beberapa orang telah diumumkan, adalah normal untuk berharap bahwa mereka semua tidak akan datang jika yang paling penting dari mereka mendelegasikan ini kepada seseorang. Tapi, IMHO, itu bagus ketika semua tamu yang dinyatakan datang.
Kemudian semuanya standar, dia datang, melaporkan ke resepsi, turun untuk Anda atau mengirim satu ke ruang rapat. Sebagai aturan, seorang karyawan turun di belakang Anda dan membimbing Anda sendiri. Waktu di lift dan di jalan juga bisa digunakan untuk negosiasi.
Dan omong-omong - bagaimana perusahaan menyerupai sekumpulan kandidat, ini juga merupakan indikator. Wawancara adalah proses dua arah, sebagai perusahaan, individu mendekati proses ini, seberapa baik mereka mewawancarai, ini juga merupakan karakteristik perusahaan / tim. Ini, tentu saja, subyektif, bagi saya tampaknya itu bukan pilihan terbaik untuk meminta semua antarmuka Koleksi di tingkat, Anda tahu / tidak tahu, jauh lebih menarik untuk memilih topik dan mengembangkannya lebih lanjut, hashMap favorit yang sama - apa perbedaan dari CHM, bagaimana saya menyimpannya? Mapu dalam memori, tanyakan tentang waktu akses, apa yang terjadi selama caching ulang, dan kembangkan lebih lanjut topik tentang bagaimana elemen disimpan dalam daftar tumbukan (daftar, pohon, pohon mana, dll.))
Selain itu, jika wawancara tidak berhasil, mereka menolak, dan tampaknya Anda berprestasi baik - ini juga bukan alasan untuk kecewa, jika Anda tidak muncul dan tidak ada percikan, maka lebih baik untuk tidak memulai. Dalam hal ini, saya menyukai gagasan bahwa jika tidak berhasil, mungkin saya tidak perlu pergi ke sana. Saya juga suka pendekatannya (Google omong-omong) - lebih baik tidak mempekerjakan karyawan yang baik daripada mempekerjakan karyawan yang buruk. Hal yang sama untuk seorang kandidat - lebih baik tidak masuk ke perusahaan yang baik daripada masuk ke perusahaan yang buruk.
Saya ingin tahu tentang dua hal - waktu aktual wawancara dimulai (saya selalu tiba 10 menit sebelum dimulainya) dan lukisan apa yang tergantung di dinding, desain ruang rapat - sebagai aturan, ini adalah ruang rapat untuk nasabah bank dan menginvestasikan banyak uang dalam desain mereka.
Ada momen seperti itu - sebuah wawancara diumumkan selama 2 jam dengan 4 orang, dan setelah satu jam mereka mengucapkan terima kasih. Jelas bahwa Anda tidak lulus. Saya tidak tahu bagaimana menghubungkannya dengan ini, ini bukan tentang itu - itu menyinggung perasaan saya, saya sedang mempersiapkan, biarkan mereka mendengarkan (well, atau setidaknya biarkan saya mendapatkan latihan wawancara) - semuanya jelas dan ya, sulit; lebih mungkin bahwa itu mungkin kinerja yang gagal dan jika Anda melanjutkan, semuanya akan menjadi lebih baik. Tapi di sini, maka logikanya adalah lagi - lebih baik tidak mempekerjakan yang baik, daripada mempekerjakan yang buruk.
Nomor telepon
Yang paling mendasar, seperti yang saya jelaskan, adalah percakapan telepon. Mungkin ada pertanyaan teknis, tetapi sesuatu yang sangat sulit atau rumit jelas sulit ditanyakan. Detail implementasi di tempat-tempat semacam cepat tidak mungkin ditanyakan, dan jika mereka, mereka harus dijalankan karena, IMHO, ini tidak memadai.
Online
Selanjutnya, favorit terbaru (ini bukan 5-7 tahun yang lalu atau kurang) - pemrograman online seperti hackerrank atau tes online.
Tes dengan pilihan jawaban dari daftar jarang dan, menurut pendapat saya, jarang tes cukup mencerminkan persiapan kandidat, meskipun saya menemukan satu, hanya indah, 12 menit, 12 pertanyaan yang agak dimengerti. Oleh karena itu, saya pikir ini adalah filter yang kasar.
Pemrograman online dengan pewawancara terlihat seperti ini - buka situs, masuk, dan di depan Anda ada IDE daring yang dapat dilihat oleh Anda dan pewawancara. Dia memberi Anda tugas, dan Anda segera menulis kode, menjalankannya, dll. Hanya sekali saya bertemu ketika itu hanya Google Dock, yang lainnya adalah IDE online yang cukup sederhana.
PR
Tugas uji yang baik dan lama, ketika tugas itu hanya dijelaskan, dan Anda perlu mengirim solusi - kadang-kadang untuk sementara, kadang-kadang hanya untuk 1-2-3-4 hari.
Menurut format tugas - pekerjaan rumah, sebagai suatu peraturan, sangat dapat dipahami dan bermakna. Ini adalah sesuatu yang algoritmik (sesuatu seperti menemukan jalan di labirin, atau sistem kecil untuk menghitung nilai rata-rata dari aliran harga dan menyimpan yang paling terakhir, Anda perlu merancang sedikit kelas dan menulis semuanya dengan penekanan pada latensi rendah) atau, seperti yang saya katakan Saya panggil, di OOP - ada area subjek sederhana, Anda hanya perlu menulis program yang menampilkan tugas. Sebagai contoh, kami memiliki rumah sakit, ada pasien di dalamnya, setiap pasien diberikan daftar obat tertentu, obat sesuai aturan tertentu saling berinteraksi sehingga menimbulkan efek berbeda (jika Anda memakai A dan B, maka pasien akan sakit dengan penyakit X, jika pasien dengan penyakit D tidak diberikan Dan dia akan mati). Kita harus menulis sebuah program yang, sesuai dengan daftar obat yang diberikan, memberikan hasil menerapkannya ke daftar pasien (masing-masing memiliki penyakit awal sendiri). Contoh lain adalah menulis ATM (memperhatikan atomitas transaksi). Lain adalah menulis permainan gunting batu kertas.
Pemrograman on-line untuk sementara waktu (tanpa campur tangan manusia di sisi lain) - sebagai aturan, ini adalah sesuatu yang algoritmik dari kategori traversal pohon, bekerja dengan array - semua yang ada di geelforgeeks, dan tugas yang lebih ganas tidak jarang terjadi. Sayangnya, solusi untuk banyak masalah tergantung pada apakah dia bertemu sebelum atau tidak, seringkali tugasnya kompleks dan diambil (dan dirumuskan) dalam sumber terbuka, bagi saya tampaknya ini bukan pilihan tugas yang sangat baik, sepertinya pewawancara tidak ingin menguji kemampuan Google mereka.
Pemrograman on-line dengan pewawancara juga merupakan pandangan yang menarik, tugas-tugasnya jauh lebih sederhana, tetapi tekanan dan ketidakbiasaan dari IDE ditambahkan, hal utama di sini bukanlah diam, alasan dan tidak terburu-buru untuk menulis solusi segera. Berpikir dan berpikir. Contoh tugas yang bisa berupa - satu set nilai diberikan, setiap nilai diberi probabilitas. Penting untuk menulis sebuah program yang menghasilkan nilai-nilai ini dengan probabilitas yang diberikan. Menurut saya itu rumit, tetapi layak.
Contoh lain - ada operasi panjang yang mengambil satu argumen sebagai input, ada banyak utas yang memanggil dan melakukan operasi ini. Tulis pembungkus yang akan mengoptimalkan panggilan (Anda perlu melakukan caching dengan penekanan pada multithreading, sehingga jika utas kedua memanggil operasi dengan nilai yang sama dan operasi sedang dalam proses perhitungan, maka Anda tidak perlu menjalankan perhitungan lagi, tunggu saja). Iblis dikenal dalam perincian dan kasus-kasus ekstrem.
Lebih lanjut tentang agen - kadang-kadang terjadi bahwa agen tampaknya tahu bahwa mereka akan bertanya dan entah bagaimana dapat menggambarkannya. Ini adalah zona abu-abu, di satu sisi itu baik untuk mengetahui apakah wawancara itu murni teknis atau hanya percakapan yang diharapkan dari Anda, dll. Tidak apa-apa. Tetapi berbicara tentang tugas-tugas khusus, saya pikir ini tidak terlalu baik, terutama yang berkaitan dengan perusahaan, juga, kandidat akan terlihat sangat buruk jika dia secara ajaib menulis solusi untuk masalah itu segera, tetapi tidak bisa menjelaskannya. Karena itu, saya lebih suka untuk tidak menggunakan tips seperti itu.
Wawancara di tempat
- pemrograman pasangan, pada dasarnya sama dengan pemrograman online, hanya pewawancara tidak di telepon, tetapi di kursi di dekatnya.
- pekerjaan rumah - berikan tugas, comp, satu jam waktu, tulis-panggilan.
- Pengodean, desain di atas kertas / papan.
Hanya percakapan.
Menurut percakapan itu sendiri - 50/50 akan ada 1 / banyak pewawancara, secara umum, tidak buruk ketika ada beberapa sekaligus, dan itu menarik ketika terlihat seperti pemeriksaan silang, mereka bertanya pada semua orang dan banyak.
Contoh tugas / pertanyaan umum
Mengetahui solusi tidak menjamin apa pun, serta ketidakakuratan, ketidaklengkapan solusi, menjawab.
Tugas itu sendiri, pertanyaannya, adalah awal dari suatu percakapan tentang topik tersebut. Misalnya, cara memuat dua array yang diurutkan. Lalu, jika kita memiliki lebih dari 2. susunan apa, kerumitan, bagaimana mengoptimalkan, dan bagaimana jika kita mengubah ini dan itu. Menurut pendapat saya, ini adalah pendekatan yang sangat baik - Anda tidak terancam dengan algoritma yang kompleks, tetapi sesuatu yang sederhana diberikan, dan kemudian percakapan dimulai pada topik, komplikasi.
Spesifikasi Java
- sama dan kontrak kode hash, apa yang akan terjadi jika Anda istirahat
- bagaimana cara kerja hahsmap. Dengan berbagai tingkat detail? mulai dari bagaimana kode hash digunakan (apa yang akan terjadi jika Anda memutuskan kontak dengan yang sama) ke - CHM, salin pada array tulis, seperti yang diatur secara internal, memblokir baca / tulis, kunci segmen, level bersamaan.
- volatile (memory barier), terjadi sebelum semantik
- java 7 - chm, atomics, nio (?)
- java 8 - stream, lambda
- GC (Sepertinya saya sudah bisa membuat presentasi tentang hal ini)
- pertanyaan tentang volatile array, volatile int [] arr; arr [2] = 2; int j = arr [2];
- penguncian pemeriksaan ganda (dan mengapa Anda tidak harus menggunakannya)
- Saya tidak mengerti apa yang menarik, tetapi di suatu tempat saya melihatnya sebagai contoh pertanyaan yang menarik:
Objek [] o = Objek baru [10] (); VS Obyek b = Obyek baru [10] (); (di sini saya tidak tahu jawabannya sendiri, kalau ada yang membaca - bantu dengan pertanyaan ini) - beri tahu notifikasi Semua, konsumen produsen dan ketika Anda \ tidak bisa menggunakan notifikasi, bukan notifyAll
Algoritma
normal keras
- memeriksa keseimbangan orang tua ({[- periksa-untuk-seimbang-kurung-dalam-an-ekspresi
- perhitungan ekspresi (diberi string dengan angka, + - * / menghitung nilai dalam tanda kurung) - evaluasi-ekspresi
- BFS / DFS - bfs-vs-dfs-binary-tree
- menemukan jalur dalam grafik dari atas ke semua, yang terkecil antara 2 simpul - temukan-jika-ada-jalur-antara-dua-simpul-dalam-diberikan-grafik
- sort stack - sort-stack-using-temporary-stack
- acak satu array angka secara acak
sulit
- mencari substring identik terbesar dalam dua baris - terpanjang-umum-substring-java
- menemukan akhiran kata terkecil, menambahkannya ke kata akan menghasilkan palindrome - awalan palindrome terpanjang
- (union find)
- , (, , tail recursion c )
- , N
- fuzz buzz ( 2 )
norma-norma
- ring buffer, thread (non)safe, (non)blocking.
- producer consumer, notify/notifyAll, .
- queue -> blocking queue wait notify
- thread safe
- calculate VWAP (with sliding window, global)
- sliding mean/avg
- ,
- ( - )
- โ , .
- ( , ).
- - ( 1 , N ) โ
- โ check-for-string-rotation-in-java/
( , )
- โ maze
- โ Knight's tour, i,j
- โ leetcode-word-search-java
- ( , , ).
โ . , , , - , .
- โ leetcode-paint-house-java
- . , .
- throthler , โ , , 1 . throttling vs conflation.
- .
- 2 ( 1GB), . <1000 , 99% ( โ 99% , 99% ). , .. โ , 1-epsilon โ ( , ).
- ,
- ATM ()
- โ , , , X Y .
( ). , .
- , \.
- ,
- ( 3 \)
- . . , โ , โ ?..
- /
- , . () .
- leetcode
- hackerrank
- interviewbit
- geeksforgeeks
- ( )
- glassdoor
- google
- practice-practice-practice and have fun!
, , , .