JavaRush /Java блогы /Random-KK /Java Junior болу үшін не білу керек және мұнымен не істеу...

Java Junior болу үшін не білу керек және мұнымен не істеу керек?

Топта жарияланған
Потенциалды Java әзірлеушілеріне қойылатын талаптар үнемі өзгеріп отырады және оларға ілесу қиын. Тренинг болу үшін тек Java Core білу жеткілікті ме? Java Junior позициясын алу үшін көктем мен күту күйін қаншалықты жақсы түсіну керек? Мәліметтер қорын үйрену және сұрыптау және іздеу алгоритмдерін түсіну керек пе? JavaRush студенттерін осы сұрақтар жиі мазалайтындықтан, біз оларды Java Juniors ретінде жұмыс істейтін немесе Java Trainees ретінде компанияларда тағылымдамадан өтіп жатқан түлектерімізге қоюды жөн көрдік. Респонденттердің 13%-ы Junior кезеңін айналып өтіп, Java Middle позициясын алу бақытына ие болғанын ескеріңіз. Java Junior болу үшін не білу керек және мұнымен не істеу керек?  - 1Респонденттер сұхбаттан өту үшін қандай технологиялар қажет екендігі және Java-дағы алғашқы жұмысының бірінші жылында қай технологияларды қолданғаны туралы ақпаратпен бөлісті.

Java Core барлығына қажет

Java Core термині өте кең. Бұл атау тілдің қарапайым синтаксисіне де, көп ағынды сияқты күрделі тақырыпқа да қатысты. Шын мәнінде, JavaRush курсы негізінен Core бағдарламасына арналған. Java Junior болу үшін не білу керек және мұнымен не істеу керек?  - 2Java синтаксисі. Тіл негіздері. Барлық осы деректер түрлері, операторлар, циклдар және тармақтар. Әрине, жұмысқа орналасушылардың 92,4% синтаксис бойынша білімдерін «жақсы немесе тамаша» деп бағалады. Дегенмен, респонденттердің 7,6% орташа синтаксистік білімі бар Java Trainees бола алды. Дегенмен, мұны сәттілік (немесе респонденттердің мақтанышы :)) деп бағалау керек. Әрине, бағдарламашы мамандығына түсуге өтініш білдірген әрбір адам тілдің синтаксисін білуі керек. Объектіге бағытталған бағдарламалау (OOP). Java тіліндегі барлығы нысандардан тұрады, сондықтан OOP тілдің ең маңызды тақырыптарының бірі деп санауға болады. Объектіге бағытталған тәсіл алғашында бейтаныс болып көрінуі мүмкін, әсіресе егер сіз бұрын тек proceduresалық тілдерді оқыған болсаңыз, бірақ нысандарға ауысу қиын емес. Жаңадан бастағандар үшін ең үлкен қиындықтар абстракция деңгейлері және оларды тәуелсіз тарату болып табылады - жаңадан келген бағдарламашы нысандардың иерархиясын дұрыс құра білуі керек, интерфейс не үшін жауап беретінін және абстрактілі сыныпқа нені енгізуге болатынын түсінуі керек, мұраны құруы керек. баспалдақ және т.б. Әдеттегідей, бұл қиындық тәжірибе арқылы шешіледі. Респонденттердің көпшілігі, яғни бірінші жұмысқа орналасқандардың 80,3%-ы OOP принциптерін жақсы біледі және оларды үнемі қолданады. Java Juniors және тағылымдамадан өтуші ретіндегі жұмыстың бірінші жылында респонденттердің 78,8%-ы OOP қағидаттарын өте жиі, 12,1%-ы мезгіл-мезгіл пайдаланды. Тыңдаушылардың 7,6% оларды сирек пайдаланды - бұл жігіттер негізінен бірлік тестілеумен және әртүрлі шағын тапсырмалармен айналысты. Яғни, әрине, олар сыныптарды немесе нысандарды да пайдаланды (сіз Java-да онсыз жасай алмайсыз), бірақ класс иерархияларын сирек жасайды. Коллекциялар шеңбері. Коллекция – тұтастай ұсынылған жеке an objectілердің жиынтығы. Java-да жинақтарды көрсету үшін өте ақылды Collections Framework бар. Жинақтар танымал деректер құрылымдарына негізделген - тізімдер, қарапайым және қосылған, жиындар, хэш кестелер. Сондықтан жинақтарды зерттеген кезде деректер құрылымдарымен көбірек танысқан дұрыс. Жинақтарды зерттеудегі негізгі қиындық олардың қалай жұмыс істейтінін түсіну және есте сақтау болып табылады. Егер сіз олардың элементке қалай қол жеткізгенін, оны жинақтан шығарып, оған қосу жолын түсінсеңіз, осы немесе басқа құрылымды қайда қолдану керектігін түсіне бастайсыз. Бұл тәжірибемен келеді. Бірақ, бақытымызға орай, көптеген жинақтардың барлығы нақты жұмыста белсенді түрде қолданыла бермейді. Респонденттердің 80,3%-ы алғашқы жұмыс ұсынысын алғанға дейін коллекциялар туралы жақсы немесе тіпті өте жақсы білетінін көрсетті, ал жасөспірімдер мен тыңдаушылардың барлығы дерлік 96,9%-ы коллекцияларды бірінші жұмысында пайдаланады. Java Junior болу үшін не білу керек және мұнымен не істеу керек?  - 3Ерекше жағдайды өңдеу.Ерекшелік - бұл бағдарламаны орындау кезінде орын алуы мүмкін әдеттегіден тыс жағдай. Барлық ерекшелік сыныптары java.lang.Exception сыныбының ішкі түрлері болып табылады. Ерекшеліктерді өңдеу механизмі бағдарламалардағы қателерді табу процесін айтарлықтай жеңілдетеді. Әдетте студенттер ерекше жағдайларды өте ерте пайдалана бастайды, айталық, JavaRush-та JavaRush-те бұл тақырып Java синтаксисінің бірінші квестінде көтеріледі. Алғашқы жұмыс орындарын алған JavaRush түлектерінің барлығы дерлік ерекше жағдайларды қалай шешу керектігін білді және, әрине, жұмыс кезінде оларды пайдаланды. I/O ағындары Java. Java тілінде жазылған ең алғашқы бағдарламаларда әдетте System.out.println («Сәлем әлем») сияқты нәрсе болды. Көбінесе жаңадан бастаушылар println әдісі консольге сызық басып шығаратынын түсінеді, бірақ System және out неліктен бар екенін және олардың қалай жұмыс істейтінін білмейді. Біраз уақыттан кейін Java деректердің үздіксіз ағыны ағындары арқылы енгізу және шығару операцияларын орындайтыны белгілі болды. Тақырыптар түсінуге оңай тақырып емес және ол жаңадан бастаған жұмыс орындарында жиі қолданылмайды: Java Junior/Strainee бойынша бірінші жұмысын алған адамдардың тек 22,7%-ы енгізу/шығару ағындарын көп пайдаланатынын айтты, 31,8%-ы – мезгіл-мезгіл уақыт, 25,8% - сирек. Сондықтан 20%-дан азы Java әзірлеушісі ретіндегі бірінші жылында оларды мүлдем пайдаланбаған. Оқу барысында 18,2% ағынмен ерекше қиындықтарға тап болмады және оларды жақсы білді, 36,4% өз білімдерін жақсы деп бағалады, бірақ 10,6% бұл тақырыпты елемейді. Multithreading (Java Multithreading/Concurrency). Мүмкін бұл жаңадан әзірлеушілер арасында үлкен түсінбеушілік тудыратын тақырып. Java тіліндегі көп ағындылық өте жақсы енгізілгенімен, оны түсіну қиын және қарапайым бағдарламаларды жазу кезінде де қиындықтар туындауы мүмкін (мысалы, көп ағынды «Сәлем, әлем»). Көптеген жұмыс берушілер мұны түсінеді және жаңадан бастаушылардан көп ағынды терең түсінуді талап етпейді, бұл тәжірибемен келеді деп күтеді. Респонденттердің тек 12%-ы бірінші ұсынысты алғанға дейін тақырыпты жақсы деңгейде білетіндіктерін атап өтті, ал респонденттердің 32%-ға жуығы тақырып туралы мүлдем білмейтіндерін мойындады. Көпшілігі, 56,2% көп ағынды «аздап түсінетінін» айтты. Сондықтан, егер жіптермен жұмыс істеу қиындықтары қазір сізге еңсерілмейтін болып көрінсе, бұл сандар сізді тыныштандыруы мүмкін. Дегенмен, сұхбатта бәсекелестік артықшылыққа ие болғыңыз келсе, бұл тақырып сіздің күшті тұсыңыз болуы мүмкін. Нақты жобаларда жаңадан бастағандарға жіптермен жұмыс істеуге сирек рұқсат етіледі. Осылайша, жаңадан бастаған бағдарламашылардың 15,1%-ы Java Multithreading-ті өз жұмысында мүлде кездестірмеген, ал 39,4%-ы онымен кездескен, бірақ сирек. Жиі жұмыстың бірінші жылында респонденттердің тек 9,1%-ы көп ағынмен жұмыс істеуге тура келді. Ламбда өрнектері.Lambda өрнектері мен функционалдық бағдарламалау туралы кеңестер Java 8-де пайда болды, бірақ жаңадан келгендер бұл ыңғайлы құралды жиі пайдалана бермейді. Ламбда өрнегі – бұл кез келген классқа жатпайтын жасалатын функция және оны an object ретінде беруге немесе сұраныс бойынша орындауға болады. Сауалнамаға қатысқан түлектердің тек 22,7% бірінші жұмыс ұсынысын алғанға дейін Lambda өрнектерін жақсы білетін және 48,5% тақырып бойынша білімін «нөлге жақын» деп бағалаған. Сонымен қатар, жаңа бағдарламашылардың 85% -дан астамы бірінші жылы лямбда өрнектерін қолданғанын айтты. Әділ болу үшін, біз бұл тақырыпты білетіндердің төмен пайызы JavaRush-та лямбда өрнектері әлі күнге дейін тек жаңа Java Syntax Pro квестінде және мақалаларында ұсынылғанына байланысты болуы мүмкін екенін атап өтеміз . Осылайша, кез келген әлеуетті Java Junior және тіпті Тренер үшін Core Java тілін білу жай ғана қажет деп сенімді түрде айта аламыз. Әрине, кейбір тақырыптарды, мысалы, көп ағынды, азырақ білуге ​​болады, бірақ Java синтаксисі, OOP және жинақтар сіздің санаңызға берік енуі керек.

Алгоритмдер және деректер құрылымдары

Сұрыптау және іздеу алгоритмдерін зерттеу туралы үнемі пікірталас бар. Бір жағынан, ең жақсы алгоритмдер бұрыннан жазылған және барлық танымал бағдарламалау тілдерінің, соның ішінде Java-ның кітапханаларына енгізілген. Және олар өзіңіздің codeыңызды жазудың қиындықтарынсыз заңды түрде пайдаланылуы мүмкін. Дегенмен, бағдарламашыларды дайындайтын сарапшылар әлі күнге дейін әрбір жаңадан әзірлеушіге осы көпіршікті алгоритмдердің барлығын жазу, біріктіру, екілік іздеу және т.б. арқылы миын жаттықтыруды ұсынады. Біріншіден, бұл алгоритмдер бағдарламалаушының дағдыларын (дәлірек айтқанда, білім емес, дағдылар) және адамның бағдарламалаудың не екенін түсінуінің лакмус сынағы түрі болып табылады. Егер сіздің миыңыз осы жұмыс түріне жақсы бейімделген болса, сіз алгоритмдерді салыстырмалы түрде оңай жазасыз. Дегенмен, есіңізде болсын: сізге дәл миыңызды жаттықтыру үшін алгоритмдер қажет... және сұхбаттан өту үшін: оларды жүргізетін коррозиялық Аға әзірлеушілер өтініш берушілерді сол немесе басқа алгоритмді жазу туралы өтініштермен қинауды жақсы көреді. Бірақ олардың көпшілігі (48,5%) өз жұмыстарында тиімді және дәлелденген стандартты кітапханалық алгоритмдерді пайдаланады, ал респонденттердің 16%-ы бағдарламашы ретінде жұмыс істеген бірінші жылы сұрыптауды мүлде қолданбаған. Java Junior болу үшін не білу керек және мұнымен не істеу керек?  - 4Түлектердің 69,6%-ы алғашқы жұмыс ұсынысын алғанға дейін сұрыптау мен іздеу алгоритмдерін жақсы түсінгенін және оларды өздері жаза алатынын айтады. Java Junior болу үшін не білу керек және мұнымен не істеу керек?  - 5Біз Java жинақтары туралы айтқан кезде деректер құрылымдары тақырыбын қозғадық. Иә, қайда және қандай құрылымды қолдану керектігін білу үшін оларды түсінген дұрыс. Кітапхананың кескінінде жеке деректер құрылымдарын жасау - оларды жақсырақ түсінуге көмектесетін тамаша жаттығу. Сіз, мысалы, ArrayList-тің жеке нұсқасын жазып көріңіз немесе жеке байланыстырылған тізіміңізді ұсына аласыз (Java-дағы әдеттегі LinkedList екі есе байланысты). Java Junior болу үшін не білу керек және мұнымен не істеу керек?  - 6Жаңадан келген бағдарламашылар жұмыс кезінде негізінен стандартты деректер құрылымдарын пайдаланды.Java Junior болу үшін не білу керек және мұнымен не істеу керек?  - 7

Бірлікті сынау

JUnit кітапханасы Java тіліндегі бірліктерді тестілеуге жауапты. Шындығында, бірлікті тестілеуді жаттығудың ең басында дерлік бастауға болады. Ең болмағанда, сіз өзіңіздің алғашқы тәуелсіз жобаңызды, тіпті өте кішкентай жобаңызды қабылдаған кезде, сіз бұл құралды жақсы меңгергеніңіз жөн. Бірлік сынақтарын жазу қиын емес, дегенмен кейбір нюанстар бар. JUnit-ті үйрену көп уақытты қажет етпейді, бірақ оны білудің пайдасы орасан зор. Сіз өзіңіздің және басқа адамдардың codeын сынақтармен қамтуға мүмкіндік аласыз. Көбінесе жаңадан бастаушыларға әріптестеріне бірлік сынақтарын жазу тапсырылады, сондықтан бұл олардың жаңа жұмысында тікелей пайдалы болуы мүмкін. Респонденттердің 57,5%-ы JUnit-ті алғашқы сәтті Java сұхбатына дейін пайдаланғанын айтты, ал 83%-дан астамы бірінші жылында бірлік тестілеуін қолданып қойған.

Қызметтік кітапханалар, графикалық интерфейс және пайдалы компоненттер

Біз 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 әзірлеушілері графикалық интерфейстерді жиі кездестірмейді. Біз JavaFX туралы сұрақ қойдық: респонденттердің тек 18%-ы бұл технологияны жұмыста кездестірді. Java Junior болу үшін не білу керек және мұнымен не істеу керек?  - 8Респонденттердің үштен екісі сервлеттермен жұмыс істеді; респонденттердің біршама аз бөлігі оқу барысында оларды қолданып көрді. Сондай-ақ, кейбір жаңа Java бағдарламашылары Apache Commons (қайта пайдалануға болатын Java компоненттерінің барлық аспектілеріне бағытталған кітапханалар жиынтығы) және Guava (Java үшін ашық бастапқы codeы бар жалпы кітапханалар жиынтығы, ең алдымен Google инженерлері әзірлеген) сияқты жобаларға тап болғаны белгілі болды.Java Junior болу үшін не білу керек және мұнымен не істеу керек?  - 9

Фреймворктер

Бұрын Java Junior-ның Spring немесе Hibernate режимін біледі деп ешкім күтпеген. Бірақ уақыт өзгереді, бүгінде бұл кейде тіпті Тренерден де күтіледі. Бұл технологияларды өз бетімен үйрену оңай емес. Барлығы түсінікті болып көрінсе де, студенттер нені тез ұмытып кетеді. Кейде тіпті көктемде өздігінен жазылған өтініштер панацея емес. Тек белсенді жұмыс көмектеседі. Дегенмен, сәтті сұхбатқа дейін респонденттердің үштен бірі Көктеммен жақсы деңгейде таныс болды, ал 45,5% оны орташа түсінеді. Spring boot бағдарламасының жағдайы біршама нашар (36,4% оны мүлде білмеді) және сауалнамаға қатысқан JavaRush түлектерінің 44% дерлік Hibernate туралы жақсы білетіндерін айтты. Java Junior болу үшін не білу керек және мұнымен не істеу керек?  - 10Сонымен қатар, жұмыс кезінде негізгі Java фреймворкін жаңа бағдарламашылардың 88% дерлік, Spring Boot - 83%, Hibernate - 81% пайдаланды.Java Junior болу үшін не білу керек және мұнымен не істеу керек?  - он бір

Автоматтандыру құралдары мен қолданбалы serverлерді құрастырыңыз

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

Тағы да не?

Респонденттердің басым көпшілігі, тіпті бірінші жұмысқа кіріспес бұрын:
  • HTML, CSS және JavaScript тілдерін түсінді;
  • мәліметтер қорымен жұмыс жасады, SQL тілін білді;
  • барлығы дерлік Git және GitHub пайдаланды;
  • таза XML-мен жұмыс істеуге тырысты.
Бұл технологиялардың барлығы оларға әрі қарай жұмыс істеуде пайдалы болды. Java бағдарламашысы немесе осы мәселе бойынша кез келген басқа адам әдепкі бойынша жоғарыда айтылғандардың барлығымен таныс болуы керек. Бұл терең білім емес, танысу. Сондықтан кейде Java-дан үзіліс жасап, осы технологияларды зерттеу арқылы көкжиектеріңізді кеңейтуді ұсынамыз. Сондай-ақ, сұрақтарға жауап бергендердің кейбіреулері сұхбатта олардан дизайн үлгілері, архитектуралық үлгілер, сондай-ақ бағдарламалауда жақсы әдептілік (осы KISS, DRY, SOLID) туралы кем дегенде теориялық білімі болуы керек екенін атап өтті. Алайда, көбінесе сұхбатта тек анықтамалар жеткілікті болды: сұхбатты жүргізгендер мұндай нәрселерді нақты түсіну тек тұрақты тәжірибемен ғана болатынын жақсы түсінді. Олар сіздің жұмысыңызға пайдалы болды ма? Әрине, олар пайдалы болды.

қорытындылар

Сіз үйренуге болатын технологиялардың санымен сізді қатты қорқытқан жоқпыз деп үміттенеміз. Мұның барлығын мұқият білудің қажеті жоқ, сонымен қатар мұның бәрін анықтау өте қызықты. Сіз бағдарламашы боламын деп бекер шешкен жоқсыз, солай ма? Сондықтан Java тілін үйренуді жалғастырыңыз және мотивацияны сақтаңыз. Іске сәт! PS Егер сіз жұмыс тауып қойған болсаңыз және тәжірибеңіз туралы айтқыңыз келсе, түсініктемелерге қош келдіңіз!
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION