JavaRush /Java Blog /Random-ID /Caranya, atau cara mendapatkan pekerjaan sebagai develope...
Юрий
Level 30
Москва

Caranya, atau cara mendapatkan pekerjaan sebagai developer java menengah tanpa pengalaman di Java

Dipublikasikan di grup Random-ID
Salam untuk semua pelajar dan profesional Java. Mungkin cerita saya akan menjadi contoh bagi sebagian orang tentang bagaimana melakukannya, dan bagi yang lain - bagaimana tidak melakukannya. Tanggal 19 Oktober 2021, dan hari ini saya menyelesaikan masa percobaan (3 bulan) sebagai pengembang menengah Java di sebuah perusahaan besar. Saya tidak punya pengalaman sebelumnya dalam pengembangan Java. Hingga 4 Juni 2020, saya tidak tahu apa-apa tentang Java. Ketika saya dipekerjakan sebagai Javaist, saya berjanji jika saya lulus masa percobaan, saya akan menulis kisah sukses. Artikel ini akan dibagi menjadi dua bagian logis: Latar belakang karir ( bab 1-5, tidak berhubungan dengan Java, tapi di mana Anda bisa mendapatkan pengetahuan tentang karir Anda). Menjadi Javaist (bab 6-9 - belajar Java, wawancara, mendapatkan pekerjaan, pengalaman nyata pertama). <h3>Bab 1. Ekonom</h3>Untuk memahami tingkat pengetahuan apa yang saya miliki di JavaRush, saya perlu memberikan catatan biografi tentang diri saya. 2013, November, jam 8 pagi. Saya sedang duduk di kedai kopi di Taganka dan mengulangi instruksi SQL. Satu jam lagi saya akan melakukan wawancara untuk posisi ekonom terkemuka di departemen keuangan bank. Ini adalah satu-satunya wawancara di mana saya diundang, dan saya harus memberikannya 100%. Demi dia, saya terbang dari St. Petersburg dan tinggal bersama kerabat di dapur, agar tidak menghabiskan tabungan saya yang sudah sedikit. 30 menit berlalu, pancake dengan ham dan keju telah dimakan dan kita harus bergerak menuju impian kita yang berharga. Tapi semuanya bergetar. Bagaimana jika saya gagal dalam wawancara? Oke, ternyata tidak. Saya pergi ke bank, mendapatkan izin, dan menunggu orang yang saya wawancarai di ruang pertemuan. Waktu berlalu sangat lama. Seorang pria berusia sekitar 35 tahun dan seorang wanita dengan usia yang sama masuk. Mereka memperkenalkan diri dan meminta untuk menceritakan tentang diri mereka: “Yuri, senang sekali.” Saya berumur 21 tahun, saya belajar paruh waktu di sebuah universitas di St. Petersburg, saya bekerja selama 3 bulan sebagai teller di sebuah bank. Saya menyadari bahwa ini bukan tujuan saya belajar, saya mulai melihat pasar kerja dan melihat bahwa para ekonom di Moskow memiliki SQL sebagai persyaratan. Jadi saya mempelajarinya, mengikuti kursus (Administrasi MS SQL - itulah yang saya miliki, itulah tujuan saya), dan Anda menelepon saya. Mereka berbicara tentang perusahaan, apa yang mereka lakukan (sebagian besar kata-katanya tidak dapat dipahami), dan kemudian meminta Anda untuk mengikuti tes. Tes ini memiliki 3 pertanyaan tentang SQL: 1. Diberikan sebuah tabel, keluarkan semua record dengan id = 10. 2. Diberikan dua tabel, hubungkan dan tampilkan kolom dari masing-masing tabel. 3. Kelompokkan departemen-departemen dan berikan jumlah karyawan untuk setiap departemen. Dengan sangat malu saya menulis permintaan ini. Ini diikuti dengan diskusi tentang harapan saya dari pekerjaan itu. Dan mereka mengucapkan kalimat ajaib kepada saya: “Terima kasih atas wawancaranya, kami akan menghubungi Anda kembali.” Seminggu berlalu, dan mereka menawarkan saya untuk ikut bekerja bersama mereka. Euforia, keterkejutan, kegembiraan! Dan untuk uang apa: 70 ribu rubel di tangan! Ya, saya akan menjadi kaya! Saya datang ke Moskow, menetap, menyewa kamar di tengah. Hari-hari pertama penuh euforia. Setelah 10 hari, kesadaran dimulai: kemana saya datang? Saya tidak mengerti apa pun! Saya harus menyiapkan laporan manajemen untuk seluruh bank setiap bulan. Tentu saja, bagi saya itu sama dengan Anda, pembaca yang budiman. Saya menganggap istilah kredit antar bank, swap, alokasi pengeluaran, biaya, dll. sebagai mantra dalam bahasa Latin. Sepanjang jalan, saya harus menguasai sisi teknis dari masalah ini: MS Access (semua pelaporan dilakukan di sana melalui VBA), MS SQL (sebagai penyimpanan baru, bukan Access), Oracle (yang awalnya saya sebut Oracle, menyebabkan histeris di kalangan programmer). Dan tiba-tiba saya mulai memahami bahwa sisi teknis jauh lebih menarik bagi saya. Ada upaya untuk membuat kueri yang kompleks (akibatnya, database hang dari skrip saya, dan administrator yang marah berusaha mencari tahu siapa yang melakukannya). Tapi pekerjaan utamanya adalah keuangan, yang mulai membuatku kesal. Setelah satu setengah bulan, saya menulis surat pengunduran diri, karena saya tidak dapat memberikan hasil apa pun (dan sejujurnya mereka tidak mengharapkan apa pun dari saya). Kepala departemen keuangan merobeknya dan berkata: “jangan repot-repot dengan omong kosong.” Sebulan kemudian, saya menulis pernyataan lagi, dan kepala departemen, yang terkejut dengan kelancangan tersebut (yang kemudian menjadi ketua dewan bank), menandatangani dengan sangat bingung: pria itu berusia 21 tahun, tanpa gelar yang lebih tinggi pendidikan, mereka diberi gaji dan kepercayaan, tapi dia berperilaku seperti ini. Alasan pemecatan adalah dua faktor lagi: bos, yang kesombongannya membuat saya tidak dapat bereaksi dengan tenang, dan kursi yang tidak nyaman, yang membuat punggung saya mulai sakit. Ini sangat lucu, tapi inilah motifnya. Ketika saya berhenti, saya berpikir bahwa sekarang saya akan merasa lebih nyaman. Tapi itu tidak ada di sana. <h3>Bab 2. 70 wawancara</h3>Meninggalkan bank, saya menarik napas dalam-dalam. “Saya akan mengaturnya seperti ini, semua orang akan tercengang.” Wawancara dijadwalkan, gaji mereka lebih tinggi, dan tampaknya tidak perlu berurusan dengan pelaporan. Ada 4 wawancara dan tidak ada yang mempekerjakan saya. 5, 6 wawancara - hal yang sama. Saya tinggal bersama seorang gadis di sebuah kamar kontrakan, dan dia mendapatkan pekerjaan dan dapat menutupi kekurangan penghasilan saya. Tapi saya masih tidak tahu sampai kapan saya tidak punya penghasilan. Saya pergi ke wawancara (lowongan ala analis), dan mereka terutama bertanya tentang SQL dan VBA. Bagi yang belum tahu, VBA adalah bahasa pemrograman di Excel, Access dan produk MS Office lainnya. 10 wawancara diadakan - tidak ada. 20, 30 - tidak ada. Setiap orang merasa malu dengan kurangnya pengalaman dan pendidikan tinggi (yang bagi saya tampak seperti hal kecil). 40 wawancara, dan keputusasaan mulai merayap masuk. Selama periode wawancara 55-60 saya mulai mempelajari 1C. Gadis yang sudah menjadi seorang istri itu meminta untuk berangkat ke Sankt Peterburg, karena setidaknya dia punya rumah sendiri di sana. Dan pada wawancara ke-70, saya diundang untuk menjadi administrator database 1C (dengan prospek menjadi pengembang 1C) di sebuah perusahaan kecil di kawasan industri St. Petersburg seharga 50.000 rubel. Nah, itulah pertumbuhan karier! <h3>Bab 3. Kembalinya Sang Legenda</h3>Melihat ke luar jendela minibus (transportasi perusahaan) di zona industri abu-abu St. Petersburg, dan menempuh perjalanan satu jam empat puluh satu arah, saya menyadari bahwa saya tidak bisa hidup seperti itu. Ketertarikan pada 1C menghilang pada sentuhan pertama sistem yang ditulis sendiri. Diperlukan sebuah rencana. Dan dia menjadi dewasa: di malam hari dia belajar SQL, dan pada saat yang sama memantau lokasi kerja yang terkenal. Pemicu terakhir pemecatan adalah situasi: direktur umum tidak mengizinkan saya pergi berlibur yang direncanakan, meskipun tiket sudah dibeli. Setelah liburan saya, saya menulis lamaran dan kembali mengirimkan resume saya untuk lowongan di Moskow. Sekali lagi saya ditawari wawancara di sebuah bank besar di waktu Moskow. Sekali lagi saya datang ke dapur kerabat saya dan pergi untuk wawancara. Ketika saya menulis alamatnya, saya tidak dapat mempercayai mata saya - ini adalah gedung tempat saya bermimpi untuk bekerja (pada saat saya tinggal terakhir di Moskow, gedung itu baru saja dibangun). Posisi itu disebut kepala spesialis pendukung sistem informasi. saya pergi ke kantor Saya disambut oleh seorang pria berusia sekitar 30 tahun dengan jaket dan jeans modis. Kami naik ke lantai 15, dan ketika saya melihat panorama kota, saya takjub: semua gedung bertingkat Stalinis terlihat. Seluruh gaya bangunannya sangat modern: di kantor bos terdapat lemari es anggur, akuarium modis, lukisan wanita telanjang dalam gaya hitam putih. Hal ini menimbulkan efek "wow". Percakapan dengan bos tidak terjadi seperti biasanya: selama sekitar 40 menit dia berbicara tentang apa yang terjadi di bank. Saya tidak mengerti apa pun, tetapi menganggukkan kepala. Saat aku bertanya: kapan kamu akan mulai bertanya padaku? Dia tidak memperhatikan. Sekali lagi, untuk pertanyaan saya “kapan wawancara teknisnya?”, jawabannya adalah “ya, kami akan tetap mempekerjakan Anda, jika Anda tidak bisa mengatasinya, kami akan memecat Anda.” Dikatakan sambil tersenyum, dan saya menyadari bahwa semuanya, mimpi itu menjadi kenyataan lagi! <h3>Bab 4. Menemukan Diri Anda di IT </h3>Ketika saya tiba di tempat baru, saya mengerti mengapa mereka langsung mempekerjakan saya. Saya akan menggambarkan potret khas seorang pegawai departemen: usia rata-rata 55 tahun, warga Moskow, pendidikan Universitas Negeri Moskow, bekerja di lembaga penelitian pertahanan di masa Soviet, dan transisi ke sektor perbankan pada tahun 90an, telah bekerja di sini selama 20 tahun tahun, separuhnya laki-laki, separuhnya lagi perempuan. Mereka benar-benar tidak selaras dengan interior di sekitarnya. Kami terlibat dalam memelihara program pelaporan untuk akuntansi. Tentu saja, ini semua ada dalam skrip VBA dan SQL kuno yang ditulis oleh pengembang di akhir tahun 90an dan awal tahun 2000an. Saat itu tahun 2015, dan otomatisasi dilakukan melalui MS Access. Artinya, terlihat sangat buruk. Namun ada nuansanya - mereka memberikan apa yang diinginkan pelanggan (akuntansi). Dan tepat waktu dan dalam bentuk yang dibutuhkan. Hanya mereka yang tahu cara kerjanya, dan bahkan Onotole tidak dapat membayangkan rumitnya perkembangan mereka. Dan manajer TI mana pun, bahkan dengan keinginan terbesar sekalipun, tidak dapat memecat mereka - kepala akuntan pergi ke dewan bank dan membela setiap karyawan yang melayani kepentingan departemen akuntansi. Manajer ingin saya memainkan peran sebagai kuda Troya: Saya mempelajari semua perkembangan mereka, dan kemudian memigrasikan data ke sistem baru. Kemudian karyawan lama bisa dipecat, dan saya bisa dipindahkan ke sistem baru. Pertama, saya mempelajari prosesnya dan melihat kode VBA. Lambat laun saya belajar membaca kode VBA. Setahun kemudian saya sudah tahu cara menulis kode itu sendiri. Tugas umum: diberikan database, mengekstrak data darinya, dan memasukkannya ke dalam Excel dalam format tertentu. Sekarang, seperti yang dikatakan Zadornov, tarik napas dalam-dalam: semua pelaporan departemen (yaitu 50 laporan harian, 20 laporan bulanan!) dijalankan secara manual! Karl, tahukah Anda bahwa orang mengubah tanggal menjadi +1 setiap hari dengan tangan mereka di 50 laporan! Mereka duduk, menunggu hasil satu laporan selama 1-10 menit, dan meluncurkan laporan lainnya! Apalagi laporan harian harus diluncurkan pada waktu tertentu, dan insya Allah Anda terlambat! Mereka tidak hanya membuat laporan, mereka juga menjalankan prosedur di database secara manual tanpa menggunakan variabel! Artinya, alih-alih menggunakan variabel @startDate = '01-01-2015', mereka akan mengubah tanggal yang sama secara manual di 20 tempat! Setelah melihat semua ini, saya mulai belajar Python, dan bersama dengan VBA, SQL, dan Penjadwal tugas, saya mengotomatiskan semua ini dalam dua tahun. Tidak hanya mengotomatiskan, tetapi juga mempercepat banyak laporan: jika Anda meninggalkan MS Access + VBA demi MS SQL + TSQL, Anda dapat mencapai peningkatan produktivitas yang berlipat ganda. Catatan saya adalah mempercepat pembuatan laporan100sekali! Namun rekan-rekan saya sangat tidak senang dengan otomatisasi seperti itu, sehingga saya dinyatakan sebagai musuh rakyat (mereka ingin duduk diam sampai pensiun). Waktu berlalu dan migrasi data berhasil. Manajer sangat menghargai saya: jika di awal karir saya saya datang bekerja pada jam 8 pagi, kemudian setelah beberapa saat saya bisa datang kapan saja sampai jam 12:00, kenaikan gaji dan posisi yang konstan, pembayaran untuk pekerjaan di akhir pekan lebih banyak dari dua kali lipat jumlahnya, taksi ke rumah jika Anda terlambat bekerja, komunikasi seluler, singkatnya - elit! <h3>Bab 5. Sangkar Emas</h3>Tiba-tiba, setelah 3,5 tahun, manajemen TI baru datang dan mengatakan bahwa sistem tempat saya memigrasikan data tidak lagi diperlukan. Namun sistem lama akan tetap ada. Manajer saya sedang menaiki tangga karier dan mengundang saya untuk pindah ke departemen yang lebih progresif. Pada pertemuan dengan kepala departemen progresif, saya memahami bahwa tumpukan teknologi departemen ini tidak saya ketahui: Oracle, .net, C#, Linux, dll. + Antipati terhadap calon bos. Saya memberi tahu manajer saya bahwa saya tidak tertarik dengan departemen progresif, dan dia dengan mudahnya melupakan saya. Lalu pertanyaannya menjadi: apa yang harus dilakukan selanjutnya? Penghasilannya sudah lumayan, Junior dev tidak mau mempekerjakan saya dengan gaji sebesar itu. Setelah memikirkan keterampilan saya, saya menyadari bahwa saya perlu mempelajari pembelajaran mesin. Semuanya menarik sampai pertemuan pertama dengan statistik matematika, yang hanya menimbulkan rasa jijik di institut. Itu saja, pingsan selama enam bulan! Waktu berlalu, dan suatu hari, sambil berjalan, saya memikirkan tentang sebuah situs web yang akan menampilkan restoran-restoran bagus di peta Moskow. Mulai belajar HTML, CSS, JS. Saya menghabiskan waktu 3 bulan untuk belajar, saya tidak memiliki pengetahuan untuk membuat website yang lengkap, tetapi saya bisa mempraktikkannya di tempat kerja. Sebuah ide lahir: untuk membuat portal bagi akuntan sehingga mereka dapat mengunduh sendiri laporan apa pun menggunakan sebuah tombol. Butuh waktu 2 bulan untuk membuat portal, dan aplikasi web SPA (Aplikasi Halaman Tunggal) lahir di React js dengan backend Node.js. Menjalankan kembali skrip SQL (saya tidak tahu tentang kerangka kerja seperti Hibernate), meluncurkan Python dan menyimpan informasi tambahan di MongoDb (misalnya, tentang pengguna situs). Secara eksternal, situs ini terlihat sangat bagus (bootstrap 4, animasi modis). Saya masih bangga dengan proyek ini. Namun ketika saya menunjukkan kode saya kepada pengembang web bank, mereka terkejut. BUKAN SATU KELAS ANDA SENDIRI! Hanya fitur, hanya hardcore! Mereka memuji saya, namun mengatakan bahwa saya masih perlu banyak belajar untuk menjadi full-stack developer tingkat menengah. Saya mencoba mendapatkan pekerjaan sebagai analis, tetapi tidak ada penawaran khusus. Saya pikir: Saya tidak ada di sana, saya akan memposting resume saya sebagai full-stack developer. Panggilan datang, tetapi selama wawancara saya terbang seperti kayu lapis di atas Paris: misalnya, saya tidak tahu apa itu HashMap, HashSet dan mengapa itu diperlukan. Tidak ada sedikit pun gambaran tentang OOP, pola pemrograman, algoritma, pengujian, Git. Saya teringat perasaan malu yang sudah lama terlupakan karena ketidaktahuan akan hal-hal mendasar. Tiba-tiba sebuah tawaran datang untuk pekerjaan sebagai kepala analisis pelanggan di sebuah perusahaan keuangan. Seminggu sebelum negara itu ditutup karena pandemi. Saya mendapat pekerjaan di sebuah perusahaan keuangan, tetapi ada perasaan ganda: di satu sisi, gaji yang tinggi itu hangat, di sisi lain, pengembangan di sisi teknis akan minim. Seminggu telah berlalu setelah perangkat dipasang dan pekerjaan jarak jauh diperkenalkan. Karena hari non-kerja tidak berlaku di sektor keuangan, kami bekerja seperti biasa. Bos barunya ternyata adalah orang yang sangat gila: dia menawarkan untuk mengikis Facebook, membuat jaringan sarafnya sendiri untuk mempelajari klien (tanpa staf ilmuwan data). Karyawan baru ditawari untuk belajar Python dalam seminggu, dll. Hari libur yang tidak dibayar menjadi hal yang biasa. Berhenti adalah hal yang bodoh: di mana Anda akan mendapatkan pekerjaan selama pandemi? Namun kesabaran habis setelah 2 bulan, ketika diumumkan bahwa tidak akan ada bonus triwulanan. Nuansanya ketika kita menyepakati gaji, pada saat perekrutan, HR mengatakan bahwa gaji itu dibagi menjadi gaji (60%) dan bonus triwulanan (40%), yang selalu dibayarkan. Jelas terlihat bahwa pilihan yang salah telah dibuat dan kami harus mulai mencari pekerjaan baru. <h3>Bab 6. Mulai menguasai Java</h3>Suatu hari yang cerah di bulan Mei saya menerima undangan wawancara untuk lowongan “Pengembang”. Sebuah perusahaan di industri asuransi membutuhkan seseorang yang akan mengembangkan produk asuransi. Pengalaman pemrograman diperlukan, tetapi karena ini adalah pengembangan perusahaan yang “unik”, tidak diperlukan bahasa khusus. Git dan sebagainya juga diperlukan. Saya menjadwalkan wawancara dalam dua hari, dan saya mempelajari dasar-dasar Git di waktu luang saya. Selama wawancara, saya ditanya tentang Python, JS, Git, SQL. Saya menjawab semuanya kecuali konsep “method overflowing”, dan saya diundang untuk bekerja dalam 2 minggu. Ternyata perusahaan tersebut sudah lama membeli sistem tersebut. ditulis dalam Java (depan dan belakang), yang dengannya Anda dapat membuat proses bisnis tanpa mengetahui bahasa pemrograman (lebih tepatnya, menggunakan bahasa pemrograman Jelly bawaan). Kedengarannya bagus, tapi nyatanya semuanya terdistorsi. Penyimpangan liris: teknologi apa pun memiliki zaman dan skalanya sendiri. Melakukan semua pelaporan pada tahun 2000 hanya di Excel itu keren. Melakukan hal yang sama di tahun 2021 sangatlah tidak baik. Situs web perusahaan dalam HTML murni memang keren di tahun 1999, tetapi tidak di tahun 2021. Jadi, teknologi yang digunakan perusahaan pada saat pendiriannya (2005) sangat keren - Java bertanggung jawab atas bagian server dan klien (yang disebut halaman Java servlet). Terlebih lagi, jika Anda membuat proses bisnis baru (yang memiliki UI sendiri), maka proses tersebut disimpan di dalam database, dan bukan di dalam kode di file. Untuk memahami betapa merepotkannya hal ini, bayangkan Anda menulis kode Java di ide Intellij, menyimpannya ke Database, lalu. ketika Anda ingin menjalankan kode Anda, kernel program masuk ke database dan membaca kode Anda dari sana. Oleh karena itu, Anda tidak dapat sepenuhnya men-debug aplikasi Anda. Petunjuk #1: Saat Anda ingin mengirimkan kode ke testbench, Anda perlu membuatnya sebaliknya, pengembangan di sisi teknis masih minim. Seminggu telah berlalu setelah perangkat dipasang dan pekerjaan jarak jauh diperkenalkan. Karena hari non-kerja tidak berlaku di sektor keuangan, kami bekerja seperti biasa. Bos barunya ternyata adalah orang yang sangat gila: dia menawarkan untuk mengikis Facebook, membuat jaringan sarafnya sendiri untuk mempelajari klien (tanpa staf ilmuwan data). Karyawan baru ditawari untuk belajar Python dalam seminggu, dll. Hari libur yang tidak dibayar menjadi hal yang biasa. Berhenti adalah hal yang bodoh: di mana Anda akan mendapatkan pekerjaan selama pandemi? Namun kesabaran habis setelah 2 bulan, ketika diumumkan bahwa tidak akan ada bonus triwulanan. Nuansanya ketika kita menyepakati gaji, pada saat perekrutan, HR mengatakan bahwa gaji itu dibagi menjadi gaji (60%) dan bonus triwulanan (40%), yang selalu dibayarkan. Jelas terlihat bahwa pilihan yang salah telah dibuat dan kami harus mulai mencari pekerjaan baru. <h3>Bab 6. Mulai menguasai Java</h3>Suatu hari yang cerah di bulan Mei saya menerima undangan wawancara untuk lowongan “Pengembang”. Sebuah perusahaan di industri asuransi membutuhkan seseorang yang akan mengembangkan produk asuransi. Pengalaman pemrograman diperlukan, tetapi karena ini adalah pengembangan perusahaan yang “unik”, tidak diperlukan bahasa khusus. Git dan sebagainya juga diperlukan. Saya menjadwalkan wawancara dalam dua hari, dan saya mempelajari dasar-dasar Git di waktu luang saya. Selama wawancara, saya ditanya tentang Python, JS, Git, SQL. Saya menjawab semuanya kecuali konsep “method overflowing”, dan saya diundang untuk bekerja dalam 2 minggu. Ternyata perusahaan tersebut sudah lama membeli sistem tersebut. ditulis dalam Java (depan dan belakang), yang dengannya Anda dapat membuat proses bisnis tanpa mengetahui bahasa pemrograman (lebih tepatnya, menggunakan bahasa pemrograman Jelly bawaan). Kedengarannya bagus, tapi nyatanya semuanya terdistorsi. Penyimpangan liris: teknologi apa pun memiliki zaman dan skalanya sendiri. Melakukan semua pelaporan pada tahun 2000 hanya di Excel itu keren. Melakukan hal yang sama di tahun 2021 sangatlah tidak baik. Situs web perusahaan dalam HTML murni memang keren di tahun 1999, tetapi tidak di tahun 2021. Jadi, teknologi yang digunakan perusahaan pada saat pendiriannya (2005) sangat keren - Java bertanggung jawab atas bagian server dan klien (yang disebut halaman Java servlet). Terlebih lagi, jika Anda membuat proses bisnis baru (yang memiliki UI sendiri), maka proses tersebut disimpan di dalam database, dan bukan di dalam kode di file. Untuk memahami betapa merepotkannya hal ini, bayangkan Anda menulis kode Java di ide Intellij, menyimpannya ke Database, lalu. ketika Anda ingin menjalankan kode Anda, kernel program masuk ke database dan membaca kode Anda dari sana. Oleh karena itu, Anda tidak dapat sepenuhnya men-debug aplikasi Anda. Petunjuk #1: Saat Anda ingin mengirimkan kode ke testbench, Anda perlu membuatnya sebaliknya, pengembangan di sisi teknis masih minim. Seminggu telah berlalu setelah perangkat dipasang dan pekerjaan jarak jauh diperkenalkan. Karena hari non-kerja tidak berlaku di sektor keuangan, kami bekerja seperti biasa. Bos barunya ternyata adalah orang yang sangat gila: dia menawarkan untuk mengikis Facebook, membuat jaringan sarafnya sendiri untuk mempelajari klien (tanpa staf ilmuwan data). Karyawan baru ditawari untuk belajar Python dalam seminggu, dll. Hari libur yang tidak dibayar menjadi hal yang biasa. Berhenti adalah hal yang bodoh: di mana Anda akan mendapatkan pekerjaan selama pandemi? Namun kesabaran habis setelah 2 bulan, ketika diumumkan bahwa tidak akan ada bonus triwulanan. Nuansanya ketika kita menyepakati gaji, pada saat perekrutan, HR mengatakan bahwa gaji itu dibagi menjadi gaji (60%) dan bonus triwulanan (40%), yang selalu dibayarkan. Jelas terlihat bahwa pilihan yang salah telah dibuat dan kami harus mulai mencari pekerjaan baru. <h3>Bab 6. Mulai menguasai Java</h3>Suatu hari yang cerah di bulan Mei saya menerima undangan wawancara untuk lowongan “Pengembang”. Sebuah perusahaan di industri asuransi membutuhkan seseorang yang akan mengembangkan produk asuransi. Pengalaman pemrograman diperlukan, tetapi karena ini adalah pengembangan perusahaan yang “unik”, tidak diperlukan bahasa khusus. Git dan sebagainya juga diperlukan. Saya menjadwalkan wawancara dalam dua hari, dan saya mempelajari dasar-dasar Git di waktu luang saya. Selama wawancara, saya ditanya tentang Python, JS, Git, SQL. Saya menjawab semuanya kecuali konsep “method overflowing”, dan saya diundang untuk bekerja dalam 2 minggu. Ternyata perusahaan tersebut sudah lama membeli sistem tersebut. ditulis dalam Java (depan dan belakang), yang dengannya Anda dapat membuat proses bisnis tanpa mengetahui bahasa pemrograman (lebih tepatnya, menggunakan bahasa pemrograman Jelly bawaan). Kedengarannya bagus, tapi nyatanya semuanya terdistorsi. Penyimpangan liris: teknologi apa pun memiliki zaman dan skalanya sendiri. Melakukan semua pelaporan pada tahun 2000 hanya di Excel itu keren. Melakukan hal yang sama di tahun 2021 sangatlah tidak baik. Situs web perusahaan dalam HTML murni memang keren di tahun 1999, tetapi tidak di tahun 2021. Jadi, teknologi yang digunakan perusahaan pada saat pendiriannya (2005) sangat keren - Java bertanggung jawab atas bagian server dan klien (yang disebut halaman Java servlet). Terlebih lagi, jika Anda membuat proses bisnis baru (yang memiliki UI sendiri), maka proses tersebut disimpan di dalam database, dan bukan di dalam kode di file. Untuk memahami betapa merepotkannya hal ini, bayangkan Anda menulis kode Java di ide Intellij, menyimpannya ke Database, lalu. ketika Anda ingin menjalankan kode Anda, kernel program masuk ke database dan membaca kode Anda dari sana. Oleh karena itu, Anda tidak dapat sepenuhnya men-debug aplikasi Anda. Petunjuk #1: Saat Anda ingin mengirimkan kode ke testbench, Anda perlu membuatnya buat jaringan saraf Anda sendiri untuk mempelajari klien (tanpa staf ilmuwan data). Karyawan baru ditawari untuk belajar Python dalam seminggu, dll. Hari libur yang tidak dibayar menjadi hal yang biasa. Berhenti adalah hal yang bodoh: di mana Anda akan mendapatkan pekerjaan selama pandemi? Namun kesabaran habis setelah 2 bulan, ketika diumumkan bahwa tidak akan ada bonus triwulanan. Nuansanya ketika kita menyepakati gaji, pada saat perekrutan, HR mengatakan bahwa gaji itu dibagi menjadi gaji (60%) dan bonus triwulanan (40%), yang selalu dibayarkan. Jelas terlihat bahwa pilihan yang salah telah dibuat dan kami harus mulai mencari pekerjaan baru. <h3>Bab 6. Mulai menguasai Java</h3>Suatu hari yang cerah di bulan Mei saya menerima undangan wawancara untuk lowongan “Pengembang”. Sebuah perusahaan di industri asuransi membutuhkan seseorang yang akan mengembangkan produk asuransi. Pengalaman pemrograman diperlukan, tetapi karena ini adalah pengembangan perusahaan yang “unik”, tidak diperlukan bahasa khusus. Git dan sebagainya juga diperlukan. Saya menjadwalkan wawancara dalam dua hari, dan saya mempelajari dasar-dasar Git di waktu luang saya. Selama wawancara, saya ditanya tentang Python, JS, Git, SQL. Saya menjawab semuanya kecuali konsep “method overflowing”, dan saya diundang untuk bekerja dalam 2 minggu. Ternyata perusahaan tersebut sudah lama membeli sistem tersebut. ditulis dalam Java (depan dan belakang), yang dengannya Anda dapat membuat proses bisnis tanpa mengetahui bahasa pemrograman (lebih tepatnya, menggunakan bahasa pemrograman Jelly bawaan). Kedengarannya bagus, tapi nyatanya semuanya terdistorsi. Penyimpangan liris: teknologi apa pun memiliki zaman dan skalanya sendiri. Melakukan semua pelaporan pada tahun 2000 hanya di Excel itu keren. Melakukan hal yang sama di tahun 2021 sangatlah tidak baik. Situs web perusahaan dalam HTML murni memang keren di tahun 1999, tetapi tidak di tahun 2021. Jadi, teknologi yang digunakan perusahaan pada saat pendiriannya (2005) sangat keren - Java bertanggung jawab atas bagian server dan klien (yang disebut halaman Java servlet). Terlebih lagi, jika Anda membuat proses bisnis baru (yang memiliki UI sendiri), maka proses tersebut disimpan di dalam database, dan bukan di dalam kode di file. Untuk memahami betapa merepotkannya hal ini, bayangkan Anda menulis kode Java di ide Intellij, menyimpannya ke Database, lalu. ketika Anda ingin menjalankan kode Anda, kernel program masuk ke database dan membaca kode Anda dari sana. Oleh karena itu, Anda tidak dapat sepenuhnya men-debug aplikasi Anda. Petunjuk #1: Saat Anda ingin mengirimkan kode ke testbench, Anda perlu membuatnya buat jaringan saraf Anda sendiri untuk mempelajari klien (tanpa staf ilmuwan data). Karyawan baru ditawari untuk belajar Python dalam seminggu, dll. Hari libur yang tidak dibayar menjadi hal yang biasa. Berhenti adalah hal yang bodoh: di mana Anda akan mendapatkan pekerjaan selama pandemi? Namun kesabaran habis setelah 2 bulan, ketika diumumkan bahwa tidak akan ada bonus triwulanan. Nuansanya ketika kita menyepakati gaji, pada saat perekrutan, HR mengatakan bahwa gaji itu dibagi menjadi gaji (60%) dan bonus triwulanan (40%), yang selalu dibayarkan. Jelas terlihat bahwa pilihan yang salah telah dibuat dan kami harus mulai mencari pekerjaan baru. <h3>Bab 6. Mulai menguasai Java</h3>Suatu hari yang cerah di bulan Mei saya menerima undangan wawancara untuk lowongan “Pengembang”. Sebuah perusahaan di industri asuransi membutuhkan seseorang yang akan mengembangkan produk asuransi. Pengalaman pemrograman diperlukan, tetapi karena ini adalah pengembangan perusahaan yang “unik”, tidak diperlukan bahasa khusus. Git dan sebagainya juga diperlukan. Saya menjadwalkan wawancara dalam dua hari, dan saya mempelajari dasar-dasar Git di waktu luang saya. Selama wawancara, saya ditanya tentang Python, JS, Git, SQL. Saya menjawab semuanya kecuali konsep “method overflowing”, dan saya diundang untuk bekerja dalam 2 minggu. Ternyata perusahaan tersebut sudah lama membeli sistem tersebut. ditulis dalam Java (depan dan belakang), yang dengannya Anda dapat membuat proses bisnis tanpa mengetahui bahasa pemrograman (lebih tepatnya, menggunakan bahasa pemrograman Jelly bawaan). Kedengarannya bagus, tapi nyatanya semuanya terdistorsi. Penyimpangan liris: teknologi apa pun memiliki zaman dan skalanya sendiri. Melakukan semua pelaporan pada tahun 2000 hanya di Excel itu keren. Melakukan hal yang sama di tahun 2021 sangatlah tidak baik. Situs web perusahaan dalam HTML murni memang keren di tahun 1999, tetapi tidak di tahun 2021. Jadi, teknologi yang digunakan perusahaan pada saat pendiriannya (2005) sangat keren - Java bertanggung jawab atas bagian server dan klien (yang disebut halaman Java servlet). Terlebih lagi, jika Anda membuat proses bisnis baru (yang memiliki UI sendiri), maka proses tersebut disimpan di dalam database, dan bukan di dalam kode di file. Untuk memahami betapa merepotkannya hal ini, bayangkan Anda menulis kode Java di ide Intellij, menyimpannya ke Database, lalu. ketika Anda ingin menjalankan kode Anda, kernel program masuk ke database dan membaca kode Anda dari sana. Oleh karena itu, Anda tidak dapat sepenuhnya men-debug aplikasi Anda. Petunjuk #1: Saat Anda ingin mengirimkan kode ke testbench, Anda perlu membuatnya <h3>Bab 6. Mulai menguasai Java</h3>Suatu hari yang cerah di bulan Mei saya menerima undangan wawancara untuk lowongan “Pengembang”. Sebuah perusahaan di industri asuransi membutuhkan seseorang yang akan mengembangkan produk asuransi. Pengalaman pemrograman diperlukan, tetapi karena ini adalah pengembangan perusahaan yang “unik”, tidak diperlukan bahasa khusus. Git dan sebagainya juga diperlukan. Saya menjadwalkan wawancara dalam dua hari, dan saya mempelajari dasar-dasar Git di waktu luang saya. Selama wawancara, saya ditanya tentang Python, JS, Git, SQL. Saya menjawab semuanya kecuali konsep “method overflowing”, dan saya diundang untuk bekerja dalam 2 minggu. Ternyata perusahaan tersebut sudah lama membeli sistem tersebut. ditulis dalam Java (depan dan belakang), yang dengannya Anda dapat membuat proses bisnis tanpa mengetahui bahasa pemrograman (lebih tepatnya, menggunakan bahasa pemrograman Jelly bawaan). Kedengarannya bagus, tapi nyatanya semuanya terdistorsi. Penyimpangan liris: teknologi apa pun memiliki zaman dan skalanya sendiri. Melakukan semua pelaporan pada tahun 2000 hanya di Excel itu keren. Melakukan hal yang sama di tahun 2021 sangatlah tidak baik. Situs web perusahaan dalam HTML murni memang keren di tahun 1999, tetapi tidak di tahun 2021. Jadi, teknologi yang digunakan perusahaan pada saat pendiriannya (2005) sangat keren - Java bertanggung jawab atas bagian server dan klien (yang disebut halaman Java servlet). Terlebih lagi, jika Anda membuat proses bisnis baru (yang memiliki UI sendiri), maka proses tersebut disimpan di dalam database, dan bukan di dalam kode di file. Untuk memahami betapa merepotkannya hal ini, bayangkan Anda menulis kode Java di ide Intellij, menyimpannya ke Database, lalu. ketika Anda ingin menjalankan kode Anda, kernel program masuk ke database dan membaca kode Anda dari sana. Oleh karena itu, Anda tidak dapat sepenuhnya men-debug aplikasi Anda. Petunjuk #1: Saat Anda ingin mengirimkan kode ke testbench, Anda perlu membuatnya <h3>Bab 6. Mulai menguasai Java</h3>Suatu hari yang cerah di bulan Mei saya menerima undangan wawancara untuk lowongan “Pengembang”. Sebuah perusahaan di industri asuransi membutuhkan seseorang yang akan mengembangkan produk asuransi. Pengalaman pemrograman diperlukan, tetapi karena ini adalah pengembangan perusahaan yang “unik”, tidak diperlukan bahasa khusus. Git dan sebagainya juga diperlukan. Saya menjadwalkan wawancara dalam dua hari, dan saya mempelajari dasar-dasar Git di waktu luang saya. Selama wawancara, saya ditanya tentang Python, JS, Git, SQL. Saya menjawab semuanya kecuali konsep “method overflowing”, dan saya diundang untuk bekerja dalam 2 minggu. Ternyata perusahaan tersebut sudah lama membeli sistem tersebut. ditulis dalam Java (depan dan belakang), yang dengannya Anda dapat membuat proses bisnis tanpa mengetahui bahasa pemrograman (lebih tepatnya, menggunakan bahasa pemrograman Jelly bawaan). Kedengarannya bagus, tapi nyatanya semuanya terdistorsi. Penyimpangan liris: teknologi apa pun memiliki zaman dan skalanya sendiri. Melakukan semua pelaporan pada tahun 2000 hanya di Excel itu keren. Melakukan hal yang sama di tahun 2021 sangatlah tidak baik. Situs web perusahaan dalam HTML murni memang keren di tahun 1999, tetapi tidak di tahun 2021. Jadi, teknologi yang digunakan perusahaan pada saat pendiriannya (2005) sangat keren - Java bertanggung jawab atas bagian server dan klien (yang disebut halaman Java servlet). Terlebih lagi, jika Anda membuat proses bisnis baru (yang memiliki UI sendiri), maka proses tersebut disimpan di dalam database, dan bukan di dalam kode di file. Untuk memahami betapa merepotkannya hal ini, bayangkan Anda menulis kode Java di ide Intellij, menyimpannya ke Database, lalu. ketika Anda ingin menjalankan kode Anda, kernel program masuk ke database dan membaca kode Anda dari sana. Oleh karena itu, Anda tidak dapat sepenuhnya men-debug aplikasi Anda. Petunjuk #1: Saat Anda ingin mengirimkan kode ke testbench, Anda perlu membuatnya Situs web perusahaan dalam HTML murni memang keren di tahun 1999, tetapi tidak di tahun 2021. Jadi, teknologi yang digunakan perusahaan pada saat pendiriannya (2005) sangat keren - Java bertanggung jawab atas bagian server dan klien (yang disebut halaman Java servlet). Terlebih lagi, jika Anda membuat proses bisnis baru (yang memiliki UI sendiri), maka proses tersebut disimpan di dalam database, dan bukan di dalam kode di file. Untuk memahami betapa merepotkannya hal ini, bayangkan Anda menulis kode Java di ide Intellij, menyimpannya ke Database, lalu. ketika Anda ingin menjalankan kode Anda, kernel program masuk ke database dan membaca kode Anda dari sana. Oleh karena itu, Anda tidak dapat sepenuhnya men-debug aplikasi Anda. Petunjuk #1: Saat Anda ingin mengirimkan kode ke testbench, Anda perlu membuatnya Situs web perusahaan dalam HTML murni memang keren di tahun 1999, tetapi tidak di tahun 2021. Jadi, teknologi yang digunakan perusahaan pada saat pendiriannya (2005) sangat keren - Java bertanggung jawab atas bagian server dan klien (yang disebut halaman Java servlet). Terlebih lagi, jika Anda membuat proses bisnis baru (yang memiliki UI sendiri), maka proses tersebut disimpan di dalam database, dan bukan di dalam kode di file. Untuk memahami betapa merepotkannya hal ini, bayangkan Anda menulis kode Java di ide Intellij, menyimpannya ke Database, lalu. ketika Anda ingin menjalankan kode Anda, kernel program masuk ke database dan membaca kode Anda dari sana. Oleh karena itu, Anda tidak dapat sepenuhnya men-debug aplikasi Anda. Petunjuk #1: Saat Anda ingin mengirimkan kode ke testbench, Anda perlu membuatnyaSQL скрипт, yang akan berisi kode Anda. Tidak menyenangkan, tapi bisa ditoleransi? Semangat #2: Database terdiri dari lebih dari 200 tabel yang memiliki koneksi satu sama lain. Ini berarti Anda perlu mengetahui tabel mana yang akan memasukkan kode Anda, dan entitas mana yang perlu dibuat di tabel lain. Outputnya adalah skrip SQL dengan panjang ~1000 baris. Ini sungguh menjijikkan. Waspadalah terhadap warisan. Singkatnya, menyadari bahwa semuanya ada di Java, saya pergi ke JavaRush (akhirnya kita sampai pada tema situsnya!). Juni-Juli 2020. 10 level pertama ditutup dengan cepat (mungkin sebulan), karena tidak ada hal baru yang fundamental. Kemudian kecepatannya melambat. Juli-Oktober 2020. Level 10-20 ditutup. Oktober-Maret 2021. Level 20-30 ditutup. Sekarang kesenangannya dimulai: pada bulan Maret 2021, saya mulai melihat lowongan di Java dan menyadari bahwa ada banyak kata asing di sana. Semacam Spring, SpringBoot, Hibernate, JUnit. Setelah membeli kursus video di situs terkenal, saya baru saja menyentuh Spring dan berpikir bahwa sekarang saya tahu dan bisa melakukan segalanya. Setelah itu, saya menemukan kursus TopJava oleh Grigory Kislin. Di situsnya Anda dapat mencoba menyelesaikan tugas tes, dan jika berhasil, Anda dapat mengikuti kursus. Dalam kursus ini, Anda membuat aplikasi web lengkap dan bahkan mempublikasikannya di Internet. Untuk uang ini, mereka akan memberi Anda review (review kode oleh programmer yang lebih berpengalaman), memberikan feedback dan memberikan tips jika ada masalah. Saya mengerjakan pekerjaan rumah 3 dan berhenti. Alasannya sederhana: mereka menuntut banyak dari Anda, tetapi mereka tidak memberi Anda pengetahuan apa pun. Persyaratan pekerjaan rumah sangat membingungkan. Informasi yang disajikan sangat tidak konsisten. Menurut pendapat subjektif saya, kursus ini dibutuhkan oleh developer yang cukup berpengalaman yang berasal dari bahasa lain yang sejenis. Karena dalam mata kuliahnya praktis tidak ada penjelasan mengenai teknologi yang dimintanya untuk digunakan. Anda juga perlu mengetahui Git dengan baik (semuanya dikirim ke repositori pribadi Anda). Pada akhir April 2021, saya memposting resume untuk pengembang Java (dengan gaji yang diinginkan di level menengah+), di mana saya menunjukkan bahwa pada pekerjaan terakhir saya, saya memprogram di Java (saya berbohong). Pada hari yang sama, bank menerima lamaran untuk posisi pengembang Java. <h3>Bab 7. Wawancara Java dan Asah Keterampilan</h3>Jadi, apa rencananya? Saya perlu mendapat gaji yang bagus, karena saya sudah terbiasa hidup dengan penghasilan + pinjaman yang besar. Oleh karena itu, posisi junior tidak cocok untuk saya. Anda perlu mendapatkan posisi tengah. Tapi siapa yang akan mempekerjakan saya tanpa pengalaman? Keputusan itu datang secara alami: catatan pekerjaan saya menyatakan bahwa saya bekerja sebagai pengembang selama satu tahun dan selama 4 tahun lagi sebagai ahli di departemen TI di posisi saya sebelumnya. Jadi, menurut saya saya sudah mengembangkan di Java selama setahun. Dan jika mereka bertanya tentang produk baru, saya akan menjawab bahwa Java lama (7) ada dan tidak mendukung apa pun. Sebelum wawancara (jarak jauh) pertama saya, saya merasa gugup. Saya tidak punya pengalaman, sedikit pengetahuan, dan saya meminta banyak uang. Saya pikir: tidak peduli, pengalaman negatif juga merupakan pengalaman. Saya menghubungi melalui Skype dan saya akan diwawancarai oleh dua kepala departemen. Yang membuatku semakin takut. Pertanyaan dimulai: OOP, perangkat HashMap, streaming, struktur data, apa itu Spring, Hibernate, AOP. Dan jika sebelum Sping hal itu kurang lebih dapat ditoleransi, maka di Musim Semi hal itu benar-benar berantakan. Orang-orang bertanya kepada saya: bagaimana Anda berkembang di Musim Semi jika Anda tidak benar-benar mengetahuinya? Saya: Saya menyalinnya, menempelkannya, berhasil, dan terima kasih untuk itu. Jawaban ini membuat mereka geli. Kemudian mereka bertanya tentang SQL, di mana saya seperti bebek di air. Berikutnya adalah Git dan pertanyaan tentang rebase, cherry-pick (yang saya juga tidak tahu) dan selesai tentang JS, karena sudah terdaftar di resume saya. Di sana juga ada yang gagal total, karena ditanya tentang OOP JS. Berdasarkan hasil wawancara, diketahui bahwa pengetahuan saya tidak comme il faut, sehingga saya tidak memenuhi syarat untuk lowongan tersebut. Sore harinya HR menulis bahwa pencalonan saya telah disetujui dan mereka siap menelepon saya. Saya sebenarnya tersedak burger di McDonald's. Saya senang, tetapi setelah 3 hari HR melaporkan bahwa mereka telah memilih kandidat lain. Untuk pertama kalinya dalam pengalaman saya, tawaran ditarik. Setelah wawancara pertama di Java, saya meningkatkan permainan saya: Saya mengambil kursus (dan menyelesaikannya sepenuhnya!) di Git dari Colt Steele di situs terkenal yang menjual kursus video. Ini mengubah persepsi saya tentang Git. Selanjutnya, saya mengambil kursus (brilian) dari Zaur Tregulov tentang Spring+Hibernate. Skema pelatihan: Saya menontonnya seperti di video, saya melakukan hal yang sama di komputer saya, tetapi saya memberi nama variabel dan kelas secara berbeda agar tidak dengan bodohnya menyalin kode orang lain. Saya mengunggah semua pekerjaan saya ke Github saya (dengan demikian berlatih Git). Saat itu pertengahan Mei dan panggilan telepon dari jam dimulai. Kami mulai menjadwalkan wawancara satu per satu. Banyak undangan yang harus dibatalkan karena alasan berikut: HR tidak membaca deskripsi resume saya dan mengundang saya ke posisi senior. Perlu juga disebutkan kasta HR yang terpisah: mereka yang mengacaukan Java dengan JavaScript. Itu sebabnya saya menulis pengembang Jawa Tengah di judul resume saya. <h3>Bab 8. Daftar pertanyaan umum dan bagaimana wawancara berlangsung</h3>Saya mulai melakukan wawancara dan secara bertahap membentuk kumpulan pertanyaan dasar di tengahnya. Diperlukan: 0. OOP - definisi, bicarakan setiap prinsip OOP (+berikan contoh dari kehidupan nyata). 1. Setara dan kode hash - apa kontrak (hubungan) di antara keduanya? 2. HashMap - bagaimana memahami bucket mana suatu objek akan masuk, apa itu tabrakan, dalam struktur data apa data disimpan di dalam HashMap, ukuran standarnya, bagaimana jumlah bucket bertambah. 3. Aliran - jenis operasi apa, apa perbedaannya, berikan contoh setiap jenis operasi. 4. Kumpulan string, kumpulan bilangan bulat - apa itu? 5. Heap, stack - apa itu, apa bedanya? 6. Perbedaan antara Runnable, Thread, Future. 7. Volatil, atomisitas. 8. Solid, Kiss, Dry - definisi, contoh dari kehidupan nyata. 9. Akses pengubah di Java. 10. Apa perbedaan antara kelas abstrak dan antarmuka. Bisakah antarmukanya bersifat pribadi? 11. Antarmuka fungsional. 12. Buat daftar semua metode Objek dan jelaskan mengapa metode tersebut diperlukan. Fitur metode klon. 13. Apa itu serialisasi dan deserialisasi. 14. Coba tangkap dengan sumber daya - jelaskan apa itu, beri tahu menggunakan antarmuka Closeable. 15. Perbedaan Final, Akhirnya, Finalisasi? 16. Kelebihan beban, Penggantian metode adalah perbedaannya. 17. Mengapa String dibuat tidak dapat diubah, beri tahu kami tentang StringBuilder dan StringBuffer. 18. Berapakah kompleksitas waktu O(1), kompleksitas memori. 19. Struktur data: berbicara tentang peta, set, antrian, deque, daftar dan implementasinya di Java (treeMap, hashSet, hashMap, arrayList, linkedList, priorotasQueue,blockingQueue), menggambarkan kompleksitas penyisipan (terburuk, rata-rata, terbaik), pencarian, menghapus elemen di setiap struktur. 20. Tipe data primitif di Java. Mengapa masing-masing dibutuhkan? 21. Jenis kesalahan. Pengecualian yang dicentang dan tidak dicentang. 22. Apa itu JVM, JRE, JDK? 23. Kolektor mana yang pernah bekerja sama dengan Anda? Maven - Bangun siklus hidup. 24. Spring - Definisi Ioc, Di, Siklus Hidup Bean, Konteks, Anotasi @Bean, @Configuration, @Autowired, @Advice, @Aspect, @Service, @Repository. 25. Generik - definisi batas bawah dan batas atas? 26.Pola pemrograman - setidaknya Singleton (kesediaan untuk memberi tahu mengapa ini terkadang merupakan anti-pola) + Pembangun, Adaptor, Pabrik, Dekorator, Proxt. Diinginkan: 26. Pengujian - jenis pengujian yang digunakan oleh perpustakaan (JUnit). Apa itu Mock, Stab, Spy? 27. Spring boot - mengapa diperlukan, kesiapan untuk membuat aplikasi SpringBoot online. 28. Hibernasi - mengapa diperlukan, Entitas, kolom gabung, pemuatan lambat vs bersemangat, level caching (keras). 29. Istirahat musim semi - mengapa diperlukan, bagaimana membuat @post, @get endpoint. Bagaimana cara membaca parameter/isi permintaan? Bagaimana cara mengirimkan dalam format json? 30. Struktur data - pohon, tipenya. 31. Algoritma - jenis penyortiran. Selain Java, mereka mungkin bertanya: 1. (Wajib!) Git - mengapa diperlukan, operasi penggabungan, rebase, cherry-pick, push, pull, commit, log, checkout, Branch, reset, revert, refresh. 2.SQL - kemampuan untuk menulis kueri: menggabungkan dua tabel menjadi satu (gabungan dalam, gabungan kiri). 3. Basis data - 3 bentuk normal, indeks (mengapa diperlukan, jenis), kunci utama, kunci asing Bagaimana cara kerja wawancara jarak jauh: jam mengirimkan tautan untuk memperbesar (Skype, Google Meeting). Pada waktu tertentu Anda terhubung dan ada 1 hingga 3 orang di sana (ahli teknis, bos, jam). Dalam kasus yang sangat keras kepala, hingga 8 orang. Pertama Anda bercerita tentang diri Anda, lalu bagian teknisnya, lalu cerita tentang lowongan dan selamat tinggal (mereka mengatakan kapan mereka akan menghubungi Anda atau apa langkah selanjutnya). Saat perpisahan, Anda bisa meminta masukan tentang ilmu. Saya bertanya: “Bisakah Anda memberi tahu saya, saat saya menjawab, di bagian mana telinga Anda sakit?” Banyak orang yang merespon, tapi bersiaplah untuk ditolak. Selama wawancara mereka mengevaluasi: 1. Kemampuan Anda untuk mengekspresikan pemikiran dan pengetahuan tentang bahasa Rusia (Saya tahu kasus di mana seorang kandidat ditolak karena pengetahuannya yang buruk tentang bahasa Rusia). 2. Pengalaman sebelumnya (mereka mungkin dengan cermat menanyakan apa yang Anda lakukan di pekerjaan terakhir Anda). 3. Reaksi yang memadai ketika Anda mendapat tekanan (ada satu wawancara ketika orang mulai berbicara tidak sopan: mengabaikan jawaban saya, mencoba menanamkan posisi mereka, dll. Saya menyelesaikan wawancara 15 menit setelah permulaan, dan mereka: itu adalah wawancara yang menegangkan!) 4. Tingkat pengetahuan Anda. Saya akan membahas lebih detail di sini. Mengetahui definisi suatu topik hanya 10% dari apa yang diharapkan dari Anda. Penting untuk memahami cara kerjanya (setidaknya di tingkat atas). Kesediaan untuk menjelaskan pada titik perkembangan mana Anda akan memilih solusi ini atau itu. Ini jauh lebih penting daripada keakuratan definisi Anda. Saya akan menganalisis tesis ini menggunakan dua contoh. Contoh pertama: saat wawancara saya ditanya tentang HashMap, dan saya memberikan definisi: “ini adalah struktur data yang menyimpan kumpulan kunci dan nilai.” Lalu pewawancara bertanya: apa bedanya dengan TreeMap? Jawaban: Perbedaannya adalah HashMap melakukan hash pada kuncinya dan karena hashing, aksesnya cepat. Pewawancara segera meminta untuk memberi tahu kami struktur internal HashMap, dan pada saat yang sama bertanya tentang kode hash dan persamaannya. Dan itu akan masuk lebih dalam sampai Anda puas dengan jawabannya atau Anda berhenti. Saya belajar menjawab dengan benar tentang HashMap hanya setelah 2 bulan wawancara dan kursus struktur data di hexlet. Contoh kedua: konsep SOLID. Mereka meminta saya untuk memberikan definisi yang saya hafal. Tapi begitu sampai pada contoh kehidupan nyata, masalah pun dimulai. Внимание!Jika Anda tidak tahu, maka jangan mengada-ada, tetapi katakan ini: Saya tidak tahu topik ini, tetapi saya berasumsi bahwa topik ini berfungsi seperti ini. Banyak ahli teknis yang marah ketika seseorang berbicara sesat seolah-olah dia memahami topiknya. 5. Tingkat antusiasme Anda selama diskusi pekerjaan. Anda diharapkan tertarik dan bertanya seputar lowongan tersebut (bukan hanya sekedar mengada-ada). 6. Terkadang humor (hanya berdasarkan topik) dan minat yang sama membantu Anda berkomunikasi. Jangan ragu untuk membicarakan hobi Anda; mungkin orang yang diwawancara juga menyukai Dota/sepak bola/fantasi. Dan ini menjadi nilai tambah bagi Anda sebagai kandidat. Saya tahu kasus-kasus ketika komunitas yang berkepentingan menutup mata terhadap pelatihan teknis pewawancara yang buruk (Anda pria normal, kami akan melatih Anda). <h3>Bab 9. Mendapatkan pekerjaan, baptisan api</h3>Wawancara berlangsung dari akhir April hingga pertengahan Juli. Wawancara pertama terasa memalukan, namun lambat laun situasinya membaik ke tingkat yang dapat diterima. Mempelajari pertanyaan-pertanyaan umum dan umpan balik membuat diri mereka terasa. 25 wawancara pertama tidak berhasil. Setelah itu, saat-saat putus asa dimulai. Perasaan: bagaimana jika mereka tidak mau mempekerjakan saya dengan gaji sebesar itu? Tiba-tiba masalah mulai terjadi: dalam waktu seminggu, tiga perusahaan mengajukan proposal. Saya memilih perusahaan yang saya tahu secara spesifik, ditambah lagi ada gaji yang bagus dan kesempatan untuk bekerja jarak jauh. Selama wawancara saya ditanya sekitar 30 pertanyaan tentang Java core dan Spring, 97% di antaranya saya jawab dengan benar. Setelah itu ada komunikasi dengan otoritas yang lebih tinggi dan setelah 1,5 minggu saya mendapat pekerjaan di mereka. Pertama-tama, ketika Anda datang ke pekerjaan apa pun, Anda mulai mendapatkan akses ke semua sistem yang diperlukan dan menginstal alat yang Anda perlukan. Butuh waktu satu setengah minggu, dan saya diberi tugas pertama: mengubah teks statis di kelas. Ketika saya membuka proyek, saya merasa mual: ada banyak modul di dalam satu proyek, banyak kelas, tes, dll. Pada titik ini saya tersesat, tetapi pengembang kedua membantu saya dan mempercepat saya. Bug diperbaiki dalam 10 menit, dipublikasikan di Git, permintaan tarik dibuat (permintaan untuk menggabungkan dua cabang tempat pengembang lain memeriksa kode Anda), dan kemudian digabungkan ke dalam cabang utama. Ternyata semuanya tidak terlalu sulit. Sampai tugas penuh pertama... Pada saat merencanakan tugas untuk dua minggu ke depan, mereka mengatakan kepada saya: Anda akan melakukan integrasi dengan sistem lain, yang terletak di OpenShift. Di sinilah segalanya menjadi sangat menakutkan: OpenShift adalah sekumpulan teknologi: Docker, Kubernetes, Linux, dan sebagainya. Keringat dingin mengalir di punggungku: ya, aku bekerja sebagai seorang Jawist. Segera setelah pertemuan tersebut, saya menelepon pengembang, yang meyakinkan saya: adaptor untuk sistem ini telah ditulis, dan itu cukup untuk mengimpor kelas-kelas tertentu ke dalam proyek saya, setelah itu saya dapat menggunakan integrasi dengan aman. Ini menjadi menyenangkan lagi, sampai pengembang menunjukkan integrasi yang khas: Saya melihat lebih dari 20 kelas dibuat untuk integrasi serupa. Selain itu, anotasi @Value, @Builder, @NoArgsConstructor, @Getter yang sebelumnya tidak terlihat, telah diperhatikan @Sl4f - ternyata proyek Lombook (baca di Internet). Ketika pengembang menjelaskan kepada saya cara melakukannya, saya mencoba menuliskan koneksi semua kelas, dan tidak ada yang terlintas di kepala saya. Momen yang paling memalukan adalah kurangnya pengetahuan tentang Intellij Idea: cara mencari proyek secara global, pemfaktoran ulang kode, dll. Setelah mengambil tugas itu, saya mengerti mengapa OOP diperlukan: untuk sejumlah besar kode, perlu untuk membaginya ke dalam kelas-kelas; metode yang tidak digunakan di luar kelas harus dinyatakan pribadi agar tidak menjalankannya secara tidak sengaja di kelas lain, dll. Setelah menulis integrasi saya dengan analogi dengan integrasi lain, saya belajar tentang keberadaan CheckStyle - plugin khusus yang memeriksa gaya kode Anda, dan Anda tidak akan dapat mengkompilasi proyek Anda sampai Anda memperbaiki kesalahan (misalnya, spasi tambahan, nama variabel dengan huruf kapital, nama variabel yang terlalu pendek). Setelah mengalahkan CheckStyle, saya mengirimkan kode saya untuk ditinjau ke pengembang senior dan memperbaiki kesalahan saya dalam waktu seminggu. Secara umum, saya sangat beruntung karena di tim saya memiliki hubungan baik dengan pengembang kedua, yang menjelaskan banyak hal. Sebulan setelah perangkat, integrasi pertama saya diluncurkan di stand Integrasi-Fungsional (kerja semua aplikasi diuji bersama-sama), dan semuanya berfungsi di sana! Kemenangan! Tugas selanjutnya adalah membuat kelas yang memungkinkan penyembunyian data berdasarkan kunci di json. Misalnya: ada json {teks:"JavaRush"} -> pemrosesan -> {teks:"****Rush"}. Ada dua komplikasi di sini: mungkin ada {text:{mytext:"JavaRush"}} yang bersarang, dan yang lebih tidak menyenangkan adalah bersarang di dalam array: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (tentu saja Anda perlu menyembunyikan semua text.mytext). Menyelesaikan masalah ini ternyata cukup sulit, namun saya berhasil! Di sini pengembang kedua berkata: tutupi perkembangan ini dengan tes. Ada kebingungan di mata. Beginilah cara saya mengenal perpustakaan JUnit dalam pertempuran. Inti dari pengujian unit: Anda memasukkan data, meneruskannya ke dalam metode, dan membandingkan data yang diterima dengan hasil yang benar (membuat variabel dengan hasil yang benar). Saya menulis 11 kasus untuk perpustakaan saya, di mana saya memeriksa bahwa aplikasi tidak mogok dengan NullPointException dan menyembunyikan data dengan benar dengan semua jenis sarang. Setelah menyelesaikan tugas ini, saya diberi integrasi baru, yang kekhasannya adalah sebagai berikut: Saya harus mengekspor Spring Bean dari perpustakaan eksternal. Saat ini, saya menjadi pelanggan tetap situs web Stack OverFlow. Suatu saat bahkan pengembang resmi Spring merespons. Setelah menerapkan integrasi ini, masa uji coba saya berakhir. Bos mengucapkan selamat kepada saya karena telah melewati masa percobaan, dan saya mulai menulis artikel ini. Total waktu yang dibutuhkan untuk menulis artikel ini adalah 8 jam) Terima kasih atas perhatiannya, semoga artikel ini bermanfaat. Saya mencoba menuliskan hubungan semua kelas, dan tidak ada yang terlintas di kepala saya. Momen yang paling memalukan adalah kurangnya pengetahuan tentang Intellij Idea: cara mencari proyek secara global, pemfaktoran ulang kode, dll. Setelah mengambil tugas itu, saya mengerti mengapa OOP diperlukan: untuk sejumlah besar kode, perlu untuk membaginya ke dalam kelas-kelas; metode yang tidak digunakan di luar kelas harus dinyatakan pribadi agar tidak menjalankannya secara tidak sengaja di kelas lain, dll. Setelah menulis integrasi saya dengan analogi dengan integrasi lain, saya belajar tentang keberadaan CheckStyle - plugin khusus yang memeriksa gaya kode Anda, dan Anda tidak akan dapat mengkompilasi proyek Anda sampai Anda memperbaiki kesalahan (misalnya, spasi tambahan, nama variabel dengan huruf kapital, nama variabel yang terlalu pendek). Setelah mengalahkan CheckStyle, saya mengirimkan kode saya untuk ditinjau ke pengembang senior dan memperbaiki kesalahan saya dalam waktu seminggu. Secara umum, saya sangat beruntung karena di tim saya memiliki hubungan baik dengan pengembang kedua, yang menjelaskan banyak hal. Sebulan setelah perangkat, integrasi pertama saya diluncurkan di stand Integrasi-Fungsional (kerja semua aplikasi diuji bersama-sama), dan semuanya berfungsi di sana! Kemenangan! Tugas selanjutnya adalah membuat kelas yang memungkinkan penyembunyian data berdasarkan kunci di json. Misalnya: ada json {teks:"JavaRush"} -> pemrosesan -> {teks:"****Rush"}. Ada dua komplikasi di sini: mungkin ada {text:{mytext:"JavaRush"}} yang bersarang, dan yang lebih tidak menyenangkan adalah bersarang di dalam array: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (tentu saja Anda perlu menyembunyikan semua text.mytext). Menyelesaikan masalah ini ternyata cukup sulit, namun saya berhasil! Di sini pengembang kedua berkata: tutupi perkembangan ini dengan tes. Ada kebingungan di mata. Beginilah cara saya mengenal perpustakaan JUnit dalam pertempuran. Inti dari pengujian unit: Anda memasukkan data, meneruskannya ke dalam metode, dan membandingkan data yang diterima dengan hasil yang benar (membuat variabel dengan hasil yang benar). Saya menulis 11 kasus untuk perpustakaan saya, di mana saya memeriksa bahwa aplikasi tidak mogok dengan NullPointException dan menyembunyikan data dengan benar dengan semua jenis sarang. Setelah menyelesaikan tugas ini, saya diberi integrasi baru, yang kekhasannya adalah sebagai berikut: Saya harus mengekspor Spring Bean dari perpustakaan eksternal. Saat ini, saya menjadi pelanggan tetap situs web Stack OverFlow. Suatu saat bahkan pengembang resmi Spring merespons. Setelah menerapkan integrasi ini, masa uji coba saya berakhir. Bos mengucapkan selamat kepada saya karena telah melewati masa percobaan, dan saya mulai menulis artikel ini. Total waktu yang dibutuhkan untuk menulis artikel ini adalah 8 jam) Terima kasih atas perhatiannya, semoga artikel ini bermanfaat. Saya mencoba menuliskan hubungan semua kelas, dan tidak ada yang terlintas di kepala saya. Momen yang paling memalukan adalah kurangnya pengetahuan tentang Intellij Idea: cara mencari proyek secara global, pemfaktoran ulang kode, dll. Setelah mengambil tugas itu, saya mengerti mengapa OOP diperlukan: untuk sejumlah besar kode, perlu untuk membaginya ke dalam kelas-kelas; metode yang tidak digunakan di luar kelas harus dinyatakan pribadi agar tidak menjalankannya secara tidak sengaja di kelas lain, dll. Setelah menulis integrasi saya dengan analogi dengan integrasi lain, saya belajar tentang keberadaan CheckStyle - plugin khusus yang memeriksa gaya kode Anda, dan Anda tidak akan dapat mengkompilasi proyek Anda sampai Anda memperbaiki kesalahan (misalnya, spasi tambahan, nama variabel dengan huruf kapital, nama variabel yang terlalu pendek). Setelah mengalahkan CheckStyle, saya mengirimkan kode saya untuk ditinjau ke pengembang senior dan memperbaiki kesalahan saya dalam waktu seminggu. Secara umum, saya sangat beruntung karena di tim saya memiliki hubungan baik dengan pengembang kedua, yang menjelaskan banyak hal. Sebulan setelah perangkat, integrasi pertama saya diluncurkan di stand Integrasi-Fungsional (kerja semua aplikasi diuji bersama-sama), dan semuanya berfungsi di sana! Kemenangan! Tugas selanjutnya adalah membuat kelas yang memungkinkan penyembunyian data berdasarkan kunci di json. Misalnya: ada json {teks:"JavaRush"} -> pemrosesan -> {teks:"****Rush"}. Ada dua komplikasi di sini: mungkin ada {text:{mytext:"JavaRush"}} yang bersarang, dan yang lebih tidak menyenangkan adalah bersarang di dalam array: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (tentu saja Anda perlu menyembunyikan semua text.mytext). Menyelesaikan masalah ini ternyata cukup sulit, namun saya berhasil! Di sini pengembang kedua berkata: tutupi perkembangan ini dengan tes. Ada kebingungan di mata. Beginilah cara saya mengenal perpustakaan JUnit dalam pertempuran. Inti dari pengujian unit: Anda memasukkan data, meneruskannya ke dalam metode, dan membandingkan data yang diterima dengan hasil yang benar (membuat variabel dengan hasil yang benar). Saya menulis 11 kasus untuk perpustakaan saya, di mana saya memeriksa bahwa aplikasi tidak mogok dengan NullPointException dan menyembunyikan data dengan benar dengan semua jenis sarang. Setelah menyelesaikan tugas ini, saya diberi integrasi baru, yang kekhasannya adalah sebagai berikut: Saya harus mengekspor Spring Bean dari perpustakaan eksternal. Saat ini, saya menjadi pelanggan tetap situs web Stack OverFlow. Suatu saat bahkan pengembang resmi Spring merespons. Setelah menerapkan integrasi ini, masa uji coba saya berakhir. Bos mengucapkan selamat kepada saya karena telah melewati masa percobaan, dan saya mulai menulis artikel ini. Total waktu yang dibutuhkan untuk menulis artikel ini adalah 8 jam) Terima kasih atas perhatiannya, semoga artikel ini bermanfaat. Untuk kode sebanyak itu, Anda perlu membaginya menjadi beberapa kelas; metode yang tidak digunakan di luar kelas harus dinyatakan pribadi agar tidak menjalankannya secara tidak sengaja di kelas lain, dll. Setelah menulis integrasi saya dengan analogi dengan integrasi lain, saya belajar tentang keberadaan CheckStyle - plugin khusus yang memeriksa gaya kode Anda, dan Anda tidak akan dapat mengkompilasi proyek Anda sampai Anda memperbaiki kesalahan (misalnya, spasi tambahan, nama variabel dengan huruf kapital, nama variabel yang terlalu pendek). Setelah mengalahkan CheckStyle, saya mengirimkan kode saya untuk ditinjau ke pengembang senior dan memperbaiki kesalahan saya dalam waktu seminggu. Secara umum, saya sangat beruntung karena di tim saya memiliki hubungan baik dengan pengembang kedua, yang menjelaskan banyak hal. Sebulan setelah perangkat, integrasi pertama saya diluncurkan di stand Integrasi-Fungsional (kerja semua aplikasi diuji bersama-sama), dan semuanya berfungsi di sana! Kemenangan! Tugas selanjutnya adalah membuat kelas yang memungkinkan penyembunyian data berdasarkan kunci di json. Misalnya: ada json {teks:"JavaRush"} -> pemrosesan -> {teks:"****Rush"}. Ada dua komplikasi di sini: mungkin ada {text:{mytext:"JavaRush"}} yang bersarang, dan yang lebih tidak menyenangkan adalah bersarang di dalam array: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (tentu saja Anda perlu menyembunyikan semua text.mytext). Menyelesaikan masalah ini ternyata cukup sulit, namun saya berhasil! Di sini pengembang kedua berkata: tutupi perkembangan ini dengan tes. Ada kebingungan di mata. Beginilah cara saya mengenal perpustakaan JUnit dalam pertempuran. Inti dari pengujian unit: Anda memasukkan data, meneruskannya ke dalam metode, dan membandingkan data yang diterima dengan hasil yang benar (membuat variabel dengan hasil yang benar). Saya menulis 11 kasus untuk perpustakaan saya, di mana saya memeriksa bahwa aplikasi tidak mogok dengan NullPointException dan menyembunyikan data dengan benar dengan semua jenis sarang. Setelah menyelesaikan tugas ini, saya diberi integrasi baru, yang kekhasannya adalah sebagai berikut: Saya harus mengekspor Spring Bean dari perpustakaan eksternal. Saat ini, saya menjadi pelanggan tetap situs web Stack OverFlow. Suatu saat bahkan pengembang resmi Spring merespons. Setelah menerapkan integrasi ini, masa uji coba saya berakhir. Bos mengucapkan selamat kepada saya karena telah melewati masa percobaan, dan saya mulai menulis artikel ini. Total waktu yang dibutuhkan untuk menulis artikel ini adalah 8 jam) Terima kasih atas perhatiannya, semoga artikel ini bermanfaat. Untuk kode sebanyak itu, Anda perlu membaginya menjadi beberapa kelas; metode yang tidak digunakan di luar kelas harus dinyatakan pribadi agar tidak menjalankannya secara tidak sengaja di kelas lain, dll. Setelah menulis integrasi saya dengan analogi dengan integrasi lain, saya belajar tentang keberadaan CheckStyle - plugin khusus yang memeriksa gaya kode Anda, dan Anda tidak akan dapat mengkompilasi proyek Anda sampai Anda memperbaiki kesalahan (misalnya, spasi tambahan, nama variabel dengan huruf kapital, nama variabel yang terlalu pendek). Setelah mengalahkan CheckStyle, saya mengirimkan kode saya untuk ditinjau ke pengembang senior dan memperbaiki kesalahan saya dalam waktu seminggu. Secara umum, saya sangat beruntung karena di tim saya memiliki hubungan baik dengan pengembang kedua, yang menjelaskan banyak hal. Sebulan setelah perangkat, integrasi pertama saya diluncurkan di stand Integrasi-Fungsional (kerja semua aplikasi diuji bersama-sama), dan semuanya berfungsi di sana! Kemenangan! Tugas selanjutnya adalah membuat kelas yang memungkinkan penyembunyian data berdasarkan kunci di json. Misalnya: ada json {teks:"JavaRush"} -> pemrosesan -> {teks:"****Rush"}. Ada dua komplikasi di sini: mungkin ada {text:{mytext:"JavaRush"}} yang bersarang, dan yang lebih tidak menyenangkan adalah bersarang di dalam array: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (tentu saja Anda perlu menyembunyikan semua text.mytext). Menyelesaikan masalah ini ternyata cukup sulit, namun saya berhasil! Di sini pengembang kedua berkata: tutupi perkembangan ini dengan tes. Ada kebingungan di mata. Beginilah cara saya mengenal perpustakaan JUnit dalam pertempuran. Inti dari pengujian unit: Anda memasukkan data, meneruskannya ke dalam metode, dan membandingkan data yang diterima dengan hasil yang benar (membuat variabel dengan hasil yang benar). Saya menulis 11 kasus untuk perpustakaan saya, di mana saya memeriksa bahwa aplikasi tidak mogok dengan NullPointException dan menyembunyikan data dengan benar dengan semua jenis sarang. Setelah menyelesaikan tugas ini, saya diberi integrasi baru, yang kekhasannya adalah sebagai berikut: Saya harus mengekspor Spring Bean dari perpustakaan eksternal. Saat ini, saya menjadi pelanggan tetap situs web Stack OverFlow. Suatu saat bahkan pengembang resmi Spring merespons. Setelah menerapkan integrasi ini, masa uji coba saya berakhir. Bos mengucapkan selamat kepada saya karena telah melewati masa percobaan, dan saya mulai menulis artikel ini. Total waktu yang dibutuhkan untuk menulis artikel ini adalah 8 jam) Terima kasih atas perhatiannya, semoga artikel ini bermanfaat. nama variabel terlalu pendek). Setelah mengalahkan CheckStyle, saya mengirimkan kode saya untuk ditinjau ke pengembang senior dan memperbaiki kesalahan saya dalam waktu seminggu. Secara umum, saya sangat beruntung karena di tim saya memiliki hubungan baik dengan pengembang kedua, yang menjelaskan banyak hal. Sebulan setelah perangkat, integrasi pertama saya diluncurkan di stand Integrasi-Fungsional (kerja semua aplikasi diuji bersama-sama), dan semuanya berfungsi di sana! Kemenangan! Tugas selanjutnya adalah membuat kelas yang memungkinkan penyembunyian data berdasarkan kunci di json. Misalnya: ada json {teks:"JavaRush"} -> pemrosesan -> {teks:"****Rush"}. Ada dua komplikasi di sini: mungkin ada {text:{mytext:"JavaRush"}} yang bersarang, dan yang lebih tidak menyenangkan adalah bersarang di dalam array: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (tentu saja Anda perlu menyembunyikan semua text.mytext). Menyelesaikan masalah ini ternyata cukup sulit, namun saya berhasil! Di sini pengembang kedua berkata: tutupi perkembangan ini dengan tes. Ada kebingungan di mata. Beginilah cara saya mengenal perpustakaan JUnit dalam pertempuran. Inti dari pengujian unit: Anda memasukkan data, meneruskannya ke dalam metode, dan membandingkan data yang diterima dengan hasil yang benar (membuat variabel dengan hasil yang benar). Saya menulis 11 kasus untuk perpustakaan saya, di mana saya memeriksa bahwa aplikasi tidak mogok dengan NullPointException dan menyembunyikan data dengan benar dengan semua jenis sarang. Setelah menyelesaikan tugas ini, saya diberi integrasi baru, yang kekhasannya adalah sebagai berikut: Saya harus mengekspor Spring Bean dari perpustakaan eksternal. Saat ini, saya menjadi pelanggan tetap situs web Stack OverFlow. Suatu saat bahkan pengembang resmi Spring merespons. Setelah menerapkan integrasi ini, masa uji coba saya berakhir. Bos mengucapkan selamat kepada saya karena telah melewati masa percobaan, dan saya mulai menulis artikel ini. Total waktu yang dibutuhkan untuk menulis artikel ini adalah 8 jam) Terima kasih atas perhatiannya, semoga artikel ini bermanfaat. nama variabel terlalu pendek). Setelah mengalahkan CheckStyle, saya mengirimkan kode saya untuk ditinjau ke pengembang senior dan memperbaiki kesalahan saya dalam waktu seminggu. Secara umum, saya sangat beruntung karena di tim saya memiliki hubungan baik dengan pengembang kedua, yang menjelaskan banyak hal. Sebulan setelah perangkat, integrasi pertama saya diluncurkan di stand Integrasi-Fungsional (kerja semua aplikasi diuji bersama-sama), dan semuanya berfungsi di sana! Kemenangan! Tugas selanjutnya adalah membuat kelas yang memungkinkan penyembunyian data berdasarkan kunci di json. Misalnya: ada json {teks:"JavaRush"} -> pemrosesan -> {teks:"****Rush"}. Ada dua komplikasi di sini: mungkin ada {text:{mytext:"JavaRush"}} yang bersarang, dan yang lebih tidak menyenangkan adalah bersarang di dalam array: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (tentu saja Anda perlu menyembunyikan semua text.mytext). Menyelesaikan masalah ini ternyata cukup sulit, namun saya berhasil! Di sini pengembang kedua berkata: tutupi perkembangan ini dengan tes. Ada kebingungan di mata. Beginilah cara saya mengenal perpustakaan JUnit dalam pertempuran. Inti dari pengujian unit: Anda memasukkan data, meneruskannya ke dalam metode, dan membandingkan data yang diterima dengan hasil yang benar (membuat variabel dengan hasil yang benar). Saya menulis 11 kasus untuk perpustakaan saya, di mana saya memeriksa bahwa aplikasi tidak mogok dengan NullPointException dan menyembunyikan data dengan benar dengan semua jenis sarang. Setelah menyelesaikan tugas ini, saya diberi integrasi baru, yang kekhasannya adalah sebagai berikut: Saya harus mengekspor Spring Bean dari perpustakaan eksternal. Saat ini, saya menjadi pelanggan tetap situs web Stack OverFlow. Suatu saat bahkan pengembang resmi Spring merespons. Setelah menerapkan integrasi ini, masa uji coba saya berakhir. Bos mengucapkan selamat kepada saya karena telah melewati masa percobaan, dan saya mulai menulis artikel ini. Total waktu yang dibutuhkan untuk menulis artikel ini adalah 8 jam) Terima kasih atas perhatiannya, semoga artikel ini bermanfaat. Menyelesaikan masalah ini ternyata cukup sulit, namun saya berhasil! Di sini pengembang kedua berkata: tutupi perkembangan ini dengan tes. Ada kebingungan di mata. Beginilah cara saya mengenal perpustakaan JUnit dalam pertempuran. Inti dari pengujian unit: Anda memasukkan data, meneruskannya ke dalam metode, dan membandingkan data yang diterima dengan hasil yang benar (membuat variabel dengan hasil yang benar). Saya menulis 11 kasus untuk perpustakaan saya, di mana saya memeriksa bahwa aplikasi tidak mogok dengan NullPointException dan menyembunyikan data dengan benar dengan semua jenis sarang. Setelah menyelesaikan tugas ini, saya diberi integrasi baru, yang kekhasannya adalah sebagai berikut: Saya harus mengekspor Spring Bean dari perpustakaan eksternal. Saat ini, saya menjadi pelanggan tetap situs web Stack OverFlow. Suatu saat bahkan pengembang resmi Spring merespons. Setelah menerapkan integrasi ini, masa uji coba saya berakhir. Bos mengucapkan selamat kepada saya karena telah melewati masa percobaan, dan saya mulai menulis artikel ini. Total waktu yang dibutuhkan untuk menulis artikel ini adalah 8 jam) Terima kasih atas perhatiannya, semoga artikel ini bermanfaat. Menyelesaikan masalah ini ternyata cukup sulit, namun saya berhasil! Di sini pengembang kedua berkata: tutupi perkembangan ini dengan tes. Ada kebingungan di mata. Beginilah cara saya mengenal perpustakaan JUnit dalam pertempuran. Inti dari pengujian unit: Anda memasukkan data, meneruskannya ke dalam metode, dan membandingkan data yang diterima dengan hasil yang benar (membuat variabel dengan hasil yang benar). Saya menulis 11 kasus untuk perpustakaan saya, di mana saya memeriksa bahwa aplikasi tidak mogok dengan NullPointException dan menyembunyikan data dengan benar dengan semua jenis sarang. Setelah menyelesaikan tugas ini, saya diberi integrasi baru, yang kekhasannya adalah sebagai berikut: Saya harus mengekspor Spring Bean dari perpustakaan eksternal. Saat ini, saya menjadi pelanggan tetap situs web Stack OverFlow. Suatu saat bahkan pengembang resmi Spring merespons. Setelah menerapkan integrasi ini, masa uji coba saya berakhir. Bos mengucapkan selamat kepada saya karena telah melewati masa percobaan, dan saya mulai menulis artikel ini. Total waktu yang dibutuhkan untuk menulis artikel ini adalah 8 jam) Terima kasih atas perhatiannya, semoga artikel ini bermanfaat.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION