Салам! Бүгүн биз Java иштеп чыгуучунун өнүгүү жолу жана суроо-талапка ээ болуу үчүн эмнени бorши керектиги жөнүндө сүйлөшөбүз. Интервьюда каалаган иштеп чыгуучу кызматка талапкерди "иштей албай" алат. Мисалы, ал учурдагы долбоордо жолуккан конкреттүү темалар боюнча суроолорду бере баштайт. Бирок баарын билбегени жакшы. Кээ бир суроолорго жооп бербегениң да нормалдуу көрүнүш. Жалпысынан алганда, ар бир Java программисти өнүктүрүү боюнча негизги бorмге ээ болушу керек. Ошентип, кандай технологиялар "негизги" деп эсептелерин карап көрөлү.
Жаз деген эмне экенин түшүнүү үчүн биринчи орунда болушу керек: жазгы контейнер, буурчак, DI, IoC жана башкалар. Ошентип, Жазды колдонуунун философиясын түшүнүңүз. Жазгы алHowтарды андан ары изилдөө ушул базанын негизинде ишке ашат. Өзүңүздүн кичинекей тиркемеңизди түзүүгө арзырлык болушу мүмкүн, ага сиз үйрөнгөн жаңы технологияларды акырындык менен кошосуз.
Буга чейин биз маалымат базасына байланыш түзүү технологиясы катары JDBC технологиясы жөнүндө сүйлөштүк. Жалпысынан алганда, технологияны "жылаңач" колдонуу азыр долбоорлордо кездешпейт, андыктан JDBCти үйрөнүү зарыл эместей сезorши мүмкүн. Бирок, андай болгон жок. JDBCнин жылаңач сөөктөрүн карап, сиз технологияны төмөнкү деңгээлде көрүп, анын көйгөйлөрүн жана кемчorктерин түшүнө аласыз. Жазгы JDBCди үйрөнө баштаганыңыздан кийин, бул алHow эмнени жакшыртып, оптималдаштырып, биздин көзүбүздөн жашырып жатканын түшүнөсүз.
Жылаңач JDBC сыяктуу эле, бул алHow учурдагы технологияны колдонууну жакшыртат, бул учурда Hibernate. Эгер сиз Күтүү режимин Жазсыз колдонууну ойлонсоңуз, Жазгы Күтүү режимин колдонуунун кандай пайдасы бар экенин так түшүнөсүз.
Мурда биз JPA жөнүндө сүйлөштүк жана бул кандайча ар кандай ишке ашыруулар бар спецификация гана. Бул ишке ашыруулардын арасында Hibernate идеалга эң жакыны болуп саналат. Жаздын JPAнын өзүнүн идеалдуу ишке ашырылышы бар, ал Hibernate режимин "капот астында" колдонот жана JPA спецификацияларынын идеалына мүмкүн болушунча жакын. Бул технология Spring JPA деп аталат. Айтмакчы, бул маалымат базасына кирүүнү абдан жеңилдетет. JPAны JDBC, Hibernate, Spring JDBC, Spring Hibernate режимдерин үйрөнбөстөн гана үйрөнө аласыз. Бирок бул учурда, маалымат базасына туташуу боюнча бorмиңиз өтө үстүртөн болот.
Бул технология менен биз колдонуучуларга биздин тиркеменин веб-интерфейсин көрсөтө алабыз жана интерфейске тиркеменин калган бөлүгү менен байланышууга мүмкүнчүлүк бере алабыз. Технология дисплейге жооптуу кээ бир тиркеме болгондо дисплейсиз да иштей алат жана сиз RESTful технологиясын колдонуу менен суроо-жоопторду колдонуу менен бул колдонмо менен иштешесиз. Жаз тууралуу маалыматты жакшыраак түшүнүү үчүн, YouTube'дагы макалалардан жана лекциялардан тышкары, бир нече китептерди окуй аласыз. Мага Уоллс Крейгдин "Жазгы аракет" китеби абдан жакты. Тилекке каршы, орус тorнде азыр эскирген деп эсептелген үчүнчү versionсы гана бар. Англис тorн жакшы билсеңер 6-versionсын окууну кеңеш кылам. Жаз тууралуу дагы бир сонун китеп "Профессионалдар үчүн 5-жаз". Аны үйрөнүү кыйыныраак жана жазгы Библияга окшош , аны башынан аягына чейин окугандан көрө, колуңузда кармаган жакшы.
Бул технология Жазды колдонууну абдан жеңилдетет. Мен аны тизменин аягына бир себеп менен койдум, анткени ал "капюшондун" астында көп нерсени жашырат жана кадимки Жазды билбеген адам үчүн көп жагдайлар ачык жана түшүнүксүз болушу мүмкүн. Биринчиден, Жазгы алHowтардын кантип иштээрин жакшыраак түшүнүү үчүн кадимки Жазды, андан кийин Spring Boot колдонуунун бардык жогорку артыкчылыктарын колдонушуңуз керек. Мен ошондой эле жазгы коопсуздук жана жазгы AOP менен таанышууну сунуштайм. Бирок жогорудагы технологиялардан айырмаланып, бул экөөнү терең билүү азыр талап кылынbyte. Бул технология үйрөнчүктөр үчүн эмес. Интервью учурунда алар жөнүндө кенжелерден сурашпайт (балким, үстүртөн суроону кошпогондо). Бул технологиялар деген эмне жана алар кантип иштейт жалпысынан окуңуз. Бул макалада мен бир нече жолу китеп окуу жөнүндө айттым. Бир жагынан алганда, бул зарыл эмес. Макалалардан жана тренинг видеолорунан керектүү нерселердин баарын изилдеп туруп, бир да китеп окубай эле программист боло аласыз. Башка жагынан алып караганда, учурда башталгыч иштеп чыгуучулар үчүн рынокто атаандаштык жогору, бул башталгыч үчүн талап кылынган баштапкы бorмдин чегин көтөрөт. Андыктан, канчалык көп билсеңиз, биринчи жумушуңузду ошончолук бат таап, маектешиңизди бorм деңгээлиңиз менен таң калтыра аласыз. Баарыңыздарга рахмат жана Java сиз менен болсун .
1. Негизги алгоритмдер
Программалоону үйрөнүп баштаганда эң биринчи нерсе (бул Java үчүн гана эмес) бул негиздерди талдоо. Мисалы, алгоритмдер. Алардын чексиз саны бар жана мүмкүн болушунча көп алгоритмдерди үйрөнүүгө бүт жылды коротпоңуз: алардын көбү сизге пайдалуу болбойт. Талап кылынган минималдуу бorмди “ Grocking Algorithms ” китебинен алса болот . Бул сапарды баштоо үчүн жетиштүү болот, бирок эгер кааласаңыз, Роберт Седгвик менен Кевин Уэйндин “ Структуралар жана алгоритмдер ” же “Явадагы алгоритмдер” китебинин жардамы менен үйрөнө аласыз. Мен дагы информатиканын негиздери боюнча бorмиңизди өркүндөтүүнү кеңеш кылам. Муну JavaRush программасында CS50 курсун колдонуу менен жасоого болот .2. Java синтаксиси
Алгоритмдердин негиздерин үйрөнгөндөн кийин, биз Java синтаксисин үйрөнүшүбүз керек. Баарыбыз бул жерде Java программист болууну үйрөнүп жатабыз, туурабы? JavaRush курсу бул үчүн идеалдуу. Көптөгөн тапшырмаларды аткаруу процессинде сиз Java синтаксисинде эркин сүйлөйсүз жана Java codeун өз эне тorңиз сыяктуу көп ойлонбостон жаза/окуп аласыз. JavaRush - бул практика жана ага кошумча, сиз эмне кылып жатканыңызды түшүнүү үчүн теорияны да карашыңыз керек. Бул үчүн, сиз китептерди окуй аласыз, мисалы, төмөнкүлөрдүн бирин:- " Биринчи Java башына ";
- Барри Берддин "Даммилер үчүн Java";
- «Java. Жаңы баштагандар үчүн колдонмо” Герберт Шилдт.
- «Ява философиясы», Брюс Эккел;
- "Натыйжалуу программалоо", Жошуа Блох;
- «Java. Толук жол», Герберт Шилдт.
3. Программалоо үлгүлөрү
Программалоо үлгүлөрү - бул көп кездешүүчү контекстте маселенин чечorшин көрсөткөн кээ бир кайталануучу үлгүлөр. Алардын арасында ар бир өзүн сыйлаган программист бorши керек болгон негизги, жөнөкөй шаблондор бар. Бул теманы түшүнүү үчүн « Биринчи баш. Дизайн үлгүлөрү ." Ал так негизги программалоо үлгүлөрүн түшүндүрүп берет. Бирок китеп Java жөнүндө көп айтылат , ошондуктан китепти окуп жатканда бул программалоо тorн өздөштүрүү керек. Үлгүлөргө тереңирээк сүңгүп чыгуу үчүн, ошондой эле “Объектке багытталган дизайн техникалары. Дизайн үлгүлөрү” төрттүк бандадан ( Төрттүн бандасы: Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссайдс кирген авторлор тобу – редактордун эскертүүсү) . Бул теманы изилдегенден кийин, сиз codeуңуздун дээрлик бардык жеринде үлгүлөрдү көрө баштайсыз. Буга көңүл буруңуз, айрыкча жазда колдонулган үлгүлөр , анткени бул интервьюларда популярдуу суроо.4. Программалоо парадигмалары. Код тазалыгы
Стандарттык программалоо үлгүлөрүнөн тышкары, сиз бorшиңиз керек болгон ар кандай принциптер жана парадигмалар бар ( SOLID , GRASP ). Ошондой эле codeдун таза жана окула турган болушун камсыз кылуу зарыл. Бул тема боюнча бorшиңиз керек болгон нерселердин баары Роберт Мартиндин " Таза code " китебинде же Стив МакКоннеллдин "Мыкты code" китебинен көрүңүз.5.SQL
Биздин кийинки кадам реляциялык маалымат базаларынын тorн изилдөө болуп саналат - SQL . Берorштер базалары - бул веб-тиркеменин маалыматы (маалыматтары) сакталган жер. Маалыматтар базасы көптөгөн tableлардан турат (телефонуңуздагы даректер китеби мындай tableлардын эң жөнөкөй мисалы). Бул макалада маалымат базалары жөнүндө көбүрөөк окуй аласыз . Java иштеп чыгуучулары үчүн жоопкерчorк чөйрөсү Java тиркемеси гана эмес, ошондой эле ал өз ара аракеттенүүчү жана маалыматтарды сактаган маалымат базасы болуп саналат. Реляциялык (эң кеңири таралган) маалымат базаларында бардык өз ара аракеттенүү атайын тил аркылуу ишке ашат - Structured Query Language, же SQL. Бул теманы түшүнүү үчүн, китептердин бирин окуу жетиштүү болот:- Алан Бьюли тарабынан "SQL үйрөнүү";
- "SQL", Крис Фиаor;
- Линн Бэйли тарабынан "Биринчи SQL башчысы".
GO TO FULL VERSION