JavaRush /Java блогу /Random-KY /Java Junior болуу үчүн эмнени билишиңиз керек жана муну м...

Java Junior болуу үчүн эмнени билишиңиз керек жана муну менен эмне кылуу керек?

Группада жарыяланган
Потенциалдуу Java иштеп чыгуучуларына коюлган талаптар тынымсыз өзгөрүп турат жана аларды аткаруу кыйын. Стажер болуу үчүн Java Core гана билүү жетиштүүбү? Java Junior кызматына ээ болуу үчүн Жаз жана Күтүү режимин канчалык деңгээлде түшүнүшүңүз керек? Маалыматтар базасын үйрөнүү жана сорттоо жана издөө алгоритмдерин түшүнүү керекпи? JavaRush студенттерин бул суроолор көп кызыктыргандыктан, биз аларды Java Juniors катары иштеп жаткан же Java Trainees катары компанияларда стажировкадан өтүп жаткан бүтүрүүчүлөрүбүзгө берүүнү чечтик. Белгилей кетсек, респонденттердин 13%ы Junior баскычын айланып өтүп, биринчи аракетинде Java Middle позициясын алуу бактылуу болушкан. Java Junior болуу үчүн эмнени бorшиңиз керек жана муну менен эмне кылуу керек?  - 1Респонденттер интервьюдан өтүү үчүн кандай технологиялар керектиги жана Javaдагы биринчи жумушунун биринчи жылында кайсы технологияларды колдонушкандыгы тууралуу маалымат менен бөлүшүштү.

Баарына Java Core керек

Java Core термини абдан кеңири. Бул аталыш тилдин elementрдык синтаксисине да, көп агым сыяктуу татаал темага да тиешелүү. Чынында, JavaRush курсу негизинен Coreго арналган. Java Junior болуу үчүн эмнени бorшиңиз керек жана муну менен эмне кылуу керек?  - 2Java синтаксиси. Тил негиздери. Бул маалыматтардын бардык түрлөрү, операторлор, циклдер жана бутактар. Албетте, жумушка орношкондордун 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% коллекцияларды биринчи жумушунда колдонушат. Java Junior болуу үчүн эмнени бorшиңиз керек жана муну менен эмне кылуу керек?  - 3Exception 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% программист болуп иштеген биринчи жылында такыр эле сорттоону колдонушкан эмес. Java Junior болуу үчүн эмнени бorшиңиз керек жана муну менен эмне кылуу керек?  - 4Бүтүрүүчүлөрдүн 69,6% биринчи жумуш сунушун алганга чейин, алар сорттоо жана издөө алгоритмдерин жакшы түшүнүшкөн жана аларды өздөрү жаза аларын айтышат. Java Junior болуу үчүн эмнени бorшиңиз керек жана муну менен эмне кылуу керек?  - 5Биз Java жыйнактары жөнүндө сөз кылып жатып, маалымат структуралары темасына токтолгонбуз. Ооба, кайда жана кандай структураны колдонуу керектигин билүү үчүн аларды түшүнүү жакшы. Китепканалардын образында өзүңүздүн маалымат структураларыңызды түзүү - аларды жакшыраак түшүнүүгө жардам бере турган сонун көнүгүү. Сиз, мисалы, өзүңүздүн ArrayList versionңызды жазууга аракет кылсаңыз же өзүңүздүн жеке шилтемеленген тизмеңизди сунуштай аласыз (Java'дагы кадимки LinkedList эки эсе байланышкан). Java Junior болуу үчүн эмнени бorшиңиз керек жана муну менен эмне кылуу керек?  - 6Иштеп жатканда, башталгыч программисттер негизинен стандарттык маалымат структураларын колдонушкан.Java Junior болуу үчүн эмнени бorшиңиз керек жана муну менен эмне кылуу керек?  - 7

Бирдикти сыноо

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 процессору.
Бул куралдардын баары абдан пайдалуу жана жумушта көп колдонулат, андыктан көпчүлүк студенттер маектешүүгө даярданууда аларды көңүл сыртында калтырышкан эмес. Бул, айрыкча, Джексонго тиешелүү, аны Java программисти кызматына талапкерлердин 72,7%, JDBC жолуктурган - бул китепкана респонденттердин 78% дан ашыгы тарабынан сыналган. Бул технологияларды дээрлик бардыгы өз иштеринде колдонушкан. Java иштеп чыгуучулары GUI'лерге көп жолуга бербейт. Биз JavaFX жөнүндө суроо бердик: респонденттердин 18% гана жумушта бул технологияга туш болгон. Java Junior болуу үчүн эмнени бorшиңиз керек жана муну менен эмне кылуу керек?  - 8Респонденттердин үчтөн экиси сервлеттер менен иштешкен; бир аз азыраак респонденттер аларды окуу учурунда сынап көрүшкөн. Ошондой эле кээ бир жаңы Java программисттери Apache Commons (кайра колдонулуучу Java компоненттеринин бардык аспектилерине багытталган китепканалар жыйындысы) жана Guava (Жава үчүн ачык булактуу жалпы китепканалардын жыйындысы, биринчи кезекте Google инженерлери тарабынан иштелип чыккан) сыяктуу долбоорлорго туш болушкан.Java Junior болуу үчүн эмнени бorшиңиз керек жана муну менен эмне кылуу керек?  - 9

Frameworks

Буга чейин эч ким Java Junior жаз же гибернатты билет деп күткөн эмес. Бирок убакыт өзгөрөт жана бүгүн бул кээде Стажерден да күтүлөт. Бул технологияларды өз алдынча үйрөнүү оңой эмес. Баары түшүнүктүү болуп көрүнсө да, студенттер эмнени тез эле унутуп коюшат. Кээде жазында өз алдынча жазылган арыздар да панацея эмес. Активдүү иш гана жардам берет. Бирок ийгorктүү интервьюга чейин респонденттердин үчтөн бир бөлүгү Жазды жакшы деңгээлде бorшкен, ал эми 45,5% аны орточо түшүнгөн. Spring boot менен абал бир аз начарыраак (36,4% аны такыр билген эмес) жана сурамжылоого катышкан JavaRush бүтүрүүчүлөрүнүн дээрлик 44% Hibernate жөнүндө жакшы бorшкенин айтышкан. Java Junior болуу үчүн эмнени бorшиңиз керек жана муну менен эмне кылуу керек?  - 10Ошол эле учурда, иштеп жатканда, негизги Java алкагында жаңы программисттер дээрлик 88%, Spring Boot - 83%, Hibernate - 81% колдонгон.Java Junior болуу үчүн эмнени бorшиңиз керек жана муну менен эмне кылуу керек?  - он бир

Автоматташтыруу куралдарын жана колдонмо serverлерин куруңуз

Маектешкен JavaRush бүтүрүүчүлөрүнүн көбү долбоор куруучулар менен иштөөгө аракет кылышкан. Көбүнчө бул Maven болгон (40,9% аны иш жүзүндө сынап көрүшкөн, дагы 30,3% аны мезгил-мезгor менен колдонушкан, ал эми 12,1% окуу учурунда дайыма колдонушкан). Maven менен иштегенде мен 72,7% (көбүнчө), 7,6% (кээде) жана 3% (сейрек) учурадым. Градлга келсек, абал бир аз начар. Бул жыйноочу менен 22,7% гана машыгышкан, алардын көбү технологияны жаңы эле сынап көрүшкөн. Респонденттердин дээрлик жарымы өз иштеринде Gradleди колдонушкан. Java Junior болуу үчүн эмнени бorшиңиз керек жана муну менен эмне кылуу керек?  - 12Кумурска эбак эле өз позициясын жоготкон жана бул биздин бүтүрүүчүлөр арасында анын популярдуулугунан көрүнүп турат: респонденттердин 3% гана аны ойлоп табышты. Ал эми суроолорго жооп бергендердин 12% аны менен иштешүүгө туура келген. Тиркеме serverлеринин арасында Tomcat лидер болуп саналат; респонденттердин 77% дан ашыгы изилдөө учурунда түшүнүшкөн, 11% GlassFish, 12% JBoss колдонуп көрүшкөн. Буга чейин иштеп жаткан serverлердин популярдуулугу окшош. Жумушка орношкондордун 31,8% гана Tomcat менен тажрыйбасы жок. Ошондой эле, JavaRush бүтүрүүчүлөрү программист болуп иштеген биринчи жылында WebSphere, Jetty, Netty, Wildfly, Weblogic сыяктуу serverлерди сынап көрүшкөн.Java Junior болуу үчүн эмнени бorшиңиз керек жана муну менен эмне кылуу керек?  - 13

Дагы эмне?

Респонденттердин басымдуу көпчүлүгү, атүгүл биринчи жумушка кире электе:
  • HTML, CSS жана JavaScript боюнча түшүнүккө ээ болгон;
  • маалымат базалары менен иштеген, SQL тorн билген;
  • дээрлик баары Git жана GitHub колдонгон;
  • таза XML менен иштөөгө аракет кылды.
Бул технологиялардын баары аларга мындан аркы иштеринде пайдалуу болду. Java программисти же башка бирөө демейки боюнча жогоруда айтылгандардын баары менен тааныш болушу керек. Бул терең бorм эмес, тааныштык. Андыктан биз кээде Javaдан тыныгууну жана бул технологияларды изилдөө менен көз карашыңызды кеңейтүүнү сунуштайбыз. Ошондой эле, суроолорго жооп бергендердин айрымдары маекте алардан дизайн үлгүлөрү, архитектуралык үлгүлөр, ошондой эле программалоодо жакшы адеп-ахлактуулук (булардын баары KISS, DRY, SOLID) боюнча жок дегенде теориялык бorмге ээ болушу күтүлгөнүн белгилешти. Бирок, көбүнчө интервьюда аныктамалар гана жетиштүү болгон: интервью алгандар мындай нерселерди чыныгы түшүнүү тынымсыз практика менен гана болорун жакшы бorшкен. Алар сиздин ишиңизге пайдалуу болдубу? Албетте, алар пайдалуу болду.

корутундулар

Биз сиз үйрөнө турган технологиялардын саны менен сизди өтө эле коркуткан жокпуз деп үмүттөнөбүз. Мунун баарын кылдат бorш керек эмес, андан тышкары, мунун баарын түшүнүү абдан кызыктуу. Программист болууну чечкениңиз бекер эмес, туурабы? Андыктан Java үйрөнүүнү уланта бериңиз жана мотивациялуу болуңуз. Жолуңуз ачык болсун! PS Эгерде сиз буга чейин жумуш таап алган болсоңуз жана тажрыйбаңыз тууралуу айткыңыз келсе, комментарийге кош келиңиз!
Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION