1-СТАП. Тренинг
Мен JavaRushка аң-сезимдүү келдим: адекваттуу айлык прейскурант, материалдын так түзүлүшү, көп тажрыйба жана өзүмдүн жамаатымдын болушу. Биринчи пункттун баары түшүнүктүү, бирок түзүмү жок тилди үйрөнүү абдан кыйын жана мындай тренинг адамды Java Coreдо олуттуу боштуктарды калтырат. Интервьюлардын тажрыйбасы жана техникалык мүнөздөмөлөр көрсөткөндөй , "өзөк" жөнүндө суроолорду бардык нерсе үчүн колдонсо болот: генериктердин биттик жылышынан жана кастингинен IO жана сериялаштырууга чейин. Практика сөзсүз түрдө болушу керек; Мен өзүм жазсам, жарымын гана түшүнүп, эстеп калам. Ооба, коомчулук: сиз маселени чечтиңиз - комментарийлерде мактаныңыз; Эгерде сиз чече элек болсоңуз, анда суроолорду берсеңиз болот, бирок сизге эч ким даяр чечимди бербейт. Курсту аяктагандан кийин дагы, мен акысыз темалар боюнча ыңгайлаштырылган макалаларга кайтып келдим, ал жерде баштоо үчүн көптөгөн жакшы нерселер бар (айрыкча, кадам-кадам мисалдарды колдонуу менен алHowтар менен биринчи тажрыйба + интервью үчүн суроолор). Жалпысынан алганда, бул долбоорго мен алган база үчүн ыраазымын, бирок мен JavaRushка гана ишенбейм - ошол эле Шилдт эң жакшысы изилденип жаткан темада "кайталанып" кетет жана көп учурда айрым ойлорду ачып берет. Кээде теориядан озуп кеткен жана Google'га мажбурлаган тапшырмалар жөнүндө сын-пикирлерде көп нерсе айтылган. Мен үчүн бул минуска караганда көбүрөөк плюс - бул азыр мен окуп жүргөн кездегидей болуп жаткандыгы чындык эмес. Мага окшоп, Java программасын “нөлдөн баштап” киргендерге дароо кеңеш : кандайдыр бир этапта сиз зеригип же кыйын болуп калышыңыз мүмкүн:-
Нөлдөн баштап баарына кыйын, Кудай сактасын, курстун аягына 5% гана адам жетет. Сиздин милдет - алардын бири болуу.
-
Бир-эки айдан кийин тапшырмалар татаалдашып, кызыктуу болуп калганда кызыгып калдым. Чыдамкай болот.
- Негизгиси - жумалык прогресс. Эки жумалык эс алгандан кийин, кайра кайтып келүү кыйын жана ар бир адам бир нече ай катары менен күн сайын жаза алbyte. Өзүңүзгө бир жумага саат чегин бериңиз - мисалы, 15. Сиз ар бир иш күнү 1,5 саат, эки дем алыш күндөрү дагы 3-4 саат code жазсаңыз болот, же бир нече кечки эс ала аласыз, бирок "дем алыш күнүнүн чеги" жогорулатуу. Ошентип, график ийкемдүү, бирок үзгүлтүксүз болот. Албетте, анда ишти тапшырмалар жана долбоорлор менен өлчөө мүмкүн болот, бирок синтаксис жана ядро деңгээлинде сааттар аткарылат.
2-СТАП. Өзүн өзү тарбиялоо
Ошентип, мен стажировкадан өткөн жокмун: топко кабыл алуу аяктаганга чейин техникалык талаптар боюнча бир-эки күн гана калдым жана талаптарды түшүнүүгө үлгүрбөй калдым - өтө көп бейтааныш сөздөр болду. Анткени Мен дагы үч ай күткүм келген жок, мен өзүмдү улантууну чечтим. Бактыга жараша, бардык популярдуу алHowтар үчүн колдонмолор жана видео окуу куралдары бар. Кийинки бир нече айдын ичинде мен Spring MVC, Spring Boot + Data, Spring Security, Hibernate, jUnit, Maven, Git, RDBMS менен алектенип, SQLди өздөштүрүп, баарын бир бүтүнгө чогултууга аракет кылдым. Алты айдан кийин менде азыр кароого коркунучтуу долбоорлор бар болчу, бирок мен "чоңдор" алHowтарын жана потенциалдуу иш берүүчүнүн талабы боюнча көрсөтүлө турган GitHub колдонуу боюнча практикалык тажрыйбага ээ болдум. Кеңеш :-
.gitignore жөнүндө канчалык эрте билсеңиз, ошончолук жакшы. ;)
-
Көптөгөн гиддер бир эле учурда бир нече алHowтарды камтыйт; муну колдонуп, өзүңүздүн кошуңуз. Биз Maven + Spring Boot + Data аркылуу онлайн дүкөн жаздык - авторизацияны, бирдик тесттерин жана журналдарды кошуңуз.
-
Веб-долбоорлор үчүн сиз Интернеттен акысыз фронтондук шаблондорду ала аласыз - алар менен иштөө жагымдуураак, алар Gitтеги READMEде скриншоттор катары жакшыраак көрүнөт. Ошол эле учурда, сиз HTML жана CSSти эстей аласыз - балким, сиз стилдерди жана макетти оңдоону каалайсыз.
Мага эмне жетишпей жатты (кийин интервью берип жатканда күйүп кеттим)
-
Алгоритмдер. Ката кетирбөө үчүн мен дароо эле орус тorндеги “Грокинг алгоритмдери” деген кыска китепти сунуштайм. Алгоритмдердин татаалдыгы эмнеде, ал эмнеден турат, эмне үчүн тез сорттоо жетишсиз, графика теориясына киришүү - баары бар жана эң түшүнүктүү тилде.
-
Коллекциялар "капот астында". Бул JavaRush ичинде болгонун эсимде жок, бирок HashMap.get() кантип иштээрин же эмне үчүн HashSet элементтердин тартибин сактоого кепилдик жок экенин билүү пайдалуу. Дагы, кайсы коллекциялар жип коопсуз жана эмне үчүн.
-
SQL. Сизге жок дегенде JOIN'ге чейин керек - алар эмне, алар кандай иштешет, эки үстөлгө SELECT жазууну тез арада кагазга жазуу мүмкүнчүлүгү. Мен www.sql-ex.ru сайтын сунуштайм: ал сизди бир же эки күндүн ичинде каалаган деңгээлге жеткирет.
-
Spring Core: кандай annotationлар бар, контекст деген эмне, буурчак кантип түзүлөт, кайсы Bean Scope жип коопсуз жана өз ара инъекцияны кантип чечүү керек - бардык интервью суроолору. Баракты кантип кайтаруу керек, JSON кантип кайтаруу керек, ж.б. Мен азыр “Профессионалдар үчүн 5-жазды” орусча окуп жатам, бирок жалпысынан алар “Жазыгы аракетте” дегенди сунушташат.
3-СТАП. Жумуш издөө
Чынында, үй долбоорлорун аяктагандан кийин, биринчи эки айдын ичинде мен ар кандай Junior \ Trainee вакансияларына (HH, LinkedIn, жалдоо агенттиктери аркылуу) 30га жакын жоопторду жөнөттүм, натыйжалары нөлгө жакын. Мен тажрыйбасы жок вакансияларга гана көңүл буруп, мага тааныш стекти чынчылдык менен көрсөтүп, коштомо каттарга менин жогорку окуу жөндөмүмдү жаздым. Жыйынтыгында эки чалуу болду (алардын бири менин англисчеге чейинки дароо аяктады), дагы эки компания техникалык мүнөздөмөлөрдү жөнөттү, бир гана "жолугушуу" болду, анан мен ал жерде алгоритм боюнча маселелерди кагаз бетине жалгыз чечтим, андан кийин HR жөн гана кагаздарды алып кетип, "биз сизге чалабыз". Мен бир нече стажировкадан өтүүгө аракет кылдым (акы төлөнбөгөн жана шарттуу түрдө төлөнүүчү): мен техникалык спецификацияны аткардым, бирок акыркы социалдык камсыздоодон өткөн жокмун; бирок азыр мен айта алам, тренерлер T-Systems, CFT, Андерсен жана EPAM тарабынан кабыл алынат (алардын сын-пикирлери аралаш, өзүңүз чечиңиз). Мага келсек, эгер сизде бир нече ай кирешесиз отуруп, өлбөй калуу мүмкүнчүлүгү болсо, бул тармакка чыгуунун жакшы жолу =) Бул окуядан кийин мен бир аз депрессияга түшүп, окуяны издөө менен тыныгууга койдум. дээрлик алты ай бою - мен мурунку профилде иштөөнү уланттым, кээ бир арыздарды жөн гана көңүл ачуу үчүн жаздым, бирок аларды Gitке да жарыялаган жокмун. Мен бир таанышыма жолукканга чейин, мен ага вакансиялардагы кемчorктерди кокусунан айтып бердим: ал учурда ал орто иштеп чыгуучу болуп иштеп жаткан, бирок ал да ошондой эле - өз алдынча окуудан баштаган. Бир таанышым мага бир нече кеңеш берди , ал өзү колдонгон жана келечекте жумуш издөөмө чоң жардам берди. Аларды ээрчийсиңби же жокпу, өзүңө байланыштуу, анткени... алар, кандайдыр бир жол менен, толугу менен чынчыл эмес. Ошентип, кийинки цитаталар:-
Кандай болбосун, өзүңүздүн резюмеңизде 6+ айлык коммерциялык тажрыйба менен камсыз кылыңыз: стажировка, дипломдук долбоорлор, фрилансердик иш, алыстан иштөө - кандай болбосун. Бул HR тарабынан резюмелерди алгачкы текшерүү баскычында чоң жардам берет;
-
резюмеңизден Кенже жана күтүлгөн эмгек акы деген сөздү алып салуу; жөн гана Java Developer катары калтырып, акчаны ар бир компания менен жекече талкуулаңыз;
-
Сиздин күтүүлөрүңүздү атаардан мурун, HR сунуш кылынган эмгек акынын "айрысын" атаганга аракет кылыңыз. Эгер компания 80-120 миңди сунуштаса жана сиз 40 миң же андан көп сумманы издеп жатсаңыз, кээ бир селекторлор сизге жек көрүү менен мамиле кылышат;
-
1-3 жылдык коммерциялык тажрыйбаны талап кылса дагы, сиздин стекиңизге ылайыктуу бардык вакансияларга кайрылыңыз.
-
Резюмеңизге сиз иштеген тилдердин, технологиялардын жана фреймворктордун бүтүндөй стегин кошуңуз.
-
LinkedIn'де катталыңыз - ал жерде ар кандай компаниялардын HR адамдары абдан көп. Өзүңүздүн профorңизди кылдаттык менен толтуруңуз - чындыгында бул да сиздин резюмеңиз. Байланыш тармагыңызды өнүктүрүү үчүн профorңизге тиешелүү LIONдорду кошуңуз; алар бардык колдонуучулардын суроо-талаптарын кабыл алышат.
-
Акысыз Java тесттеринде өзүңүздү сынап көрүңүз - алар көбүнчө Junior интервьюсуна чейин кагаз жүзүндө берилет. Алдын ала даярдануу жакшы.
-
Алар ар дайым коллекциялар жөнүндө сурашат: кайсылары бар, алар кандайча айырмаланат, аларды качан колдонуу эң жакшы.
-
Дайыма абстракттуу класстарда жана интерфейстерде - аларда методдор, талаалар болушу мүмкүнбү, кайсынысы, мураска алынышы мүмкүн ж.б.у.с.
-
Дээрлик ар дайым multithreading боюнча - жумушуңузда колдонгон нерселер, ачкыч сөздөр, ыкмалар, сиз util.concurrent менен таанышсызбы.
-
Көбүнчө эс менен иштөөдө - үймөк, стек жана бул саптар бирдей болобу, жана бул an objectтер, эмне үчүн.
-
Кээде алгоритмдер жөнүндө - кайсыларын билесиз, кандай татаал, эмне үчүн, азыр алгоритм жаза аласыз.
-
Кээде үлгүлөрдүн негизинде - кайсынысын билесиз, кайсынысын колдоносуз, синглтонду же фабриканы жазыңыз.
-
Кээде SQLде - JOINдин түрлөрү, транзакция деген эмне, аны JDBCде кантип жүргүзүү керек, кыска суроо жазыңыз.
-
Жаңы жазууларды түзөтүү жана кошуу менен Salesforce профorнин бизнес байланыштары барагы;
-
консолдук башкаруусу бар Spring State Machine аркылуу көп кабаттуу имаратта лифттин симуляциясы;
-
LibGDX китепканасына негизделген Android тиркемеси, баскыч басылганда тамгалар боюнча текст чыгаруу;
-
HTTP өтүнүчү аркылуу кардарларды кошуу жана JSON кайтаруу менен REST унаа бөлүшүүнү имитациялоо;
-
багыты жок графикти эркин клетка аркылуу сорттоо маселеси;
-
файлдан координаттарды колдонуу менен тең жактуу үч бурчтуктарды издөө;
-
Stream API аркылуу даяр codeдун рефакторинги;
-
Үчтүк туюнтмаларды колдоо менен UI калькулятору;
-
натыйжаларды файлга жазуу менен жиптердин жарышы.
-
Тапшырманы аткарууга гана эмес, codeдун OOP принциптерине дал келүүсүнө да аракет кылыңыз.
-
Кодуңуздун эффективдүүлүгүн текшериңиз - мен бир жолу четке кагылдым, анткени башка нерселер менен катар BufferedWriterдин ордуна PrintStreamди колдондум.
-
Аткаруу убактысын 50% маржа менен пландаштырыңыз - мөөнөт аяктаганда эртең менен саат сегизде git push жасагандан көрө, эрте баштап, бүтүргөн жакшы.
GO TO FULL VERSION