Потенциалдуу Java иштеп чыгуучуларына коюлган талаптар тынымсыз өзгөрүп турат жана аларды аткаруу кыйын. Стажер болуу үчүн Java Core гана билүү жетиштүүбү? Java Junior кызматына ээ болуу үчүн Жаз жана Күтүү режимин канчалык деңгээлде түшүнүшүңүз керек? Маалыматтар базасын үйрөнүү жана сорттоо жана издөө алгоритмдерин түшүнүү керекпи? JavaRush студенттерин бул суроолор көп кызыктыргандыктан, биз аларды Java Juniors катары иштеп жаткан же Java Trainees катары компанияларда стажировкадан өтүп жаткан бүтүрүүчүлөрүбүзгө берүүнү чечтик. Белгилей кетсек, респонденттердин 13%ы Junior баскычын айланып өтүп, биринчи аракетинде Java Middle позициясын алуу бактылуу болушкан. Респонденттер интервьюдан өтүү үчүн кандай технологиялар керектиги жана Javaдагы биринчи жумушунун биринчи жылында кайсы технологияларды колдонушкандыгы тууралуу маалымат менен бөлүшүштү.
- Java Core
- Алгоритмдер жана маалымат структуралары
- Бирдикти сыноо
- Пайдалуу китепканалар, GUI жана пайдалуу компоненттер
- Frameworks
- Автоматташтыруу куралдарын жана колдонмо serverлерин куруңуз
- Ар кандай технологиялар жана моделдер
Баарына Java Core керек
Java Core термини абдан кеңири. Бул аталыш тилдин elementрдык синтаксисине да, көп агым сыяктуу татаал темага да тиешелүү. Чынында, JavaRush курсу негизинен Coreго арналган. Java синтаксиси. Тил негиздери. Бул маалыматтардын бардык түрлөрү, операторлор, циклдер жана бутактар. Албетте, жумушка орношкондордун 92,4% синтаксис боюнча бorмдерин "жакшы же мыкты" деп баалашты. Бирок, респонденттердин 7,6% орточо синтаксис бorми менен Java Trainees болууга жетишти. Бирок, бул ийгorк катары бааланышы керек (же респонденттердин мактанышы :)). Албетте, программист катары жумушка тапшырган ар бир адам тилдин синтаксисин бorши керек. Объектке багытталган программалоо (OOP). Java тorндеги бардык нерсе an objectтерден турат, ошондуктан OOP тилдин эң маанилүү темаларынын бири катары каралышы мүмкүн. Объектке багытталган мамиле адегенде бейтааныш сезorши мүмкүн, өзгөчө, эгер сиз буга чейин proceduresалык тилдерди гана изилдеген болсоңуз, бирок an objectтерге өтүү кыйын эмес. Жаңы баштагандар үчүн эң чоң кыйынчылыктар абстракциянын деңгээли жана аларды өз алдынча бөлүштүрүү болуп саналат - башталгыч программист an objectтердин иерархиясын туура түзө алышы керек, интерфейс эмне үчүн жооп берерин жана абстракттуу класска эмнелерди киргизүүгө болорун түшүнүшү керек, мурасты түзө бorши керек. тепкич жана башкалар. Адаттагыдай эле, бул кыйынчылык практика менен чечилет. Респонденттердин көпчүлүгү, биринчи жумушка орношкондордун 80,3%ы OOP принциптерин жакшы бorшет жана аларды дайыма колдонушат. Java Juniors жана интерндер катары иштөөнүн биринчи жылында респонденттердин 78,8% OOP принциптерин көп колдонушкан, 12,1% - мезгил-мезгor менен. Угармандардын 7,6% аларды сейрек колдонушкан - бул балдар негизинен бирдикти текшерүү жана ар кандай майда тапшырмалар менен алек болушкан. Бул, албетте, алар класстарды же an objectтерди да колдонушкан (Сиз Java'да ушунусуз кыла албайсыз), бирок класс иерархияларын сейрек түзүшкөн. Collections Framework. Коллекция – бул бир бүтүн катары берилген айрым an objectилердин жыйындысы. Java жыйнактарды көрсөтүү үчүн абдан акылдуу Collections Framework бар. Коллекциялар популярдуу маалымат структураларына негизделген - тизмелер, кадимки жана туташкан, топтомдор, хэш tableлар. Ошентип, коллекцияларды изилдеп жатканда, маалымат структуралары менен көбүрөөк таанышканыңыз жакшы. Коллекцияларды изилдөөдөгү негизги кыйынчылык - алардын кантип иштээрин түшүнүү жана эстеп калуу. Эгер сиз алардын элементке кантип кирип, аны коллекциядан чыгарып, ага кошууну түшүнсөңүз, анда тигил же бул структураны кайда колдонуу керектигин түшүнө баштайсыз. Бул практика менен келет. Бирок, бактыга жараша, коллекциялардын эбегейсиз көп сандагы бардык эле жигердүү реалдуу иш колдонулат. Респонденттердин 80,3% биринчи жумуш сунушун алганга чейин коллекциялар боюнча жакшы, ал тургай эң сонун бorми бар экенин көрсөтүштү, ал эми жаштардын жана стажерлордун дээрлик бардыгы 96,9% коллекцияларды биринчи жумушунда колдонушат. Exception Handling.Өзгөчө кырдаал - бул сиздин программаңызды аткарууда пайда болушу мүмкүн болгон адаттан тыш жагдай. Бардык өзгөчө класстар java.lang.Exception классынын субтиптери. Өзгөчө кырдаалдарды иштетүү механизми программалардагы каталарды табуу процессин абдан жөнөкөйлөтөт. Адатта, студенттер өзгөчө учурларды эртерээк колдоно башташат, айталы, JavaRushта бул тема Java синтаксисинин биринчи квестинде көтөрүлөт. Алгачкы жумушка орношкон дээрлик бардык JavaRush бүтүрүүчүлөрү өзгөчө учурларды кантип чечүүнү бorшкен жана, албетте, аларды иштеп жатканда колдонушкан. I/O Streams Java. Java тorнде жазылган эң биринчи программаларда, адатта, System.out.println («Салам дүйнө») сыяктуу бир нерсе камтылган. Көбүнчө жаңы келгендер println ыкмасы консолго сызык басып чыгарарын түшүнүшөт, бирок Система жана сыртта эмне үчүн бар экенин жана алар кантип иштээрин бorшпейт. Бир аздан кийин Java агымдарды, маалыматтардын үзгүлтүксүз агымын колдонуу менен киргизүү жана чыгаруу операцияларын аткарат экен. Жиптер түшүнүү үчүн эң оңой тема эмес жана ал жаңы баштаган жумуштарда көп колдонулbyte: биринчи Java Junior/Strainee жумушуна ээ болгон адамдардын 22,7% гана I/O жиптерин көп колдонорун айтышты, 31,8% - мезгил-мезгor менен убакыт, 25,8% - сейрек. Ошентип, 20% дан азы Java иштеп чыгуучу катары биринчи жылында аларды таптакыр колдонушкан эмес. Окуу учурунда 18,2% агым менен эч кандай өзгөчө кыйынчылыкка дуушар болгон эмес жана аларды жакшы билген, 36,4% бorмин жакшы деп баалаган, бирок 10,6% бул темага көңүл бурган эмес. Multithreading (Java Multithreading/Concurrency). Балким, бул башталгыч иштеп чыгуучулардын арасында чоң түшүнбөстүктү жараткан тема. Java-да көп агым абдан жакшы ишке ашырылганына карабастан, аны түшүнүү кыйын жана жөнөкөй программаларды жазууда да көйгөйлөр пайда болушу мүмкүн (мисалы, көп агымдуу “Салам, дүйнө”). Көптөгөн иш берүүчүлөр муну түшүнүшөт жана башталгычтардан көп теманы терең түшүнүүнү талап кылbyte, бул тажрыйба менен келет деп күтүшөт. Респонденттердин 12%ы гана биринчи сунушту алганга чейин теманы жакшы деңгээлде билгендигин белгилешти, ал эми респонденттердин дээрлик 32%ы бул тема боюнча такыр эч нерсе билбестигин моюнга алышты. Көпчүлүк, 56,2%, алар multithreading жөнүндө "бир аз түшүнүшкөн" деп айтышкан. Ошентип, жип менен иштөөдөгү кыйынчылыктар азыр сиз үчүн чечилгис болуп көрүнсө, бул сандар сизди тынчтандырат. Бирок, маектешүүдө атаандаштык артыкчылыкка ээ болгуңуз келсе, бул тема сиздин күчтүү жериңиз болушу мүмкүн. реалдуу долбоорлор боюнча, үйрөнчүктөр да сейрек жип менен иштөөгө уруксат. Ошентип, башталгыч программисттердин 15,1% өз ишинде Java Multithreadingди такыр жолуктурушкан эмес, ал эми 39,4%ы аны сейрек кездештирген. Көп учурда жумуштун биринчи жылында респонденттердин 9,1% гана multithreading менен иштөөгө туура келген. Lambda туюнтмалары.Lambda туюнтмалары жана функционалдык программалоонун ишараттары Java 8де пайда болгон, бирок жаңы баштагандар бул ыңгайлуу куралды көп колдонушпайт. Ламбда туюнтмасы - бул кандайдыр бир класска кирбестен түзүлө турган функция жана сиз аны an object катары өткөрүп же талап боюнча аткара аласыз. Сурамжылоого катышкан бүтүрүүчүлөрдүн 22,7% гана биринчи жумуш сунушун алганга чейин Lambda туюнтмаларын жакшы бorшкен жана 48,5% тема боюнча бorмин "нөлгө жакын" деп баалаган. Ошол эле учурда жаңы программисттердин 85% дан ашыгы биринчи жылы лямбда туюнтмаларын колдонушканын айтышты. Адилеттүүлүк үчүн, биз бул теманы билгендердин төмөн пайызы JavaRushта lambda туюнтмалары азырынча жаңы Java Syntax Pro квестинде жана макалаларында гана берилгендигине байланыштуу болушу мүмкүн экенин белгилейбиз . Ошентип, биз эч кандай потенциалдуу Java Junior, атүгүл Стажер үчүн Core Java тorн билүү жөн гана зарыл деп айта алабыз. Албетте, кээ бир темаларды, мисалы, көп темаларды, бир аз азыраак билүү үчүн алгылыктуу, бирок Java синтаксиси, OOP жана коллекциялар сиздин аң-сезимиңизге бекем орношу керек.Алгоритмдер жана маалымат структуралары
Сорттоо жана издөө алгоритмдерин изилдөө боюнча тынымсыз талаш-тартыштар бар. Бир жагынан, эң мыкты алгоритмдер көптөн бери жазылып, бардык популярдуу программалоо тилдеринин китепканаларына, анын ичинде Java да киргизилген. Жана алар мыйзамдуу түрдө өзүңүздүн codeуңузду жазуу менен убара болбостон колдонсо болот. Бирок, программисттерди даярдаган эксперттер дагы эле ар бир башталгыч иштеп чыгуучуга ушул көбүк алгоритмдерин, бириктирүү, бинардык издөө жана ушул сыяктууларды жазуу менен мээсин үйрөтүүнү сунушташат. Биринчиден, бул алгоритмдер программисттин көндүмдөрүн (тактап айтканда, бorм эмес, көндүмдөр) жана адамдын программалоо деген эмне экенин түшүнүүсүнө карата лакмус тестинин бир түрү. Эгер сиздин мээңиз буга чейин эле бул ишке жакшы көнүгүү болсо, сиз алгоритмдерди салыштырмалуу оңой жазасыз. А бирок, эсиңизде болсун: мээни машыктыруу үчүн алгоритмдер так керек... жана интервьюдан өтүү үчүн: аларды жүргүзгөн тытуучу Улук иштеп чыгуучулар абитуриенттерди тигил же бул алгоритмди жазуу өтүнүчү менен кыйнаганды жакшы көрүшөт. Бирок өз ишинде көпчүлүк (48,5%) стандарттуу китепкана алгоритмдерин колдонушат, эффективдүү жана далилденген, ал эми респонденттердин 16% программист болуп иштеген биринчи жылында такыр эле сорттоону колдонушкан эмес. Бүтүрүүчүлөрдүн 69,6% биринчи жумуш сунушун алганга чейин, алар сорттоо жана издөө алгоритмдерин жакшы түшүнүшкөн жана аларды өздөрү жаза аларын айтышат. Биз Java жыйнактары жөнүндө сөз кылып жатып, маалымат структуралары темасына токтолгонбуз. Ооба, кайда жана кандай структураны колдонуу керектигин билүү үчүн аларды түшүнүү жакшы. Китепканалардын образында өзүңүздүн маалымат структураларыңызды түзүү - аларды жакшыраак түшүнүүгө жардам бере турган сонун көнүгүү. Сиз, мисалы, өзүңүздүн ArrayList versionңызды жазууга аракет кылсаңыз же өзүңүздүн жеке шилтемеленген тизмеңизди сунуштай аласыз (Java'дагы кадимки LinkedList эки эсе байланышкан). Иштеп жатканда, башталгыч программисттер негизинен стандарттык маалымат структураларын колдонушкан.Бирдикти сыноо
JUnit китепканасы Java тorнде бирдикти тестирлөө үчүн жооптуу. Чынында, сиз окутуунун эң башында эле бирдикти сынап баштасаңыз болот. Жок дегенде, сиз өзүңүздүн биринчи көз карандысыз долбооруңузду, атүгүл өтө кичине болсоңуз да, бул куралда тажрыйбалуу болгонуңуз жакшы. Бирдик тесттерин жазуу анча деле кыйын эмес, бирок кээ бир нюанстар бар. JUnitти үйрөнүү көп убакытты талап кылbyte, бирок аны билүүнүн пайдасы абдан чоң. Сиз өзүңүздүн жана башка адамдардын codeун тесттер менен камтый аласыз. Көп учурда жаңы келгендерге кесиптештери үчүн бирдик тесттерин жазуу тапшырмасы берилет, андыктан бул алардын жаңы жумушунда түздөн-түз пайдалуу болушу мүмкүн. Респонденттердин 57,5%ы JUnitти биринчи ийгorктүү Java интервьюсуна чейин колдонушканын айтышты, ал эми 83%дан ашыгы биринчи жылында бирдик тестин колдонушкан.Пайдалуу китепканалар, GUI жана пайдалуу компоненттер
Биз JavaRush бүтүрүүчүлөрүнүн бир катар инструменттер менен канчалык тааныш экенин сурадык, алардын айрымдары биздин курста камтылган.- Сервлеттер serverдин мүмкүнчүлүктөрүн кеңейтүүчү Java программалык компоненттери.
- JDBC Java тиркемелери жана маалымат базалары ортосундагы өз ара аракеттенүү үчүн платформадан көз карандысыз стандарт. JDBC java пакети катары ишке ашырылат. sql Java SE (Standard Edition) менен камтылган.
- log4j - бул эң белгилүү билдирүүлөрдү каттоо китепканасы. Бул сизге китепкана чалууларын java codeунда жазууга, андан кийин жазылган codeду өзгөртпөстөн, аны ийкемдүү ыңгайлаштырууга мүмкүндүк берет.
- Джексон/JSON. JSON (JavaScript Object Notation) өтө популярдуу ачык стандарттуу файл жана маалымат алмашуу форматы, ал эми Джексон Java үчүн жогорку өндүрүмдүү JSON процессору.
Frameworks
Буга чейин эч ким Java Junior жаз же гибернатты билет деп күткөн эмес. Бирок убакыт өзгөрөт жана бүгүн бул кээде Стажерден да күтүлөт. Бул технологияларды өз алдынча үйрөнүү оңой эмес. Баары түшүнүктүү болуп көрүнсө да, студенттер эмнени тез эле унутуп коюшат. Кээде жазында өз алдынча жазылган арыздар да панацея эмес. Активдүү иш гана жардам берет. Бирок ийгorктүү интервьюга чейин респонденттердин үчтөн бир бөлүгү Жазды жакшы деңгээлде бorшкен, ал эми 45,5% аны орточо түшүнгөн. Spring boot менен абал бир аз начарыраак (36,4% аны такыр билген эмес) жана сурамжылоого катышкан JavaRush бүтүрүүчүлөрүнүн дээрлик 44% Hibernate жөнүндө жакшы бorшкенин айтышкан. Ошол эле учурда, иштеп жатканда, негизги Java алкагында жаңы программисттер дээрлик 88%, Spring Boot - 83%, Hibernate - 81% колдонгон.Автоматташтыруу куралдарын жана колдонмо serverлерин куруңуз
Маектешкен JavaRush бүтүрүүчүлөрүнүн көбү долбоор куруучулар менен иштөөгө аракет кылышкан. Көбүнчө бул Maven болгон (40,9% аны иш жүзүндө сынап көрүшкөн, дагы 30,3% аны мезгил-мезгor менен колдонушкан, ал эми 12,1% окуу учурунда дайыма колдонушкан). Maven менен иштегенде мен 72,7% (көбүнчө), 7,6% (кээде) жана 3% (сейрек) учурадым. Градлга келсек, абал бир аз начар. Бул жыйноочу менен 22,7% гана машыгышкан, алардын көбү технологияны жаңы эле сынап көрүшкөн. Респонденттердин дээрлик жарымы өз иштеринде Gradleди колдонушкан. Кумурска эбак эле өз позициясын жоготкон жана бул биздин бүтүрүүчүлөр арасында анын популярдуулугунан көрүнүп турат: респонденттердин 3% гана аны ойлоп табышты. Ал эми суроолорго жооп бергендердин 12% аны менен иштешүүгө туура келген. Тиркеме serverлеринин арасында Tomcat лидер болуп саналат; респонденттердин 77% дан ашыгы изилдөө учурунда түшүнүшкөн, 11% GlassFish, 12% JBoss колдонуп көрүшкөн. Буга чейин иштеп жаткан serverлердин популярдуулугу окшош. Жумушка орношкондордун 31,8% гана Tomcat менен тажрыйбасы жок. Ошондой эле, JavaRush бүтүрүүчүлөрү программист болуп иштеген биринчи жылында WebSphere, Jetty, Netty, Wildfly, Weblogic сыяктуу serverлерди сынап көрүшкөн.Дагы эмне?
Респонденттердин басымдуу көпчүлүгү, атүгүл биринчи жумушка кире электе:- HTML, CSS жана JavaScript боюнча түшүнүккө ээ болгон;
- маалымат базалары менен иштеген, SQL тorн билген;
- дээрлик баары Git жана GitHub колдонгон;
- таза XML менен иштөөгө аракет кылды.
GO TO FULL VERSION