Setiap kali, mempersiapkan wawancara untuk posisi "pengembang Java", saya mengerti bahwa rencana persiapan konkret akan sangat membantu saya. Oleh karena itu, semua catatan mereka terakumulasi selama wawancara, diputuskan untuk menyusun dan mempublikasikan. Saya harap seseorang akan menganggap rencana ini bermanfaat.
Dan saya sengaja tidak menulis untuk siapa rencana pelatihan ini dimaksudkan: untuk pengembang senior, menengah atau junior - semuanya tergantung pada kekosongan spesifik dan pada persyaratan majikan. Karena itu, andalkan rencana ini, tetapi saring dan pada saat yang sama jangan menganggapnya sebagai panduan lengkap.
- Inti Jawa . Di sini Anda dapat fokus, misalnya, pada buku "OCP: Oracle Study Guide Professional Java SE 8 Programmer II Study II: Ujian 1Z0-809" untuk mempersiapkan sertifikasi Java tingkat Profesional. Ada buku serupa , OCA: Oracle Certified Java Associate Java SE 8 Panduan Studi I Programmer: Ujian 1Z0-808, untuk tingkat Associate - Anda juga dapat melihatnya. Telusuri daftar isi dan sorot untuk diri sendiri apa yang dapat Anda ulangi. Tentu saja, Anda tidak harus serius dan membaca sampul buku untuk menutupi - banyak topik dari buku ini dapat dilewati, misalnya, format tanggal. Sorot yang paling mendasar. Misalnya, bagi saya ini adalah topik berikut: koleksi (pertanyaan standar "Bagaimana pengaturan HashMap?" Atau "Apa perbedaan antara LinkedList dan ArrayList?") barrier dan fork join framework).
Juga jangan lupa memproyeksikan pengetahuan ke dalam pengalaman Anda. Misalnya, kapan Anda harus menggunakan pemrograman multi-utas? Masalah apa yang Anda pecahkan? Kunci apa yang Anda gunakan?
- Multithreading. Saya masih menyoroti topik ini dalam paragraf terpisah - karena buku di atas tidak menjelaskan apa itu volatile, mengunci dan menunggu / memberi tahu. Jika Anda belum pernah bekerja dengan pemrograman multi-utas sebelumnya - jadi jujurlah dan bicaralah saat wawancara. Tetapi beberapa hal yang, misalnya, tercantum di atas, akan menyenangkan untuk mengetahui setidaknya secara teori (terutama pertanyaan "Apa itu volatile?" Saya sudah di hampir setiap wawancara).
- Algoritma Topik ini relevan tidak hanya untuk pengembang java. Sepertinya Anda tidak akan diminta menulis algoritma penyortiran apa pun. Pewawancara tidak tertarik mengetahui betapa hebatnya Anda telah mempelajari kode sortir gabungan (kemungkinan besar dia hanya akan meminta Anda untuk memberi tahu prinsip umum). Tetapi untuk memecahkan masalah algoritmik, untuk mengevaluasi kompleksitas solusi Anda, atau misalnya untuk menjelaskan dengan kata-kata prinsip pencarian mendalam, adalah opsi yang sepenuhnya mungkin.
- Struktur data. Apa perbedaan pohon dari grafik? Apa itu pohon AVL? Bagaimana tumpukan berbeda dari antrian?
Mengenai java: kelas apa di java yang mengimplementasikan stack atau antrian? Apa bedanya LinkedList dari ArrayList? Apa itu hashset? Apa bedanya dengan TreeSet? Bagaimana cara kerja HashMap?
Pertanyaan-pertanyaan ini dan yang serupa sangat mungkin untuk diwawancarai. Tetapi perlu dicatat bahwa pertanyaan tentang pohon dan grafik jauh lebih kecil kemungkinannya muncul dalam wawancara - struktur ini jarang digunakan dalam praktik. Sebaliknya, Anda diharapkan memiliki pengetahuan yang baik tentang apa yang Anda gunakan sebelumnya. Tidak tahu atau tidak menggunakan kayu merah-hitam? Jadi katakan padaku, kamu tidak bisa tahu segalanya.
- Basis data Relasional dan non-relasional. Apa bedanya? Apa dan kapan menggunakannya?
Jika kita berbicara tentang yang relasional, maka ulangi semua objek dari basis data seperti itu: tabel, tampilan, indeks. Ulangi sql - bagaimana kueri dibuat, tipe gabung apa yang ada, daripada berbeda dari mana. Juga ulangi transaksi secara terpisah - tingkat isolasi, properti ACID. Ingat, pernahkah Anda memiliki kasus optimasi kueri? Apakah Anda harus melihat rencana eksekusi permintaan?
Juga jangan lupa mengulangi jpa (jika spesifikasi ini diperlukan dalam lowongan). Apa itu manajer entitas? Apa itu konteks ketekunan? Dan seterusnya, apa yang harus saya hadapi.
- Kerangka kerja Kerangka kerja mana yang perlu Anda ulangi bergantung pada lowongan spesifik. Dalam kebanyakan kasus, Musim Semi diperlukan. Maka jangan lupa untuk mengulangi bagaimana Spring umumnya bekerja, langkah-langkah untuk menginisialisasi kacang. Ingat kerangka Spring mana yang Anda gunakan (mis. Spring mvc, keamanan Spring, data Spring) dan alasannya. Ulangi anotasi utama (jangan lupa tentang Kualifikasi, Primer, dan Bersyarat - mereka sering bertanya tentang hal itu). Dan jangan lupa tentang cakupan bean.
Secara terpisah, saya ingin menyentuh anotasi Transaksional. Bagaimana cara kerjanya? Apa yang dapat dikonfigurasi tambahan di dalamnya?
- Perangkat JVM. Apa itu tumpukan dan tumpukan? Bagaimana benda disimpan di jvm? Apa itu kumpulan string? Apa yang memberikan prinsip terjadi sebelumnya? Bagaimana cara kerja pengumpul sampah? Ulangi sebanyak mungkin - itu tidak akan berlebihan.
- Pola Tidak perlu mengemudi - tidak ada yang perlu mendaftar semua pola yang ada. Tetapi beberapa, digunakan di Jawa atau Musim Semi, perlu diketahui (misalnya, Immutable, Singleton, Prototipe, Builder, Proxy, Abstrak pabrik, Wrapper).
- Masalah algoritma. Seringkali pada wawancara mereka meminta untuk memecahkan masalah tertentu. Terkadang di selembar kertas, terkadang di papan tulis, kadang di situs tertentu, jika itu wawancara Skype. Bersiaplah untuk menulis kode tanpa menggunakan lingkungan pengembangan favorit Anda. Juga berlatih memecahkan teka-teki, misalnya pada Leetcode .
- Jaringan. Ulangi level model OSI. Dan jangan lupa untuk mengulangi protokol utama dengan sedikit lebih detail: tcp, udp, http, https.
- Arsitektur SOLID, penemuan layanan, antrian pesan. Kapan menggunakan layanan microser dan kapan monolit? Sudahkah Anda menggunakan eureka atau konsul?
- Sisanya. Agile, Git dan Gitflow, REST / SOAP, Linux (jika Anda bekerja), Docker dan Kubernetes (jika Anda bekerja). Dan juga tes - fungsional, integrasi dan unit. Apa perbedaannya, mana yang ditulis, apakah mereka menggunakan TDD?
- Bahasa inggris Hanya jika diperlukan. Tentu saja, jangan ulangi aturan tata bahasa bahasa Inggris. Cukup dengan melatih untuk bercerita tentang diri Anda sendiri, dimungkinkan untuk mengingat beberapa frasa yang sudah disiapkan sebelumnya.
- Untuk diriku sendiri Bersiaplah untuk menjawab pertanyaan-pertanyaan seperti: "Masalah menarik apa yang harus Anda selesaikan di tempat kerja?", "Beri tahu kami apa yang paling Anda banggakan.", "Ceritakan tentang prestasi Anda.", "Ceritakan tentang kegagalan Anda.", "Bagaimana Anda mendidik diri sendiri?" , "Mengapa mereka meninggalkan tempat kerja sebelumnya?". Jika Anda memiliki proyek, artikel, atau pidato Anda sendiri, pastikan untuk menceritakannya. Mereka sangat tertarik dengan hal-hal ini dan pasti akan meminta rincian lebih lanjut.
Juga, pastikan untuk menyiapkan pertanyaan perusahaan Anda. Sorot poin utama yang penting bagi Anda, tepat pada poin. Di habr ada
pos yang bagus
tentang itu .
Dan saya akan memberikan beberapa saran dari diri saya.
Secara pribadi, saya selalu menempatkan 2 wawancara pertama sebagai pelatihan. Artinya, biasanya ini adalah perusahaan yang paling menarik minat saya. Wawancara-wawancara ini diperlukan hanya untuk mendapatkan ritme dan tidak perlu takut pada yang berikutnya.
Bersiaplah juga untuk membicarakan pengalaman Anda dari resume. Apa yang mereka lakukan, mengapa, masalah apa yang mereka pecahkan.
Ingatlah bahwa Anda bukan ensiklopedia, dan jangan langsung mendaftar, misalnya, semua antarmuka fungsional di Jawa. Akan sangat normal jika Anda hanya memberi tahu tentang apa yang Anda kerjakan.
Dan ingat bahwa wawancara itu utamanya adalah percakapan. Mereka tidak menginterogasi Anda dan tidak ingin mempermalukan Anda jika Anda tidak tahu apa-apa. Majikan akan mencari tahu apakah Anda adalah kandidat yang cocok, dan Anda akan mencari tahu apakah pekerjaan ini cocok untuk Anda.
Buku bagus lainnya adalah
Cracking the Coding Wawancara . Anda dapat melihatnya, terutama jika Anda akan menjalani wawancara di perusahaan asing seperti Google, Facebook.
Sumber daya bermanfaat yang mungkin diperlukan dalam persiapan:
- Memecahkan Wawancara Pengodean.
- OCP: Panduan Studi II Programmer II Java Certified Professional Java SE: Ujian 1Z0-809.
- Posting "Aku akan meneleponmu kembali . "
- Leetcode .
- Wawancara Situs lain dengan masalah algoritmik. Di sini, tugas disusun menjadi beberapa kategori.
Semoga beruntung