1-bosqich. Trening
Men JavaRush-ga ongli ravishda keldim: adekvat oylik narxlar ro'yxati, materialning aniq tuzilishi, juda ko'p amaliyot va o'z jamoamning mavjudligi. Birinchi nuqta hamma narsa tushunarli, ammo tuzilmasiz tilni o'rganish juda qiyin va bunday mashg'ulotlar, albatta, Java Core-da jiddiy bo'shliqlarni qoldiradi. Intervyu va texnik xususiyatlar tajribasi shuni ko'rsatadiki , "yadro" haqidagi savollar hamma narsa uchun ishlatilishi mumkin: generiklarni bit bo'yicha o'zgartirish va quyishdan tortib, IO va seriyalashtirishgacha. Amaliyot bo'lishi shart; Men hali ham o'zim yozgan bo'lsam, faqat yarmini tushunaman va eslayman. Xo'sh, jamiyat: siz muammoni hal qildingiz - sharhlarda bu haqda maqtanasiz; Agar qaror qilmagan bo'lsangiz, savollar berishingiz mumkin, lekin hech kim sizga tayyor echimni bermaydi. Kursni tugatgandan keyin ham bepul mavzular bo'yicha maxsus maqolalarga qaytdim, u erda boshlash uchun juda ko'p yaxshi narsalar bor (ayniqsa, bosqichma-bosqich misollar + intervyu uchun savollar yordamida ramkalar bilan birinchi tajriba). Umuman olganda, men ushbu loyihadan olgan bazam uchun minnatdorman, lekin men faqat JavaRush-ga tayanmagan bo'lardim - o'sha Shildt eng yaxshisi o'rganilayotgan mavzu bo'yicha "bir-biriga mos keladi" va ko'pincha ba'zi fikrlarni ochib beradi. Ba'zan nazariyadan oldinga chiqadigan va sizni Google'ga majburlaydigan vazifalar haqida sharhlarda ko'p narsa aytilgan. Men uchun bu minusdan ko'ra ko'proq ortiqcha - va hozir vaziyat men o'qigan paytimdagidek ekanligi haqiqat emas. Menga o'xshab Java-ni "noldan" kiritadiganlarga darhol maslahat : qaysidir bosqichda siz zerikishingiz yoki qiyin bo'lishingiz mumkin:-
Noldan boshlagan hamma uchun qiyin, Xudo ko'rsatmasin, faqat 5% odamlar kursni oxiriga etkazadilar. Sizning vazifangiz ulardan biriga aylanishdir.
-
Bir-ikki oydan so'ng, topshiriqlar qiyinroq va qiziqarli bo'lganidan keyin qiziqib qoldim. Sabrli bo'ling.
- Asosiysi, haftalik taraqqiyot. Ikki haftalik dam olishdan keyin qaytib kelish allaqachon qiyin va hamma ham bir necha oy ketma-ket har kuni yoza olmaydi. O'zingizga haftalik soatlar chegarasini belgilang - masalan, 15. Siz har kuni 1,5 soat, har ikki dam olish kunlarida yana 3-4 soat kodlashingiz mumkin yoki bir-ikkita kechqurun dam olishingiz mumkin, ammo "hafta oxiri chegarasi" kattalashtirish; ko'paytirish. Shunday qilib, jadval moslashuvchan, ammo muntazam bo'ladi. Albatta, keyin ishni vazifalar va loyihalar bo'yicha o'lchash mumkin bo'ladi, ammo sintaksis va yadro darajasida soatlar bajariladi.
2-bosqich. O'z-o'zini tarbiyalash
Shunday qilib, men amaliyot o'ta olmadim: guruhga ishga qabul qilish tugaguniga qadar texnik talablar bo'yicha bir necha kun qoldim va talablarni aniqlashga ulgurmadim - juda ko'p notanish so'zlar bor edi. Chunki Men yana uch oy kutishni xohlamadim, o'zimni davom ettirishga qaror qildim. Yaxshiyamki, barcha mashhur ramkalar uchun qo'llanmalar va video darsliklar mavjud. Keyingi bir necha oy ichida men Spring MVC, Spring Boot + Data, Spring Security, Hibernate, jUnit, Maven, Git, RDBMS bilan shug'ullandim, SQL-ni o'zlashtirdim va barchasini bir butunga jamlashga harakat qildim. Olti oy o'tgach, menda hozir qarash qo'rqinchli loyihalar bor edi, lekin men "kattalar" ramkalari va potentsial ish beruvchining iltimosiga binoan ko'rsatilishi mumkin bo'lgan GitHub-dan foydalanish bo'yicha amaliy tajribaga ega bo'ldim. Maslahat :-
.gitignore haqida qanchalik tezroq o'rgansangiz, shuncha yaxshi. ;)
-
Ko'pgina qo'llanmalar bir vaqtning o'zida bir nechta ramkalarni o'z ichiga oladi; bundan foydalaning va o'zingiznikini qo'shing. Biz Maven + Spring Boot + Data yordamida onlayn-do'kon yozdik - avtorizatsiya, birlik testlari va jurnallarni qo'shing.
-
Veb-loyihalar uchun siz Internetdan bepul frontend shablonlarini olishingiz mumkin - ular bilan ishlash yanada yoqimli, ular Git-dagi README-da skrinshotlar sifatida yaxshiroq ko'rinadi. Shu bilan birga, siz HTML va CSS-ni eslay olasiz - ehtimol siz uslublar va tartibni to'g'rilashni xohlaysiz.
Menga nima etishmayotgan edi (keyinchalik suhbat paytida yonib ketdim)
-
Algoritmlar. Xatolarimga yo'l qo'ymaslik uchun darhol rus tilidagi "Grocking Algoritms" nomli qisqa kitobni tavsiya qilaman. Algoritmlarning murakkabligi nima, u nimadan iborat, nima uchun tezkor saralash etarli emas, grafiklar nazariyasiga kirish - hamma narsa u erda va eng tushunarli tilda.
-
"Kaput ostida" to'plamlari. Bu JavaRush-da bo'lganmi yoki yo'qligini eslay olmayman, lekin HashMap.get() qanday ishlashini yoki nima uchun HashSet element tartibini saqlab qolish kafolatlanmaganligini bilish foydalidir. Shunga qaramay, qaysi to'plamlar xavfsiz va nima uchun.
-
SQL. Sizga kamida JOINlar kerak bo'ladi - ular nima, ular qanday ishlaydi, qog'ozda ikkita jadvalga SELECT yozish qobiliyati. Men www.sql-ex.ru ni tavsiya qilaman: u sizni bir-ikki kun ichida kerakli darajaga olib chiqadi.
-
Spring Core: qanday izohlar bor, kontekst nima, loviya qanday yaratilgan, qaysi Bean Scope ip xavfsiz va o'zaro in'ektsiyani qanday hal qilish kerak - barcha intervyu savollari. Sahifani qanday qaytarish kerak, JSONni qanday qaytarish kerak va hokazo. Men hozirda rus tilida "Professionallar uchun 5-bahor" ni o'qiyapman, lekin umuman olganda, ular "Harakatda bahor" ni tavsiya qiladilar.
3-bosqich. Ish qidirish
Aslida, uy loyihalarini tugatgandan so'ng, birinchi ikki oy ichida men turli xil Junior\Trainee bo'sh ish o'rinlariga (HH, LinkedIn, ishga yollash agentliklari orqali) 30 ga yaqin javoblar yubordim, natijada nolga yaqin. Men faqat tajribasiz bo'sh ish o'rinlariga e'tibor qaratdim, rostini aytsam, menga tanish bo'lgan stekni ko'rsatdim va yuqori o'rganish qobiliyatim haqida muqovali xatlarda yozdim. Natijada ikkita qo'ng'iroq bo'ldi (ulardan biri darhol mening oraliq ingliz tilida tugaydi), yana ikkita kompaniya texnik xususiyatlarni yubordi, faqat bitta "uchrashuv" bor edi, keyin men u erda yolg'iz qog'ozdagi algoritmlar bo'yicha muammolarni hal qildim, shundan so'ng HR shunchaki hujjatlarni olib qo'ydi va "Sizga qo'ng'iroq qilamiz". Men bir nechta stajirovkani olishga harakat qildim (to'lanmagan va shartli to'langan): Men texnik shartlarni bajardim, lekin yakuniy ijtimoiy ta'minotdan tashqariga chiqmadim; lekin hozir aytishim mumkinki, stajyorlar T-Systems, CFT, Andersen va EPAM tomonidan yollanadi (ular aralash sharhlarga ega, o'zingiz qaror qiling). Menga kelsak, agar sizda bir necha oy davomida daromadsiz o'tirish va o'lmaslik imkoniyati bo'lsa, bu sohaga kirishning yaxshi usuli =) Umuman olganda, bu tajribadan keyin men biroz tushkunlikka tushib qoldim va butun voqeani qidiruv bilan to'xtatib qo'ydim. deyarli olti oy davomida - men oldingi profilda ishlashni davom ettirdim, shunchaki o'yin-kulgi uchun ba'zi ilovalarni yozdim, lekin ularni Git-ga ham joylashtirmadim. Men bir tanishimni uchratmagunimcha, unga bo'sh ish o'rinlari bilan bog'liq muvaffaqiyatsizliklar haqida tasodifiy gapirib berdim: o'sha paytda u allaqachon o'rta ishlab chiquvchi bo'lib ishlagan, lekin u xuddi shunday - mustaqil o'rganish bilan boshlagan. Bir tanishim menga bir nechta tavsiyalar berdi , u o'zi ishlatgan va kelajakda ish qidirishimda katta yordam berdi. Ularga ergashasizmi yoki yo'qmi o'zingizga bog'liq, chunki... ular, qaysidir ma'noda, butunlay halol emas. Shunday qilib, keyingi iqtiboslar:-
Qanday bo'lmasin, o'zingizning rezyumeingizda 6+ oylik tijorat tajribasini taqdim eting: stajirovkalar, bitiruv loyihalari, freelancing, masofaviy ish - nima bo'lishidan qat'i nazar. Bu HR tomonidan rezyumelarni dastlabki tekshirish bosqichida katta yordam beradi;
-
rezyumedan Junior va kutilayotgan ish haqi so'zini olib tashlang; shunchaki Java Developer sifatida qoldiring va har bir kompaniya bilan pulni alohida muhokama qiling;
-
O'zingizning taxminlaringizni nomlashdan oldin HR taklif qilingan ish haqining "vilkasini" nomlashga harakat qiling. Agar kompaniya 80-120 ming taklif qilsa va siz 40 ming yoki undan ko'proq narsani qidirsangiz, ba'zi selektorlar sizni mensimaydilar;
-
1-3 yillik tijorat tajribasini talab qilsa ham, stekingizga mos keladigan barcha bo'sh ish o'rinlariga murojaat qiling.
-
O'zingizning rezyumeingizga siz ishlagan tillar, texnologiyalar va ramkalar to'plamini kiriting.
-
LinkedIn-da ro'yxatdan o'ting - u erda turli kompaniyalarning HR xodimlari juda ko'p. Profilingizni diqqat bilan to'ldiring - aslida bu ham sizning rezyumeingiz. Kontaktlar tarmog'ingizni rivojlantirish uchun profilingizga tegishli LIONlarni qo'shing; ular barcha foydalanuvchilarning so'rovlarini qabul qiladi.
-
O'zingizni bepul Java testlarida sinab ko'ring - ular ko'pincha Junior intervyusidan oldin qog'ozda beriladi. Oldindan tayyorgarlik ko'rish yaxshiroqdir.
-
Ular har doim to'plamlar haqida so'rashadi: qaysilari bor, ular qanday farqlanadi, ulardan foydalanishning eng yaxshi vaqti qachon.
-
Har doim mavhum sinflar va interfeyslarda - ular usullari, maydonlari bo'lishi mumkinmi, qaysilari, meros qilib olinishi mumkinmi va hokazo.
-
Deyarli har doim multithreadingda - ishingizda nima ishlatgansiz, kalit so'zlar, usullar, siz util.concurrent bilan tanishmisiz.
-
Ko'pincha xotira bilan ishlashda - to'p, stek va bu satrlar teng bo'ladimi va bu ob'ektlar, nima uchun.
-
Ba'zan algoritmlar haqida - qaysilarini bilasiz, qanday murakkablik, nima uchun, hozir algoritm yozishingiz mumkin.
-
Ba'zan naqshlarga asoslanib - qaysi birini bilasiz, qaysi birini ishlatasiz, singleton yoki zavod yozing.
-
Ba'zan SQLda - JOIN turlari, tranzaktsiya nima, uni JDBC da qanday o'tkazish kerak, qisqa so'rov yozing.
-
Yangi yozuvlarni tahrirlash va qo'shish bilan Salesforce profilining biznes aloqalari sahifasi;
-
konsol boshqaruvi bilan Spring State Machine yordamida ko'p qavatli binoda liftni simulyatsiya qilish;
-
LibGDX kutubxonasiga asoslangan Android ilovasi tugma bosilganda har bir belgi matn chiqishi;
-
HTTP so'rovi orqali mijozlarni qo'shish va JSONni qaytarish bilan avtomobil almashishning REST imitatsiyasi;
-
yo'naltirilmagan grafikni erkin katak orqali saralash masalasi;
-
fayldan koordinatalar yordamida teng yonli uchburchaklarni qidirish;
-
Stream API yordamida tayyor kodni qayta tiklash;
-
Uchlik ifodalarni qo'llab-quvvatlaydigan UI kalkulyatori;
-
natijalarni faylga yozish bilan iplar poygasi.
-
Nafaqat vazifani bajarishga, balki kod OOP tamoyillariga mos kelishiga ham harakat qiling.
-
Samaradorlik uchun kodingizni tekshiring - men bir marta rad etilganman, chunki men BufferedWriter o'rniga PrintStream dan foydalanganman.
-
Bajarish vaqtingizni 50% marja bilan rejalashtiring - belgilangan muddat ertalab soat sakkizda git push-ni bajarishdan ko'ra erta boshlash va tugatish yaxshiroqdir.
GO TO FULL VERSION