PERINGKAT 1. Latihan
Saya datang ke JavaRush secara sedar: senarai harga bulanan yang mencukupi, struktur bahan yang jelas, banyak amalan dan kehadiran komuniti saya sendiri. Perkara pertama semuanya jelas, tetapi mempelajari bahasa tanpa struktur agak sukar, dan latihan sedemikian pastinya akan meninggalkan seseorang dengan jurang yang serius dalam Java Core. Pengalaman temu bual dan spesifikasi teknikal menunjukkan bahawa soalan tentang "teras" boleh digunakan untuk segala-galanya: daripada peralihan bitwise dan pemutus generik kepada IO dan bersiri. Amalan mesti ada; Saya masih hanya boleh memahami dan mengingati separuh daripada perkara itu jika saya menulisnya sendiri. Nah, komuniti: anda menyelesaikan masalah itu - bercakap besar tentangnya dalam ulasan; Jika anda belum membuat keputusan, anda dialu-alukan untuk bertanya, tetapi kemungkinan besar tiada siapa yang akan memberi anda penyelesaian siap sedia. Dan saya kembali ke artikel tersuai mengenai topik percuma walaupun selepas menamatkan kursus, terdapat banyak perkara yang baik untuk dimulakan (terutamanya pengalaman pertama dengan rangka kerja menggunakan contoh langkah demi langkah + soalan untuk temu duga). Secara umum, saya berterima kasih kepada projek ini untuk pangkalan yang saya terima, tetapi saya tidak akan bergantung hanya pada JavaRush - Shildt yang sama yang terbaik adalah "bertindih" pada topik yang sedang dikaji, dan sering mendedahkan beberapa perkara. Banyak yang telah diperkatakan dalam ulasan tentang tugasan yang kadangkala mendahului teori dan memaksa anda ke Google. Bagi saya, ini lebih kepada tambah daripada tolak - dan bukan fakta bahawa sekarang keadaannya sama seperti semasa saya belajar. Nasihat segera kepada mereka yang, seperti saya, memasuki Java "dari awal" : pada satu peringkat anda mungkin menjadi bosan atau sukar:-
Sukar untuk semua orang bermula dari awal; Insya-Allah, hanya 5% orang yang mencapai penghujung kursus. Tugas anda adalah untuk menjadi salah seorang daripada mereka.
-
Minat saya muncul selepas sebulan atau dua, apabila tugas menjadi lebih sukar dan menarik. Bersabarlah.
- Perkara utama ialah kemajuan mingguan. Selepas dua minggu berehat, sudah sukar untuk kembali, dan tidak semua orang boleh menulis setiap hari selama beberapa bulan berturut-turut. Beri diri anda had masa untuk seminggu - contohnya, 15. Anda boleh kod selama 1.5 jam setiap hari bekerja dan 3-4 jam lagi pada kedua-dua hujung minggu, atau anda boleh mengambil cuti beberapa malam, tetapi "had hujung minggu" akan meningkat. Dengan cara ini, jadual akan menjadi fleksibel, tetapi tetap. Sudah tentu, maka ia akan menjadi mungkin untuk mengukur kerja dengan tugas dan projek, tetapi pada tahap sintaks dan kernel, jam akan dilakukan.
PERINGKAT 2. Pendidikan kendiri
Jadi, saya tidak mendapat latihan: Saya hanya meninggalkan beberapa hari untuk keperluan teknikal sehingga tamat pengambilan ke dalam kumpulan dan tidak mempunyai masa untuk memikirkan keperluan - terdapat terlalu banyak perkataan yang tidak dikenali. Kerana Saya tidak mahu menunggu tiga bulan lagi, saya memutuskan untuk meneruskan diri sendiri. Nasib baik, terdapat panduan dan tutorial video untuk semua rangka kerja yang popular. Dalam beberapa bulan akan datang, saya berurusan dengan Spring MVC, Spring Boot + Data, Spring Security, Hibernate, jUnit, Maven, Git, RDBMS, menguasai SQL dan cuba menggabungkan semuanya menjadi satu keseluruhan. Enam bulan kemudian, saya mempunyai projek yang menakutkan untuk dilihat sekarang, tetapi saya memperoleh pengalaman praktikal dalam menggunakan rangka kerja "dewasa" dan GitHub yang boleh ditunjukkan atas permintaan bakal majikan. Nasihat :-
Lebih cepat anda belajar tentang .gitignore, lebih baik. ;)
-
Banyak panduan termasuk beberapa rangka kerja sekaligus; gunakan ini dan tambah sendiri. Kami menulis kedai dalam talian menggunakan Maven + Spring Boot + Data - tambah kebenaran, ujian unit dan pengelogan.
-
Untuk projek web, anda boleh mengambil templat frontend percuma dari Internet - ia lebih senang digunakan, ia kelihatan lebih baik sebagai tangkapan skrin dalam README pada Git. Pada masa yang sama, anda akan dapat mengingati HTML dan CSS - anda mungkin mahu membetulkan gaya dan reka letak.
Perkara yang saya hilang (kemudian saya terbakar semasa temu duga)
-
Algoritma. Untuk mengelakkan kesilapan saya, saya segera mengesyorkan buku pendek dalam bahasa Rusia, “Grocking Algorithm.” Apakah kerumitan algoritma, apa yang terdiri daripadanya, mengapa quicksort tidak mencukupi, pengenalan kepada teori graf - semuanya ada dan dalam bahasa yang paling mudah difahami.
-
Koleksi "di bawah tudung". Saya tidak ingat sama ada ini dalam JavaRush, tetapi adalah berguna untuk mengetahui cara HashMap.get() berfungsi atau mengapa HashSet tidak dijamin untuk mengekalkan susunan elemen. Sekali lagi - koleksi manakah yang selamat dan sebabnya.
-
SQL. Anda memerlukan sekurang-kurangnya sehingga JOIN - apakah itu, cara kerjanya, keupayaan untuk menulis SELECT pada dua meja di atas kertas dengan cepat. Saya cadangkan www.sql-ex.ru: ia akan membawa anda ke tahap yang diingini dalam satu atau dua hari.
-
Spring Core: apakah anotasi yang ada, apakah konteksnya, cara kacang dicipta, Skop Kacang yang mana selamat untuk benang, dan cara menyelesaikan suntikan bersama - semua soalan temu bual. Cara mengembalikan halaman, cara mengembalikan JSON, dsb. Saya sedang membaca "Spring 5 for Professionals" dalam bahasa Rusia, tetapi secara umum mereka mengesyorkan "Spring in Action".
PERINGKAT 3. Pencarian kerja
Sebenarnya, dalam beberapa bulan pertama selepas menyiapkan projek rumah, saya menghantar kira-kira 30 jawapan kepada pelbagai jawatan kosong Junior\Trainee (melalui HH, LinkedIn, agensi pengambilan), dengan keputusan hampir sifar. Saya hanya menumpukan pada kekosongan tanpa pengalaman, dengan jujur menunjukkan timbunan yang saya kenali dan menulis tentang keupayaan pembelajaran tinggi saya dalam surat lamaran. Hasilnya ialah dua panggilan (satu daripadanya serta-merta berakhir dalam bahasa Inggeris pra-perantaraan saya), dua lagi syarikat menghantar spesifikasi teknikal, hanya terdapat satu "pertemuan", dan kemudian saya berada di sana sendirian menyelesaikan masalah pada algoritma pada sehelai kertas, selepas itu HR hanya mengambil kertas dan "Kami akan menghubungi anda." Saya cuba mendapatkan beberapa latihan amali (tidak berbayar dan berbayar bersyarat): Saya melakukan spesifikasi teknikal, tetapi tidak melangkaui keselamatan sosial terakhir; tetapi sekarang saya boleh katakan bahawa pelatih pasti direkrut oleh T-Systems, CFT, Andersen dan EPAM (mereka mempunyai ulasan bercampur-campur, tentukan sendiri). Bagi saya, ia adalah cara yang baik untuk memasuki bidang jika anda mempunyai peluang untuk duduk tanpa pendapatan selama beberapa bulan dan tidak mati =) Secara umum, selepas pengalaman ini saya menjadi agak tertekan, dan meletakkan keseluruhan cerita dengan carian di jeda selama hampir enam bulan - saya terus bekerja pada profil sebelumnya, menulis beberapa aplikasi hanya untuk keseronokan, tetapi tidak menyiarkannya di Git. Sehingga saya bertemu dengan seorang kenalan, yang saya ceritakan secara santai tentang kegagalan dengan kekosongan: pada masa itu dia sudah bekerja sebagai pemaju pertengahan, tetapi dia bermula dengan cara yang sama - dengan belajar sendiri. Seorang kenalan memberi saya beberapa cadangan , yang dia gunakan sendiri dan yang sangat membantu saya dalam pencarian kerja saya pada masa hadapan. Sama ada anda mengikuti mereka atau tidak, terpulang kepada anda, kerana... mereka, dalam beberapa cara, tidak sepenuhnya jujur. Jadi, petikan lanjut:-
Walau apa pun, berikan diri anda pengalaman komersial selama 6+ bulan dalam resume anda: latihan amali, projek pengijazahan, kerja bebas, kerja jauh - apa sahaja. Ini akan sangat membantu pada peringkat saringan awal resume oleh HR;
-
keluarkan perkataan Junior dan gaji yang dijangkakan daripada resume anda; biarkan sahaja ia sebagai Pembangun Java, dan bincangkan wang secara individu dengan setiap syarikat;
-
cuba minta HR menamakan "garpu" gaji yang dicadangkan sebelum anda menamakan jangkaan anda. Jika syarikat menawarkan 80-120k, dan anda sedang mencari 40k atau lebih, sesetengah pemilih akan memperlakukan anda dengan penghinaan;
-
Mohon untuk semua kekosongan yang sesuai dengan timbunan anda, walaupun ia memerlukan 1-3 tahun pengalaman komersial.
-
Sertakan dalam resume anda keseluruhan timbunan bahasa, teknologi dan rangka kerja yang telah anda gunakan.
-
Daftar di LinkedIn - terdapat ramai orang HR dari syarikat yang berbeza di sana. Isi profil anda dengan teliti - sebenarnya, ini juga resume anda. Untuk membangunkan rangkaian kenalan anda, tambah LION yang berkaitan dengan profil anda; mereka menerima permintaan daripada semua pengguna.
-
Cuba sendiri dalam ujian Java percuma - ia sering diberikan di atas kertas sebelum temu duga Junior. Lebih baik buat persediaan awal.
-
Mereka sentiasa bertanya tentang koleksi: yang mana ada, bagaimana ia berbeza, bila masa terbaik untuk menggunakannya.
-
Sentiasa pada kelas abstrak dan antara muka - bolehkah mereka mempunyai kaedah, medan, yang mana, bolehkah mereka diwarisi, dsb.
-
Hampir selalu pada multithreading - perkara yang anda gunakan dalam kerja anda, kata kunci, kaedah, anda biasa dengan util.concurrent.
-
Selalunya apabila bekerja dengan ingatan - timbunan, timbunan, dan adakah rentetan ini akan sama, dan objek ini, mengapa.
-
Kadang-kadang mengenai algoritma - mana yang anda tahu, kerumitan apa, mengapa, bolehkah anda menulis algoritma sekarang.
-
Kadangkala berdasarkan corak - mana yang anda tahu, mana yang anda gunakan, tulis singleton atau kilang.
-
Kadang-kadang dalam SQL - jenis JOIN, apakah transaksi, bagaimana untuk menjalankannya dalam JDBC, tulis pertanyaan ringkas.
-
Halaman kenalan perniagaan profil Salesforce dengan mengedit dan menambah rekod baharu;
-
simulasi lif dalam bangunan berbilang tingkat menggunakan Mesin Spring State dengan kawalan konsol;
-
Aplikasi Android berdasarkan perpustakaan LibGDX dengan output teks aksara demi aksara apabila butang ditekan;
-
REST tiruan perkongsian kereta, dengan menambah pelanggan melalui permintaan HTTP dan mengembalikan JSON;
-
masalah menyusun graf tidak terarah melalui sel bebas;
-
cari segi tiga sama kaki menggunakan koordinat daripada fail;
-
pemfaktoran semula kod siap menggunakan Stream API;
-
Kalkulator UI dengan sokongan untuk ungkapan ternary;
-
perlumbaan benang dengan menulis keputusan ke fail.
-
Cuba bukan sahaja untuk menyelesaikan tugas, tetapi juga untuk memastikan bahawa kod mematuhi prinsip OOP.
-
Semak kod anda untuk kecekapan - Saya pernah ditolak kerana, antara lain, saya menggunakan PrintStream dan bukannya BufferedWriter.
-
Rancang masa pelaksanaan anda dengan margin 50% - lebih baik untuk memulakan dan menyelesaikan lebih awal daripada melakukan git push pada pukul lapan pagi tarikh akhir.
GO TO FULL VERSION