TAHAP 1. Pelatihan
Saya datang ke JavaRush secara sadar: daftar harga bulanan yang memadai, struktur materi yang jelas, banyak latihan dan kehadiran komunitas saya sendiri. Poin pertama semuanya jelas, tetapi mempelajari bahasa tanpa struktur cukup sulit, dan pelatihan seperti itu pasti akan meninggalkan kesenjangan yang serius pada Java Core. Pengalaman wawancara dan spesifikasi teknis menunjukkan bahwa pertanyaan tentang “inti” dapat digunakan untuk apa saja: mulai dari pergeseran bitwise dan casting generik hingga IO dan serialisasi. Latihan adalah hal yang harus dimiliki; Saya masih hanya dapat memahami dan mengingat setengahnya jika saya menulisnya sendiri. Nah, komunitas: Anda memecahkan masalah - banggakan di komentar; Jika Anda belum memutuskan, Anda boleh mengajukan pertanyaan, tetapi kemungkinan besar tidak ada yang akan memberi Anda solusi siap pakai. Dan saya kembali ke artikel khusus tentang topik gratis bahkan setelah menyelesaikan kursus, ada banyak hal bagus untuk memulai (terutama pengalaman pertama dengan kerangka kerja menggunakan contoh langkah demi langkah + pertanyaan untuk wawancara). Secara umum, saya berterima kasih kepada proyek ini atas dasar yang saya terima, tetapi saya tidak akan hanya mengandalkan JavaRush - Shildt yang sama paling baik "tumpang tindih" dengan topik yang sedang dipelajari, dan sering kali mengungkapkan beberapa poin. Banyak yang telah dikatakan dalam ulasan tentang tugas-tugas yang terkadang melampaui teori dan memaksa Anda untuk menggunakan Google. Bagi saya, ini lebih merupakan nilai plus daripada minus - dan bukan fakta bahwa sekarang situasinya sama seperti saat saya masih belajar. Saran langsung bagi mereka yang, seperti saya, memasuki Java “dari awal” : pada tahap tertentu Anda mungkin merasa bosan atau kesulitan:-
Sulit bagi semua orang untuk memulai dari awal; Tuhan melarang, hanya 5% orang yang mencapai akhir kursus. Tugas Anda adalah menjadi salah satu dari mereka.
-
Saya menjadi tertarik setelah satu atau dua bulan, ketika tugas menjadi lebih sulit dan menarik. Bersabarlah.
- Hal utama adalah kemajuan mingguan. Setelah dua minggu istirahat, sudah sulit untuk kembali, dan tidak semua orang bisa menulis setiap hari selama beberapa bulan berturut-turut. Beri diri Anda batas jam dalam seminggu - misalnya, 15. Anda dapat membuat kode selama 1,5 jam setiap hari kerja dan 3-4 jam lagi pada kedua akhir pekan, atau Anda dapat mengambil libur beberapa malam, namun “batas akhir pekan” akan menentukan meningkatkan. Dengan cara ini, jadwalnya akan fleksibel namun teratur. Tentu saja, pekerjaan dapat diukur berdasarkan tugas dan proyek, tetapi pada tingkat sintaksis dan kernel, jam sudah cukup.
TAHAP 2. Pendidikan mandiri
Jadi, saya tidak mendapatkan magang: Saya hanya menyisakan beberapa hari untuk memenuhi persyaratan teknis hingga akhir perekrutan ke dalam grup dan tidak punya waktu untuk memikirkan persyaratannya - ada terlalu banyak kata asing. Karena Saya tidak ingin menunggu tiga bulan lagi, saya memutuskan untuk pindah sendiri. Untungnya, ada panduan dan tutorial video untuk semua framework populer. Selama beberapa bulan berikutnya, saya berurusan dengan Spring MVC, Spring Boot + Data, Spring Security, Hibernate, jUnit, Maven, Git, RDBMS, menguasai SQL dan mencoba menggabungkan semuanya menjadi satu kesatuan. Enam bulan kemudian, saya memiliki proyek yang sekarang menakutkan untuk dilihat, tetapi saya memperoleh pengalaman praktis dalam menggunakan kerangka kerja “dewasa” dan GitHub yang dapat ditampilkan atas permintaan calon pemberi kerja. Saran :-
Semakin cepat Anda mempelajari .gitignore, semakin baik. ;)
-
Banyak panduan menyertakan beberapa kerangka kerja sekaligus; gunakan ini dan tambahkan milik Anda sendiri. Kami menulis toko online menggunakan Maven + Spring Boot + Data - tambahkan otorisasi, pengujian unit, dan logging.
-
Untuk proyek web, Anda dapat mengambil templat frontend gratis dari Internet - templat ini lebih nyaman untuk digunakan, tampilannya lebih baik seperti tangkapan layar di README di Git. Pada saat yang sama, Anda akan dapat mengingat HTML dan CSS - Anda mungkin ingin memperbaiki gaya dan tata letaknya.
Apa yang saya lewatkan (kemudian saya terbakar saat wawancara)
-
Algoritma. Untuk menghindari kesalahan saya, saya langsung merekomendasikan buku pendek dalam bahasa Rusia, “Grocking Algorithms.” Apa kompleksitas algoritma, terdiri dari apa, mengapa quicksort saja tidak cukup, pengantar teori grafik - semuanya ada dan dalam bahasa yang paling mudah dipahami.
-
Koleksi "di bawah tenda". Saya tidak ingat apakah ini ada di JavaRush, tetapi berguna untuk mengetahui cara kerja HashMap.get() atau mengapa HashSet tidak dijamin menjaga urutan elemen. Sekali lagi, koleksi mana yang aman untuk thread dan alasannya.
-
SQL. Anda memerlukan setidaknya hingga GABUNG - apa itu, cara kerjanya, kemampuan untuk menulis SELECT pada dua tabel di atas kertas dengan cepat. Saya merekomendasikan www.sql-ex.ru: ini akan membawa Anda ke level yang diinginkan dalam satu atau dua hari.
-
Spring Core: anotasi apa yang ada di sana, apa konteksnya, bagaimana beans dibuat, Bean Scope mana yang aman untuk thread, dan bagaimana menyelesaikan mutual injection - semua pertanyaan wawancara. Cara mengembalikan halaman, cara mengembalikan JSON, dll. Saat ini saya sedang membaca “Spring 5 untuk Profesional” dalam bahasa Rusia, tetapi secara umum mereka merekomendasikan “Spring in Action”.
TAHAP 3. Pencarian pekerjaan
Sebenarnya, dalam beberapa bulan pertama setelah menyelesaikan proyek rumah, saya mengirimkan sekitar 30 tanggapan ke berbagai lowongan Junior\Trainee (melalui HH, LinkedIn, agen perekrutan), dengan hasil yang hampir nol. Saya hanya fokus pada lowongan tanpa pengalaman, dengan jujur menunjukkan tumpukan yang saya kenal dan menulis tentang kemampuan belajar saya yang tinggi di surat lamaran. Hasilnya adalah dua panggilan (salah satunya langsung diakhiri dengan bahasa Inggris pra-menengah saya), dua perusahaan lagi mengirimkan spesifikasi teknis, hanya ada satu “pertemuan”, dan kemudian saya di sana sendirian memecahkan masalah algoritma di selembar kertas, setelah itu HR mengambil surat-surat itu dan "Kami akan menghubungi Anda." Saya mencoba untuk mendapatkan beberapa magang (tidak dibayar dan dibayar bersyarat): Saya melakukan spesifikasi teknis, tetapi tidak melampaui jaminan sosial akhir; tapi sekarang saya dapat mengatakan bahwa peserta pelatihan pasti direkrut oleh T-Systems, CFT, Andersen dan EPAM (mereka memiliki tinjauan yang beragam, putuskan sendiri). Bagi saya, ini adalah cara yang baik untuk memasuki lapangan jika Anda memiliki kesempatan untuk duduk tanpa penghasilan selama beberapa bulan dan tidak mati =) Secara umum, setelah pengalaman ini saya menjadi agak tertekan, dan menghentikan keseluruhan cerita dengan pencarian selama hampir enam bulan - saya terus mengerjakan profil sebelumnya, menulis beberapa aplikasi hanya untuk bersenang-senang, tetapi bahkan tidak mempostingnya di Git. Sampai saya bertemu dengan seorang kenalan yang dengan santai saya ceritakan tentang kegagalan lowongan: saat itu dia sudah bekerja sebagai pengembang menengah, tetapi dia memulai dengan cara yang sama - dengan belajar mandiri. Seorang kenalan memberi saya beberapa rekomendasi , yang dia gunakan sendiri dan sangat membantu saya dalam mencari pekerjaan di masa depan. Apakah Anda mengikuti mereka atau tidak, itu terserah Anda, karena... mereka, dalam beberapa hal, tidak sepenuhnya jujur. Jadi, kutipan selanjutnya:-
Dengan cara apa pun, berikan diri Anda pengalaman komersial selama 6+ bulan di resume Anda: magang, proyek kelulusan, pekerja lepas, pekerjaan jarak jauh - apa pun. Hal ini akan sangat membantu pada tahap awal penyaringan resume oleh HR;
-
hapus kata Junior dan gaji yang diharapkan dari resume Anda; biarkan saja sebagai Pengembang Java, dan diskusikan uangnya secara individu dengan masing-masing perusahaan;
-
cobalah untuk meminta HR menyebutkan “garpu” dari gaji yang diusulkan sebelum Anda menyebutkan ekspektasi Anda. Jika sebuah perusahaan menawarkan 80-120rb, dan Anda mencari 40rb atau lebih, beberapa penyeleksi akan memperlakukan Anda dengan hina;
-
Lamar ke semua lowongan yang sesuai dengan tumpukan Anda, meskipun memerlukan 1-3 tahun pengalaman komersial.
-
Sertakan dalam resume Anda seluruh bahasa, teknologi, dan kerangka kerja yang pernah Anda gunakan.
-
Daftar di LinkedIn - memang ada banyak sekali orang HR dari berbagai perusahaan di sana. Isi profil Anda dengan hati-hati - sebenarnya, ini juga resume Anda. Untuk mengembangkan jaringan kontak Anda, tambahkan LION yang relevan dengan profil Anda; mereka menerima permintaan dari semua pengguna.
-
Cobalah sendiri tes Java gratis - tes tersebut sering kali diberikan di atas kertas sebelum wawancara Junior. Lebih baik mempersiapkannya terlebih dahulu.
-
Mereka selalu bertanya tentang koleksinya: apa saja yang ada, apa bedanya, kapan waktu terbaik untuk menggunakannya.
-
Selalu menggunakan kelas dan antarmuka abstrak - dapatkah mereka memiliki metode, bidang, yang mana, dapatkah diwariskan, dll.
-
Hampir selalu di multithreading - apa yang Anda gunakan dalam pekerjaan Anda, kata kunci, metode, apakah Anda familiar dengan util.concurrent.
-
Seringkali ketika bekerja dengan memori - heap, stack, dan apakah string ini akan sama, dan objek-objek ini, mengapa.
-
Terkadang tentang algoritma – yang mana yang anda ketahui, kompleksitasnya apa, kenapa, anda bisa menulis algoritma sekarang.
-
Terkadang berdasarkan pola - mana yang Anda tahu, mana yang Anda gunakan, tulislah singleton atau pabrik.
-
Terkadang di SQL - jenis GABUNG, apa transaksinya, bagaimana melakukannya di JDBC, tulis kueri singkat.
-
Halaman kontak bisnis profil Salesforce dengan pengeditan dan penambahan catatan baru;
-
simulasi elevator di gedung bertingkat menggunakan Spring State Machine dengan kontrol konsol;
-
Aplikasi Android berdasarkan perpustakaan LibGDX dengan keluaran teks karakter demi karakter saat tombol ditekan;
-
REST meniru berbagi mobil, dengan menambahkan klien melalui permintaan HTTP dan mengembalikan JSON;
-
masalah pengurutan grafik tidak berarah melalui sel bebas;
-
mencari segitiga sama kaki menggunakan koordinat dari file;
-
pemfaktoran ulang kode yang sudah jadi menggunakan Stream API;
-
Kalkulator UI dengan dukungan untuk ekspresi terner;
-
perlombaan utas dengan menulis hasilnya ke file.
-
Cobalah tidak hanya menyelesaikan tugas, tetapi juga memastikan bahwa kode tersebut mematuhi prinsip OOP.
-
Periksa efisiensi kode Anda - Saya pernah ditolak karena, antara lain, saya menggunakan PrintStream alih-alih BufferedWriter.
-
Rencanakan waktu eksekusi Anda dengan margin 50% - lebih baik memulai dan menyelesaikan lebih awal daripada melakukan git push pada jam delapan pagi dari tenggat waktu.
GO TO FULL VERSION