Beberapa tahun yang lalu, ketika saya mencari cara dari programmer 1C ke pengembang Java, saya berkeliaran di kegelapan, mencoba menemukan pintu yang saya tidak yakin. Saya mencoba menemukan kisah sukses, tetapi selain beberapa komentar saya tidak mencari apa-apa. Dunia Jawa tampak besar dan jumlah kerangka kerja tidak terbatas. Benar-benar tidak dapat dipahami: apa yang harus diajarkan, apa yang tidak boleh dipelajari, apa yang dibutuhkan dalam pekerjaan, dan apa yang tidak digunakan oleh siapa pun. Jika Anda ingin pergi ke Jawa, tersesat di nama teknologi dan kerangka kerja yang tak ada habisnya dan ingin mencari tahu mana yang perlu dipelajari dan mana yang harus diabaikan - artikel ini untuk Anda!

Beberapa asumsi awal
- dalam artikel ini kita tidak akan membahas pertanyaan "mengapa?", kami hanya akan - "bagaimana?". Jika Anda datang ke sini, Anda sendiri yang tahu mengapa.
- Saya tidak pernah menerima pendidikan yang entah bagaimana terkait dengan IT, jadi rekomendasi saya adalah rekomendasi dari seseorang dan kepada seseorang yang, pada saat awal belajar Java, tidak pernah menulis tentang apa pun selain 1Ca. Jika Anda memiliki ijazah dalam pengembangan perangkat lunak, beberapa rekomendasi mungkin berlebihan.
- Saya akan mencoba untuk menggambar yang mencerminkan semacam kekosongan rata-rata. Secara alami, jika Anda menginginkan arah yang sempit dan spesifik seperti data besar atau sebaliknya - Anda sebaiknya mempelajari lebih lanjut tentang arah ini.
Berita buruk
Pertama, jika Anda memutuskan
untuk mengkhianati 1C untuk beralih ke pengembangan Java - jangan berharap jalurnya mudah dan cepat. Kemungkinan besar, dengan uji tuntas, Anda akan menghabiskan tidak kurang dari setengah tahun untuk persiapan, ditambah tidak kurang dari setahun, untuk keluar dari bulan Juni.
Kedua, bersiap-siaplah bahwa jika Anda sekarang 1Snik teratas - penghasilan Anda kemungkinan akan pulih ketika Anda menjadi orang yang percaya diri. Sebagai aturan, ini tidak kurang dari 2-3 tahun latihan, tetapi pada akhirnya itu semua tergantung pada Anda.
Ketiga, jangan berharap bahwa pengalaman 1Set Anda menarik bagi seseorang di sini. Anda dapat memiliki 100.500 proyek yang berhasil dan seluruh dinding di sertifikat 1Snal - ini tidak akan menarik minat siapa pun. Anda akan menjadi Juni, mereka akan berbicara kepada Anda seperti Juni dan Anda akan memiliki tugas seperti Juni. Tapi di sini ada sendok madu: bahkan jika Anda bukan 1Snik teratas, dalam masalah SQL, kemungkinan besar, Anda menjangkau pengembang Java Senior.
Beberapa tips yang sangat usang yang sudah Anda dengar tiga lusin kali, tapi percayalah, mereka bekerja 100%:
- Menghabiskan 1 jam setiap hari jauh lebih baik daripada menghabiskan 7 jam seminggu sekali. Jika Anda memutuskan untuk pergi, pergilah. Tidak ada alasan. Setiap hari Baiklah, Anda bisa istirahat pada hari Minggu.
- Jika Bahasa Inggris dari catatan val - tingkatkan! Ini adalah keterampilan yang akan berguna: tidak hanya hampir semua yang Anda baca dapat berbahasa Inggris, tetapi Anda juga perlu menulis kode di dalamnya! Kemungkinan besar, hal pertama yang Anda butuhkan adalah kemampuan membaca dan memahami apa yang Anda baca. Dengan mendengarkan dan berbicara Anda bisa menunggu sedikit.
Persiapan. Dasar-Dasar Bahasa
Anda harus memilih bahasa. Di Internet, banyak artikel dengan karakteristik komparatif. Juga, Anda dapat mengarahkan nama-nama bahasa ke dalam pencarian hh - lihat seberapa Anda suka apa yang Anda lihat di sana. Perhatikan tidak hanya gaji dan bir yang panik pada hari Jumat, tetapi juga pada jumlah lowongan, dan yang paling penting adalah jumlah lowongan yang siap Anda ambil pada bulan Juni.
Saya memilih Java. Semua rekomendasi lebih lanjut akan diberikan dalam konteks ini jika Anda memilih bahasa yang berbeda - sebagian besar dari apa yang ditulis di sini mungkin kehilangan artinya, tetapi Anda dapat menggambar ide-ide umum. Anda mungkin harus melihat ke arah PHP, karena Bitrix dan transisi ke sana dapat berubah menjadi lebih mudah dalam hal hambatan administratif (ada 1C, di sini 1C, apa bedanya? ..) dan dalam hal tidak adanya aliran dan referensi metode dalam bahasa (meskipun mereka sangat tinggi).
Jika Anda memilih java juga - jangan repot-repot dengan Java EE, Anda hanya perlu Java SE. Apa itu Java ME dan Java FX umumnya lebih baik untuk tidak tahu)
Jadi, dari mana Anda memulai? Saya tidak menyarankan Anda untuk bergegas membeli Horstmann dua volume dan ribuan halaman Spring 5 untuk para profesional dan mencoba mempelajari semua ini. Bahkan jika Anda menceritakan semua ini dengan hati, pengetahuan yang tidak didukung oleh latihan akan hilang dengan sangat cepat. Mulailah dengan situs pelatihan online untuk programmer. Saya memecahkan JavaRush. Mungkin mencapai level 15. Butuh sekitar 1-2 bulan (saya bisa berbohong dengan angka-angkanya, sudah lama sekali)
Lalu turun ke HackerRank. Jangan khawatir dengan namanya - di sana Anda dapat memilih tingkat kesulitan dan paling sederhana Anda akan ditawari tugas tingkat untuk membalikkan string. Pastikan tugas tingkat menengah (sedang, poin 30) diselesaikan tanpa masalah. Meskipun sistem penilaian terkadang gagal dan ada masalah sebesar 30 poin, lebih mudah untuk menyelesaikan tugas berat sebanyak 60 poin, tetapi pada dasarnya Anda harus mengatasinya. Ini akan membawa Anda 1-2 bulan lagi.
Sekarang saatnya membaca Horstmann. Perlu diingat bahwa ini adalah buku yang bagus, tetapi mencakup Jawa secara keseluruhan (hanya bahasa, bukan kerangka kerja) dan bahkan bagian-bagiannya yang hampir tidak pernah digunakan. Rekomendasi saya: di volume pertama, lupakan bagian yang terkait dengan UI dan seluruh volume kedua. Namun, jika ketat, lewati multithreading dan paruh kedua generik di jilid pertama - bahkan yang menengah mungkin tidak mengetahui hal ini, itu tidak menakutkan untuk bulan Juni. Penting juga untuk tidak jatuh ke dalam perangkap versi: buku berjudul Java 2 adalah barang kuno. Anda memerlukan versi 1.8 atau 9. Atau fokus pada tanggal publikasi: 2015 dan yang lebih baru akan dilakukan.
Saya harap Anda tidak menyerah pada HackerRank saat membaca Horstmann, mungkin Anda bahkan akan memecahkan beberapa poin 80-100. Secara umum, lebih dari 60 poin tidak perlu diangkat, karena tidak banyak program awal yang diterapkan sebagai "seni untuk seni." Tetapi jika Anda merasakan kekuatan dalam diri Anda sendiri - kadang butuh waktu yang keras, itu tidak akan berlebihan. Dan juga, perlu diingat bahwa sebagian besar tugas kompleks adalah tugas algoritmik klasik yang dapat Anda lakukan di google: tujuan dari latihan hackerran bukanlah menghasilkan algoritma dari awal yang telah ditemukan sejak lama, tetapi untuk mempelajari tentang keberadaan algoritme dan mengimplementasikannya. dia.
Persiapan lanjutan. Kerangka kerja, alat dan praktik.
Setelah semua ini, Anda hampir siap untuk wawancara. Hanya sedikit yang tersisa:
- sekali lagi perhatikan koleksi dan kompleksitas pencarian di dalamnya. Semua orang tidak menyukai topik ini. Jangan mencoba mencari tahu semuanya: lebih baik untuk mengetahui koleksi dasar (ArrayList, LinkedList, HashSet, HashMap, mungkin TreeMap), daripada mengetahui tiga lusin, tetapi "di atas". Yaitu Anda harus memahami cara kerja koleksi di dalam. Ada saluran yang bagus di YouTube, semuanya dikunyah di sana untuk bulan Juni. Persis seperti yang Anda butuhkan. Anda masuk ke pencarian "pelajaran tentang koleksi java" - tautan pertama ke sana. Ada juga video berjudul "apa yang perlu Anda ketahui sebelum wawancara." Anda tidak harus tahu secara langsung segala sesuatu yang terdaftar di sana, Anda masih sebuah gubuk, menurut pendapat saya, jika Anda menguasai 2/3 dari itu - itu akan baik-baik saja.
- apa itu spring (Anda perlu Spring Core dan Spring Boot) - banyak yang telah dilakukan di sana, tetapi 95% praktik penggunaannya tidak lebih rumit daripada halovorld. Anda harus memahami konsep dasar, seperti apa IOC itu dan mengapa umumnya dan percaya diri memiliki 1-2 cara untuk menyatakan dan menyuntikkan kacang (bukan xml). Mungkin Anda juga harus mencoba membuat beberapa layanan REST di Web Spring: tidak ada yang rumit, tetapi akan ada nilai tambah yang pasti.
- cara menulis tes (lihat JUnit dan Mockito) - di 1, pada prinsipnya, tidak ada praktik seperti tes menulis. Di Jawa, kode tanpa tes bukan kode, karena kode dianggap tidak beroperasi kecuali ada bukti yang bertentangan.
Ketika saya mengatakan "lihat [frameworkName]", maksud saya: lakukan setidaknya beberapa proyek rumah menggunakan alat yang sesuai. Kemungkinan besar, ada baiknya memulai dengan mencoba setiap kerangka kerja secara terpisah di tingkat dunia halo, kemudian mencoba untuk mengumpulkannya dalam satu proyek yang membawa setidaknya beberapa "kegunaan". Sepertinya ide yang bagus (walaupun saya tidak pernah melakukannya) - sehingga proyek-proyek tersebut entah bagaimana terikat pada pekerjaan. Mungkin itu hanya untuk sepenuhnya menulis ulang tugas yang Anda lihat di 1 ke Jawa, mungkin semacam asisten bagi Anda sendiri untuk melakukan aktivitas 1Snaya. Misalnya, jika Anda melihat pertukaran REST dengan pemasok di 1 - laksanakan pihak pemasok di Jawa untuk menguji fungsi 1Jadi: cukup terima permintaan dan letakkan di suatu tempat.
Semua proyek rumah Anda harus dikompilasi oleh Maven dan versi oleh Git. Ini hanyalah alat, ada baiknya Anda menjejalkan tangan - dan Anda sudah berhenti memperhatikannya. Sebagai lingkungan pengembangan, saya menyarankan Anda untuk menggunakan Idea, menurut pengamatan saya, hampir semua orang menggunakannya sekarang. Versi gratisnya sudah cukup untuk Anda.
Jika Anda tidak terbatas dalam hal - Anda dapat menghadiri beberapa kursus tentang pengembangan Java. Saya percaya bahwa kursus dasar tidak layak untuk diambil, karena semua yang akan dijelaskan tidak layak untuk menghabiskan waktu dan uang untuk hal ini. Ikuti kursus tentang Spring Core atau JUnit: di satu sisi, Anda akan mendapatkan pengetahuan, berbicara dengan kolega masa depan, di sisi lain, Anda tidak akan dikunyah selama 3 hari tentang apa itu siklus.
Di suatu tempat di antara keduanya, Anda perlu membaca teori pemrograman. Anda pasti akan ditanya tentang SOLID dan pola. Pola (mereka juga pola desain) adalah hal yang sangat intuitif, meskipun Wikipedia menggambarkannya sehingga iblis mematahkan kakinya, lebih baik membaca
artikel yang tidak terlalu muskil . Menurut pendapat saya, set seperti itu sudah cukup: Interface, Builder, Prototype, Singleton, Dekorator, Proxy.
Ayo pergi ke agen jaminan sosial!
PengusahaAda beberapa tipe dasar majikan yang harus Anda waspadai.
Yang pertama adalah pembeli tubuh. Mereka adalah outstaffers. Perwakilan paling terkenal: Luxoft dan EPAM. Mereka merekrut orang, dan kemudian menjualnya kembali ke semua jenis Sberbanks. Pembeli tubuh menempatkan karyawannya tepat di kantor pelanggan dan mereka hampir tidak dapat dibedakan dari karyawan pelanggan. Seringkali, tingkat persyaratan di sana lebih rendah, dan gajinya lebih tinggi. Tetapi Anda tidak akan bekerja dalam keadaan apa pun: ini bukan proyek yang paling menarik yang pelanggan akhirnya tidak bisa dapatkan pengembang dari pasar, mereka akan tahu tentang kode tenaga kerja yang sangat jauh, dan Anda sendiri tidak akan menjadi karyawan penuh waktu di mana Anda akan berada kerja (semua jenis barang dan pesta perusahaan akan berlalu begitu saja). Tapi Anda tidak butuh ini?
Agen outsourcing adalah kantor yang disewa oleh konsumen akhir, tetapi subjek penjualannya bukan orang, seperti pembeli tubuh, tetapi pelaksanaan tugas. Seperti itu, sebagai aturan, cobalah untuk menjauhkan pengembang dari pelanggan dan terlibat dalam proyek-proyek baru. Ini adalah tempat kerja yang sangat layak, tetapi pergi ke sana dengan pengalaman seperti milik Anda tidak akan mudah, tetapi bukan tidak mungkin.
Perusahaan makanan adalah kantor seperti Yandex dan, maafkan saya, Kaspersky, yang menjual kode mereka sebagai produk akhir, sebagai sebuah kotak. Ada pendapat bahwa yang terbaik adalah bekerja di sini: gaji besar, ada banyak barang, tugas menarik, tim profesional. Ketika Anda mendengar tentang bahasa Inggris dan bir gratis pada hari Jumat - kemungkinan besar tentang mereka.
Berikutnya adalah bank dan asuransi. Semuanya bisa sangat berbeda di sini: sebagai suatu peraturan, bank memiliki warisan menakutkan yang besar yang tidak seorang pun ingin pergi ke dan proyek-proyek pemuda bergaya baru di mana lowongan ditutup. Anda mengerti, bagi Anda di kelompok pertama. Meskipun, kadang-kadang kesombongan diri mereka dapat melampaui, seperti "sistem kritis misi - bukan tempat bagi Jones." Jangan memperhatikan mereka, jauh dari itu semua.
Secara alami, daftar ini tidak sepenuhnya menggambarkan seluruh pasar tenaga kerja, ada semua jenis startup, ritel, dan banyak lagi lainnya.
Pertama, jangan berbohong tentang pengalaman. Percayalah, bahkan jika Anda "secara tidak sengaja" keliru sebagai perantara dalam sebuah wawancara teknologi - dalam pekerjaan Anda masih akan menjadi Juni. Oleh karena itu, dalam resume, Anda tidak boleh menemukan bahwa Anda telah bekerja sebagai pengembang Java selama 15 tahun, mengambil keuntungan dari kenyataan bahwa dalam judul posting sebelumnya Anda tidak disebutkan 1C. Tetapi beberapa langkah dapat diambil untuk mengatasi hambatan SDM. Jangan keluarkan masa lalu 1Snoe Anda. Pada beberapa pekerjaan terbaru, Anda cukup menulis "Programmer" atau "Pengembang," dan menggali huruf "1C" di suatu tempat dalam deskripsi. Anda tidak akan menghabiskan memimpin, tetapi SDM dapat membelinya.
Kedua, akan menjadi kesalahan untuk menjaga majikan masa depan Anda dalam kegelapan tentang bagaimana Anda mempraktikkan pelatihan mandiri. Tulis pelatihan setengah tahun sebagai tempat kerja yang terpisah (harus di bagian paling atas), dengan persimpangan dalam hal waktu dengan tempat kerja terakhir. Sebut saja "pengembang Java", tempat kerjanya adalah "belajar sendiri" atau "proyek rumah" dan mencantumkan teknologi yang Anda coba. Berikan tautan ke profil di peretas.
Ketiga, buat alasan kuat mengapa Anda ingin pergi ke Jawa. Saya tidak menyarankan mengatakan "Saya bosan dengan akuntan perawat" atau "Saya tidak ingin gaji saya runtuh bersama dengan nilai tukar rubel" dan terlebih lagi "Saya ingin keluar dari ini ...". Topik dengan pengembangan paling cocok: mereka mengatakan bahwa saya sudah melihat semuanya di sana - kita harus melanjutkan.
Keempat: Anda Juni dan orang-orang seperti Anda, setiap tahun dari institut mereka merilis lebih banyak daripada ada lowongan Juni. Pada saat yang sama, mereka yang berasal dari institut tanpa keluarga dan anak-anak dan siap untuk hidup di tempat kerja dan hidup di tempat kerja dan mereka tidak perlu membayar hipotek. Ok, pengalaman ada di pihak Anda, tetapi itu bukan pengalaman yang relevan dan itu tidak akan dianggap sebagai nilai yang besar. Dari sini Anda tidak dapat menggertak sn yang diharapkan. Jika Anda tidak dapat hidup dengan gaji bulan Juni, menghasilkan 1Snick untuk seperempat dari taruhan adalah pilihan yang baik untuk tahun pertama.
Berjalanlah melewati anjing-anjing, ingat pertanyaan-pertanyaannya, temukan jawabannya, lalu telusuri lagi anjing-anjing itu. Menurut pendapat saya, 1-2 wawancara teknis per minggu adalah tingkat yang dapat diterima, untuk mengelola untuk mencerna pengalaman yang diperoleh dan tidak terlalu menunda pencarian.
Pekerjaan Juni
Yang paling penting di sini adalah Tim Lead. Anda seharusnya bertemu dengannya di tech.sobes dan "dia seharusnya memilih Anda dan Anda harus memilihnya" (c). Sangat penting untuk merasakan chemistry ini. Ini adalah seseorang yang setiap kata dalam beberapa tahun mendatang, Anda harus mendengarkan, mengingat, dan memenuhi. Orang ini akan menyeret Anda ke ketinggian perkembangan Jawa dan memulai Anda ke nuansa terdalam sihir ini. Dan darinya, mungkin bahkan lebih dari dari Anda, itu tergantung seberapa keren Anda akan menjadi dan seberapa cepat.
Jadi, nama panggilan 1C muda saya, jika dulu Anda tahu "mengapa?", Sekarang Anda masih tahu "bagaimana?". Perjalanan seribu mil dimulai dengan satu langkah. Silakan!