Nah, saya mendapat masa untuk berkongsi cerita kecil saya.

Prolog

Mari kita mulakan dengan fakta bahawa saya berumur 30 tahun, saya mempunyai pendidikan tinggi dalam bidang kimia (saya tidak akan menerangkan secara terperinci), dan saya telah bekerja di kilang selama hampir 8 tahun. Kerja itu sebenarnya agak menarik, tetapi melihat rakan sekerja saya, saya menyedari bahawa saya tidak mahu bekerja di sini selama dua puluh tahun sehingga bersara. Ini bukan cara saya mahu menghabiskan hidup saya. Saya juga ingin menambah bahawa saya mempunyai keluarga, termasuk dua anak (anak sulung saya 6 tahun, anak bongsu berumur 1 tahun), dan boleh diramalkan, gadai janji. Akhirnya, saya memutuskan untuk cuba berpindah ke tempat lain, ke kilang lain dengan gaji yang lebih tinggi dan pertumbuhan kerjaya sebenar. Saya telah meletakkan akar di kilang pertama, jadi sukar untuk meninggalkannya, tetapi saya telah membuat keputusan. Perjalanan saya ke St. Petersburg berlangsung selama sebulan. Saya secara rasmi bekerja di sana selama seminggu apabila saya menyedari bahawa keadaan dengan kilang-kilang di negara kita (Sviatoslav berasal dari Rusia — nota editor) adalah suram untuk sebahagian besar. Saya pulang ke kampung halaman. Saya tidak mahu kembali, memandangkan saya nampaknya ini adalah satu langkah ke belakang. Pada ketika ini, saya memutuskan bahawa jika saya mengubah hidup saya — dan mengubahnya secara radikal! Selama kira-kira seminggu saya memikirkan bahasa pengaturcaraan mana yang hendak dipilih, dan, nah, pilihannya jatuh ke Java. Selepas itu, saya mula mencari kursus. Realitinya ialah terdapat banyak kursus yang bagus, malah sesetengah daripadanya berharga berpatutan, tetapi saya menghadapi masalah: Saya sangat bermotivasi dan mempunyai banyak masa untuk belajar, tetapi kusyen kewangan saya akan bertahan paling lama 3-4 bulan. Semua kursus yang saya suka adalah selama setengah tahun atau lebih dengan dua pelajaran setiap minggu (paling kerap). Tetapi kemudian seorang rakan mengesyorkan CodeGym kepada saya selepas dia mendengar bahawa ia adalah sumber yang sangat baik. Saya melihat bahawa kursus ini mempunyai semua yang saya perlukan:
  • langganan dengan bahan pembelajaran dan tugasan;
  • tiada had masa — saya boleh belajar sama seperti jadual saya (yang terbuka luas) dan keinginan saya (seperti yang saya katakan di atas, saya sangat bermotivasi) membenarkan.

Bahagian 1: Dalam mencari ilmu

Pada 26 November 2019, saya telah mendaftar dan memulakan pengajian. Saya akan mengatakan dengan segera bahawa terdapat beberapa hari apabila saya duduk selama 14 jam berturut-turut, belajar, membaca semua pautan yang berkaitan, dan cuba mencari penyelesaian yang lebih cantik (tanpa mengintip Bantuan). Hanya apabila saya fikir bahawa penyelesaian saya adalah yang terbaik, saya melihat Bantuan. Saya sering kagum dengan penyelesaian yang lebih cantik dan lebih ringkas. Pada penghujung Januari, apabila mencapai Tahap 17, saya memutuskan untuk mula pergi ke temu duga, menjuntai kemahiran saya dan melihat apa yang pasaran mahukan. Seperti yang berlaku, tiada siapa yang benar-benar memberi respons kepada saya, tetapi ada satu pejabat yang mengambil saya sebagai pelatih percubaan yang tidak dibayar: bulan pertama tidak dibayar, yang kedua dan ketiga termasuk wang saku yang kecil. Seterusnya akan ada satu lagi temu duga berdasarkan prestasi saya selepas tiga bulan, dan jika latihan amali itu berjaya — maka pekerjaan.

Bahagian 2: Bergegas ke pertempuran

Latihan magang saya melibatkan penulisan pemalam Chrome dengan bahagian belakang Java untuk mengautomasikan tugas rutin salah satu jabatan dalaman syarikat. Saya mempunyai mentor yang hebat dengan banyak pengetahuan, yang saya fikir juga penting. Pada asasnya, untuk mengelakkan tersesat dalam rumpai, saya akan memberitahu anda sekarang tentang timbunan teknologi yang saya gunakan, dan kemudian pada akhir artikel saya akan menyediakan beberapa pautan yang ternyata sangat berguna untuk saya.

Timbunan teknologi:

Java 11 (projek itu ditulis sepenuhnya dari awal), Spring (Boot, Security, OAuth2); Saya menggunakan MongoDB untuk pangkalan data; untuk ujian automatik, saya menggunakan AssertJ, Mockito, dan Spring-boot-starter-test; dan saya menggunakan aliran GitHub yang agak popular (lihat artikel ini ). BTW, jika anda bergelut dengan bahasa Inggeris, maka inilah masanya untuk menasihati anda untuk mempelajarinya. Tahap kefasihan saya ialah A2, tetapi saya sentiasa cuba membaca artikel dalam bahasa Inggeris (tanpa menggunakan penterjemah, sudah tentu). Ini adalah kesukaran terbesar saya semasa saya memulakan projek latihan, kerana saya terpaksa bekerja dengan CRM pihak ketiga, dan semua dokumentasinya adalah dalam bahasa Inggeris. Selain itu, apabila bekerja dengan Spring, sebaiknya membaca dokumentasi asal. Ia sangat baik dan terperinci. Apatah lagi, hampir semua dokumentasi adalah bahasa Inggeris (sedikit daripada Captain Obvious). Selain itu, mentor saya memberitahu saya untuk menulis semua komen dalam kod dan dokumentasi API dalam bahasa Inggeris, jadi saya ulangi sekali lagi: belajar bahasa Inggeris, jika anda bukan penutur asli! Walaupun anda tidak akan bekerja dengan pelanggan asing atau melancong ke luar negara, kemahiran ini hanya akan memudahkan kajian dan pembangunan anda.

Bahagian 3: Hasil

Bahagian ini akan menjadi lebih pendek :) Pada akhir latihan, saya berjaya melepasi temu duga penilaian prestasi dan mendapat pekerjaan, di mana saya terus bekerja pada projek ini. Peringkat pertama akan dilaksanakan sebagai sebahagian daripada latihan saya, tetapi terdapat tiga peringkat semuanya. Disebabkan bermulanya wabak itu, banyak projek komersial hilang, dan saya melaksanakan semua peringkat dan setiap idea/harapan lain yang mungkin ada untuk projek ini. Terdapat tugas lain, tetapi, seperti yang mereka katakan, itu cerita lain.

Bahagian 4: Terdapat pengakhiran yang bahagia, walaupun semuanya masih jauh dari selesai;)

Pada pertengahan Julai, saya mendapat panggilan dan ditanya sama ada saya sedang mencari kerja. Saya telah menghantar resume saya, walaupun ia tidak dikemas kini untuk masa yang lama. Saya memutuskan untuk menguji diri saya sendiri. Saya melalui 3 peringkat: tugasan ujian, temuduga teknikal dan temu bual dengan bos. Mereka menghantar saya tawaran dan... Ini adalah tawaran yang saya tidak boleh menolak. Saya faham, sudah tentu, dalam beberapa pekerjaan pertama anda, anda akan cuba masuk ke mana sahaja mereka akan membawa anda, tetapi masih. Pekerjaan pertama saya ialah jawatan luar, tetapi pekerjaan saya sekarang ialah dalam industri makanan. Mereka juga mengupah saya sebagai dev junior, tetapi saya tidak kecewa sama sekali, kerana ada ruang untuk berkembang dari segi ilmu dan wang.

Epilog

Jadi kawan-kawan jangan patah semangat. Perkara utama adalah membuat keputusan dan tidak menyimpang dari jalan anda. Dalam kes saya, saya mempunyai tanggungjawab yang besar untuk menjaga keluarga saya dan keinginan untuk mengubah sesuatu dalam hidup saya, untuk mula melakukan apa yang saya sangat suka. Pembangunan perisian amat hebat, kerana anda boleh menaiki tangga kerjaya, tidak kira sama ada terdapat kekosongan yang lebih tinggi di syarikat anda, tidak kira sama ada seseorang telah bersara selepas bekerja selama dua puluh tahun, dan tidak kira sama ada anda mempunyai sambungan peribadi untuk mendapatkan pekerjaan yang lebih tinggi. Dalam bidang kita, semuanya di tangan kita!

Berikut adalah beberapa artikel yang ingin saya kongsikan:

  • Memahami seni bina . Saya secara peribadi membaca artikel ini 4 kali semasa kami sedang mengusahakan seni bina aplikasi masa hadapan. Saya menggunakan perkataan "kami", kerana mentor saya menyemak segala-galanya dan menghantarnya semula untuk pembetulan (iaitu dia membuat semakan kod). Kali pertama saya tidak berapa faham. Kemudian saya membacanya 3 bulan kemudian, dan mendapati bahawa saya kemudian faham mengapa. Kemudian, saya membacanya 2 kali lagi untuk mengukuhkan dan mengasimilasikan sepenuhnya semua maklumat.
  • Pembelajaran Git Interaktif .
  • Saya mengesyorkan agar semua orang belajar cara bekerja dengan strim. Mereka benar-benar hebat: anda selalunya boleh menggantikan jumlah kod yang besar dengan aliran kecil.
  • Dokumentasi musim bunga.
  • Oleh kerana saya bekerja dengan pangkalan data bukan perhubungan, dan kebanyakan syarikat (terutamanya yang besar) bekerja dengan SQL, pada masa lapang saya, saya cuba menyelesaikan sekurang-kurangnya beberapa masalah yang melibatkan membina pertanyaan SQL. Terdapat banyak laman web yang berbeza untuk ini.
  • Saya juga akan mengesyorkan membaca tentang ujian menulis (Assertj, Mockito), tetapi saya tidak ingat apa-apa artikel yang bagus, hanya dokumentasi.
  • Dan apabila anda sedang membangunkan aplikasi (tetapi kini kami berada di luar tahap pemula), cuba gunakan corak reka bentuk . Sekurang-kurangnya lihat dengan cepat pada corak yang terkenal. Itu akan berguna apabila anda bermula.
Sekali lagi, saya mengucapkan selamat maju jaya kepada anda semua dalam mengejar impian anda!