JavaRush /Java блогы /Random-KK /Айла, немесе Java тілінде тәжірибесіз орта Java әзірлеуші...
Юрий
Деңгей
Москва

Айла, немесе Java тілінде тәжірибесіз орта Java әзірлеушісі ретінде жұмысқа қалай орналасуға болады

Топта жарияланған
Барлық Java студенттері мен мамандарына сәлем. Мүмкін менің әңгімем біреуге мұны қалай істеу керек, ал басқалары үшін оны қалай істемеу керектігі туралы үлгі болар. Бұл 2021 жылдың 19 қазаны, мен бүгін ірі компанияда Java орта әзірлеушісі ретінде сынақ мерзімін (3 ай) аяқтадым. Менде Java әзірлеуде бұрын тәжірибе болған жоқ. 2020 жылдың 4 маусымына дейін мен Java туралы ештеңе білмедім. Мен Javaist ретінде жұмысқа қабылданған кезде, мен сынақ мерзімінен өтсем, сәттілік туралы тарих жазамын деп уәде бердім. Бұл мақала екі логикалық бөлікке бөлінеді: Мансап туралы ақпарат ( Java тіліне қатысы жоқ 1-5 тараулар, бірақ сіз өзіңіздің мансабыңыз туралы білім ала аласыз). Javaist болу (6-9 тараулар – Java тілін үйрену, сұхбаттар, жұмысқа тұру, алғашқы шынайы тәжірибе). <h3>1-тарау. Экономист</h3>Мен JavaRush-ке қандай білім деңгейімен келгенімді түсіну үшін өзім туралы өмірбаяндық жазба беруім керек. 2013 жыл, қараша, таңғы сағат 8. Мен Таганкадағы кофеханада отырып, SQL нұсқауларын қайталап жатырмын. Бір сағаттан кейін мен банктің қаржы бөлімінде жетекші экономист лауазымына сұхбат беремін. Бұл мені шақырған жалғыз сұхбат, мен оны 100% беруім керек. Ол үшін мен Санкт-Петербордан ұшып келіп, онсыз да болмашы жиған-тергенімді жұмсамас үшін ас үйде туыстарымның үйінде қалдым. 30 minutes өтті, ветчина мен ірімшік қосылған құймақ жеп қойды және біз армандаған арманымызға жетуіміз керек. Бірақ бәрі дірілдеп тұр. Сұхбаттан өтпей қалсам ше? Жарайды, олай болмады. Мен банкке барып, рұқсат қағазын алып, кездесу бөлмесінде сұхбаттасушыларымды күтемін. Уақыт өте ұзақ уақыт өтеді. Ішке 35-тер шамасындағы ер адам мен жасы бір әйел кіреді. Олар өздерін таныстырып, өздері туралы айтып беруді сұрайды: «Юри, бұл бір ғанибет». Мен 21 жастамын, Санкт-Петербургте университетте сырттай оқимын, банкте кассир болып 3 ай жұмыс істедім. Мен бұл үшін оқығаным емес екенін түсіндім, мен еңбек нарығына қарай бастадым және Мәскеуде экономистерде SQL талабы бар екенін көрдім. Сондықтан мен оны зерттедім, курстарға бардым (MS SQL Administration - менде болған нәрсе, мен сол үшін бардым), сіз маған қоңырау шалдыңыз. Олар компания туралы, не істейтіні туралы айтады (сөздердің көпшілігі түсініксіз), содан кейін тест тапсыруыңызды сұрайды. Тестте SQL бойынша 3 сұрақ бар: 1. Берілген кесте, id = 10 бар барлық жазбаларды шығарып алыңыз. 2. Берілген екі кестені қосыңыз және әрқайсысынан бағанды ​​көрсетіңіз. 3. Бөлімдерді топтаңыз және әр бөлім бойынша қызметкерлер санын беріңіз. Бұл өтініштерді жазғаным өте ұят. Осыдан кейін менің жұмыстан күтетінімді талқылау басталады. Олар маған сиқырлы сөйлемді айтады: «Сұхбатыңызға рахмет, біз сізге қайта қоңырау шаламыз». Бір апта өтеді, олар маған өздерімен жұмыс істеуді ұсынады. Эйфория, шок, қуаныш! Ал қандай ақшаға: қолында 70 мың рубль! Иә, мен бай боламын! Мен Мәскеуге келіп тұрамын, орталықтан бөлме жалдап тұрамын. Алғашқы күндер эйфориялық. 10 күннен кейін түсіну басталады: мен қайда келдім? Мен мүлдем ештеңе түсінбеймін! Мен ай сайын бүкіл банк бойынша басқару есептерін дайындауға тура келді. Әрине, мен үшін де сізбен бірдей болды, құрметті оқырман. Мен банкаралық несие, своп, шығыстарды бөлу, шығындар және т.б. терминдерді латын тіліндегі емлесі ретінде қабылдадым. Осы жолда маған мәселенің техникалық жағын меңгеруге тура келді: MS Access (барлық есеп беру сол жерде VBA арқылы жасалды), MS SQL (Access орнына жаңа қойма ретінде), Oracle (бастапқыда мен оны Oracle деп атадым, истериканы тудырды. бағдарламашылар арасында). Кенеттен мен техникалық жағы маған әлдеқайда қызықты екенін түсіне бастадым. Күрделі сұрауларды жасау әрекеттері бар (нәтижесінде дерекқор менің сценарийлерімнен ілулі тұр, ал ашулы әкімшілер мұны кім жасағанын анықтауға тырысады). Бірақ негізгі жұмыс – қаржы, бұл мені ашуландыра бастады. Бір жарым айдан кейін мен жұмыстан кету туралы хат жазып жатырмын, өйткені мен ешқандай нәтиже бере алмаймын (шынымды айтсам, олар менен ештеңе күтпеді). Қаржы бөлімінің басшысы оны жыртып алып: «Бақытқа алаңдама» дейді. Бір айдан кейін тағы да арыз жазамын, мұндай арсыздықтан (кейінірек банктің басқарма төрағасы болды) шошып кеткен бөлім меңгерушісі қатты таңырқап қол қояды: жігіт 21 жаста, одан жоғары емес. білім, оларға жалақы да, сенім де берілді, бірақ ол өзін осылай ұстайды. Жұмыстан шығаруға тағы екі фактор себеп болды: мен тәкаппарлығына сабырлықпен жауап бере алмаған бастық және арқам ауыра бастаған ыңғайсыз орындық. Бұл керемет күлкілі, бірақ мұнда мотив бар. Шығарғанда, енді мен одан да жайлы боламын деп ойладым. Бірақ ол жерде болмады. <h3>2-тарау. 70 сұхбат</h3>Банктен шығып, терең тыныс алдым. «Мен мұны осылай реттеймін, бәрі таң қалады». Әңгімелесулер жоспарланып, олардың жалақысы жоғары болды, есеп берумен айналысудың қажеті жоқ сияқты болды. 4 сұхбат бар, мені ешкім жұмысқа алмайды. 5, 6 сұхбат - дәл солай. Мен бір қызбен жалдамалы бөлмеде тұрдым, ол жұмысқа тұрды және менің тапшылығымды өтей алды. Бірақ мен әлі қанша уақыт табыссыз болатынымды білмедім. Мен сұхбатқа бардым (аналитиктің бос орындары), олар негізінен SQL және VBA туралы сұрады. Білмейтіндер үшін VBA Excel, Access және басқа MS Office өнімдерінде бағдарламалау тілі болып табылады. 10 сұхбат жүргізілді - ештеңе жоқ. 20, 30 - ештеңе. Тәжірибе мен жоғары білімнің жоқтығынан (бұл маған болмашы нәрсе сияқты) бәрі ұят. 40 сұхбат және үмітсіздік басталады. 55-60 интервью кезеңінде мен 1С оқуды бастаймын. Әйелі болған қыз Санкт-Петербургке кетуді сұрайды, өйткені ол жерде оның жеке баспанасы бар. Ал 70-ші сұхбатта мені 50 000 рубльге Санкт-Петербургтің индустриалды аймағындағы шағын компанияға 1С деректер қорының әкімшісі (1С әзірлеушісі болу перспективасымен) шақырды. Енді бұл мансаптық өсу! <h3>3-тарау. Аңыздың оралуы</h3>Сұрғылт Санкт-Петербург индустриалды аймағында шағын автобустың (корпоративтік көлік) терезесінен қарап, бір сағат қырық бір бағытты жүріп өткенде, мен жете алмайтынымды түсіндім. осылай өмір сүр. 1С-ге деген қызығушылық өздігінен жазылған жүйенің бірінші түрткенде жоғалып кетті. Жоспар керек болды. Және ол жетілді: кешкі уақытта ол SQL-ді оқып, сонымен бірге белгілі жұмыс орнын бақылап отырды. Жұмыстан шығаруға соңғы себеп болған жағдай: билеттер сатып алынған болса да, бас директор мені жоспарланған демалысқа жібергісі келмеді. Каникулдан кейін мен өтініш жазып, Мәскеудегі бос орындарға түйіндемені жіберемін. Тағы да Мәскеу уақыты бойынша маған үлкен банкте сұхбат беруді ұсынады. Мен тағы да туыстарымның асханасына келіп, сұхбат алуға барамын. Мекен-жайды жазғанда, мен өз көзіме өзім сене алмадым - бұл мен жұмыс істеуді армандаған ғимарат болды (Менің Мәскеуде соңғы тұрғылықты жерім кезінде ол жаңадан салынып жатқан еді). Лауазымы ақпараттық жүйелерді қолдаудың бас маманы деп аталды. Мен кеңсеге барамын Мені 30-дар шамасындағы сәнді күртеше мен джинсы шалбар киген ер адам қарсы алады. Біз 15-қабатқа көтерілдік, қаланың панорамасын көргенде тынысым тарылды: сталиндік көпқабатты үйлердің бәрі көрінді. Ғимараттың бүкіл стилі өте заманауи болды: бастықтың кеңсесінде шарап тоңазытқыштары, сәнді аквариумдар, қара-ақ стильде жалаңаш әйелдің суреті болды. Бұл «уау» әсерін тудырды. Бастықпен әңгіме әдеттегідей болмады: 40 minutesтай ол банкте не болып жатқанын әңгімеледі. Мен ештеңе түсінбедім, бірақ басымды изедім. Мен сұрағанымда: Менен қашан сұрай бастайсың? Ол назар аудармады. «Техникалық сұхбат қашан?» деген сұрағыма тағы да «иә, біз сізді бәрібір жұмысқа аламыз, егер сіз оны көтере алмасаңыз, жұмыстан шығарамыз» деп жауап берді. Бұл күлімсіреп айтылды, мен бәрінің, арманның қайтадан орындалғанын түсіндім! <h3>4-тарау. АТ саласында өзіңізді табу </h3>Жаңа жерге келгенде, олардың мені неге бірден жұмысқа алғанын түсіндім. Мен бөлім қызметкерінің типтік портретін сипаттаймын: орташа жасы 55 жаста, мәскеулік, Мәскеу мемлекеттік университетінде білімі, кеңестік кезеңде қорғаныс ғылыми-зерттеу институтында жұмыс істеген, 90-шы жылдары банк секторына ауысқан, мұнда 20 жылдан бері жұмыс істейді. жыл.Жартысы еркек, жартысы әйел. Олар айналадағы интерьерлермен толық диссонансқа кірді. Біз бухгалтерлік есеп бойынша есеп беру бағдарламаларын жүргізуге қатыстық. Әрине, мұның бәрі 90-шы жылдардың соңы мен 2000-шы жылдардың басында әзірлеушілер жазған ежелгі VBA және SQL сценарийлерінде болды. Бұл 2015 жыл болды, ал автоматтандыру MS Access арқылы болды. Яғни, бұл өте кедей болып көрінді. Бірақ бір нюанс болды - олар клиенттің (бухгалтерияның) қалағанын қамтамасыз етті. Және дәл уақытында және қажетті формада. Тек олар оның қалай жұмыс істейтінін білді, тіпті Онотоле олардың дамуының күрделілігін елестете алмады. Ал кез келген IT-менеджер, тіпті ең үлкен тілекпен оларды жұмыстан боса алмайды - бас бухгалтер банк басқармасына барып, бухгалтерлік бөлімнің мүддесіне қызмет еткен кез келген қызметкерді қорғады. Менеджер менің трояндық аттың рөлін ойнағанымды қалады: мен олардың барлық әзірлемелерін зерттедім, содан кейін деректерді жаңа жүйеге көшірдім. Сонда ескі қызметкерлер жұмыстан босатылуы мүмкін, ал мені жаңа жүйеге ауыстыруға болады. Алдымен мен олардың процестерін зерттеп, VBA codeын қарадым. Бірте-бірте мен VBA codeын оқуды үйрендім. Бір жылдан кейін мен codeты қалай жазу керектігін білдім. Типтік тапсырма: деректер қорын беріп, одан деректерді шығарып, оны Excel бағдарламасына белгілі бір форматта орналастырыңыз. Енді, Задорнов айтқандай, терең тыныс алыңыз: бөлімнің барлық есептері (және бұл күн сайын 50, айлық 20 есеп!) қолмен орындалды! Карл, сіз түсінесіз бе, адамдар күн сайын 50 есепте өз қолдарымен күндерді +1-ге ауыстырады! Олар отырады, бір есептің нәтижесін 1-10 minutes күтіп, екіншісін іске қосады! Оның үстіне, күнделікті есептер белгілі бір уақытта іске қосылуы керек, ал кешіктіруден Құдай сақтасын! Олар есептерді шығарып қана қоймайды, олар айнымалы мәндерді пайдаланбай дерекқордағы proceduresаларды қолмен орындайды! Яғни, @startDate = '2015-01-01' айнымалы мәнін пайдаланудың орнына олар сол күнді 20 жерде қолмен өзгертеді! Осының бәрін қарап шыққаннан кейін мен Python тілін үйрене бастадым, және VBA, SQL және тапсырмаларды жоспарлаушымен бірге мен мұның бәрін екі жылда автоматтандырдым. Автоматтандырылған ғана емес, сонымен қатар көптеген есептерді тездетеді: егер сіз MS Access + VBA-дан MS SQL + TSQL пайдасына бас тартсаңыз, өнімділіктің бірнеше есе артуына қол жеткізуге болады. Менің жазбам есеп жасауды жылдамдатады100бір рет! Бірақ менің әріптестерім мұндай автоматтандыруға қатты наразы болды, сондықтан мені халық жауы деп жариялады (олар зейнеткерлікке шыққанша тыныш отырғысы келді). Уақыт өтті және деректерді тасымалдау сәтті болды. Менеджер мені өте жоғары бағалады: егер жұмысымның басында мен жұмысқа таңғы сағат 8-де келсем, біраз уақыттан кейін мен кез келген уақытта сағат 12:00-ге дейін келе аламын, жалақы мен лауазымның тұрақты өсуі, демалыс күндері жұмыс үшін төлем көбірек болды. екі есе көп, жұмысқа кешігіп қалсаңыз үйге такси, ұялы байланыс, қысқасы – элита! <h3>5-тарау. Алтын тор</h3>Кенет, 3,5 жылдан кейін жаңа АТ-менеджмент келіп, мен деректерді көшірген жүйе енді қажет емес екенін айтады. Бірақ ескі жүйе сақталады. Менің менеджерім мансап сатысымен көтеріліп жатыр және мені прогрессивті бөлімге ауысуға шақырады. Прогрессивті бөлімнің басшысымен кездесуде мен бұл бөлімнің технологиялық стекі маған белгісіз екенін түсіндім: Oracle, .net, C#, Linux және т.б. + Потенциалды бастыққа антипатия. Мен менеджеріме прогрессивті бөлімге қызығушылық танытпайтынымды айтамын, ол мені ыңғайлы түрде ұмытады. Содан кейін сұрақ туындайды: әрі қарай не істеу керек? Табыс әлдеқашан жақсы болды, кіші әзірлеуші ​​мені бұл жалақыға жұмысқа алмайды. Менің дағдыларым туралы ойланғаннан кейін мен машиналық оқытуға түсуім керек екенін түсіндім. Институтта жиіркенішті ғана тудырған математикалық статистикамен алғашқы кездесуге дейін бәрі қызықты болды. Міне, алты ай бойы ессіздік! Уақыт өте берді, мен бір күні серуендеп жүріп, Мәскеудің картасында жақсы мейрамханаларды көрсететін веб-сайт туралы ойладым. HTML, CSS, JS үйрене бастады. Мен 3 ай оқуға жұмсадым; менде толыққанды веб-сайт жасау үшін білімім болмады, бірақ мен оны жұмыста жаттыға аламын. Идея пайда болды: бухгалтерлер үшін портал құру, олар кез келген есепті түймені пайдаланып өздері жүктей алады. Порталды жасауға 2 ай қажет болды және SPA (Бір бет қолданбасы) веб-қосымшасы Node.js serverі бар React js жүйесінде дүниеге келді. SQL сценарийлерін қайта іске қостым (мен Hibernate сияқты фреймворктер туралы білмедім), Python іске қосылды және MongoDb-де қосымша ақпаратты сақтадым (мысалы, сайт пайдаланушылары туралы). Сырттай, сайт өте жақсы көрінді (bootstrap 4, сәнді анимация). Мен бұл жобаны әлі күнге дейін мақтан тұтамын. Бірақ мен банктің веб-әзірлеушілеріне codeымды көрсеткенімде, олар таң қалды. СІЗДІҢ БІР СЫНЫП ЕМЕС! Тек мүмкіндіктер, тек хардкор! Олар мені мақтады, бірақ ортаңғы толық сттек әзірлеушісі болу үшін әлі көп оқуым керек екенін айтты. Мен аналитик болып жұмысқа орналасуға тырыстым, бірақ арнайы ұсыныстар болмады. Менің ойымша: мен ол жерде болған жоқпын, толық стек әзірлеушісі туралы түйіндемені орналастырамын. Қоңыраулар келді, бірақ сұхбат кезінде мен Париждің үстінен фанер сияқты ұшып кеттім: мысалы, мен HashMap, HashSet деген не екенін және олардың не үшін қажет екенін білмедім. OOP, бағдарламалау үлгілері, алгоритмдер, тестілеу, Git туралы шамалы идея болған жоқ. Мен қарапайым нәрселерді білмеуден бұрыннан ұмытылған ұят сезімін есіме түсірдім. Кенеттен қаржы компаниясында тұтынушыларды талдау бөлімінің басшысы болып жұмысқа орналасуға ұсыныс түседі. Бір апта бұрын ел пандемияға байланысты жабылды. Мен қаржылық компанияға жұмысқа тұрдым, бірақ екі жақты сезім болды: бір жағынан, жоғары жалақы жылы болды, екінші жағынан, техникалық жағынан ең аз даму болады. Құрылғы орнатылып, қашықтан жұмыс істеу енгізілгеннен кейін бір апта өтті. Жұмыс емес күндер қаржы саласына қатысты болмағандықтан, біз әдеттегідей жұмыс істедік. Жаңа бастық өте ақылсыз адам болып шықты: ол Facebook-ті қырып тастауды, клиенттерді зерттеу үшін өзінің жеке нейрондық желілерін құруды ұсынды (қызметтегі деректер ғалымы жоқ). Жаңа қызметкерлерге бір аптадан кейін Python тілін үйрену ұсынылды, т.б. Төленбейтін демалыс күндері қалыпты жағдайға айналды. Жұмыстан шығу ақымақтық болды: пандемия кезінде қайдан жұмысқа орналасасың? Бірақ 2 айдан кейін шыдамы таусылды, тоқсан сайынғы бонустар болмайтыны хабарланған. Нюанс мынада, біз жалақыны келіскен кезде, жұмысқа қабылдау кезінде hr жалақы жалақыға (60%) және тоқсан сайынғы бонусқа (40%) бөлінгенін айтты, ол әрқашан төленеді. Қате таңдау жасалғаны және жаңа жұмыс іздеуге кірісу керек екені белгілі болды. <h3>6-тарау. Java тілін меңгеруді бастау</h3>Мамырдың бір тамаша күнінде мен «Әзірлеуші» бос орнына сұхбатқа шақыру алдым. Сақтандыру саласындағы компанияға сақтандыру өнімдерін әзірлейтін адам қажет. Бағдарламалау тәжірибесі қажет, бірақ бұл компанияның «бірегей» дамуы болғандықтан, нақты тіл қажет емес. Git және т.б. да қажет. Мен сұхбатты екі күнге жоспарладым, бос уақытымда Git негіздерін оқыдым. Сұхбат барысында маған Python, JS, Git, SQL туралы сұрақтар қойылды. Мен «әдістерді шамадан тыс жүктеу» ұғымынан басқа барлығына жауап бердім және мені 2 аптадан кейін жұмысқа шақырды. Компания жүйені баяғыда сатып алған болып шықты. Java тілінде жазылған (алдыңғы және артқы), оның көмегімен сіз бағдарламалау тілін білмей-ақ бизнес-процестерді жасай аласыз (дәлірек, кірістірілген Jelly бағдарламалау тілін пайдалану). Жақсы естіледі, бірақ іс жүзінде бәрі бұрмаланған. Лирикалық шегініс: кез келген технологияның өз дәуірі, өз ауқымы бар. 2000 жылы барлық есептерді тек Excel бағдарламасында жасау керемет. 2021 жылы дәл осылай жасау өте жақсы емес. Компанияның таза HTML тіліндегі веб-сайты 1999 жылы жақсы болды, бірақ 2021 жылы емес. Осылайша, компания құрылған кезде (2005) қолданған технология өте керемет болды - Java serverге де, клиентке де (Java сервлет беттері деп аталатын) жауапты болды. Сонымен қатар, егер сіз жаңа бизнес-процесс жасасаңыз (оның жеке интерфейсі бар), ол файлдағы codeта емес, дерекқордың ішінде сақталады. Мұның қаншалықты ыңғайсыз екенін түсіну үшін Intellij идеясында Java codeын жазып, оны Дерекқорға сақтаңыз, содан кейін елестетіңіз. codeты іске қосқыңыз келгенде, бағдарлама ядросы дерекқорға өтіп, codeты сол жерден оқиды. Тиісінше, қолданбаңызды толық жөндеу мүмкін емес. Кеңес №1: Кодты сынақ үстеліне жібергіңіз келгенде, жасауыңыз керек екінші жағынан, техникалық жағынан ең аз даму болады. Құрылғы орнатылып, қашықтан жұмыс істеу енгізілгеннен кейін бір апта өтті. Жұмыс емес күндер қаржы саласына қатысты болмағандықтан, біз әдеттегідей жұмыс істедік. Жаңа бастық өте ақылсыз адам болып шықты: ол Facebook-ті қырып тастауды, клиенттерді зерттеу үшін өзінің жеке нейрондық желілерін құруды ұсынды (қызметтегі деректер ғалымы жоқ). Жаңа қызметкерлерге бір аптадан кейін Python тілін үйрену ұсынылды, т.б. Төленбейтін демалыс күндері қалыпты жағдайға айналды. Жұмыстан шығу ақымақтық болды: пандемия кезінде қайдан жұмысқа орналасасың? Бірақ 2 айдан кейін шыдамы таусылды, тоқсан сайынғы бонустар болмайтыны хабарланған. Нюанс мынада, біз жалақыны келіскен кезде, жұмысқа қабылдау кезінде hr жалақы жалақыға (60%) және тоқсан сайынғы бонусқа (40%) бөлінгенін айтты, ол әрқашан төленеді. Қате таңдау жасалғаны және жаңа жұмыс іздеуге кірісу керек екені белгілі болды. <h3>6-тарау. Java тілін меңгеруді бастау</h3>Мамырдың бір тамаша күнінде мен «Әзірлеуші» бос орнына сұхбатқа шақыру алдым. Сақтандыру саласындағы компанияға сақтандыру өнімдерін әзірлейтін адам қажет. Бағдарламалау тәжірибесі қажет, бірақ бұл компанияның «бірегей» дамуы болғандықтан, нақты тіл қажет емес. Git және т.б. да қажет. Мен сұхбатты екі күнге жоспарладым, бос уақытымда Git негіздерін оқыдым. Сұхбат барысында маған Python, JS, Git, SQL туралы сұрақтар қойылды. Мен «әдістерді шамадан тыс жүктеу» ұғымынан басқа барлығына жауап бердім және мені 2 аптадан кейін жұмысқа шақырды. Компания жүйені баяғыда сатып алған болып шықты. Java тілінде жазылған (алдыңғы және артқы), оның көмегімен сіз бағдарламалау тілін білмей-ақ бизнес-процестерді жасай аласыз (дәлірек, кірістірілген Jelly бағдарламалау тілін пайдалану). Жақсы естіледі, бірақ іс жүзінде бәрі бұрмаланған. Лирикалық шегініс: кез келген технологияның өз дәуірі, өз ауқымы бар. 2000 жылы барлық есептерді тек Excel бағдарламасында жасау керемет. 2021 жылы дәл осылай жасау өте жақсы емес. Компанияның таза HTML тіліндегі веб-сайты 1999 жылы жақсы болды, бірақ 2021 жылы емес. Осылайша, компания құрылған кезде (2005) қолданған технология өте керемет болды - Java serverге де, клиентке де (Java сервлет беттері деп аталатын) жауапты болды. Сонымен қатар, егер сіз жаңа бизнес-процесс жасасаңыз (оның жеке интерфейсі бар), ол файлдағы codeта емес, дерекқордың ішінде сақталады. Мұның қаншалықты ыңғайсыз екенін түсіну үшін Intellij идеясында Java codeын жазып, оны Дерекқорға сақтаңыз, содан кейін елестетіңіз. codeты іске қосқыңыз келгенде, бағдарлама ядросы дерекқорға өтіп, codeты сол жерден оқиды. Тиісінше, қолданбаңызды толық жөндеу мүмкін емес. Кеңес №1: Кодты сынақ үстеліне жібергіңіз келгенде, жасауыңыз керек екінші жағынан, техникалық жағынан ең аз даму болады. Құрылғы орнатылып, қашықтан жұмыс істеу енгізілгеннен кейін бір апта өтті. Жұмыс емес күндер қаржы саласына қатысты болмағандықтан, біз әдеттегідей жұмыс істедік. Жаңа бастық өте ақылсыз адам болып шықты: ол Facebook-ті қырып тастауды, клиенттерді зерттеу үшін өзінің жеке нейрондық желілерін құруды ұсынды (қызметтегі деректер ғалымы жоқ). Жаңа қызметкерлерге бір аптадан кейін Python тілін үйрену ұсынылды, т.б. Төленбейтін демалыс күндері қалыпты жағдайға айналды. Жұмыстан шығу ақымақтық болды: пандемия кезінде қайдан жұмысқа орналасасың? Бірақ 2 айдан кейін шыдамы таусылды, тоқсан сайынғы бонустар болмайтыны хабарланған. Нюанс мынада, біз жалақыны келіскен кезде, жұмысқа қабылдау кезінде hr жалақы жалақыға (60%) және тоқсан сайынғы бонусқа (40%) бөлінгенін айтты, ол әрқашан төленеді. Қате таңдау жасалғаны және жаңа жұмыс іздеуге кірісу керек екені белгілі болды. <h3>6-тарау. Java тілін меңгеруді бастау</h3>Мамырдың бір тамаша күнінде мен «Әзірлеуші» бос орнына сұхбатқа шақыру алдым. Сақтандыру саласындағы компанияға сақтандыру өнімдерін әзірлейтін адам қажет. Бағдарламалау тәжірибесі қажет, бірақ бұл компанияның «бірегей» дамуы болғандықтан, нақты тіл қажет емес. Git және т.б. да қажет. Мен сұхбатты екі күнге жоспарладым, бос уақытымда Git негіздерін оқыдым. Сұхбат барысында маған Python, JS, Git, SQL туралы сұрақтар қойылды. Мен «әдістерді шамадан тыс жүктеу» ұғымынан басқа барлығына жауап бердім және мені 2 аптадан кейін жұмысқа шақырды. Компания жүйені баяғыда сатып алған болып шықты. Java тілінде жазылған (алдыңғы және артқы), оның көмегімен сіз бағдарламалау тілін білмей-ақ бизнес-процестерді жасай аласыз (дәлірек, кірістірілген Jelly бағдарламалау тілін пайдалану). Жақсы естіледі, бірақ іс жүзінде бәрі бұрмаланған. Лирикалық шегініс: кез келген технологияның өз дәуірі, өз ауқымы бар. 2000 жылы барлық есептерді тек Excel бағдарламасында жасау керемет. 2021 жылы дәл осылай жасау өте жақсы емес. Компанияның таза HTML тіліндегі веб-сайты 1999 жылы жақсы болды, бірақ 2021 жылы емес. Осылайша, компания құрылған кезде (2005) қолданған технология өте керемет болды - Java serverге де, клиентке де (Java сервлет беттері деп аталатын) жауапты болды. Сонымен қатар, егер сіз жаңа бизнес-процесс жасасаңыз (оның жеке интерфейсі бар), ол файлдағы codeта емес, дерекқордың ішінде сақталады. Мұның қаншалықты ыңғайсыз екенін түсіну үшін Intellij идеясында Java codeын жазып, оны Дерекқорға сақтаңыз, содан кейін елестетіңіз. codeты іске қосқыңыз келгенде, бағдарлама ядросы дерекқорға өтіп, codeты сол жерден оқиды. Тиісінше, қолданбаңызды толық жөндеу мүмкін емес. Кеңес №1: Кодты сынақ үстеліне жібергіңіз келгенде, жасауыңыз керек клиенттерді зерттеу үшін өзіңіздің жеке нейрондық желілеріңізді жасаңыз (қызметтегі деректер зерттеушісінсіз). Жаңа қызметкерлерге бір аптадан кейін Python тілін үйрену ұсынылды, т.б. Төленбейтін демалыс күндері қалыпты жағдайға айналды. Жұмыстан шығу ақымақтық болды: пандемия кезінде қайдан жұмысқа орналасасың? Бірақ 2 айдан кейін шыдамы таусылды, тоқсан сайынғы бонустар болмайтыны хабарланған. Нюанс мынада, біз жалақыны келіскен кезде, жұмысқа қабылдау кезінде hr жалақы жалақыға (60%) және тоқсан сайынғы бонусқа (40%) бөлінгенін айтты, ол әрқашан төленеді. Қате таңдау жасалғаны және жаңа жұмыс іздеуге кірісу керек екені белгілі болды. <h3>6-тарау. Java тілін меңгеруді бастау</h3>Мамырдың бір тамаша күнінде мен «Әзірлеуші» бос орнына сұхбатқа шақыру алдым. Сақтандыру саласындағы компанияға сақтандыру өнімдерін әзірлейтін адам қажет. Бағдарламалау тәжірибесі қажет, бірақ бұл компанияның «бірегей» дамуы болғандықтан, нақты тіл қажет емес. Git және т.б. да қажет. Мен сұхбатты екі күнге жоспарладым, бос уақытымда Git негіздерін оқыдым. Сұхбат барысында маған Python, JS, Git, SQL туралы сұрақтар қойылды. Мен «әдістерді шамадан тыс жүктеу» ұғымынан басқа барлығына жауап бердім және мені 2 аптадан кейін жұмысқа шақырды. Компания жүйені баяғыда сатып алған болып шықты. Java тілінде жазылған (алдыңғы және артқы), оның көмегімен сіз бағдарламалау тілін білмей-ақ бизнес-процестерді жасай аласыз (дәлірек, кірістірілген Jelly бағдарламалау тілін пайдалану). Жақсы естіледі, бірақ іс жүзінде бәрі бұрмаланған. Лирикалық шегініс: кез келген технологияның өз дәуірі, өз ауқымы бар. 2000 жылы барлық есептерді тек Excel бағдарламасында жасау керемет. 2021 жылы дәл осылай жасау өте жақсы емес. Компанияның таза HTML тіліндегі веб-сайты 1999 жылы жақсы болды, бірақ 2021 жылы емес. Осылайша, компания құрылған кезде (2005) қолданған технология өте керемет болды - Java serverге де, клиентке де (Java сервлет беттері деп аталатын) жауапты болды. Сонымен қатар, егер сіз жаңа бизнес-процесс жасасаңыз (оның жеке интерфейсі бар), ол файлдағы codeта емес, дерекқордың ішінде сақталады. Мұның қаншалықты ыңғайсыз екенін түсіну үшін Intellij идеясында Java codeын жазып, оны Дерекқорға сақтаңыз, содан кейін елестетіңіз. codeты іске қосқыңыз келгенде, бағдарлама ядросы дерекқорға өтіп, codeты сол жерден оқиды. Тиісінше, қолданбаңызды толық жөндеу мүмкін емес. Кеңес №1: Кодты сынақ үстеліне жібергіңіз келгенде, жасауыңыз керек клиенттерді зерттеу үшін өзіңіздің жеке нейрондық желілеріңізді жасаңыз (қызметтегі деректер зерттеушісінсіз). Жаңа қызметкерлерге бір аптадан кейін Python тілін үйрену ұсынылды, т.б. Төленбейтін демалыс күндері қалыпты жағдайға айналды. Жұмыстан шығу ақымақтық болды: пандемия кезінде қайдан жұмысқа орналасасың? Бірақ 2 айдан кейін шыдамы таусылды, тоқсан сайынғы бонустар болмайтыны хабарланған. Нюанс мынада, біз жалақыны келіскен кезде, жұмысқа қабылдау кезінде hr жалақы жалақыға (60%) және тоқсан сайынғы бонусқа (40%) бөлінгенін айтты, ол әрқашан төленеді. Қате таңдау жасалғаны және жаңа жұмыс іздеуге кірісу керек екені белгілі болды. <h3>6-тарау. Java тілін меңгеруді бастау</h3>Мамырдың бір тамаша күнінде мен «Әзірлеуші» бос орнына сұхбатқа шақыру алдым. Сақтандыру саласындағы компанияға сақтандыру өнімдерін әзірлейтін адам қажет. Бағдарламалау тәжірибесі қажет, бірақ бұл компанияның «бірегей» дамуы болғандықтан, нақты тіл қажет емес. Git және т.б. да қажет. Мен сұхбатты екі күнге жоспарладым, бос уақытымда Git негіздерін оқыдым. Сұхбат барысында маған Python, JS, Git, SQL туралы сұрақтар қойылды. Мен «әдістерді шамадан тыс жүктеу» ұғымынан басқа барлығына жауап бердім және мені 2 аптадан кейін жұмысқа шақырды. Компания жүйені баяғыда сатып алған болып шықты. Java тілінде жазылған (алдыңғы және артқы), оның көмегімен сіз бағдарламалау тілін білмей-ақ бизнес-процестерді жасай аласыз (дәлірек, кірістірілген Jelly бағдарламалау тілін пайдалану). Жақсы естіледі, бірақ іс жүзінде бәрі бұрмаланған. Лирикалық шегініс: кез келген технологияның өз дәуірі, өз ауқымы бар. 2000 жылы барлық есептерді тек Excel бағдарламасында жасау керемет. 2021 жылы дәл осылай жасау өте жақсы емес. Компанияның таза HTML тіліндегі веб-сайты 1999 жылы жақсы болды, бірақ 2021 жылы емес. Осылайша, компания құрылған кезде (2005) қолданған технология өте керемет болды - Java serverге де, клиентке де (Java сервлет беттері деп аталатын) жауапты болды. Сонымен қатар, егер сіз жаңа бизнес-процесс жасасаңыз (оның жеке интерфейсі бар), ол файлдағы codeта емес, дерекқордың ішінде сақталады. Мұның қаншалықты ыңғайсыз екенін түсіну үшін Intellij идеясында Java codeын жазып, оны Дерекқорға сақтаңыз, содан кейін елестетіңіз. codeты іске қосқыңыз келгенде, бағдарлама ядросы дерекқорға өтіп, codeты сол жерден оқиды. Тиісінше, қолданбаңызды толық жөндеу мүмкін емес. Кеңес №1: Кодты сынақ үстеліне жібергіңіз келгенде, жасауыңыз керек <h3>6-тарау. Java тілін меңгеруді бастау</h3>Мамырдың бір тамаша күнінде мен «Әзірлеуші» бос орнына сұхбатқа шақыру алдым. Сақтандыру саласындағы компанияға сақтандыру өнімдерін әзірлейтін адам қажет. Бағдарламалау тәжірибесі қажет, бірақ бұл компанияның «бірегей» дамуы болғандықтан, нақты тіл қажет емес. Git және т.б. да қажет. Мен сұхбатты екі күнге жоспарладым, бос уақытымда Git негіздерін оқыдым. Сұхбат барысында маған Python, JS, Git, SQL туралы сұрақтар қойылды. Мен «әдістерді шамадан тыс жүктеу» ұғымынан басқа барлығына жауап бердім және мені 2 аптадан кейін жұмысқа шақырды. Компания жүйені баяғыда сатып алған болып шықты. Java тілінде жазылған (алдыңғы және артқы), оның көмегімен сіз бағдарламалау тілін білмей-ақ бизнес-процестерді жасай аласыз (дәлірек, кірістірілген Jelly бағдарламалау тілін пайдалану). Жақсы естіледі, бірақ іс жүзінде бәрі бұрмаланған. Лирикалық шегініс: кез келген технологияның өз дәуірі, өз ауқымы бар. 2000 жылы барлық есептерді тек Excel бағдарламасында жасау керемет. 2021 жылы дәл осылай жасау өте жақсы емес. Компанияның таза HTML тіліндегі веб-сайты 1999 жылы жақсы болды, бірақ 2021 жылы емес. Осылайша, компания құрылған кезде (2005) қолданған технология өте керемет болды - Java serverге де, клиентке де (Java сервлет беттері деп аталатын) жауапты болды. Сонымен қатар, егер сіз жаңа бизнес-процесс жасасаңыз (оның жеке интерфейсі бар), ол файлдағы codeта емес, дерекқордың ішінде сақталады. Мұның қаншалықты ыңғайсыз екенін түсіну үшін Intellij идеясында Java codeын жазып, оны Дерекқорға сақтаңыз, содан кейін елестетіңіз. codeты іске қосқыңыз келгенде, бағдарлама ядросы дерекқорға өтіп, codeты сол жерден оқиды. Тиісінше, қолданбаңызды толық жөндеу мүмкін емес. Кеңес №1: Кодты сынақ үстеліне жібергіңіз келгенде, жасауыңыз керек <h3>6-тарау. Java тілін меңгеруді бастау</h3>Мамырдың бір тамаша күнінде мен «Әзірлеуші» бос орнына сұхбатқа шақыру алдым. Сақтандыру саласындағы компанияға сақтандыру өнімдерін әзірлейтін адам қажет. Бағдарламалау тәжірибесі қажет, бірақ бұл компанияның «бірегей» дамуы болғандықтан, нақты тіл қажет емес. Git және т.б. да қажет. Мен сұхбатты екі күнге жоспарладым, бос уақытымда Git негіздерін оқыдым. Сұхбат барысында маған Python, JS, Git, SQL туралы сұрақтар қойылды. Мен «әдістерді шамадан тыс жүктеу» ұғымынан басқа барлығына жауап бердім және мені 2 аптадан кейін жұмысқа шақырды. Компания жүйені баяғыда сатып алған болып шықты. Java тілінде жазылған (алдыңғы және артқы), оның көмегімен сіз бағдарламалау тілін білмей-ақ бизнес-процестерді жасай аласыз (дәлірек, кірістірілген Jelly бағдарламалау тілін пайдалану). Жақсы естіледі, бірақ іс жүзінде бәрі бұрмаланған. Лирикалық шегініс: кез келген технологияның өз дәуірі, өз ауқымы бар. 2000 жылы барлық есептерді тек Excel бағдарламасында жасау керемет. 2021 жылы дәл осылай жасау өте жақсы емес. Компанияның таза HTML тіліндегі веб-сайты 1999 жылы жақсы болды, бірақ 2021 жылы емес. Осылайша, компания құрылған кезде (2005) қолданған технология өте керемет болды - Java serverге де, клиентке де (Java сервлет беттері деп аталатын) жауапты болды. Сонымен қатар, егер сіз жаңа бизнес-процесс жасасаңыз (оның жеке интерфейсі бар), ол файлдағы codeта емес, дерекқордың ішінде сақталады. Мұның қаншалықты ыңғайсыз екенін түсіну үшін Intellij идеясында Java codeын жазып, оны Дерекқорға сақтаңыз, содан кейін елестетіңіз. codeты іске қосқыңыз келгенде, бағдарлама ядросы дерекқорға өтіп, codeты сол жерден оқиды. Тиісінше, қолданбаңызды толық жөндеу мүмкін емес. Кеңес №1: Кодты сынақ үстеліне жібергіңіз келгенде, жасауыңыз керек Компанияның таза HTML тіліндегі веб-сайты 1999 жылы жақсы болды, бірақ 2021 жылы емес. Осылайша, компания құрылған кезде (2005) қолданған технология өте керемет болды - Java serverге де, клиентке де (Java сервлет беттері деп аталатын) жауапты болды. Сонымен қатар, егер сіз жаңа бизнес-процесс жасасаңыз (оның жеке интерфейсі бар), ол файлдағы codeта емес, дерекқордың ішінде сақталады. Мұның қаншалықты ыңғайсыз екенін түсіну үшін Intellij идеясында Java codeын жазып, оны Дерекқорға сақтаңыз, содан кейін елестетіңіз. codeты іске қосқыңыз келгенде, бағдарлама ядросы дерекқорға өтіп, codeты сол жерден оқиды. Тиісінше, қолданбаңызды толық жөндеу мүмкін емес. Кеңес №1: Кодты сынақ үстеліне жібергіңіз келгенде, жасауыңыз керек Компанияның таза HTML тіліндегі веб-сайты 1999 жылы жақсы болды, бірақ 2021 жылы емес. Осылайша, компания құрылған кезде (2005) қолданған технология өте керемет болды - Java serverге де, клиентке де (Java сервлет беттері деп аталатын) жауапты болды. Сонымен қатар, егер сіз жаңа бизнес-процесс жасасаңыз (оның жеке интерфейсі бар), ол файлдағы codeта емес, дерекқордың ішінде сақталады. Мұның қаншалықты ыңғайсыз екенін түсіну үшін Intellij идеясында Java codeын жазып, оны Дерекқорға сақтаңыз, содан кейін елестетіңіз. codeты іске қосқыңыз келгенде, бағдарлама ядросы дерекқорға өтіп, codeты сол жерден оқиды. Тиісінше, қолданбаңызды толық жөндеу мүмкін емес. Кеңес №1: Кодты сынақ үстеліне жібергіңіз келгенде, жасауыңыз керекSQL скрипт, онда сіздің codeыңыз болады. Жағымсыз, бірақ төзімді ме? Zest №2: Дерекқор бір-бірімен байланысы бар 200-ден астам кестелерден тұрады. Бұл codeты қандай кестелерге енгізу керектігін және басқа кестелерде қандай нысандарды жасау керектігін білуіңіз керек дегенді білдіреді. Шығару ұзындығы ~ 1000 жолды құрайтын SQL сценарийі болып табылады. Бұл шынымен жиіркенішті. Мұрадан сақ болыңыз. Қысқасы, барлығы Java-да екенін түсініп, мен JavaRush-қа бардым (ақыры сайттың тақырыбына жеттік!). Маусым-шілде 2020. Алғашқы 10 деңгей тез жабылды (мүмкін бір ай), өйткені түбегейлі жаңа ештеңе болған жоқ. Содан кейін жылдамдық баяулады. 2020 жылғы шілде-қазан. 10-20 деңгейлер жабылды. Қазан-наурыз 2021. 20-30 деңгейлер жабық. Енді қызық басталады: 2021 жылдың наурызында мен Java бос орындарын қарай бастадым және онда бейтаныс сөздер көп екенін түсіндім. Spring, SpringBoot, Hibernate, JUnit бағдарламаларының бір түрі. Танымал веб-сайттан бейне курстарды сатып алып, мен Көктемге қол тигіздім және қазір мен бәрін білемін және істей аламын деп ойладым. Осыдан кейін мен Григорий Кислиннің TopJava курсына тап болдым. Оның веб-сайтында сіз тест тапсырмасын орындауға тырыса аласыз, егер сіз сәтті болсаңыз, сіз курсқа қатыса аласыз. Бұл курста сіз толыққанды веб-қосымшаны жасайсыз және тіпті оны Интернетте жариялайсыз. Бұл ақшаға олар сізге шолу жасайды (тәжірибелі бағдарламашы codeты қарап шығу), кері байланыс береді және проблемалар туындаған жағдайда сізге кеңестер береді. Мен 3-үй тапсырмасын орындадым да, тастадым. Себебі қарапайым: олар сізден көп нәрсені талап етеді, бірақ олар сізге ешқандай білім бермейді. Үй тапсырмасына қойылатын талаптар өте түсініксіз. Ақпарат өте сәйкес келмейтін түрде берілген. Менің субъективті пікірім бойынша, бұл курс басқа ұқсас тілдерден шыққан тәжірибелі әзірлеушілерге қажет. Өйткені оның курсында ол қолдануды сұрайтын технологияларды түсіндіру іс жүзінде жоқ. Сіз сондай-ақ Git-ті жақсы білуіңіз керек (барлығы сіздің жеке репозиторийіңізге жіберіледі). 2021 жылдың сәуір айының соңында мен Java әзірлеушісіне (орташа+ деңгейде қалаған жалақысы бар) түйіндеме жіберемін, онда мен соңғы жұмысымда Java тілінде бағдарламалағанымды көрсетемін (өтірік айттым). Сол күні банкке Java әзірлеушісі лауазымына өтінім түседі. <h3>7-тарау. Java сұхбаттары және дағдыларды жетілдіру</h3>Сонымен, жоспар қандай болды? Мен жақсы жалақы алуым керек, өйткені мен қомақты табыс + несиеге өмір сүруге үйреніп қалдым. Сондықтан кіші лауазымдар маған сәйкес келмейді. Орташа жұмысқа тұру керек. Бірақ тәжірибесіз мені кім жұмысқа алады? Шешім табиғи түрде шықты: менің еңбек кітапшамда менің бұрынғы қызметімде бір жыл әзірлеуші ​​болып, тағы 4 жыл IT бөлімінде сарапшы болып жұмыс істегенім жазылған. Сонымен, мен Java тілінде бір жыл бойы дамып келе жатқанымды айтайын. Ал егер олар жаңа өнімдер туралы сұраса, мен ескі Java (7) бар екенін және ештеңені қолдамайтынын айтамын. Бірінші (қашықтан) сұхбатымның алдында мен қобалжыдым. Менің тәжірибем жоқ, білімім өте аз, мен көп ақша сұраймын. Менің ойымша: бәрібір, жағымсыз тәжірибе де тәжірибе. Мен Skype арқылы байланысамын, мен екі бөлім басшысымен сұхбаттасамын. Бұл мені одан сайын мұңайтты. Сұрақтар басталды: OOP, HashMap құрылғысы, ағындар, деректер құрылымдары, Spring, Hibernate, AOP дегеніміз не. Ал егер Шпинге дейін ол азды-көпті төзімді болса, көктемде ол толығымен ыдырап кетті. Адамдар маған сұрақ қояды: егер сіз оны шынымен білмесеңіз, көктемде қалай дамып кеттіңіз? Мен: Мен оны көшірдім, қойдым, ол жұмыс істейді, бұл үшін рахмет. Бұл жауап оларды қуантты. Содан кейін олар SQL туралы сұрады, онда мен суға кеткен үйректей болдым. Келесі Git болды және rebase, cherry-pick (мен де білмедім) және JS туралы аяқтадым, өйткені ол менің түйіндемемде көрсетілген. Онда да толық сәтсіздік болды, өйткені олар OOP JS туралы сұрады. Әңгімелесу нәтижелері бойынша менің білімім comme il faut емес екені белгілі болды, сондықтан мен бұл бос орынға сәйкес келмейтінмін. Кешке HR менің кандиdateрамның мақұлданғанын және олар маған қоңырау шалуға дайын екенін жазады. Мен McDonald's-те бургерге тұншығып қалдым. Мен бақытты болдым, бірақ 3 күннен кейін HR басқа кандидатты таңдағанын хабарлады. Менің тәжірибемде бірінші рет ұсыныс кері қайтарылды. Java тіліндегі бірінші сұхбаттан кейін мен өз ойынымды күшейттім: мен видео курстарды сатуға арналған танымал сайтта Colt Steele-ден Git курсынан өттім (және оны толығымен аяқтадым!). Бұл менің Git туралы көзқарасымды өзгертті. Содан кейін мен Заур Трегуловтан Көктем+Қыту режимі бойынша (бриллиант) курс алдым. Жаттығу схемасы: Мен оны бейнедегідей көремін, компьютерде де солай істеймін, бірақ біреудің codeын ақымақтықпен көшірмеу үшін айнымалылар мен сыныптарды басқаша атаймын. Мен өзімнің барлық жұмысымды Github-қа жүктеймін (осылайша Git-пен айналысамын). Мамыр айының ортасы болатын және сағаттан қоңыраулар басталды. Сұхбаттарды бірінен соң бірін жоспарлауды бастадық. Көптеген шақыруларды келесі себептерге байланысты жоюға тура келді: HR менің түйіндемемнің сипаттамасын оқымады және мені жоғары лауазымға шақырды. Сондай-ақ жеке HR кастасын атап өткен жөн: Java-ны JavaScript-пен шатастыратындар. Сондықтан мен түйіндеменің тақырыбына Middle Java әзірлеушісін жаздым. <h3>8-тарау. Типтік сұрақтар тізімі және сұхбат қалай өтеді</h3>Мен сұхбатқа бара бастадым және бірте-бірте ортасында негізгі сұрақтар пулын қалыптастырдым. Міндетті: 0. ООП – анықтама, ООП-тың әрбір принципі туралы айту (+өмірден мысал келтіру). 1. Теңдіктер және хэшcode – олардың арасындағы шарт (қарым-қатынас) қандай? 2. HashMap – нысанның қай шелекке түсетінін, соқтығыс дегенді қалай түсінуге болады, деректер HashMap ішінде қандай деректер құрылымында сақталады, стандартты өлшем, шелектердің саны қалай артады. 3. Ағын – операциялардың қандай түрлері, олардың айырмашылығы неде, әр операция түріне мысал келтіріңіз. 4. Жолдық пул, бүтін сан – бұл не? 5. Үйме, стек – бұл не, айырмашылығы неде? 6. Runnable, Thread, Future арасындағы айырмашылықтар. 7. Ұшқыштық, атомдық. 8. Қатты, сүйген, құрғақ – анықтамалар, өмірден алынған мысалдар. 9. Java тіліндегі модификаторларға қол жеткізу. 10. Абстрактілі класс пен интерфейстің айырмашылығы неде. Интерфейс жеке болуы мүмкін бе? 11. Функционалдық интерфейстер. 12. Барлық Object әдістерін тізіп, олардың не үшін қажет екенін айтыңыз. Клондау әдісінің ерекшеліктері. 13. Серияландыру және сериядан шығару дегеніміз не. 14. Ресурстармен ұстап көріңіз - оның не екенін сипаттаңыз, Closeable интерфейсін пайдаланып айтыңыз. 15. Финал, ақырында, қорытындылау арасындағы айырмашылықтар? 16. Шамадан тыс жүктеме, Әдісті қайта анықтау - бұл айырмашылық. 17. Неліктен String өзгермейтін етіп жасалды, StringBuilder және StringBuffer туралы айтып беріңіз. 18. Уақыт күрделілігі дегеніміз не O(1), есте сақтау күрделілігі. 19. Мәліметтер құрылымдары: карта, жиынтық, кезек, декв, тізім және оларды Java тілінде іске асыру (treeMap, hashSet, hashMap, arrayList, linkedList, priorityQueue, blockingQueue) туралы әңгімелеу, кірістіру күрделілігін (ең нашар, орташа, жақсы) сипаттау, іздеу, әрбір құрылымдағы элементті жою. 20. Java тіліндегі қарапайым деректер типтері. Олардың әрқайсысы не үшін қажет? 21. Қателердің түрлері. Тексерілген және белгіленбеген ерекшеліктер. 22. JVM, JRE, JDK дегеніміз не? 23. Қандай коллекционерлермен жұмыс істедіңіз? Maven - өмірлік циклді құру. 24. Көктем - Ioc анықтамалары, Di, Bean Lifecycle, Context, @Bean Annotations, @Configuration, @Autowired, @Advice, @Aspect, @Service, @Repository. 25. Генерик – төменгі және жоғарғы шегі дегеніміз ненің анықтамасы? 26.Бағдарламалау үлгілері - кем дегенде Singleton (бұл неге кейде антипаттерн екенін айтуға дайын болу) + Builder, Adapter, Factory, Decorator, Proxt. Қалауы: 26. Тестілеу – кітапханаларымен (JUnit) жұмыс істеген тест түрлері. Мазақ, пышақ, шпион деген не? 27. Spring Boot - бұл не үшін қажет, SpringBoot қосымшасын онлайн жасауға дайын болу. 28. Күту күйі - бұл не үшін қажет, Entity, join баған, lazy vs eager loading, кэштеу деңгейлері (қатты). 29. Көктемгі демалыс - бұл не үшін қажет, @post, @get соңғы нүктелерді қалай жасауға болады. Параметрлерді/сұрау мәтінін қалай оқуға болады? json форматында қалай жіберуге болады? 30. Мәліметтер құрылымдары – ағаштар, олардың түрлері. 31. Алгоритмдер – сұрыптау түрлері. Java-дан басқа, олар сұрауы мүмкін: 1. (Міндетті!) Git - бұл не үшін қажет, операциялар біріктіру, қайта құру, шие таңдау, түрту, тарту, орындау, тіркеу, тексеру, тармақтау, қалпына келтіру, қайтару, жаңарту. 2.SQL – сұраныс жазу мүмкіндігі: екі кестені бір кестеге біріктіру (ішкі біріктіру, сол жақ біріктіру). 3. Деректер базасы - 3 қалыпты пішін, индекстер (олар не үшін қажет, түрлері), бастапқы кілт, сыртқы кілт Әдеттегі қашықтан сұхбат қалай өтеді: hr масштабтау сілтемесін жібереді (Skype, Google Meeting). Белгілі бір уақытта сіз қосыласыз және ол жерде 1-ден 3 адамға дейін болады (техникалық сарапшы, бастық, сағат). Әсіресе қыңыр жағдайларда 8 адамға дейін. Алдымен сіз өзіңіз туралы айтасыз, содан кейін техникалық бөлім, содан кейін бос орын және қоштасу туралы әңгіме (олар сізбен қашан хабарласатынын немесе келесі қадамдар қандай болатынын айтады). Қоштасу кезінде білім туралы кері байланыс сұрауға болады. Мен: «Мен жауап бергенде құлағыңыздың қай жері ауыратынын айта аласыз ба?» - деп сұрадым. Көптеген адамдар жауап береді, бірақ қабылданбауға дайын болыңыз. Әңгімелесу кезінде олар мыналарды бағалайды: 1. Сіздің ойыңызды жеткізе білу және орыс тілін білу (Орыс тілін нашар меңгергендіктен үміткер қабылданбаған жағдайды білемін). 2. Бұрынғы тәжірибе (соңғы жұмысыңызда не істегеніңізді мұқият сұрауы мүмкін). 3. Сізге қысым жасалғанда адекватты реакция (адамдар сыйламаушылықпен сөйлей бастаған кезде бір сұхбат болды: менің жауаптарыма мән бермеу, өз ұстанымдарын жеткізуге тырысу және т.б.. Мен сұхбатты басталғаннан кейін 15 minutesтан кейін аяқтадым, олар: стресті сұхбат болды!) 4. Сіздің білім деңгейіңіз. Мен мұнда толығырақ тоқталамын. Тақырыптың анықтамаларын білу сізден күтілетін нәрсенің тек 10% құрайды. Оның қалай жұмыс істейтінін түсіну қажет (кем дегенде жоғарғы деңгейде). Дамудың қай кезеңінде осы немесе басқа шешімді таңдайтыныңызды түсіндіруге дайын болу. Бұл сіздің анықтамаңыздың дәлдігінен әлдеқайда маңызды. Мен бұл дипломдық жұмысты екі мысал арқылы талдаймын. Бірінші мысал: сұхбат кезінде маған HashMap туралы сұрақ қойылды және мен анықтама бердім: «бұл негізгі және құндылық бумаларын сақтайтын деректер құрылымы». Содан кейін сұхбат алушы: TreeMap-тен қандай айырмашылығы бар? Жауап: Айырмашылығы - HashMap кілтті хэштейді және хэшингке байланысты қол жеткізу жылдам. Сұхбат беруші бірден бізге HashMap ішкі құрылымын айтып беруді сұрады, сонымен бірге hashCode және теңдіктер туралы сұрады. Және ол жауапқа қанағаттанбайынша немесе сіз тоқтағанша тереңдей түседі. Мен HashMap туралы дұрыс жауап беруді 2 айлық сұхбаттан және hexlet-тегі деректер құрылымдары бойынша курстан кейін ғана үйрендім. Екінші мысал: SOLID тұжырымдамасы. Мен жаттап алған анықтаманы беруімді сұрайды. Бірақ нақты өмірлік мысалдарға келе салысымен проблемалар басталды. Внимание!Егер сіз білмесеңіз, оны ойлап таппаңыз, бірақ мынаны айтыңыз: мен бұл тақырыпты білмеймін, бірақ ол осылай жұмыс істейді деп болжауға болады. Адам тақырыпты түсінгендей күпірлік айтса, көптеген техникалық мамандар ашуланады. 5. Жұмысты талқылау кезіндегі ынтаңыздың деңгейі. Сізді қызықтыруы және бос орын туралы сұрақтар қоюы күтілуде (тек ойдан шығарылғандар ғана емес). 6. Кейде әзіл (тек тақырып бойынша) және ортақ мүдделер қарым-қатынас жасауға көмектеседі. Өзіңіздің хоббиіңіз туралы айтудан тартынбаңыз, мүмкін сұхбат алушы Дотаны/футболды/қиялды да жақсы көреді. Бұл үміткер ретінде сіз үшін плюс. Мен мүдделер қауымдастығы сұхбат берушінің нашар техникалық дайындығына көз жұма қараған жағдайларды білемін (Сіз қарапайым жігітсіз, біз сізді оқытамыз). <h3>9-тарау. Жұмысқа орналасу, отқа шомылдыру рәсімінен өту</h3>Сұхбаттар сәуір айының соңынан шілденің ортасына дейін өтті. Алғашқы сұхбаттар ұят болды, бірақ бірте-бірте жағдай қолайлы деңгейге дейін жақсарды. Жалпы сұрақтар мен кері байланысты зерделеу өздерін сезінді. Алғашқы 25 сұхбат сәтсіз аяқталды. Осыдан кейін үмітсіз сәттер басталды. Сезімдер: егер олар мені осы жалақыға жұмысқа алмаса ше? Кенеттен жағдай басталды: бір апта ішінде үш компания ұсыныс жасады. Мен ерекшеліктерін білетін компанияны таңдадым, сонымен қатар жақсы жалақы және қашықтан жұмыс істеу мүмкіндігі бар. Сұхбат барысында маған Java core және Spring туралы 30-ға жуық сұрақ қойылды, олардың 97% дұрыс жауап бердім. Содан кейін жоғары органдармен байланыс болды және 1,5 аптадан кейін мен оларға жұмысқа орналастым. Ең алдымен, кез келген жұмысқа келгенде, сіз барлық қажетті жүйелерге қол жеткізе бастайсыз және қажетті құралдарды орнатасыз. Бір жарым апта болды, маған бірінші тапсырма берілді: сыныптағы статикалық мәтінді өзгерту. Жобаны ашқанда ішім ауырды: бір жобаның ішінде көптеген модульдер, көптеген сабақтар, тесттер және т.б. Осы кезде мен адасып қалдым, бірақ екінші әзірлеуші ​​маған көмектесті және мені жылдамдыққа жеткізді. Қате 10 minutes ішінде түзетілді, Git-те жарияланды, тарту сұрауы жасалды (басқа әзірлеушілер codeыңызды тексеретін екі тармақты біріктіру сұрауы), содан кейін негізгі фorалға біріктірілді. Бәрі соншалықты қиын емес екені белгілі болды. Бірінші толыққанды тапсырмаға дейін... Келесі екі аптаның тапсырмаларын жоспарлау кезінде олар маған айтты: OpenShift-те орналасқан басқа жүйемен интеграция жасайсыз. Міне, бәрі қорқынышты болды: OpenShift - бұл технологиялардың тұтас кластері: Docker, Kubernetes, Linux және т.б. Арқамнан суық тер шықты: мен иахист болып жұмыс істедім. Кездесуден кейін бірден әзірлеушіге қоңырау шалдым, ол мені сендірді: бұл жүйеге арналған адаптерлер жазылған және менің жобама белгілі бір сыныптарды импорттау жеткілікті болды, содан кейін мен интеграцияны қауіпсіз пайдалана аламын. Әзірлеуші ​​әдеттегі интеграцияны көрсеткенше, бұл қайтадан қызық болды: мен ұқсас интеграция үшін жасалған 20-дан астам сыныптарды көрдім. Бұған қоса, бұрын көрмеген @Value, @Builder, @NoArgsConstructor, @Getter annotationлары байқалды. @Sl4f - бұл Lombook жобасы болып шықты (Интернеттен оқыңыз). Әзірлеуші ​​маған мұны қалай істеу керектігін түсіндірген кезде, мен барлық сыныптардың байланыстарын жазуға тырыстым, бірақ менің басыма ештеңе кірмеді. Ең ыңғайсыз сәт Intellij Idea туралы білімнің жоқтығы болды: жобаны ғаламдық деңгейде іздеу, codeты рефакторинг және т.б. Тапсырманы орындай отырып, мен OOP не үшін қажет екенін түсіндім: codeтың мұндай үлкен көлемі үшін оны сыныптарға бөлу керек; сыныптан тыс пайдаланылмайтын әдістер оларды басқа сыныпта кездейсоқ іске қоспау үшін жеке деп жариялануы керек және т.б. Басқа интеграцияға ұқсастығы бойынша интеграцияны жазғаннан кейін мен CheckStyle бар екенін білдім - стильді тексеретін арнайы плагин codeыңызды өзгертіңіз және қателерді түзетпейінше жобаңызды құрастыра алмайсыз (мысалы, қосымша бос орындар, бас әріптері бар айнымалы атаулар, тым қысқа айнымалы атаулар). CheckStyle-ді жеңгеннен кейін мен codeты аға әзірлеушілерге қарап шығуға жібердім және бір апта ішінде қателерімді түзеттім. Жалпы, менің командамда көп нәрсені түсіндіріп берген екінші әзірлеушімен жақсы қарым-қатынаста болғаныма өте бақытты болдым. Құрылғыдан бір айдан кейін менің бірінші интеграциям Integration-Functional стендінде іске қосылды (барлық қосымшалардың жұмысы бірге тексерілді) және бәрі сонда жұмыс істеді! Жеңіс! Келесі тапсырма деректерді json кілті арқылы жасыруға мүмкіндік беретін сыныпты жасау болды. Мысалы: json {text:"JavaRush"} -> өңдеу -> {мәтін:"****Rush"} бар. Мұнда екі қиындық бар: ұя салу {text:{mytext:"JavaRush"}} болуы мүмкін, ал ең жағымсызы массив ішінде ұя салу: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (әрине барлық text.mytext жасыру керек). Бұл мәселені шешу өте қиын болды, бірақ мен мұны істедім! Мұнда екінші әзірлеуші ​​былай дейді: бұл әзірлеуді сынақтармен жабыңыз. Көздерінде аң-таң болды. Мен JUnit кітапханасымен шайқаста осылай таныстым. Бірлікті тестілеудің мәні: сізде енгізілген деректер бар, оны әдіске өткізіңіз және алынған мәліметтерді дұрыс нәтижемен салыстырыңыз (дұрыс нәтижемен айнымалыны жасаңыз). Мен кітапханам үшін 11 жағдай жаздым, онда қолданбаның NullPointException арқылы бұзылмағанын және оның кез келген кіріс түрімен деректерді дұрыс жасыратынын тексердім. Бұл тапсырманы орындағаннан кейін маған жаңа интеграция берілді, оның ерекшелігі келесідей болды: Мен сыртқы кітапханадан көктемгі бұршақты экспорттауым керек болды. Осы кезде мен Stack OverFlow веб-сайтының тұрақты тұтынушысы болдым. Бірде тіпті ресми Spring әзірлеушісі де жауап берді. Осы интеграцияны жүзеге асырғаннан кейін менің сынақ мерзімім аяқталды. Бастық мені сынақ мерзімінен өтуіммен құттықтады, мен бұл мақаланы жаза бастадым. Бұл мақаланы жазуға барлығы 8 сағат кетті) Назарларыңызға рахмет, мақала пайдалы болды деп үміттенемін. Мен барлық сыныптардың байланыстарын жазуға тырыстым, бірақ менің басыма ештеңе қонбайды. Ең ыңғайсыз сәт Intellij Idea туралы білімнің жоқтығы болды: жобаны ғаламдық деңгейде іздеу, codeты рефакторинг және т.б. Тапсырманы орындай отырып, мен OOP не үшін қажет екенін түсіндім: codeтың мұндай үлкен көлемі үшін оны сыныптарға бөлу керек; сыныптан тыс пайдаланылмайтын әдістер оларды басқа сыныпта кездейсоқ іске қоспау үшін жеке деп жариялануы керек және т.б. Басқа интеграцияға ұқсастығы бойынша интеграцияны жазғаннан кейін мен CheckStyle бар екенін білдім - стильді тексеретін арнайы плагин codeыңызды өзгертіңіз және қателерді түзетпейінше жобаңызды құрастыра алмайсыз (мысалы, қосымша бос орындар, бас әріптері бар айнымалы атаулар, тым қысқа айнымалы атаулар). CheckStyle-ді жеңгеннен кейін мен codeты аға әзірлеушілерге қарап шығуға жібердім және бір апта ішінде қателерімді түзеттім. Жалпы, менің командамда көп нәрсені түсіндіріп берген екінші әзірлеушімен жақсы қарым-қатынаста болғаныма өте бақытты болдым. Құрылғыдан бір айдан кейін менің бірінші интеграциям Integration-Functional стендінде іске қосылды (барлық қосымшалардың жұмысы бірге тексерілді) және бәрі сонда жұмыс істеді! Жеңіс! Келесі тапсырма деректерді json кілті арқылы жасыруға мүмкіндік беретін сыныпты жасау болды. Мысалы: json {text:"JavaRush"} -> өңдеу -> {мәтін:"****Rush"} бар. Мұнда екі қиындық бар: ұя салу {text:{mytext:"JavaRush"}} болуы мүмкін, ал ең жағымсызы массив ішінде ұя салу: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (әрине барлық text.mytext жасыру керек). Бұл мәселені шешу өте қиын болды, бірақ мен мұны істедім! Мұнда екінші әзірлеуші ​​былай дейді: бұл әзірлеуді сынақтармен жабыңыз. Көздерінде аң-таң болды. Мен JUnit кітапханасымен шайқаста осылай таныстым. Бірлікті тестілеудің мәні: сізде енгізілген деректер бар, оны әдіске өткізіңіз және алынған мәліметтерді дұрыс нәтижемен салыстырыңыз (дұрыс нәтижемен айнымалыны жасаңыз). Мен кітапханам үшін 11 жағдай жаздым, онда қолданбаның NullPointException арқылы бұзылмағанын және оның кез келген кіріс түрімен деректерді дұрыс жасыратынын тексердім. Бұл тапсырманы орындағаннан кейін маған жаңа интеграция берілді, оның ерекшелігі келесідей болды: Мен сыртқы кітапханадан көктемгі бұршақты экспорттауым керек болды. Осы кезде мен Stack OverFlow веб-сайтының тұрақты тұтынушысы болдым. Бірде тіпті ресми Spring әзірлеушісі де жауап берді. Осы интеграцияны жүзеге асырғаннан кейін менің сынақ мерзімім аяқталды. Бастық мені сынақ мерзімінен өтуіммен құттықтады, мен бұл мақаланы жаза бастадым. Бұл мақаланы жазуға барлығы 8 сағат кетті) Назарларыңызға рахмет, мақала пайдалы болды деп үміттенемін. Мен барлық сыныптардың байланыстарын жазуға тырыстым, бірақ менің басыма ештеңе қонбайды. Ең ыңғайсыз сәт Intellij Idea туралы білімнің жоқтығы болды: жобаны ғаламдық деңгейде іздеу, codeты рефакторинг және т.б. Тапсырманы орындай отырып, мен OOP не үшін қажет екенін түсіндім: codeтың мұндай үлкен көлемі үшін оны сыныптарға бөлу керек; сыныптан тыс пайдаланылмайтын әдістер оларды басқа сыныпта кездейсоқ іске қоспау үшін жеке деп жариялануы керек және т.б. Басқа интеграцияға ұқсастығы бойынша интеграцияны жазғаннан кейін мен CheckStyle бар екенін білдім - стильді тексеретін арнайы плагин codeыңызды өзгертіңіз және қателерді түзетпейінше жобаңызды құрастыра алмайсыз (мысалы, қосымша бос орындар, бас әріптері бар айнымалы атаулар, тым қысқа айнымалы атаулар). CheckStyle-ді жеңгеннен кейін мен codeты аға әзірлеушілерге қарап шығуға жібердім және бір апта ішінде қателерімді түзеттім. Жалпы, менің командамда көп нәрсені түсіндіріп берген екінші әзірлеушімен жақсы қарым-қатынаста болғаныма өте бақытты болдым. Құрылғыдан бір айдан кейін менің бірінші интеграциям Integration-Functional стендінде іске қосылды (барлық қосымшалардың жұмысы бірге тексерілді) және бәрі сонда жұмыс істеді! Жеңіс! Келесі тапсырма деректерді json кілті арқылы жасыруға мүмкіндік беретін сыныпты жасау болды. Мысалы: json {text:"JavaRush"} -> өңдеу -> {мәтін:"****Rush"} бар. Мұнда екі қиындық бар: ұя салу {text:{mytext:"JavaRush"}} болуы мүмкін, ал ең жағымсызы массив ішінде ұя салу: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (әрине барлық text.mytext жасыру керек). Бұл мәселені шешу өте қиын болды, бірақ мен мұны істедім! Мұнда екінші әзірлеуші ​​былай дейді: бұл әзірлеуді сынақтармен жабыңыз. Көздерінде аң-таң болды. Мен JUnit кітапханасымен шайқаста осылай таныстым. Бірлікті тестілеудің мәні: сізде енгізілген деректер бар, оны әдіске өткізіңіз және алынған мәліметтерді дұрыс нәтижемен салыстырыңыз (дұрыс нәтижемен айнымалыны жасаңыз). Мен кітапханам үшін 11 жағдай жаздым, онда қолданбаның NullPointException арқылы бұзылмағанын және оның кез келген кіріс түрімен деректерді дұрыс жасыратынын тексердім. Бұл тапсырманы орындағаннан кейін маған жаңа интеграция берілді, оның ерекшелігі келесідей болды: Мен сыртқы кітапханадан көктемгі бұршақты экспорттауым керек болды. Осы кезде мен Stack OverFlow веб-сайтының тұрақты тұтынушысы болдым. Бірде тіпті ресми Spring әзірлеушісі де жауап берді. Осы интеграцияны жүзеге асырғаннан кейін менің сынақ мерзімім аяқталды. Бастық мені сынақ мерзімінен өтуіммен құттықтады, мен бұл мақаланы жаза бастадым. Бұл мақаланы жазуға барлығы 8 сағат кетті) Назарларыңызға рахмет, мақала пайдалы болды деп үміттенемін. Мұндай үлкен көлемдегі code үшін оны сыныптарға бөлу керек; сыныптан тыс пайдаланылмайтын әдістер оларды басқа сыныпта кездейсоқ іске қоспау үшін жеке деп жариялануы керек және т.б. Басқа интеграцияға ұқсастығы бойынша интеграцияны жазғаннан кейін мен CheckStyle бар екенін білдім - стильді тексеретін арнайы плагин codeыңызды өзгертіңіз және қателерді түзетпейінше жобаңызды құрастыра алмайсыз (мысалы, қосымша бос орындар, бас әріптері бар айнымалы атаулар, тым қысқа айнымалы атаулар). CheckStyle-ді жеңгеннен кейін мен codeты аға әзірлеушілерге қарап шығуға жібердім және бір апта ішінде қателерімді түзеттім. Жалпы, менің командамда көп нәрсені түсіндіріп берген екінші әзірлеушімен жақсы қарым-қатынаста болғаныма өте бақытты болдым. Құрылғыдан бір айдан кейін менің бірінші интеграциям Integration-Functional стендінде іске қосылды (барлық қосымшалардың жұмысы бірге тексерілді) және бәрі сонда жұмыс істеді! Жеңіс! Келесі тапсырма деректерді json кілті арқылы жасыруға мүмкіндік беретін сыныпты жасау болды. Мысалы: json {text:"JavaRush"} -> өңдеу -> {мәтін:"****Rush"} бар. Мұнда екі қиындық бар: ұя салу {text:{mytext:"JavaRush"}} болуы мүмкін, ал ең жағымсызы массив ішінде ұя салу: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (әрине барлық text.mytext жасыру керек). Бұл мәселені шешу өте қиын болды, бірақ мен мұны істедім! Мұнда екінші әзірлеуші ​​былай дейді: бұл әзірлеуді сынақтармен жабыңыз. Көздерінде аң-таң болды. Мен JUnit кітапханасымен шайқаста осылай таныстым. Бірлікті тестілеудің мәні: сізде енгізілген деректер бар, оны әдіске өткізіңіз және алынған мәліметтерді дұрыс нәтижемен салыстырыңыз (дұрыс нәтижемен айнымалыны жасаңыз). Мен кітапханам үшін 11 жағдай жаздым, онда қолданбаның NullPointException арқылы бұзылмағанын және оның кез келген кіріс түрімен деректерді дұрыс жасыратынын тексердім. Бұл тапсырманы орындағаннан кейін маған жаңа интеграция берілді, оның ерекшелігі келесідей болды: Мен сыртқы кітапханадан көктемгі бұршақты экспорттауым керек болды. Осы кезде мен Stack OverFlow веб-сайтының тұрақты тұтынушысы болдым. Бірде тіпті ресми Spring әзірлеушісі де жауап берді. Осы интеграцияны жүзеге асырғаннан кейін менің сынақ мерзімім аяқталды. Бастық мені сынақ мерзімінен өтуіммен құттықтады, мен бұл мақаланы жаза бастадым. Бұл мақаланы жазуға барлығы 8 сағат кетті) Назарларыңызға рахмет, мақала пайдалы болды деп үміттенемін. Мұндай үлкен көлемдегі code үшін оны сыныптарға бөлу керек; сыныптан тыс пайдаланылмайтын әдістер оларды басқа сыныпта кездейсоқ іске қоспау үшін жеке деп жариялануы керек және т.б. Басқа интеграцияға ұқсастығы бойынша интеграцияны жазғаннан кейін мен CheckStyle бар екенін білдім - стильді тексеретін арнайы плагин codeыңызды өзгертіңіз және қателерді түзетпейінше жобаңызды құрастыра алмайсыз (мысалы, қосымша бос орындар, бас әріптері бар айнымалы атаулар, тым қысқа айнымалы атаулар). CheckStyle-ді жеңгеннен кейін мен codeты аға әзірлеушілерге қарап шығуға жібердім және бір апта ішінде қателерімді түзеттім. Жалпы, менің командамда көп нәрсені түсіндіріп берген екінші әзірлеушімен жақсы қарым-қатынаста болғаныма өте бақытты болдым. Құрылғыдан бір айдан кейін менің бірінші интеграциям Integration-Functional стендінде іске қосылды (барлық қосымшалардың жұмысы бірге тексерілді) және бәрі сонда жұмыс істеді! Жеңіс! Келесі тапсырма деректерді json кілті арқылы жасыруға мүмкіндік беретін сыныпты жасау болды. Мысалы: json {text:"JavaRush"} -> өңдеу -> {мәтін:"****Rush"} бар. Мұнда екі қиындық бар: ұя салу {text:{mytext:"JavaRush"}} болуы мүмкін, ал ең жағымсызы массив ішінде ұя салу: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (әрине барлық text.mytext жасыру керек). Бұл мәселені шешу өте қиын болды, бірақ мен мұны істедім! Мұнда екінші әзірлеуші ​​былай дейді: бұл әзірлеуді сынақтармен жабыңыз. Көздерінде аң-таң болды. Мен JUnit кітапханасымен шайқаста осылай таныстым. Бірлікті тестілеудің мәні: сізде енгізілген деректер бар, оны әдіске өткізіңіз және алынған мәліметтерді дұрыс нәтижемен салыстырыңыз (дұрыс нәтижемен айнымалыны жасаңыз). Мен кітапханам үшін 11 жағдай жаздым, онда қолданбаның NullPointException арқылы бұзылмағанын және оның кез келген кіріс түрімен деректерді дұрыс жасыратынын тексердім. Бұл тапсырманы орындағаннан кейін маған жаңа интеграция берілді, оның ерекшелігі келесідей болды: Мен сыртқы кітапханадан көктемгі бұршақты экспорттауым керек болды. Осы кезде мен Stack OverFlow веб-сайтының тұрақты тұтынушысы болдым. Бірде тіпті ресми Spring әзірлеушісі де жауап берді. Осы интеграцияны жүзеге асырғаннан кейін менің сынақ мерзімім аяқталды. Бастық мені сынақ мерзімінен өтуіммен құттықтады, мен бұл мақаланы жаза бастадым. Бұл мақаланы жазуға барлығы 8 сағат кетті) Назарларыңызға рахмет, мақала пайдалы болды деп үміттенемін. айнымалы атаулар тым қысқа). CheckStyle-ді жеңгеннен кейін мен codeты аға әзірлеушілерге қарап шығуға жібердім және бір апта ішінде қателерімді түзеттім. Жалпы, менің командамда көп нәрсені түсіндіріп берген екінші әзірлеушімен жақсы қарым-қатынаста болғаныма өте бақытты болдым. Құрылғыдан бір айдан кейін менің бірінші интеграциям Integration-Functional стендінде іске қосылды (барлық қосымшалардың жұмысы бірге тексерілді) және бәрі сонда жұмыс істеді! Жеңіс! Келесі тапсырма деректерді json кілті арқылы жасыруға мүмкіндік беретін сыныпты жасау болды. Мысалы: json {text:"JavaRush"} -> өңдеу -> {мәтін:"****Rush"} бар. Мұнда екі қиындық бар: ұя салу {text:{mytext:"JavaRush"}} болуы мүмкін, ал ең жағымсызы массив ішінде ұя салу: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (әрине барлық text.mytext жасыру керек). Бұл мәселені шешу өте қиын болды, бірақ мен мұны істедім! Мұнда екінші әзірлеуші ​​былай дейді: бұл әзірлеуді сынақтармен жабыңыз. Көздерінде аң-таң болды. Мен JUnit кітапханасымен шайқаста осылай таныстым. Бірлікті тестілеудің мәні: сізде енгізілген деректер бар, оны әдіске өткізіңіз және алынған мәліметтерді дұрыс нәтижемен салыстырыңыз (дұрыс нәтижемен айнымалыны жасаңыз). Мен кітапханам үшін 11 жағдай жаздым, онда қолданбаның NullPointException арқылы бұзылмағанын және оның кез келген кіріс түрімен деректерді дұрыс жасыратынын тексердім. Бұл тапсырманы орындағаннан кейін маған жаңа интеграция берілді, оның ерекшелігі келесідей болды: Мен сыртқы кітапханадан көктемгі бұршақты экспорттауым керек болды. Осы кезде мен Stack OverFlow веб-сайтының тұрақты тұтынушысы болдым. Бірде тіпті ресми Spring әзірлеушісі де жауап берді. Осы интеграцияны жүзеге асырғаннан кейін менің сынақ мерзімім аяқталды. Бастық мені сынақ мерзімінен өтуіммен құттықтады, мен бұл мақаланы жаза бастадым. Бұл мақаланы жазуға барлығы 8 сағат кетті) Назарларыңызға рахмет, мақала пайдалы болды деп үміттенемін. айнымалы атаулар тым қысқа). CheckStyle-ді жеңгеннен кейін мен codeты аға әзірлеушілерге қарап шығуға жібердім және бір апта ішінде қателерімді түзеттім. Жалпы, менің командамда көп нәрсені түсіндіріп берген екінші әзірлеушімен жақсы қарым-қатынаста болғаныма өте бақытты болдым. Құрылғыдан бір айдан кейін менің бірінші интеграциям Integration-Functional стендінде іске қосылды (барлық қосымшалардың жұмысы бірге тексерілді) және бәрі сонда жұмыс істеді! Жеңіс! Келесі тапсырма деректерді json кілті арқылы жасыруға мүмкіндік беретін сыныпты жасау болды. Мысалы: json {text:"JavaRush"} -> өңдеу -> {мәтін:"****Rush"} бар. Мұнда екі қиындық бар: ұя салу {text:{mytext:"JavaRush"}} болуы мүмкін, ал ең жағымсызы массив ішінде ұя салу: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (әрине барлық text.mytext жасыру керек). Бұл мәселені шешу өте қиын болды, бірақ мен мұны істедім! Мұнда екінші әзірлеуші ​​былай дейді: бұл әзірлеуді сынақтармен жабыңыз. Көздерінде аң-таң болды. Мен JUnit кітапханасымен шайқаста осылай таныстым. Бірлікті тестілеудің мәні: сізде енгізілген деректер бар, оны әдіске өткізіңіз және алынған мәліметтерді дұрыс нәтижемен салыстырыңыз (дұрыс нәтижемен айнымалыны жасаңыз). Мен кітапханам үшін 11 жағдай жаздым, онда қолданбаның NullPointException арқылы бұзылмағанын және оның кез келген кіріс түрімен деректерді дұрыс жасыратынын тексердім. Бұл тапсырманы орындағаннан кейін маған жаңа интеграция берілді, оның ерекшелігі келесідей болды: Мен сыртқы кітапханадан көктемгі бұршақты экспорттауым керек болды. Осы кезде мен Stack OverFlow веб-сайтының тұрақты тұтынушысы болдым. Бірде тіпті ресми Spring әзірлеушісі де жауап берді. Осы интеграцияны жүзеге асырғаннан кейін менің сынақ мерзімім аяқталды. Бастық мені сынақ мерзімінен өтуіммен құттықтады, мен бұл мақаланы жаза бастадым. Бұл мақаланы жазуға барлығы 8 сағат кетті) Назарларыңызға рахмет, мақала пайдалы болды деп үміттенемін. Бұл мәселені шешу өте қиын болды, бірақ мен мұны істедім! Мұнда екінші әзірлеуші ​​былай дейді: бұл әзірлеуді сынақтармен жабыңыз. Көздерінде аң-таң болды. Мен JUnit кітапханасымен шайқаста осылай таныстым. Бірлікті тестілеудің мәні: сізде енгізілген деректер бар, оны әдіске өткізіңіз және алынған мәліметтерді дұрыс нәтижемен салыстырыңыз (дұрыс нәтижемен айнымалыны жасаңыз). Мен кітапханам үшін 11 жағдай жаздым, онда қолданбаның NullPointException арқылы бұзылмағанын және оның кез келген кіріс түрімен деректерді дұрыс жасыратынын тексердім. Бұл тапсырманы орындағаннан кейін маған жаңа интеграция берілді, оның ерекшелігі келесідей болды: Мен сыртқы кітапханадан көктемгі бұршақты экспорттауым керек болды. Осы кезде мен Stack OverFlow веб-сайтының тұрақты тұтынушысы болдым. Бірде тіпті ресми Spring әзірлеушісі де жауап берді. Осы интеграцияны жүзеге асырғаннан кейін менің сынақ мерзімім аяқталды. Бастық мені сынақ мерзімінен өтуіммен құттықтады, мен бұл мақаланы жаза бастадым. Бұл мақаланы жазуға барлығы 8 сағат кетті) Назарларыңызға рахмет, мақала пайдалы болды деп үміттенемін. Бұл мәселені шешу өте қиын болды, бірақ мен мұны істедім! Мұнда екінші әзірлеуші ​​былай дейді: бұл әзірлеуді сынақтармен жабыңыз. Көздерінде аң-таң болды. Мен JUnit кітапханасымен шайқаста осылай таныстым. Бірлікті тестілеудің мәні: сізде енгізілген деректер бар, оны әдіске өткізіңіз және алынған мәліметтерді дұрыс нәтижемен салыстырыңыз (дұрыс нәтижемен айнымалыны жасаңыз). Мен кітапханам үшін 11 жағдай жаздым, онда қолданбаның NullPointException арқылы бұзылмағанын және оның кез келген кіріс түрімен деректерді дұрыс жасыратынын тексердім. Бұл тапсырманы орындағаннан кейін маған жаңа интеграция берілді, оның ерекшелігі келесідей болды: Мен сыртқы кітапханадан көктемгі бұршақты экспорттауым керек болды. Осы кезде мен Stack OverFlow веб-сайтының тұрақты тұтынушысы болдым. Бірде тіпті ресми Spring әзірлеушісі де жауап берді. Осы интеграцияны жүзеге асырғаннан кейін менің сынақ мерзімім аяқталды. Бастық мені сынақ мерзімінен өтуіммен құттықтады, мен бұл мақаланы жаза бастадым. Бұл мақаланы жазуға барлығы 8 сағат кетті) Назарларыңызға рахмет, мақала пайдалы болды деп үміттенемін.
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION