JavaRush /Java blogi /Random-UZ /Hiyla yoki qanday qilib Java-da tajribasiz o'rta Java das...
Юрий
Daraja
Москва

Hiyla yoki qanday qilib Java-da tajribasiz o'rta Java dasturchisi sifatida ishga kirish mumkin

Guruhda nashr etilgan
Barcha Java talabalari va mutaxassislariga salom. Ehtimol, mening hikoyam ba'zilar uchun buni qanday qilish kerakligi va boshqalar uchun - buni qanday qilmaslik haqida o'rnak bo'ladi. Bu 2021-yil 19-oktabr va bugun men yirik kompaniyada Java oʻrta dasturchisi sifatida sinov muddatini (3 oy) tugatdim. Javani ishlab chiqishda oldingi tajribam yo'q edi. 2020-yil 4-iyungacha men Java haqida hech narsa bilmasdim. Men Javaist sifatida ishga qabul qilinganimda, agar sinov muddatidan o‘tsam, muvaffaqiyat hikoyasi yozishga va’da bergandim.Ushbu maqola ikki mantiqiy qismga bo‘linadi: Karyera ma’lumotlari ( 1-5 boblar, Java bilan bog‘liq emas), lekin unda siz o'z martabangiz haqida ma'lumot olishingiz mumkin). Javaist bo'lish (6-9-boblar - Java o'rganish, suhbatlar, ishga joylashish, birinchi haqiqiy tajriba). <h3>1-bo'lim. Iqtisodchi</h3>JavaRush-ga qanday bilim darajasida kelganimni tushunish uchun o'zim haqimda biografik eslatma berishim kerak. 2013 yil, noyabr, ertalab soat 8. Men Tagankadagi qahvaxonada o'tirib, SQL ko'rsatmalarini takrorlayman. Bir soatdan keyin men bankning moliya bo'limida etakchi iqtisodchi lavozimiga intervyu olaman. Bu meni taklif qilgan yagona intervyu va men uni 100% berishim kerak. Uning uchun men Sankt-Peterburgdan uchib ketdim va allaqachon kichik jamg'armalarimni sarflamaslik uchun oshxonada qarindoshlarimnikida qoldim. 30 daqiqa o'tadi, jambon va pishloqli kreplar iste'mol qilinadi va biz orzu qilgan orzuimiz sari harakat qilishimiz kerak. Ammo hamma narsa titrayapti. Agar intervyuda muvaffaqiyatsiz bo'lsam nima bo'ladi? OK, unday emas edi. Men bankka boraman, ruxsatnoma olaman va suhbatdoshlarimni uchrashuv zalida kutaman. Vaqt juda uzoq vaqt o'tadi. Taxminan 35 yoshli erkak va xuddi shu yoshdagi ayol kirib keladi. Ular o'zlarini tanishtiradilar va sizga o'zlari haqida aytib berishni so'rashadi: "Yuriy, bu juda yoqimli". Men 21 yoshdaman, Sankt-Peterburgdagi universitetda sirtqi bo'limda o'qiyman, bankda 3 oy kassir bo'lib ishladim. Bu men o'qiganim emasligini angladim, men mehnat bozoriga qaray boshladim va Moskvada iqtisodchilarda SQL talabi borligini ko'rdim. Shunday qilib, men uni o'rganib chiqdim, kurslarga bordim (MS SQL ma'muriyati - bu menda bor edi, men aynan shu maqsadda bordim) va siz menga qo'ng'iroq qildingiz. Ular kompaniya haqida, nima qilishlari haqida gapiradilar (ko'p so'zlar tushunarsiz), keyin sizdan test topshirishingizni so'rashadi. Testda SQL bo'yicha 3 ta savol bor: 1. Jadval berilgan, id = 10 bo'lgan barcha yozuvlarni chiqarib tashlang. 2. Berilgan ikkita jadval, ularni ulang va har biridan ustunni ko'rsating. 3. Bo'limlarni guruhlash va har bir bo'lim bo'yicha xodimlar sonini berish. Men bu so'rovlarni yozganimdan juda sharmandaliman. Shundan so'ng ishdan umidlarim muhokama qilinadi. Va ular menga sehrli iborani aytishadi: "Suhbat uchun rahmat, biz sizga qo'ng'iroq qilamiz." Bir hafta o'tadi va ular menga o'zlari bilan ishlashni taklif qilishadi. Eyforiya, shok, quvonch! Va qanday pul uchun: qo'lda 70 ming rubl! Ha, men boy bo'laman! Men Moskvaga kelaman, joylashaman, markazda xonani ijaraga olaman. Birinchi kunlar eyforik. 10 kundan keyin tushunish boshlanadi: men qayerga keldim? Men hech narsani tushunmayapman! Men har oy butun bank uchun boshqaruv hisobotlarini tayyorlashim kerak edi. Tabiiyki, men uchun ham xuddi siz uchun, aziz o'quvchi. Banklararo kredit, svoplar, xarajat taqsimoti, xarajatlar va hokazo atamalarini lotin tilidagi imlo sifatida qabul qildim. Yo'lda men masalaning texnik tomonini o'zlashtirishim kerak edi: MS Access (barcha hisobotlar u erda VBA orqali amalga oshirilgan), MS SQL (Access o'rniga yangi xotira sifatida), Oracle (dastlab men Oracle deb ataganman, bu isterikani keltirib chiqardi. dasturchilar orasida). Va birdan men texnik tomoni men uchun ancha qiziqroq ekanligini tushuna boshladim. Murakkab so'rovlarni yaratishga urinishlar mavjud (natijada ma'lumotlar bazasi mening skriptlarimdan osib qo'yiladi va g'azablangan ma'murlar buni kim qilganini aniqlashga harakat qilishadi). Ammo asosiy ish - moliya, bu meni xafa qila boshlaydi. Bir yarim oy o'tgach, men iste'foga chiqish to'g'risida ariza yozyapman, chunki men hech qanday natija bera olmayapman (to'g'risini aytsam, ular mendan hech narsa kutishmagan). Moliya bo'limi boshlig'i uni yirtib tashladi va: "Axlat bilan bezovta qilmang", deydi. Bir oy o'tgach, men yana ariza yozaman va bunday beadablikdan hayratda qolgan bo'lim boshlig'i (keyinchalik u bank boshqaruvi raisi bo'lgan) juda hayrat bilan ishora qiladi: yigit 21 yoshda, undan yuqorisi yo'q. ta'lim, ularga ham maosh, ham ishonch berildi, lekin u o'zini shunday tutadi. Ishdan bo'shatishga yana ikkita omil sabab bo'ldi: takabburligiga xotirjam munosabatda bo'lolmagan xo'jayin va belim og'riy boshlagan noqulay stul. Bu juda kulgili, ammo buning sababi. Chiqib ketganimda, endi men yanada qulayroq bo'laman deb o'yladim. Lekin u erda yo'q edi. <h3>2-bob. 70 ta intervyu</h3>Bankdan chiqib, chuqur nafas oldim. "Men buni shunday tartibga solaman, hamma hayratda qoladi." Suhbatlar rejalashtirilgan edi, ular uchun maoshlar yuqori edi va hisobot berish bilan shug'ullanishning hojati yo'qdek tuyuldi. 4 ta intervyu bor va meni hech kim ishga olmaydi. 5, 6 ta intervyu - xuddi shunday. Men bir qiz bilan ijaraga olingan xonada yashardim va u ishga joylashdi va mening daromadim yo'qligini qoplashi mumkin edi. Ammo qancha vaqt daromadim bo'lmasligini hali ham bilmasdim. Men intervyularga bordim (bo'sh ish o'rinlari va tahlilchi) va ular asosan SQL va VBA haqida so'rashdi. Bilmaydiganlar uchun VBA Excel, Access va boshqa MS Office mahsulotlarida dasturlash tilidir. 10 ta intervyu o'tkaziladi - hech narsa. 20, 30 - hech narsa. Tajriba va oliy ma'lumot yo'qligidan (menga bu kichik narsadek tuyuladi) hamma xijolat tortadi. 40 ta intervyu va umidsizlik boshlanadi. 55-60 intervyu davrida men 1C ni o'rganishni boshlayman. Xotin bo'lib qolgan qiz Sankt-Peterburgga ketishni so'raydi, chunki u erda hech bo'lmaganda o'z uyi bor. Va 70-suhbatda meni Sankt-Peterburgning sanoat zonasidagi kichik kompaniyada 1C ma'lumotlar bazasi ma'muri (1C ishlab chiqaruvchisi bo'lish istiqboli bilan) 50 000 rublga taklif qilishdi. Endi bu martaba o'sishi! <h3>3-bo'lim. Afsonaning qaytishi</h3>Kulrang Sankt-Peterburg sanoat zonasida mikroavtobus (korporativ transport) oynasidan tashqariga qarab, bir soat qirq bir yo'l yo'l bo'ylab yura olmasligimni angladim. shunday yashang. O'z-o'zidan yozilgan tizimning birinchi tegishida 1C ga qiziqish yo'qoldi. Reja kerak edi. Va u etuk bo'ldi: kechqurun u SQL-ni o'rgandi va shu bilan birga taniqli ish joyini kuzatib bordi. Ishdan bo'shatish uchun yakuniy tetik vaziyat edi: bosh direktor meni rejalashtirilgan ta'tilga qo'yib yuborishni xohlamadi, garchi chiptalar allaqachon sotib olingan bo'lsa ham. Ta'tildan keyin men ariza yozaman va yana Moskvadagi bo'sh ish o'rinlari uchun rezyumeimni yuboraman. Yana bir bor menga Moskva vaqti bilan katta bankda intervyu taklif qilishdi. Yana qarindoshlarimning oshxonasiga kelib, suhbatga boraman. Manzilni yozganimda, men ko'zlarimga ishonmadim - bu men ishlashni orzu qilgan bino edi (mening Moskvada oxirgi yashashim paytida u endigina qurilayotgan edi). Ushbu lavozim axborot tizimlarini qo'llab-quvvatlash bo'yicha bosh mutaxassis deb ataldi. Men ofisga boraman Meni moda ko'ylagi va jinsi shim kiygan 30 yoshlardagi erkak kutib oldi. Biz 15-qavatga ko‘tarildik, shahar panoramasini ko‘rib, nafasim uzildi: barcha stalincha ko‘p qavatli binolar ko‘rinib turardi. Binoning butun uslubi juda zamonaviy edi: xo'jayinning kabinetida vino muzlatgichlari, zamonaviy akvariumlar, qora va oq uslubda yalang'och ayolning surati bor edi. Bu "voy" effektini keltirib chiqardi. Boshliq bilan suhbat odatdagidek bo‘lmadi: taxminan 40 daqiqa davomida u bankda bo‘layotgan voqealar haqida gapirdi. Men hech narsani tushunmadim, lekin boshimni qimirlatib qo'ydim. Men so'raganimda: qachon mendan so'rashni boshlaysiz? U e'tibor bermadi. Yana bir bor “texnik intervyu qachon?” degan savolimga “ha, baribir sizni ishga olamiz, agar uddasidan chiqa olmasangiz, ishdan bo‘shatamiz” deb javob berdim. Bu tabassum bilan aytildi va men tushundimki, hamma narsa, orzu yana amalga oshdi! <h3>4-bo'lim. IT sohasida o'zingizni izlash </h3>Yangi joyga kelganimda, nima uchun meni darhol ishga olishganini tushundim. Men bo'lim xodimining odatiy portretini tasvirlab beraman: o'rtacha yoshi 55 yosh, moskvalik, Moskva davlat universiteti ma'lumoti, sovet davrida mudofaa ilmiy-tadqiqot institutida ishlagan va 90-yillarda bank sektoriga o'tish, bu erda 20 yildan beri ishlaydi. yil yarmi erkaklar, yarmi ayollar. Ular atrofdagi interyerlar bilan to'liq dissonansga kirishdi. Biz buxgalteriya hisobi uchun hisobot dasturlarini yuritishda ishtirok etdik. Tabiiyki, bularning barchasi 90-yillarning oxiri va 2000-yillarning boshlarida ishlab chiquvchilar tomonidan yozilgan qadimgi VBA va SQL skriptlarida edi. Bu 2015 yil edi va avtomatlashtirish MS Access orqali amalga oshirildi. Ya'ni, u juda kambag'al ko'rinardi. Lekin bir nuance bor edi - ular mijoz (buxgalteriya) xohlagan narsani taqdim etishdi. Va aniq o'z vaqtida va kerakli shaklda. Faqat ular qanday ishlashini bilishardi va hatto Onotole ham ularning rivojlanishining murakkabligini tasavvur qila olmadi. Va har qanday IT menejeri, hatto eng katta xohish bilan ham, ularni ishdan bo'shata olmadi - bosh buxgalter bank boshqaruviga borib, buxgalteriya bo'limi manfaatlariga xizmat qilgan har qanday xodimni himoya qildi. Menejer meni troyan oti rolini o'ynashimni xohladi: men ularning barcha ishlanmalarini o'rganib chiqdim, keyin esa ma'lumotlarni yangi tizimga ko'chirdim. Keyin eski xodimlarni ishdan bo'shatishlari mumkin, meni esa yangi tizimga o'tkazish mumkin. Birinchidan, men ularning jarayonlarini o'rganib chiqdim va VBA kodini ko'rib chiqdim. Asta-sekin VBA kodini o'qishni o'rgandim. Bir yil o'tgach, men kodni qanday yozishni allaqachon bildim. Oddiy vazifa: ma'lumotlar bazasini taqdim eting, undan ma'lumotlarni chiqarib oling va uni ma'lum formatda Excelga qo'ying. Endi, Zadornov aytganidek, chuqur nafas oling: bo'limning barcha hisobotlari (va bu kunlik 50 ta, oylik 20 ta hisobot!) qo'lda bajarilgan! Karl, tushunasizmi, odamlar har kuni 50 ta hisobotda o'z qo'llari bilan sanalarni +1 ga o'zgartiradilar! Ular o'tirishadi, bitta hisobotning natijasini 1-10 daqiqa kutadilar va boshqasini ishga tushiradilar! Bundan tashqari, kundalik hisobotlar ma'lum bir vaqtda ishga tushirilishi kerak va Xudo kechikishingizdan saqlasin! Ular nafaqat hisobotlarni tuzadilar, balki o'zgaruvchilardan foydalanmasdan ma'lumotlar bazasida protseduralarni qo'lda bajaradilar! Ya'ni, @startDate = '2015-01-01' o'zgaruvchisidan foydalanish o'rniga, ular 20 ta joyda bir xil sanani qo'lda o'zgartiradilar! Bularning barchasini ko'rib chiqqach, men Pythonni o'rganishni boshladim, va VBA, SQL va Vazifa rejalashtiruvchisi bilan birgalikda men bularning barchasini ikki yil ichida avtomatlashtirdim. Nafaqat avtomatlashtirilgan, balki ko'plab hisobotlarni tezlashtirdi: agar siz MS Access + VBA dan MS SQL + TSQL foydasiga voz kechsangiz, unumdorlikning bir necha bor oshishiga erishishingiz mumkin. Mening rekordim hisobot yaratishni tezlashtirmoqda100bir marta! Ammo mening hamkasblarim bunday avtomatlashtirishdan juda norozi edi, shuning uchun meni xalq dushmani deb e'lon qilishdi (ular pensiyaga qadar jim o'tirishni xohlashdi). Vaqt o'tdi va ma'lumotlarni ko'chirish muvaffaqiyatli bo'ldi. Menejer meni juda qadrladi: agar faoliyatimning boshida ishga ertalab soat 8 da kelgan bo'lsam, biroz vaqt o'tgach, istalgan vaqtda soat 12:00 gacha kelishim mumkin, ish haqi va lavozimni doimiy ravishda oshirish, dam olish kunlarida ish haqi to'lash ko'proq. ikki baravar ko'p, agar ishga kech qolgan bo'lsangiz, uyga taksi, mobil aloqa, qisqasi - elita! <h3>5-bo'lim. Oltin qafas</h3>To'satdan, 3,5 yildan so'ng, yangi IT boshqaruvi kelib, men ma'lumotlarni ko'chirgan tizim endi kerak emasligini aytadi. Ammo eski tizim saqlanib qoladi. Menejerim martaba zinapoyasida yuqoriga ko'tarilmoqda va meni yanada ilg'or bo'limga o'tishga taklif qilmoqda. Progressiv bo'lim boshlig'i bilan uchrashuvda men tushunamanki, bu bo'limning texnologiya to'plami menga noma'lum: Oracle, .net, C#, Linux va boshqalar. + Potentsial xo'jayinga nisbatan antipatiya. Men menejerimga ilg'or bo'limga qiziqmasligimni aytaman va u meni osongina unutadi. Va keyin savol tug'iladi: keyin nima qilish kerak? Daromad allaqachon munosib edi, Junior dev meni bu maoshga ishga olmadi. Ko'nikmalarim haqida o'ylab, men mashinani o'rganishga kirishim kerakligini angladim. Matematik statistika bilan birinchi uchrashuvgacha hamma narsa qiziqarli edi, bu faqat institutda nafratga sabab bo'ldi. Mana, olti oy davomida ahmoqlik! Vaqt o'tdi va bir kun yurib, Moskva xaritasida yaxshi restoranlarni ko'rsatadigan veb-sayt haqida o'yladim. HTML, CSS, JS o'rganishni boshladi. Men 3 oy o'qishni o'tkazdim; Menda to'liq veb-sayt yaratish uchun bilimim yo'q edi, lekin uni ishda mashq qilishim mumkin edi. G'oya tug'ildi: buxgalterlar uchun portal yaratish, ular tugma yordamida o'zlari uchun istalgan hisobotni yuklab olishlari mumkin. Portalni yaratishga 2 oy vaqt ketdi va SPA (Single page application) veb-ilovasi React js da Node.js backend bilan tug‘ildi. SQL skriptlarini qaytarib oldim (men Hibernate kabi ramkalar haqida bilmasdim), Python-ni ishga tushirdi va MongoDb-da qo'shimcha ma'lumotlarni saqladim (masalan, sayt foydalanuvchilari haqida). Tashqi tomondan, sayt juda yaxshi ko'rinardi (bootstrap 4, zamonaviy animatsiya). Men hali ham bu loyiha bilan faxrlanaman. Ammo men bankning veb-ishlab chiquvchilariga o'z kodimni ko'rsatganimda, ular hayratda qolishdi. O'ZINGIZNING BIR SINFI EMAS! Faqat xususiyatlar, faqat hardkor! Ular meni maqtashdi, lekin o'rta to'liq stek ishlab chiqaruvchisi bo'lish uchun hali ko'p o'rganishim kerakligini aytishdi. Men tahlilchi sifatida ishga kirishga harakat qildim, lekin maxsus takliflar bo'lmadi. O'ylaymanki: men u erda bo'lmaganman, men to'liq stek ishlab chiqaruvchisi haqidagi rezyumeni joylashtiraman. Qo'ng'iroqlar keldi, lekin intervyular davomida men Parij ustidan fanera kabi uchib ketdim: masalan, men HashMap, HashSet nima ekanligini va ular nima uchun kerakligini bilmasdim. OOP, dasturlash naqshlari, algoritmlar, testlar, Git haqida zarracha fikr yo'q edi. Men asosiy narsalarni bilmaslikdan uzoq vaqt unutilgan uyat tuyg'ularini esladim. To'satdan moliyaviy kompaniyada mijozlarni tahlil qilish bo'limi boshlig'i lavozimida ishlash taklifi keladi. Pandemiya sababli mamlakat yopilganidan bir hafta oldin. Men moliyaviy kompaniyaga ishga kirdim, lekin ikki tomonlama tuyg'u bor edi: bir tomondan, yuqori ish haqi iliq edi, boshqa tomondan, texnik tomondan minimal rivojlanish bo'lar edi. Qurilma o'rnatilib, masofaviy ish joriy qilinganidan keyin bir hafta o'tdi. Ishlamaydigan kunlar moliya sektoriga taalluqli bo'lmagani uchun biz odatdagidek ishladik. Yangi xo'jayin juda aqldan ozgan odam bo'lib chiqdi: u Facebookni qirib tashlashni, mijozlarni o'rganish uchun o'zining neyron tarmoqlarini yaratishni taklif qildi (xodimlar bo'yicha ma'lumot olimisiz). Yangi xodimlarga bir hafta ichida Python tilini o'rganish taklif qilindi va hokazo. To'lanmagan dam olish kunlari odatiy holga aylandi. Ishdan chiqish ahmoqlik edi: pandemiya paytida qayerdan ish topasiz? Ammo 2 oydan so'ng, choraklik bonuslar bo'lmasligi e'lon qilingandan keyin sabr tugadi. Nuance shundaki, biz ish haqi bo'yicha kelishib olganimizda, ishga qabul qilish vaqtida hr ish haqi ish haqi (60%) va har choraklik bonusga (40%) bo'linganligini aytdi, bu har doim to'lanadi. Noto'g'ri tanlov qilingani va biz yangi ish qidirishni boshlashimiz kerakligi ma'lum bo'ldi. <h3>6-bo'lim. Java-ni o'zlashtirishni boshlash</h3>May oyining yaxshi kunlaridan birida men “Dasturchi” bo'sh ish o'rni uchun suhbatga taklifnoma oldim. Sug'urta sohasidagi kompaniyaga sug'urta mahsulotlarini ishlab chiqadigan shaxs kerak. Dasturlash tajribasi kerak, ammo bu kompaniyaning "o'ziga xos" rivojlanishi bo'lgani uchun ma'lum bir tilga ehtiyoj yo'q. Git va boshqalar ham kerak. Men ikki kun ichida intervyu tayinladim va bo'sh vaqtimda Git asoslarini o'rgandim. Suhbat davomida mendan Python, JS, Git, SQL haqida so'rashdi. Men "usulni ortiqcha yuklash" tushunchasidan tashqari hamma narsaga javob berdim va meni 2 hafta ichida ishlashga taklif qilishdi. Ma'lum bo'lishicha, kompaniya tizimni ancha oldin sotib olgan. Java-da yozilgan (old va orqa), uning yordamida dasturlash tilini bilmasdan (aniqrog'i, o'rnatilgan Jelly dasturlash tilidan foydalangan holda) biznes jarayonlarini yaratishingiz mumkin. Bu yaxshi eshitiladi, lekin aslida hamma narsa buzilgan edi. Lirik chekinish: har qanday texnologiyaning o'z davri va o'z ko'lami bor. 2000 yilda barcha hisobotlarni faqat Excelda qilish ajoyib. 2021 yilda ham xuddi shunday qilish unchalik yaxshi emas. Sof HTML-dagi kompaniya veb-sayti 1999 yilda ajoyib edi, lekin 2021 yilda emas. Shunday qilib, kompaniya yaratilishida (2005) foydalangan texnologiya juda zo'r edi - Java ham server, ham mijoz qismi (Java servlet sahifalari) uchun javobgar edi. Bundan tashqari, agar siz yangi biznes jarayonini yaratsangiz (uning shaxsiy interfeysi mavjud), u fayldagi kodda emas, balki ma'lumotlar bazasida saqlanadi. Bu qanchalik noqulay ekanligini tushunish uchun Intellij g'oyasida Java kodini yozganingizni tasavvur qiling, uni ma'lumotlar bazasiga saqlang va keyin. kodingizni ishga tushirmoqchi bo'lganingizda, dastur yadrosi ma'lumotlar bazasiga o'tadi va u erdan kodingizni o'qiydi. Shunga ko'ra, siz ilovangizni to'liq disk raskadrovka qila olmaysiz. Maslahat №1: Kodni test stoliga yubormoqchi bo'lganingizda, yaratishingiz kerak boshqa tomondan, texnik tomondan minimal rivojlanish bo'ladi. Qurilma o'rnatilib, masofaviy ish joriy qilinganidan keyin bir hafta o'tdi. Ishlamaydigan kunlar moliya sektoriga taalluqli bo'lmagani uchun biz odatdagidek ishladik. Yangi xo'jayin juda aqldan ozgan odam bo'lib chiqdi: u Facebookni qirib tashlashni, mijozlarni o'rganish uchun o'zining neyron tarmoqlarini yaratishni taklif qildi (xodimlar bo'yicha ma'lumot olimisiz). Yangi xodimlarga bir hafta ichida Python tilini o'rganish taklif qilindi va hokazo. To'lanmagan dam olish kunlari odatiy holga aylandi. Ishdan chiqish ahmoqlik edi: pandemiya paytida qayerdan ish topasiz? Ammo 2 oydan so'ng, choraklik bonuslar bo'lmasligi e'lon qilingandan keyin sabr tugadi. Nuance shundaki, biz ish haqi bo'yicha kelishib olganimizda, ishga qabul qilish vaqtida hr ish haqi ish haqi (60%) va har choraklik bonusga (40%) bo'linganligini aytdi, bu har doim to'lanadi. Noto'g'ri tanlov qilingani va biz yangi ish qidirishni boshlashimiz kerakligi ma'lum bo'ldi. <h3>6-bo'lim. Java-ni o'zlashtirishni boshlash</h3>May oyining yaxshi kunlaridan birida men “Dasturchi” bo'sh ish o'rni uchun suhbatga taklifnoma oldim. Sug'urta sohasidagi kompaniyaga sug'urta mahsulotlarini ishlab chiqadigan shaxs kerak. Dasturlash tajribasi kerak, ammo bu kompaniyaning "o'ziga xos" rivojlanishi bo'lgani uchun ma'lum bir tilga ehtiyoj yo'q. Git va boshqalar ham kerak. Men ikki kun ichida intervyu tayinladim va bo'sh vaqtimda Git asoslarini o'rgandim. Suhbat davomida mendan Python, JS, Git, SQL haqida so'rashdi. Men "usulni ortiqcha yuklash" tushunchasidan tashqari hamma narsaga javob berdim va meni 2 hafta ichida ishlashga taklif qilishdi. Ma'lum bo'lishicha, kompaniya tizimni ancha oldin sotib olgan. Java-da yozilgan (old va orqa), uning yordamida dasturlash tilini bilmasdan (aniqrog'i, o'rnatilgan Jelly dasturlash tilidan foydalangan holda) biznes jarayonlarini yaratishingiz mumkin. Bu yaxshi eshitiladi, lekin aslida hamma narsa buzilgan edi. Lirik chekinish: har qanday texnologiyaning o'z davri va o'z ko'lami bor. 2000 yilda barcha hisobotlarni faqat Excelda qilish ajoyib. 2021 yilda ham xuddi shunday qilish unchalik yaxshi emas. Sof HTML-dagi kompaniya veb-sayti 1999 yilda ajoyib edi, lekin 2021 yilda emas. Shunday qilib, kompaniya yaratilishida (2005) foydalangan texnologiya juda zo'r edi - Java ham server, ham mijoz qismi (Java servlet sahifalari) uchun javobgar edi. Bundan tashqari, agar siz yangi biznes jarayonini yaratsangiz (uning shaxsiy interfeysi mavjud), u fayldagi kodda emas, balki ma'lumotlar bazasida saqlanadi. Bu qanchalik noqulay ekanligini tushunish uchun Intellij g'oyasida Java kodini yozganingizni tasavvur qiling, uni ma'lumotlar bazasiga saqlang va keyin. kodingizni ishga tushirmoqchi bo'lganingizda, dastur yadrosi ma'lumotlar bazasiga o'tadi va u erdan kodingizni o'qiydi. Shunga ko'ra, siz ilovangizni to'liq disk raskadrovka qila olmaysiz. Maslahat №1: Kodni test stoliga yubormoqchi bo'lganingizda, yaratishingiz kerak boshqa tomondan, texnik tomondan minimal rivojlanish bo'ladi. Qurilma o'rnatilib, masofaviy ish joriy qilinganidan keyin bir hafta o'tdi. Ishlamaydigan kunlar moliya sektoriga taalluqli bo'lmagani uchun biz odatdagidek ishladik. Yangi xo'jayin juda aqldan ozgan odam bo'lib chiqdi: u Facebookni qirib tashlashni, mijozlarni o'rganish uchun o'zining neyron tarmoqlarini yaratishni taklif qildi (xodimlar bo'yicha ma'lumot olimisiz). Yangi xodimlarga bir hafta ichida Python tilini o'rganish taklif qilindi va hokazo. To'lanmagan dam olish kunlari odatiy holga aylandi. Ishdan chiqish ahmoqlik edi: pandemiya paytida qayerdan ish topasiz? Ammo 2 oydan so'ng, choraklik bonuslar bo'lmasligi e'lon qilingandan keyin sabr tugadi. Nuance shundaki, biz ish haqi bo'yicha kelishib olganimizda, ishga qabul qilish vaqtida hr ish haqi ish haqi (60%) va har choraklik bonusga (40%) bo'linganligini aytdi, bu har doim to'lanadi. Noto'g'ri tanlov qilingani va biz yangi ish qidirishni boshlashimiz kerakligi ma'lum bo'ldi. <h3>6-bo'lim. Java-ni o'zlashtirishni boshlash</h3>May oyining yaxshi kunlaridan birida men “Dasturchi” bo'sh ish o'rni uchun suhbatga taklifnoma oldim. Sug'urta sohasidagi kompaniyaga sug'urta mahsulotlarini ishlab chiqadigan shaxs kerak. Dasturlash tajribasi kerak, ammo bu kompaniyaning "o'ziga xos" rivojlanishi bo'lgani uchun ma'lum bir tilga ehtiyoj yo'q. Git va boshqalar ham kerak. Men ikki kun ichida intervyu tayinladim va bo'sh vaqtimda Git asoslarini o'rgandim. Suhbat davomida mendan Python, JS, Git, SQL haqida so'rashdi. Men "usulni ortiqcha yuklash" tushunchasidan tashqari hamma narsaga javob berdim va meni 2 hafta ichida ishlashga taklif qilishdi. Ma'lum bo'lishicha, kompaniya tizimni ancha oldin sotib olgan. Java-da yozilgan (old va orqa), uning yordamida dasturlash tilini bilmasdan (aniqrog'i, o'rnatilgan Jelly dasturlash tilidan foydalangan holda) biznes jarayonlarini yaratishingiz mumkin. Bu yaxshi eshitiladi, lekin aslida hamma narsa buzilgan edi. Lirik chekinish: har qanday texnologiyaning o'z davri va o'z ko'lami bor. 2000 yilda barcha hisobotlarni faqat Excelda qilish ajoyib. 2021 yilda ham xuddi shunday qilish unchalik yaxshi emas. Sof HTML-dagi kompaniya veb-sayti 1999 yilda ajoyib edi, lekin 2021 yilda emas. Shunday qilib, kompaniya yaratilishida (2005) foydalangan texnologiya juda zo'r edi - Java ham server, ham mijoz qismi (Java servlet sahifalari) uchun javobgar edi. Bundan tashqari, agar siz yangi biznes jarayonini yaratsangiz (uning shaxsiy interfeysi mavjud), u fayldagi kodda emas, balki ma'lumotlar bazasida saqlanadi. Bu qanchalik noqulay ekanligini tushunish uchun Intellij g'oyasida Java kodini yozganingizni tasavvur qiling, uni ma'lumotlar bazasiga saqlang va keyin. kodingizni ishga tushirmoqchi bo'lganingizda, dastur yadrosi ma'lumotlar bazasiga o'tadi va u erdan kodingizni o'qiydi. Shunga ko'ra, siz ilovangizni to'liq disk raskadrovka qila olmaysiz. Maslahat №1: Kodni test stoliga yubormoqchi bo'lganingizda, yaratishingiz kerak mijozlarni o'rganish uchun o'zingizning neyron tarmoqlaringizni yarating (xodimlar bo'yicha ma'lumot olimisiz). Yangi xodimlarga bir hafta ichida Python tilini o'rganish taklif qilindi va hokazo. To'lanmagan dam olish kunlari odatiy holga aylandi. Ishdan chiqish ahmoqlik edi: pandemiya paytida qayerdan ish topasiz? Ammo 2 oydan so'ng, choraklik bonuslar bo'lmasligi e'lon qilingandan keyin sabr tugadi. Nuance shundaki, biz ish haqi bo'yicha kelishib olganimizda, ishga qabul qilish vaqtida hr ish haqi ish haqi (60%) va har choraklik bonusga (40%) bo'linganligini aytdi, bu har doim to'lanadi. Noto'g'ri tanlov qilingani va biz yangi ish qidirishni boshlashimiz kerakligi ma'lum bo'ldi. <h3>6-bo'lim. Java-ni o'zlashtirishni boshlash</h3>May oyining yaxshi kunlaridan birida men “Dasturchi” bo'sh ish o'rni uchun suhbatga taklifnoma oldim. Sug'urta sohasidagi kompaniyaga sug'urta mahsulotlarini ishlab chiqadigan shaxs kerak. Dasturlash tajribasi kerak, ammo bu kompaniyaning "o'ziga xos" rivojlanishi bo'lgani uchun ma'lum bir tilga ehtiyoj yo'q. Git va boshqalar ham kerak. Men ikki kun ichida intervyu tayinladim va bo'sh vaqtimda Git asoslarini o'rgandim. Suhbat davomida mendan Python, JS, Git, SQL haqida so'rashdi. Men "usulni ortiqcha yuklash" tushunchasidan tashqari hamma narsaga javob berdim va meni 2 hafta ichida ishlashga taklif qilishdi. Ma'lum bo'lishicha, kompaniya tizimni ancha oldin sotib olgan. Java-da yozilgan (old va orqa), uning yordamida dasturlash tilini bilmasdan (aniqrog'i, o'rnatilgan Jelly dasturlash tilidan foydalangan holda) biznes jarayonlarini yaratishingiz mumkin. Bu yaxshi eshitiladi, lekin aslida hamma narsa buzilgan edi. Lirik chekinish: har qanday texnologiyaning o'z davri va o'z ko'lami bor. 2000 yilda barcha hisobotlarni faqat Excelda qilish ajoyib. 2021 yilda ham xuddi shunday qilish unchalik yaxshi emas. Sof HTML-dagi kompaniya veb-sayti 1999 yilda ajoyib edi, lekin 2021 yilda emas. Shunday qilib, kompaniya yaratilishida (2005) foydalangan texnologiya juda zo'r edi - Java ham server, ham mijoz qismi (Java servlet sahifalari) uchun javobgar edi. Bundan tashqari, agar siz yangi biznes jarayonini yaratsangiz (uning shaxsiy interfeysi mavjud), u fayldagi kodda emas, balki ma'lumotlar bazasida saqlanadi. Bu qanchalik noqulay ekanligini tushunish uchun Intellij g'oyasida Java kodini yozganingizni tasavvur qiling, uni ma'lumotlar bazasiga saqlang va keyin. kodingizni ishga tushirmoqchi bo'lganingizda, dastur yadrosi ma'lumotlar bazasiga o'tadi va u erdan kodingizni o'qiydi. Shunga ko'ra, siz ilovangizni to'liq disk raskadrovka qila olmaysiz. Maslahat №1: Kodni test stoliga yubormoqchi bo'lganingizda, yaratishingiz kerak mijozlarni o'rganish uchun o'zingizning neyron tarmoqlaringizni yarating (xodimlar bo'yicha ma'lumot olimisiz). Yangi xodimlarga bir hafta ichida Python tilini o'rganish taklif qilindi va hokazo. To'lanmagan dam olish kunlari odatiy holga aylandi. Ishdan chiqish ahmoqlik edi: pandemiya paytida qayerdan ish topasiz? Ammo 2 oydan so'ng, choraklik bonuslar bo'lmasligi e'lon qilingandan keyin sabr tugadi. Nuance shundaki, biz ish haqi bo'yicha kelishib olganimizda, ishga qabul qilish vaqtida hr ish haqi ish haqi (60%) va har choraklik bonusga (40%) bo'linganligini aytdi, bu har doim to'lanadi. Noto'g'ri tanlov qilingani va biz yangi ish qidirishni boshlashimiz kerakligi ma'lum bo'ldi. <h3>6-bo'lim. Java-ni o'zlashtirishni boshlash</h3>May oyining yaxshi kunlaridan birida men “Dasturchi” bo'sh ish o'rni uchun suhbatga taklifnoma oldim. Sug'urta sohasidagi kompaniyaga sug'urta mahsulotlarini ishlab chiqadigan shaxs kerak. Dasturlash tajribasi kerak, ammo bu kompaniyaning "o'ziga xos" rivojlanishi bo'lgani uchun ma'lum bir tilga ehtiyoj yo'q. Git va boshqalar ham kerak. Men ikki kun ichida intervyu tayinladim va bo'sh vaqtimda Git asoslarini o'rgandim. Suhbat davomida mendan Python, JS, Git, SQL haqida so'rashdi. Men "usulni ortiqcha yuklash" tushunchasidan tashqari hamma narsaga javob berdim va meni 2 hafta ichida ishlashga taklif qilishdi. Ma'lum bo'lishicha, kompaniya tizimni ancha oldin sotib olgan. Java-da yozilgan (old va orqa), uning yordamida dasturlash tilini bilmasdan (aniqrog'i, o'rnatilgan Jelly dasturlash tilidan foydalangan holda) biznes jarayonlarini yaratishingiz mumkin. Bu yaxshi eshitiladi, lekin aslida hamma narsa buzilgan edi. Lirik chekinish: har qanday texnologiyaning o'z davri va o'z ko'lami bor. 2000 yilda barcha hisobotlarni faqat Excelda qilish ajoyib. 2021 yilda ham xuddi shunday qilish unchalik yaxshi emas. Sof HTML-dagi kompaniya veb-sayti 1999 yilda ajoyib edi, lekin 2021 yilda emas. Shunday qilib, kompaniya yaratilishida (2005) foydalangan texnologiya juda zo'r edi - Java ham server, ham mijoz qismi (Java servlet sahifalari) uchun javobgar edi. Bundan tashqari, agar siz yangi biznes jarayonini yaratsangiz (uning shaxsiy interfeysi mavjud), u fayldagi kodda emas, balki ma'lumotlar bazasida saqlanadi. Bu qanchalik noqulay ekanligini tushunish uchun Intellij g'oyasida Java kodini yozganingizni tasavvur qiling, uni ma'lumotlar bazasiga saqlang va keyin. kodingizni ishga tushirmoqchi bo'lganingizda, dastur yadrosi ma'lumotlar bazasiga o'tadi va u erdan kodingizni o'qiydi. Shunga ko'ra, siz ilovangizni to'liq disk raskadrovka qila olmaysiz. Maslahat №1: Kodni test stoliga yubormoqchi bo'lganingizda, yaratishingiz kerak <h3>6-bo'lim. Java-ni o'zlashtirishni boshlash</h3>May oyining yaxshi kunlaridan birida men “Dasturchi” bo'sh ish o'rni uchun suhbatga taklifnoma oldim. Sug'urta sohasidagi kompaniyaga sug'urta mahsulotlarini ishlab chiqadigan shaxs kerak. Dasturlash tajribasi kerak, ammo bu kompaniyaning "o'ziga xos" rivojlanishi bo'lgani uchun ma'lum bir tilga ehtiyoj yo'q. Git va boshqalar ham kerak. Men ikki kun ichida intervyu tayinladim va bo'sh vaqtimda Git asoslarini o'rgandim. Suhbat davomida mendan Python, JS, Git, SQL haqida so'rashdi. Men "usulni ortiqcha yuklash" tushunchasidan tashqari hamma narsaga javob berdim va meni 2 hafta ichida ishlashga taklif qilishdi. Ma'lum bo'lishicha, kompaniya tizimni ancha oldin sotib olgan. Java-da yozilgan (old va orqa), uning yordamida dasturlash tilini bilmasdan (aniqrog'i, o'rnatilgan Jelly dasturlash tilidan foydalangan holda) biznes jarayonlarini yaratishingiz mumkin. Bu yaxshi eshitiladi, lekin aslida hamma narsa buzilgan edi. Lirik chekinish: har qanday texnologiyaning o'z davri va o'z ko'lami bor. 2000 yilda barcha hisobotlarni faqat Excelda qilish ajoyib. 2021 yilda ham xuddi shunday qilish unchalik yaxshi emas. Sof HTML-dagi kompaniya veb-sayti 1999 yilda ajoyib edi, lekin 2021 yilda emas. Shunday qilib, kompaniya yaratilishida (2005) foydalangan texnologiya juda zo'r edi - Java ham server, ham mijoz qismi (Java servlet sahifalari) uchun javobgar edi. Bundan tashqari, agar siz yangi biznes jarayonini yaratsangiz (uning shaxsiy interfeysi mavjud), u fayldagi kodda emas, balki ma'lumotlar bazasida saqlanadi. Bu qanchalik noqulay ekanligini tushunish uchun Intellij g'oyasida Java kodini yozganingizni tasavvur qiling, uni ma'lumotlar bazasiga saqlang va keyin. kodingizni ishga tushirmoqchi bo'lganingizda, dastur yadrosi ma'lumotlar bazasiga o'tadi va u erdan kodingizni o'qiydi. Shunga ko'ra, siz ilovangizni to'liq disk raskadrovka qila olmaysiz. Maslahat №1: Kodni test stoliga yubormoqchi bo'lganingizda, yaratishingiz kerak <h3>6-bo'lim. Java-ni o'zlashtirishni boshlash</h3>May oyining yaxshi kunlaridan birida men “Dasturchi” bo'sh ish o'rni uchun suhbatga taklifnoma oldim. Sug'urta sohasidagi kompaniyaga sug'urta mahsulotlarini ishlab chiqadigan shaxs kerak. Dasturlash tajribasi kerak, ammo bu kompaniyaning "o'ziga xos" rivojlanishi bo'lgani uchun ma'lum bir tilga ehtiyoj yo'q. Git va boshqalar ham kerak. Men ikki kun ichida intervyu tayinladim va bo'sh vaqtimda Git asoslarini o'rgandim. Suhbat davomida mendan Python, JS, Git, SQL haqida so'rashdi. Men "usulni ortiqcha yuklash" tushunchasidan tashqari hamma narsaga javob berdim va meni 2 hafta ichida ishlashga taklif qilishdi. Ma'lum bo'lishicha, kompaniya tizimni ancha oldin sotib olgan. Java-da yozilgan (old va orqa), uning yordamida dasturlash tilini bilmasdan (aniqrog'i, o'rnatilgan Jelly dasturlash tilidan foydalangan holda) biznes jarayonlarini yaratishingiz mumkin. Bu yaxshi eshitiladi, lekin aslida hamma narsa buzilgan edi. Lirik chekinish: har qanday texnologiyaning o'z davri va o'z ko'lami bor. 2000 yilda barcha hisobotlarni faqat Excelda qilish ajoyib. 2021 yilda ham xuddi shunday qilish unchalik yaxshi emas. Sof HTML-dagi kompaniya veb-sayti 1999 yilda ajoyib edi, lekin 2021 yilda emas. Shunday qilib, kompaniya yaratilishida (2005) foydalangan texnologiya juda zo'r edi - Java ham server, ham mijoz qismi (Java servlet sahifalari) uchun javobgar edi. Bundan tashqari, agar siz yangi biznes jarayonini yaratsangiz (uning shaxsiy interfeysi mavjud), u fayldagi kodda emas, balki ma'lumotlar bazasida saqlanadi. Bu qanchalik noqulay ekanligini tushunish uchun Intellij g'oyasida Java kodini yozganingizni tasavvur qiling, uni ma'lumotlar bazasiga saqlang va keyin. kodingizni ishga tushirmoqchi bo'lganingizda, dastur yadrosi ma'lumotlar bazasiga o'tadi va u erdan kodingizni o'qiydi. Shunga ko'ra, siz ilovangizni to'liq disk raskadrovka qila olmaysiz. Maslahat №1: Kodni test stoliga yubormoqchi bo'lganingizda, yaratishingiz kerak Sof HTML-dagi kompaniya veb-sayti 1999 yilda ajoyib edi, lekin 2021 yilda emas. Shunday qilib, kompaniya yaratilishida (2005) foydalangan texnologiya juda zo'r edi - Java ham server, ham mijoz qismi (Java servlet sahifalari) uchun javobgar edi. Bundan tashqari, agar siz yangi biznes jarayonini yaratsangiz (uning shaxsiy interfeysi mavjud), u fayldagi kodda emas, balki ma'lumotlar bazasida saqlanadi. Bu qanchalik noqulay ekanligini tushunish uchun Intellij g'oyasida Java kodini yozganingizni tasavvur qiling, uni ma'lumotlar bazasiga saqlang va keyin. kodingizni ishga tushirmoqchi bo'lganingizda, dastur yadrosi ma'lumotlar bazasiga o'tadi va u erdan kodingizni o'qiydi. Shunga ko'ra, siz ilovangizni to'liq disk raskadrovka qila olmaysiz. Maslahat №1: Kodni test stoliga yubormoqchi bo'lganingizda, yaratishingiz kerak Sof HTML-dagi kompaniya veb-sayti 1999 yilda ajoyib edi, lekin 2021 yilda emas. Shunday qilib, kompaniya yaratilishida (2005) foydalangan texnologiya juda zo'r edi - Java ham server, ham mijoz qismi (Java servlet sahifalari) uchun javobgar edi. Bundan tashqari, agar siz yangi biznes jarayonini yaratsangiz (uning shaxsiy interfeysi mavjud), u fayldagi kodda emas, balki ma'lumotlar bazasida saqlanadi. Bu qanchalik noqulay ekanligini tushunish uchun Intellij g'oyasida Java kodini yozganingizni tasavvur qiling, uni ma'lumotlar bazasiga saqlang va keyin. kodingizni ishga tushirmoqchi bo'lganingizda, dastur yadrosi ma'lumotlar bazasiga o'tadi va u erdan kodingizni o'qiydi. Shunga ko'ra, siz ilovangizni to'liq disk raskadrovka qila olmaysiz. Maslahat №1: Kodni test stoliga yubormoqchi bo'lganingizda, yaratishingiz kerakSQL скрипт, bu sizning kodingizni o'z ichiga oladi. Noxush, ammo chidash mumkinmi? Zest №2: Ma'lumotlar bazasi bir-biri bilan bog'langan 200 dan ortiq jadvallardan iborat. Bu sizning kodingizni qaysi jadvallarga kiritish kerakligini va boshqa jadvallarda qaysi ob'ektlarni yaratish kerakligini bilishingiz kerakligini anglatadi. Chiqish - uzunligi ~ 1000 satr bo'lgan SQL skripti. Bu haqiqatan ham jirkanch. Merosdan ehtiyot bo'ling. Qisqasi, hammasi Javada ekanligini tushunib, JavaRush ga kirdim (nihoyat sayt mavzusiga yetib keldik!). Iyun-iyul 2020. Birinchi 10 daraja tezda yopildi (balki bir oy), chunki tubdan yangi narsa yo'q edi. Keyin tezlik sekinlashdi. 2020 yil iyul-oktyabr. 10-20 darajalar yopildi. 2021 yil oktyabr-mart. 20-30 darajalar yopildi. Endi qiziq boshlanadi: 2021 yil mart oyida men Java bo'sh ish o'rinlarini ko'rib chiqishni boshladim va u erda juda ko'p notanish so'zlar borligini angladim. Ba'zi turdagi Spring, SpringBoot, Hibernate, JUnit. Taniqli veb-saytda video kurslarni sotib olib, men bahorga tegdim va endi men hamma narsani bilaman va qila olaman deb o'yladim. Shundan so'ng men Grigoriy Kislinning TopJava kursiga duch keldim. Uning veb-saytida siz test topshirig'ini bajarishga urinib ko'rishingiz mumkin va agar muvaffaqiyat qozonsangiz, kursni o'tashingiz mumkin. Ushbu kursda siz to'liq huquqli veb-ilovani yaratasiz va hatto uni Internetda nashr etasiz. Ushbu pul evaziga ular sizga sharh beradilar (kodni tajribaliroq dasturchi ko'rib chiqadi), fikr-mulohazalarni bildiradi va muammolar yuzaga kelganda sizga maslahatlar beradi. Men 3-uy vazifasini oldim va chiqdim. Sababi oddiy: ular sizdan ko'p narsani talab qilishadi, lekin ular sizga hech qanday bilim bermaydilar. Uy vazifasi talablari juda chalkash. Ma'lumotlar juda ziddiyatli tarzda taqdim etilgan. Mening sub'ektiv fikrimcha, ushbu kurs boshqa shunga o'xshash tillardan kelgan juda tajribali dasturchilarga kerak. Chunki uning kursida u foydalanishni so'ragan texnologiyalar haqida deyarli hech qanday tushuntirish yo'q. Shuningdek, siz Gitni yaxshi bilishingiz kerak (hamma narsa sizning shaxsiy omboringizga yuboriladi). 2021 yil aprel oyining oxirida men Java dasturchisi uchun rezyumeni joylashtiryapman (o'rta+ darajadagi kerakli ish haqi bilan), unda men oxirgi ishimda Java-da dasturlashtirganimni bildiraman (yolg'on gapirganman). Shu kuni bank Java dasturchi lavozimiga ariza qabul qiladi. <h3>7-bob. Java intervyulari va malaka oshirish</h3>Xo'sh, reja qanday edi? Men yaxshi maosh olishim kerak, chunki men allaqachon katta daromad + kreditlar bilan yashashga o'rganib qolganman. Shuning uchun kichik lavozimlar men uchun mos emas. Siz o'rta ish topishingiz kerak. Lekin kim meni tajribasiz ishga oladi? Qaror o‘z-o‘zidan paydo bo‘ldi: mehnat daftarchasida aytilishicha, men bir yil ishlab chiquvchi, yana 4 yil avvalgi lavozimimda IT bo‘limida ekspert bo‘lib ishlaganman. Shunday qilib, men Java-da bir yildan beri rivojlanayotganimni aytaman. Va agar ular yangi mahsulotlar haqida so'rashsa, men aytamanki, eski Java (7) u erda edi va hech narsani qo'llab-quvvatlamadi. Birinchi (masofaviy) suhbatimdan oldin men asabiy edim. Menda tajriba yo'q, bilimim juda kam va men ko'p pul so'rayapman. Menimcha: parvo qilma, salbiy tajriba ham tajriba. Men Skype orqali bog'lanaman va men ikkita bo'lim boshlig'i bilan suhbatlashaman. Bu esa meni yanada qayg‘uga soldi. Savollar boshlandi: OOP, HashMap qurilmasi, oqimlar, ma'lumotlar tuzilmalari, Spring, Hibernate, AOP nima. Va agar Spingdan oldin u ko'proq yoki kamroq bardoshli bo'lsa, bahorda u butunlay parchalanib ketdi. Odamlar mendan so'rashadi: agar siz buni bilmasangiz, bahorda qanday rivojlangansiz? Men: Men uni nusxaladim, joylashtirdim, ishlaydi va buning uchun rahmat. Bu javob ularni hayratda qoldirdi. Keyin ular SQL haqida so'rashdi, unda men suvga o'rdakdek bo'ldim. Keyingisi Git edi va rebase, cherry-pick (buni men ham bilmasdim) va JS haqida tugatdim, chunki u mening rezyumeimda keltirilgan. U erda ham to'liq muvaffaqiyatsizlik yuz berdi, chunki ular OOP JS haqida so'rashdi. Suhbat natijalariga ko'ra, mening bilimlarim comme il faut emasligi ma'lum bo'ldi va shuning uchun men bu vakansiyaga munosib emasman. Kechqurun HR mening nomzodligim ma'qullanganini va ular menga qo'ng'iroq qilishga tayyorligini yozadi. Men haqiqatan ham McDonald'sdagi burgerni bo'g'ib qo'ydim. Men xursand bo'ldim, lekin 3 kundan keyin HR boshqa nomzodni tanlaganliklarini xabar qildi. Mening tajribamda birinchi marta taklif qaytarib olindi. Java-dagi birinchi intervyudan so'ng men o'yinimni kuchaytirdim: men video kurslarni sotish bo'yicha taniqli saytdagi Colt Steele-dan Git-da kurs oldim (va uni to'liq tugatdim!). Bu mening Git haqidagi tasavvurimni o'zgartirdi. Keyin, men Zaur Tregulovdan Spring+Hibernate bo'yicha (brilliant) kurs oldim. Trening sxemasi: Men buni videodagi kabi ko'raman, kompyuterimda ham shunday qilaman, lekin birovning kodini ahmoqona nusxa ko'chirmaslik uchun o'zgaruvchilar va sinflarni boshqacha nomlayman. Men barcha ishlarimni Github-ga yuklayman (shunda Git bilan shug'ullanaman). May oyining o'rtalari edi va soat dan qo'ng'iroqlar boshlandi. Biz intervyularni birin-ketin rejalashtirishni boshladik. Ko'pgina taklifnomalar quyidagi sabablarga ko'ra bekor qilinishi kerak edi: HR mening rezyumening tavsifini o'qimadi va meni yuqori lavozimga taklif qildi. Alohida HR kastasini ham eslatib o'tish kerak: Java-ni JavaScript bilan aralashtirib yuboradiganlar. Shuning uchun men rezyume sarlavhasida Middle Java dasturchisi deb yozdim. <h3>8-bob. Odatdagi savollar ro'yxati va intervyu qanday o'tadi</h3>Men intervyularga borishni boshladim va asta-sekin o'rtada asosiy savollar to'plamini shakllantirdim. Majburiy: 0. OOP - ta'rif, OOP ning har bir tamoyili haqida gapiring (+hayotdan misol keltiring). 1. Teng va xeshkod - ular o'rtasidagi shartnoma (munosabat) qanday? 2. HashMap - ob'ekt qaysi chelakka tushishini, to'qnashuv nima ekanligini, ma'lumotlar HashMap ichida qanday ma'lumotlar strukturasida saqlanadi, standart o'lcham, chelaklar soni qanday ko'payishini qanday tushunish mumkin. 3. Stream - qanday operatsiyalar turlari, ular orasidagi farq nima, har bir operatsiya turiga misol keltiring. 4. String pool, Integer pool - bu nima? 5. Uyma, stack - bu nima, farqi nimada? 6. Runnable, Thread, Future o'rtasidagi farqlar. 7. Uchuvchanlik, atomlik. 8. Qattiq, Kiss, Dry - ta'riflar, real hayotdan misollar. 9. Java tilidagi kirish modifikatorlari. 10. Abstrakt sinf va interfeys o'rtasidagi farq nima. Interfeys shaxsiy bo'lishi mumkinmi? 11. Funktsional interfeyslar. 12. Barcha Ob'ekt usullarini sanab o'ting va ular nima uchun kerakligini ayting. Klonlash usulining xususiyatlari. 13. Seriyalashtirish va seriyadan chiqarish nima. 14. Resurslar bilan tutib ko'ring - bu nima ekanligini tasvirlab bering, Closeable interfeysi yordamida ayting. 15. Final, nihoyat, yakunlash o'rtasidagi farqlar? 16. Haddan tashqari yuk, Usulni bekor qilish - bu farq. 17. Nima uchun String o'zgarmas qilib yaratilgan, StringBuilder va StringBuffer haqida gapirib bering. 18. Vaqt murakkabligi O(1), xotira murakkabligi nima. 19. Ma'lumotlar tuzilmalari: xarita, to'plam, navbat, deque, list va ularni Java-da amalga oshirish (treeMap, hashSet, hashMap, arrayList, linkedList, priorityQueue, blockingQueue) haqida gapiring, kiritishning murakkabligini (eng yomon, o'rtacha, eng yaxshi) tavsiflang, qidirish, har bir strukturadagi elementni olib tashlash. 20. Java tilidagi ibtidoiy ma'lumotlar turlari. Nima uchun ularning har biri kerak? 21. Xatolar turlari. Belgilangan va belgilanmagan istisnolar. 22. JVM, JRE, JDK nima? 23. Qaysi kollektorlar bilan ishlagansiz? Maven - hayot aylanishini qurish. 24. Bahor - IOC ta'riflari, Di, Bean Lifecycle, Context, @Bean Annotations, @Configuration, @Autowired, @Advice, @Aspect, @Service, @Repository. 25. Jenerik - pastki va yuqori chegara nimaning ta'rifi? 26.Dasturlash naqshlari - hech bo'lmaganda Singleton (nega bu ba'zan anti-pattern ekanligini aytishga tayyor) + Builder, Adapter, Factory, Decorator, Proxt. Kerakli: 26. Test - test turlari, qaysi kutubxonalar (JUnit) bilan ishlagan. Mock, Stab, Spy nima? 27. Spring boot - bu nima uchun kerak, SpringBoot ilovasini onlayn qilishga tayyorlik. 28. Hibernate - bu nima uchun kerak, Entity, join column, lazy vs eager loading, keshlash darajalari (qattiq). 29. Bahorgi dam olish - bu nima uchun kerak, qanday qilib @post, @get endpoints qilish kerak. Parametrlarni/so'rov tanasini qanday o'qish mumkin? Json formatida qanday yuborish kerak? 30. Ma'lumotlar tuzilmalari - daraxtlar, ularning turlari. 31. Algoritmlar - saralash turlari. Java-dan tashqari ular quyidagilarni so'rashlari mumkin: 1. (Talab qilinadi!) Git - bu nima uchun kerak, operatsiyalarni birlashtirish, qayta tiklash, olcha tanlash, surish, tortish, bajarish, log, checkout, filial, qayta o'rnatish, qaytarish, yangilash. 2.SQL - so'rov yozish qobiliyati: ikkita jadvalni bittaga birlashtirish (ichki birlashma, chap qo'shilish). 3. Ma'lumotlar bazalari - 3 ta oddiy shakllar, indekslar (ular nima uchun kerak, turlari), birlamchi kalit, xorijiy kalit Oddiy masofaviy intervyu qanday o'tadi: hr kattalashtirish uchun havola yuboradi (Skype, Google Meeting). Muayyan vaqtga kelib siz ulanasiz va u erda 1 dan 3 kishigacha (texnik mutaxassis, xo'jayin, soat) bor. Ayniqsa, o'jar holatlarda, 8 kishigacha. Avval siz o'zingiz haqingizda, keyin texnik qism, so'ngra bo'sh ish o'rinlari haqida hikoya va xayrlashasiz (ular siz bilan qachon bog'lanishlarini yoki keyingi qadamlar qanday bo'lishini aytishadi). Xayrlashuv paytida siz bilim haqida fikr-mulohazalaringizni so'rashingiz mumkin. Men so'radim: "Menga javoblarim davomida qulog'ingiz qayerda og'riyapti, ayta olasizmi?" Ko'p odamlar javob berishadi, lekin rad etishga tayyor bo'ling. Suhbat davomida ular quyidagilarni baholaydilar: 1. Fikringizni ifodalash qobiliyatingiz va rus tilini bilishingiz (men rus tilini yaxshi bilmasligi sababli nomzod rad etilgan bir holatni bilaman). 2. Oldingi tajriba (ular oxirgi ishingizda nima qilganingizni sinchkovlik bilan so'rashlari mumkin). 3. Sizga bosim o'tkazilganda adekvat reaktsiya (odamlar hurmatsizlik bilan gapira boshlaganlarida bitta intervyu bor edi: javoblarimga e'tibor bermaslik, o'z pozitsiyalarini singdirishga urinish va hokazo. Men suhbatni boshlanganidan 15 daqiqa o'tgach tugatdim va ular: Stressli intervyu bo'ldi!) 4. Bilimingiz darajasi. Men bu erda batafsilroq to'xtalaman. Mavzuning ta'riflarini bilish sizdan kutilgan narsaning atigi 10% ni tashkil qiladi. Bu qanday ishlashini tushunish kerak (hech bo'lmaganda yuqori darajada). Rivojlanishning qaysi bosqichida u yoki bu yechimni tanlashingizni tushuntirishga tayyorlik. Bu sizning ta'rifingizning to'g'riligidan ko'ra muhimroqdir. Men ushbu tezisni ikkita misol yordamida tahlil qilaman. Birinchi misol: intervyu paytida mendan HashMap haqida so'rashdi va men ta'rifni berdim: "bu kalit va qiymat to'plamlarini saqlaydigan ma'lumotlar tuzilmasi". Keyin suhbatdosh so'radi: TreeMap-dan nimasi farqi bor? Javob: Farqi shundaki, HashMap kalitni xeshlaydi va xeshlash tufayli kirish tezdir. Suhbatdosh darhol bizga HashMapning ichki tuzilishini aytib berishni so'radi va shu bilan birga hashCode va tenglar haqida so'radi. Va javobdan qoniqmaguningizcha yoki siz to'xtab qolmaguningizcha chuqurroq boradi. Men HashMap haqida to'g'ri javob berishni faqat 2 oylik intervyular va hexletdagi ma'lumotlar tuzilmalari bo'yicha kursdan so'ng o'rgandim. Ikkinchi misol: SOLID kontseptsiyasi. Yodlab olgan ta'rifimni berishimni so'rashadi. Ammo real hayot misollariga kelsak, muammolar boshlandi. Внимание!Agar bilmasangiz, uni ixtiro qilmang, lekin ayting: men bu mavzuni bilmayman, lekin u shunday ishlaydi deb taxmin qilishim mumkin. Ko'pgina texnik mutaxassislar, odam mavzuni tushungandek bid'at gapirsa, g'azablanadi. 5. Ish muhokamasi vaqtidagi ishtiyoq darajangiz. Sizni qiziqtirishi va bo'sh ish o'rinlari haqida savollar berishingiz kutiladi (faqat o'ylab topilganlar emas). 6. Ba'zida hazil (faqat mavzu bo'yicha) va umumiy manfaatlar muloqot qilishga yordam beradi. O'zingizning sevimli mashg'ulotlaringiz haqida gapiring, ehtimol suhbatdosh ham Dota/futbol/fantaziyani yaxshi ko'radi. Va bu nomzod sifatida siz uchun ortiqcha. Men manfaatlar jamiyati suhbatdoshning texnik tayyorgarligi pastligiga ko'z yumgan holatlarni bilaman (Siz oddiy yigitsiz, biz sizni o'rgatamiz). <h3>9-bob. Ishga kirish, olovga cho'mish </h3>Suhbatlar aprel oyining oxiridan iyul oyining o'rtalariga qadar bo'lib o'tdi. Birinchi suhbatlar noqulay edi, lekin asta-sekin vaziyat maqbul darajaga ko'tarildi. Umumiy savollar va fikr-mulohazalarni o'rganish o'zlarini his qildilar. Dastlabki 25 ta intervyu muvaffaqiyatsiz tugadi. Shundan so'ng umidsizlik lahzalari boshlandi. Hissiyotlar: agar ular meni o'sha maoshga ishga olishmasa-chi? To'satdan ishlar boshlandi: bir hafta ichida uchta kompaniya takliflar yubordi. Men o'zimga ma'lum bo'lgan, shuningdek, yaxshi maosh va masofadan ishlash imkoniyati bo'lgan kompaniyani tanladim. Suhbat davomida menga Java yadrosi va Spring haqida 30 ga yaqin savol berildi, ularning 97 foiziga toʻgʻri javob berdim. Shundan so'ng yuqori idoralar bilan aloqa o'rnatildi va 1,5 haftadan so'ng men ular bilan ishladim. Avvalo, har qanday ishga kelganingizda, siz barcha kerakli tizimlarga kirishni boshlaysiz va kerakli vositalarni o'rnatasiz. Bu bir yarim hafta davom etdi va menga birinchi vazifa berildi: sinfdagi statik matnni o'zgartirish. Loyihani ochganimda, o'zimni yomon his qildim: bitta loyiha ichida ko'plab modullar, ko'plab darslar, testlar va boshqalar bor edi. Shu nuqtada men adashib qoldim, lekin ikkinchi ishlab chiquvchi menga yordam berdi va meni tezlashtirdi. Xato 10 daqiqada tuzatildi, Git-da e'lon qilindi, tortish so'rovi (boshqa ishlab chiquvchilar kodingizni tekshiradigan ikkita filialni birlashtirish so'rovi) amalga oshirildi va keyin asosiy filialga birlashtirildi. Hamma narsa unchalik qiyin emasligi ma'lum bo'ldi. Birinchi to'liq vazifaga qadar ... Keyingi ikki hafta uchun vazifalarni rejalashtirish vaqtida ular menga aytishdi: OpenShift-da joylashgan boshqa tizim bilan integratsiyani amalga oshirasiz. Bu erda narsalar juda qo'rqinchli bo'ldi: OpenShift - bu butun texnologiyalar klasteri: Docker, Kubernetes, Linux va boshqalar. Orqamdan sovuq ter oqdi: yaxshi, men javist bo‘lib ishladim. Uchrashuvdan so'ng darhol ishlab chiquvchiga qo'ng'iroq qildim, u meni ishontirdi: ushbu tizim uchun adapterlar yozilgan va loyihamga ma'lum sinflarni import qilish kifoya edi, shundan so'ng men integratsiyadan xavfsiz foydalanishim mumkin edi. Ishlab chiquvchi odatiy integratsiyani ko'rsatmaguncha, bu yana qiziqarli bo'ldi: men shunga o'xshash integratsiya uchun yaratilgan 20 dan ortiq sinflarni ko'rdim. Bundan tashqari, ilgari ko'rilmagan @Value, @Builder, @NoArgsConstructor, @Getter izohlari e'tiborga olindi. @Sl4f - bu Lombook loyihasi bo'lib chiqdi (Internetda o'qing). Ishlab chiquvchi menga buni qanday qilishni tushuntirganida, men barcha sinflarning ulanishlarini yozishga harakat qildim va hech narsa boshimga tushmadi. Eng noqulay payt Intellij Idea haqida ma'lumot yo'qligi edi: loyihani global miqyosda qanday qidirish, kodni qayta ishlash va hokazo. Vazifani o'z zimmasiga olib, men OOP nima uchun kerakligini tushundim: bunday katta miqdordagi kod uchun uni sinflarga bo'lish kerak; sinfdan tashqarida foydalanilmaydigan usullar ularni tasodifan boshqa sinfda ishga tushirmaslik uchun shaxsiy deb e'lon qilinishi kerak va hokazo. Integratsiyani boshqa integratsiyaga o'xshatib yozganimdan so'ng, men CheckStyle - uslubni tekshiradigan maxsus plagin mavjudligi haqida bilib oldim. kodingizni o'zgartiring va xatolarni tuzatmaguningizcha loyihangizni kompilyatsiya qila olmaysiz (masalan, qo'shimcha bo'shliqlar, katta harflar bilan o'zgaruvchilar nomlari, juda qisqa o'zgaruvchilar nomlari). CheckStyle-ni mag'lubiyatga uchratganimdan so'ng, men kodimni katta ishlab chiquvchilarga ko'rib chiqish uchun yubordim va bir hafta ichida xatolarimni tuzatdim. Umuman olganda, men o'z jamoamda ko'p narsalarni tushuntirib bergan ikkinchi ishlab chiquvchi bilan yaxshi munosabatda bo'lganimdan juda baxtiyorman. Qurilmadan bir oy o'tgach, Integratsiya-Funktsional stendda mening birinchi integratsiyam ishga tushirildi (barcha ilovalarning ishi birgalikda sinovdan o'tkaziladi) va u erda hamma narsa ishladi! G'alaba! Keyingi vazifa json-da kalit bo'yicha ma'lumotlarni yashirishga imkon beradigan sinf yaratish edi. Masalan: json {matn:"JavaRush"} -> ishlov berish -> {matn:"****Rush"} mavjud. Bu yerda ikkita murakkablik bor: {matn:{mytext:"JavaRush"}} uyalar boʻlishi mumkin, bundan ham yoqimsiz jihati massiv ichida joylashishdir: {matn: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (albatta barcha matn. mytextni yashirishingiz kerak). Bu muammoni hal qilish juda qiyin bo'lib chiqdi, lekin men buni qildim! Bu erda ikkinchi ishlab chiquvchi aytadi: ushbu rivojlanishni testlar bilan yoping. Ko'zlarida hayrat bor edi. Men jangda JUnit kutubxonasi bilan shunday tanishdim. Birlik testining mohiyati: sizda kiritilgan ma'lumotlar mavjud, uni usulga o'tkazing va olingan ma'lumotlarni to'g'ri natija bilan taqqoslang (to'g'ri natija bilan o'zgaruvchini yarating). Men kutubxonam uchun 11 ta holat yozdim, unda dastur NullPointException bilan ishlamay qolganligini va har qanday turdagi joylashtirish bilan ma'lumotlarni to'g'ri yashirishini tekshirdim. Ushbu vazifani bajarganimdan so'ng, menga yangi integratsiya berildi, uning o'ziga xos xususiyati quyidagicha edi: Men tashqi kutubxonadan Spring Bean eksport qilishim kerak edi. Shu nuqtada men Stack OverFlow veb-saytining doimiy mijoziga aylandim. Bir marta hatto rasmiy Spring dasturchisi javob berdi. Ushbu integratsiyani amalga oshirganimdan so'ng, mening sinov muddatim tugadi. Rahbar meni sinov muddatidan o‘tganim bilan tabrikladi va men ushbu maqolani yozishni boshladim. Umuman olganda, ushbu maqolani yozish uchun 8 soat vaqt ketdi) E'tiboringiz uchun rahmat, maqola foydali bo'ldi deb umid qilaman. Men barcha sinflarning aloqalarini yozishga harakat qildim va hech narsa boshimga tushmadi. Eng noqulay payt Intellij Idea haqida ma'lumot yo'qligi edi: loyihani global miqyosda qanday qidirish, kodni qayta ishlash va hokazo. Vazifani o'z zimmasiga olib, men OOP nima uchun kerakligini tushundim: bunday katta miqdordagi kod uchun uni sinflarga bo'lish kerak; sinfdan tashqarida foydalanilmaydigan usullar ularni tasodifan boshqa sinfda ishga tushirmaslik uchun shaxsiy deb e'lon qilinishi kerak va hokazo. Integratsiyani boshqa integratsiyaga o'xshatib yozganimdan so'ng, men CheckStyle - uslubni tekshiradigan maxsus plagin mavjudligi haqida bilib oldim. kodingizni o'zgartiring va xatolarni tuzatmaguningizcha loyihangizni kompilyatsiya qila olmaysiz (masalan, qo'shimcha bo'shliqlar, katta harflar bilan o'zgaruvchilar nomlari, juda qisqa o'zgaruvchilar nomlari). CheckStyle-ni mag'lubiyatga uchratganimdan so'ng, men kodimni katta ishlab chiquvchilarga ko'rib chiqish uchun yubordim va bir hafta ichida xatolarimni tuzatdim. Umuman olganda, men o'z jamoamda ko'p narsalarni tushuntirib bergan ikkinchi ishlab chiquvchi bilan yaxshi munosabatda bo'lganimdan juda baxtiyorman. Qurilmadan bir oy o'tgach, Integratsiya-Funktsional stendda mening birinchi integratsiyam ishga tushirildi (barcha ilovalarning ishi birgalikda sinovdan o'tkaziladi) va u erda hamma narsa ishladi! G'alaba! Keyingi vazifa json-da kalit bo'yicha ma'lumotlarni yashirishga imkon beradigan sinf yaratish edi. Masalan: json {matn:"JavaRush"} -> ishlov berish -> {matn:"****Rush"} mavjud. Bu yerda ikkita murakkablik bor: {matn:{mytext:"JavaRush"}} uyalar boʻlishi mumkin, bundan ham yoqimsiz jihati massiv ichida joylashishdir: {matn: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (albatta barcha matn. mytextni yashirishingiz kerak). Bu muammoni hal qilish juda qiyin bo'lib chiqdi, lekin men buni qildim! Bu erda ikkinchi ishlab chiquvchi aytadi: ushbu rivojlanishni testlar bilan yoping. Ko'zlarida hayrat bor edi. Men jangda JUnit kutubxonasi bilan shunday tanishdim. Birlik testining mohiyati: sizda kiritilgan ma'lumotlar mavjud, uni usulga o'tkazing va olingan ma'lumotlarni to'g'ri natija bilan taqqoslang (to'g'ri natija bilan o'zgaruvchini yarating). Men kutubxonam uchun 11 ta holat yozdim, unda dastur NullPointException bilan ishlamay qolganligini va har qanday turdagi joylashtirish bilan ma'lumotlarni to'g'ri yashirishini tekshirdim. Ushbu vazifani bajarganimdan so'ng, menga yangi integratsiya berildi, uning o'ziga xos xususiyati quyidagicha edi: Men tashqi kutubxonadan Spring Bean eksport qilishim kerak edi. Shu nuqtada men Stack OverFlow veb-saytining doimiy mijoziga aylandim. Bir marta hatto rasmiy Spring dasturchisi javob berdi. Ushbu integratsiyani amalga oshirganimdan so'ng, mening sinov muddatim tugadi. Rahbar meni sinov muddatidan o‘tganim bilan tabrikladi va men ushbu maqolani yozishni boshladim. Umuman olganda, ushbu maqolani yozish uchun 8 soat vaqt ketdi) E'tiboringiz uchun rahmat, maqola foydali bo'ldi deb umid qilaman. Men barcha sinflarning aloqalarini yozishga harakat qildim va hech narsa boshimga tushmadi. Eng noqulay payt Intellij Idea haqida ma'lumot yo'qligi edi: loyihani global miqyosda qanday qidirish, kodni qayta ishlash va hokazo. Vazifani o'z zimmasiga olib, men OOP nima uchun kerakligini tushundim: bunday katta miqdordagi kod uchun uni sinflarga bo'lish kerak; sinfdan tashqarida foydalanilmaydigan usullar ularni tasodifan boshqa sinfda ishga tushirmaslik uchun shaxsiy deb e'lon qilinishi kerak va hokazo. Integratsiyani boshqa integratsiyaga o'xshatib yozganimdan so'ng, men CheckStyle - uslubni tekshiradigan maxsus plagin mavjudligi haqida bilib oldim. kodingizni o'zgartiring va xatolarni tuzatmaguningizcha loyihangizni kompilyatsiya qila olmaysiz (masalan, qo'shimcha bo'shliqlar, katta harflar bilan o'zgaruvchilar nomlari, juda qisqa o'zgaruvchilar nomlari). CheckStyle-ni mag'lubiyatga uchratganimdan so'ng, men kodimni katta ishlab chiquvchilarga ko'rib chiqish uchun yubordim va bir hafta ichida xatolarimni tuzatdim. Umuman olganda, men o'z jamoamda ko'p narsalarni tushuntirib bergan ikkinchi ishlab chiquvchi bilan yaxshi munosabatda bo'lganimdan juda baxtiyorman. Qurilmadan bir oy o'tgach, Integratsiya-Funktsional stendda mening birinchi integratsiyam ishga tushirildi (barcha ilovalarning ishi birgalikda sinovdan o'tkaziladi) va u erda hamma narsa ishladi! G'alaba! Keyingi vazifa json-da kalit bo'yicha ma'lumotlarni yashirishga imkon beradigan sinf yaratish edi. Masalan: json {matn:"JavaRush"} -> ishlov berish -> {matn:"****Rush"} mavjud. Bu yerda ikkita murakkablik bor: {matn:{mytext:"JavaRush"}} uyalar boʻlishi mumkin, bundan ham yoqimsiz jihati massiv ichida joylashishdir: {matn: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (albatta barcha matn. mytextni yashirishingiz kerak). Bu muammoni hal qilish juda qiyin bo'lib chiqdi, lekin men buni qildim! Bu erda ikkinchi ishlab chiquvchi aytadi: ushbu rivojlanishni testlar bilan yoping. Ko'zlarida hayrat bor edi. Men jangda JUnit kutubxonasi bilan shunday tanishdim. Birlik testining mohiyati: sizda kiritilgan ma'lumotlar mavjud, uni usulga o'tkazing va olingan ma'lumotlarni to'g'ri natija bilan taqqoslang (to'g'ri natija bilan o'zgaruvchini yarating). Men kutubxonam uchun 11 ta holat yozdim, unda dastur NullPointException bilan ishlamay qolganligini va har qanday turdagi joylashtirish bilan ma'lumotlarni to'g'ri yashirishini tekshirdim. Ushbu vazifani bajarganimdan so'ng, menga yangi integratsiya berildi, uning o'ziga xos xususiyati quyidagicha edi: Men tashqi kutubxonadan Spring Bean eksport qilishim kerak edi. Shu nuqtada men Stack OverFlow veb-saytining doimiy mijoziga aylandim. Bir marta hatto rasmiy Spring dasturchisi javob berdi. Ushbu integratsiyani amalga oshirganimdan so'ng, mening sinov muddatim tugadi. Rahbar meni sinov muddatidan o‘tganim bilan tabrikladi va men ushbu maqolani yozishni boshladim. Umuman olganda, ushbu maqolani yozish uchun 8 soat vaqt ketdi) E'tiboringiz uchun rahmat, maqola foydali bo'ldi deb umid qilaman. Bunday katta miqdordagi kod uchun siz uni sinflarga bo'lishingiz kerak; sinfdan tashqarida foydalanilmaydigan usullar ularni tasodifan boshqa sinfda ishga tushirmaslik uchun shaxsiy deb e'lon qilinishi kerak va hokazo. Integratsiyani boshqa integratsiyaga o'xshatib yozganimdan so'ng, men CheckStyle - uslubni tekshiradigan maxsus plagin mavjudligi haqida bilib oldim. kodingizni o'zgartiring va xatolarni tuzatmaguningizcha loyihangizni kompilyatsiya qila olmaysiz (masalan, qo'shimcha bo'shliqlar, katta harflar bilan o'zgaruvchilar nomlari, juda qisqa o'zgaruvchilar nomlari). CheckStyle-ni mag'lubiyatga uchratganimdan so'ng, men kodimni katta ishlab chiquvchilarga ko'rib chiqish uchun yubordim va bir hafta ichida xatolarimni tuzatdim. Umuman olganda, men o'z jamoamda ko'p narsalarni tushuntirib bergan ikkinchi ishlab chiquvchi bilan yaxshi munosabatda bo'lganimdan juda baxtiyorman. Qurilmadan bir oy o'tgach, Integratsiya-Funktsional stendda mening birinchi integratsiyam ishga tushirildi (barcha ilovalarning ishi birgalikda sinovdan o'tkaziladi) va u erda hamma narsa ishladi! G'alaba! Keyingi vazifa json-da kalit bo'yicha ma'lumotlarni yashirishga imkon beradigan sinf yaratish edi. Masalan: json {matn:"JavaRush"} -> ishlov berish -> {matn:"****Rush"} mavjud. Bu yerda ikkita murakkablik bor: {matn:{mytext:"JavaRush"}} uyalar boʻlishi mumkin, bundan ham yoqimsiz jihati massiv ichida joylashishdir: {matn: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (albatta barcha matn. mytextni yashirishingiz kerak). Bu muammoni hal qilish juda qiyin bo'lib chiqdi, lekin men buni qildim! Bu erda ikkinchi ishlab chiquvchi aytadi: ushbu rivojlanishni testlar bilan yoping. Ko'zlarida hayrat bor edi. Men jangda JUnit kutubxonasi bilan shunday tanishdim. Birlik testining mohiyati: sizda kiritilgan ma'lumotlar mavjud, uni usulga o'tkazing va olingan ma'lumotlarni to'g'ri natija bilan taqqoslang (to'g'ri natija bilan o'zgaruvchini yarating). Men kutubxonam uchun 11 ta holat yozdim, unda dastur NullPointException bilan ishlamay qolganligini va har qanday turdagi joylashtirish bilan ma'lumotlarni to'g'ri yashirishini tekshirdim. Ushbu vazifani bajarganimdan so'ng, menga yangi integratsiya berildi, uning o'ziga xos xususiyati quyidagicha edi: Men tashqi kutubxonadan Spring Bean eksport qilishim kerak edi. Shu nuqtada men Stack OverFlow veb-saytining doimiy mijoziga aylandim. Bir marta hatto rasmiy Spring dasturchisi javob berdi. Ushbu integratsiyani amalga oshirganimdan so'ng, mening sinov muddatim tugadi. Rahbar meni sinov muddatidan o‘tganim bilan tabrikladi va men ushbu maqolani yozishni boshladim. Umuman olganda, ushbu maqolani yozish uchun 8 soat vaqt ketdi) E'tiboringiz uchun rahmat, maqola foydali bo'ldi deb umid qilaman. Bunday katta miqdordagi kod uchun siz uni sinflarga bo'lishingiz kerak; sinfdan tashqarida foydalanilmaydigan usullar ularni tasodifan boshqa sinfda ishga tushirmaslik uchun shaxsiy deb e'lon qilinishi kerak va hokazo. Integratsiyani boshqa integratsiyaga o'xshatib yozganimdan so'ng, men CheckStyle - uslubni tekshiradigan maxsus plagin mavjudligi haqida bilib oldim. kodingizni o'zgartiring va xatolarni tuzatmaguningizcha loyihangizni kompilyatsiya qila olmaysiz (masalan, qo'shimcha bo'shliqlar, katta harflar bilan o'zgaruvchilar nomlari, juda qisqa o'zgaruvchilar nomlari). CheckStyle-ni mag'lubiyatga uchratganimdan so'ng, men kodimni katta ishlab chiquvchilarga ko'rib chiqish uchun yubordim va bir hafta ichida xatolarimni tuzatdim. Umuman olganda, men o'z jamoamda ko'p narsalarni tushuntirib bergan ikkinchi ishlab chiquvchi bilan yaxshi munosabatda bo'lganimdan juda baxtiyorman. Qurilmadan bir oy o'tgach, Integratsiya-Funktsional stendda mening birinchi integratsiyam ishga tushirildi (barcha ilovalarning ishi birgalikda sinovdan o'tkaziladi) va u erda hamma narsa ishladi! G'alaba! Keyingi vazifa json-da kalit bo'yicha ma'lumotlarni yashirishga imkon beradigan sinf yaratish edi. Masalan: json {matn:"JavaRush"} -> ishlov berish -> {matn:"****Rush"} mavjud. Bu yerda ikkita murakkablik bor: {matn:{mytext:"JavaRush"}} uyalar boʻlishi mumkin, bundan ham yoqimsiz jihati massiv ichida joylashishdir: {matn: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (albatta barcha matn. mytextni yashirishingiz kerak). Bu muammoni hal qilish juda qiyin bo'lib chiqdi, lekin men buni qildim! Bu erda ikkinchi ishlab chiquvchi aytadi: ushbu rivojlanishni testlar bilan yoping. Ko'zlarida hayrat bor edi. Men jangda JUnit kutubxonasi bilan shunday tanishdim. Birlik testining mohiyati: sizda kiritilgan ma'lumotlar mavjud, uni usulga o'tkazing va olingan ma'lumotlarni to'g'ri natija bilan taqqoslang (to'g'ri natija bilan o'zgaruvchini yarating). Men kutubxonam uchun 11 ta holat yozdim, unda dastur NullPointException bilan ishlamay qolganligini va har qanday turdagi joylashtirish bilan ma'lumotlarni to'g'ri yashirishini tekshirdim. Ushbu vazifani bajarganimdan so'ng, menga yangi integratsiya berildi, uning o'ziga xos xususiyati quyidagicha edi: Men tashqi kutubxonadan Spring Bean eksport qilishim kerak edi. Shu nuqtada men Stack OverFlow veb-saytining doimiy mijoziga aylandim. Bir marta hatto rasmiy Spring dasturchisi javob berdi. Ushbu integratsiyani amalga oshirganimdan so'ng, mening sinov muddatim tugadi. Rahbar meni sinov muddatidan o‘tganim bilan tabrikladi va men ushbu maqolani yozishni boshladim. Umuman olganda, ushbu maqolani yozish uchun 8 soat vaqt ketdi) E'tiboringiz uchun rahmat, maqola foydali bo'ldi deb umid qilaman. o'zgaruvchilar nomlari juda qisqa). CheckStyle-ni mag'lubiyatga uchratganimdan so'ng, men kodimni katta ishlab chiquvchilarga ko'rib chiqish uchun yubordim va bir hafta ichida xatolarimni tuzatdim. Umuman olganda, men o'z jamoamda ko'p narsalarni tushuntirib bergan ikkinchi ishlab chiquvchi bilan yaxshi munosabatda bo'lganimdan juda baxtiyorman. Qurilmadan bir oy o'tgach, Integratsiya-Funktsional stendda mening birinchi integratsiyam ishga tushirildi (barcha ilovalarning ishi birgalikda sinovdan o'tkaziladi) va u erda hamma narsa ishladi! G'alaba! Keyingi vazifa json-da kalit bo'yicha ma'lumotlarni yashirishga imkon beradigan sinf yaratish edi. Masalan: json {matn:"JavaRush"} -> ishlov berish -> {matn:"****Rush"} mavjud. Bu yerda ikkita murakkablik bor: {matn:{mytext:"JavaRush"}} uyalar boʻlishi mumkin, bundan ham yoqimsiz jihati massiv ichida joylashishdir: {matn: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (albatta barcha matn. mytextni yashirishingiz kerak). Bu muammoni hal qilish juda qiyin bo'lib chiqdi, lekin men buni qildim! Bu erda ikkinchi ishlab chiquvchi aytadi: ushbu rivojlanishni testlar bilan yoping. Ko'zlarida hayrat bor edi. Men jangda JUnit kutubxonasi bilan shunday tanishdim. Birlik testining mohiyati: sizda kiritilgan ma'lumotlar mavjud, uni usulga o'tkazing va olingan ma'lumotlarni to'g'ri natija bilan taqqoslang (to'g'ri natija bilan o'zgaruvchini yarating). Men kutubxonam uchun 11 ta holat yozdim, unda dastur NullPointException bilan ishlamay qolganligini va har qanday turdagi joylashtirish bilan ma'lumotlarni to'g'ri yashirishini tekshirdim. Ushbu vazifani bajarganimdan so'ng, menga yangi integratsiya berildi, uning o'ziga xos xususiyati quyidagicha edi: Men tashqi kutubxonadan Spring Bean eksport qilishim kerak edi. Shu nuqtada men Stack OverFlow veb-saytining doimiy mijoziga aylandim. Bir marta hatto rasmiy Spring dasturchisi javob berdi. Ushbu integratsiyani amalga oshirganimdan so'ng, mening sinov muddatim tugadi. Rahbar meni sinov muddatidan o‘tganim bilan tabrikladi va men ushbu maqolani yozishni boshladim. Umuman olganda, ushbu maqolani yozish uchun 8 soat vaqt ketdi) E'tiboringiz uchun rahmat, maqola foydali bo'ldi deb umid qilaman. o'zgaruvchilar nomlari juda qisqa). CheckStyle-ni mag'lubiyatga uchratganimdan so'ng, men kodimni katta ishlab chiquvchilarga ko'rib chiqish uchun yubordim va bir hafta ichida xatolarimni tuzatdim. Umuman olganda, men o'z jamoamda ko'p narsalarni tushuntirib bergan ikkinchi ishlab chiquvchi bilan yaxshi munosabatda bo'lganimdan juda baxtiyorman. Qurilmadan bir oy o'tgach, Integratsiya-Funktsional stendda mening birinchi integratsiyam ishga tushirildi (barcha ilovalarning ishi birgalikda sinovdan o'tkaziladi) va u erda hamma narsa ishladi! G'alaba! Keyingi vazifa json-da kalit bo'yicha ma'lumotlarni yashirishga imkon beradigan sinf yaratish edi. Masalan: json {matn:"JavaRush"} -> ishlov berish -> {matn:"****Rush"} mavjud. Bu yerda ikkita murakkablik bor: {matn:{mytext:"JavaRush"}} uyalar boʻlishi mumkin, bundan ham yoqimsiz jihati massiv ichida joylashishdir: {matn: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (albatta barcha matn. mytextni yashirishingiz kerak). Bu muammoni hal qilish juda qiyin bo'lib chiqdi, lekin men buni qildim! Bu erda ikkinchi ishlab chiquvchi aytadi: ushbu rivojlanishni testlar bilan yoping. Ko'zlarida hayrat bor edi. Men jangda JUnit kutubxonasi bilan shunday tanishdim. Birlik testining mohiyati: sizda kiritilgan ma'lumotlar mavjud, uni usulga o'tkazing va olingan ma'lumotlarni to'g'ri natija bilan taqqoslang (to'g'ri natija bilan o'zgaruvchini yarating). Men kutubxonam uchun 11 ta holat yozdim, unda dastur NullPointException bilan ishlamay qolganligini va har qanday turdagi joylashtirish bilan ma'lumotlarni to'g'ri yashirishini tekshirdim. Ushbu vazifani bajarganimdan so'ng, menga yangi integratsiya berildi, uning o'ziga xos xususiyati quyidagicha edi: Men tashqi kutubxonadan Spring Bean eksport qilishim kerak edi. Shu nuqtada men Stack OverFlow veb-saytining doimiy mijoziga aylandim. Bir marta hatto rasmiy Spring dasturchisi javob berdi. Ushbu integratsiyani amalga oshirganimdan so'ng, mening sinov muddatim tugadi. Rahbar meni sinov muddatidan o‘tganim bilan tabrikladi va men ushbu maqolani yozishni boshladim. Umuman olganda, ushbu maqolani yozish uchun 8 soat vaqt ketdi) E'tiboringiz uchun rahmat, maqola foydali bo'ldi deb umid qilaman. Bu muammoni hal qilish juda qiyin bo'lib chiqdi, lekin men buni qildim! Bu erda ikkinchi ishlab chiquvchi aytadi: ushbu rivojlanishni testlar bilan yoping. Ko'zlarida hayrat bor edi. Men jangda JUnit kutubxonasi bilan shunday tanishdim. Birlik testining mohiyati: sizda kiritilgan ma'lumotlar mavjud, uni usulga o'tkazing va olingan ma'lumotlarni to'g'ri natija bilan taqqoslang (to'g'ri natija bilan o'zgaruvchini yarating). Men kutubxonam uchun 11 ta holat yozdim, unda dastur NullPointException bilan ishlamay qolganligini va har qanday turdagi joylashtirish bilan ma'lumotlarni to'g'ri yashirishini tekshirdim. Ushbu vazifani bajarganimdan so'ng, menga yangi integratsiya berildi, uning o'ziga xos xususiyati quyidagicha edi: Men tashqi kutubxonadan Spring Bean eksport qilishim kerak edi. Shu nuqtada men Stack OverFlow veb-saytining doimiy mijoziga aylandim. Bir marta hatto rasmiy Spring dasturchisi javob berdi. Ushbu integratsiyani amalga oshirganimdan so'ng, mening sinov muddatim tugadi. Rahbar meni sinov muddatidan o‘tganim bilan tabrikladi va men ushbu maqolani yozishni boshladim. Umuman olganda, ushbu maqolani yozish uchun 8 soat vaqt ketdi) E'tiboringiz uchun rahmat, maqola foydali bo'ldi deb umid qilaman. Bu muammoni hal qilish juda qiyin bo'lib chiqdi, lekin men buni qildim! Bu erda ikkinchi ishlab chiquvchi aytadi: ushbu rivojlanishni testlar bilan yoping. Ko'zlarida hayrat bor edi. Men jangda JUnit kutubxonasi bilan shunday tanishdim. Birlik testining mohiyati: sizda kiritilgan ma'lumotlar mavjud, uni usulga o'tkazing va olingan ma'lumotlarni to'g'ri natija bilan taqqoslang (to'g'ri natija bilan o'zgaruvchini yarating). Men kutubxonam uchun 11 ta holat yozdim, unda dastur NullPointException bilan ishlamay qolganligini va har qanday turdagi joylashtirish bilan ma'lumotlarni to'g'ri yashirishini tekshirdim. Ushbu vazifani bajarganimdan so'ng, menga yangi integratsiya berildi, uning o'ziga xos xususiyati quyidagicha edi: Men tashqi kutubxonadan Spring Bean eksport qilishim kerak edi. Shu nuqtada men Stack OverFlow veb-saytining doimiy mijoziga aylandim. Bir marta hatto rasmiy Spring dasturchisi javob berdi. Ushbu integratsiyani amalga oshirganimdan so'ng, mening sinov muddatim tugadi. Rahbar meni sinov muddatidan o‘tganim bilan tabrikladi va men ushbu maqolani yozishni boshladim. Umuman olganda, ushbu maqolani yozish uchun 8 soat vaqt ketdi) E'tiboringiz uchun rahmat, maqola foydali bo'ldi deb umid qilaman.
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION