Вақте ки шахс мустақилона ё дар курсҳои онлайн ба омӯзиши барномасозӣ шурӯъ мекунад, муайян кардани "соҳаи фаъолият" ва ба низом даровардани ҳама чиз хеле муҳим аст. Дар ин мақола мо чунин системаизатсияро пешниҳод менамоем - Вазифаҳои Java барои шурӯъкунандагон, ки нишон медиҳад, ки то чӣ андоза як навъи мушаххас дар курси онлайн барои омӯзиши барномасозии JavaRush ва истинодҳои муфид пешниҳод шудааст.
Дар куҷо шумо муаммоҳоро ёфта метавонед:
Проблемаҳои синтаксиси забон
Асосҳо, аввалин вазифаҳои барномасозии Java барои шурӯъкунандагон - аз "Hello World" то ҳалқаҳо ва массивҳо. Бисёре аз онҳо дар JavaRush ҳастанд: онҳо махсусан дар ҷустуҷӯи Java Syntax дар шаш сатҳи аввал мутамарказ шудаанд. Аз эҳтимол дур нест, ки барои азхуд кардани онҳо ягон сарчашмаи иловагӣ ҷустуҷӯ кардан лозим аст - дар ин ҷо онҳо хеле кофӣ ҳастанд. Илова бар ин, ҳангоми ҳалли ҳама гуна мушкилоти мураккаб шумо ба таври худкор синтаксисро такрор мекунед. Аммо агар ба шумо ногаҳон ба онҳо ниёз дошта бошед, ҳама гуна китоби мушкилоти Java барои шурӯъкунандагон машқҳои шабеҳро дар бар мегирад. Танҳо дар ин китобҳои мушкилот, мисли JavaRush, санҷиши фаврӣ нахоҳад буд.Вазифаҳои ҷамъоварӣ
Маҷмӯаҳо аввалин мавзӯи "ҷиддӣ" мебошанд, ки барномасози нав дар давоми таҳсил дучор мешавад. Проблемаҳои Java барои шурӯъкунандагон, ки ба коллексияҳо бахшида шудаанд, инчунин дар JavaRush васеъ муаррифӣ карда мешаванд - дар сатҳҳои ҳафтум ва ҳаштуми ҷустуҷӯи Java Syntax. Дар ин ҷо донишҷӯ бори аввал дар бораи Java Collections Framework мешунавад, бо интерфейсҳои Set, List ва Map ва баъзе татбиқи онҳо кор мекунад. Аммо, дар ин марҳила шумо танҳо бо ин асбоби муфид ва вазифаҳои оддии Java шинос мешавед. Омӯзиши ҳамаҷонибаи коллексияҳо ҳангоми ҷустуҷӯи Java Collections анҷом дода мешавад . Шумо мебинед, ки ин an object то чӣ андоза муҳим аст, зеро тамоми квест бо номи он номгузорӣ шудааст!Мушкилоти истисно
Механизми махсус барои кор бо ҳолатҳои ғайримуқаррарӣ дар Java масъул аст, ки "сайд" -и хатогиҳоро дар барномаҳо хеле осон мекунад. Аммо барои пурра истифода бурдани он, шумо бояд фаҳмед, ки коркарди истисно дар Java чӣ гуна кор мекунад. Дар JavaRush чунин вазифаҳо зиёданд ва онҳо ҳатто дар ҷустуҷӯи аввалини Java Syntax пайдо мешаванд.Мушкилоти табдor навъи
Албатта, ин гурӯҳро метавон ҳамчун вазифаҳои асосии синтаксис тасниф кард. Аммо, ба фикри хоксоронаи мо, ба ин гуна вазифахо аксар вакт кам бахо дода мешаванд ва нав-корон аз ухдаи онхо мешитобанд. Аз ин рӯ, биёед аз қолибҳо дур шавем: мо вазифаҳои Java-ро барои шурӯъкунандагон дар мавзӯи "Табдил додани намудҳои ибтидоӣ" на дар ибтидо, чунон ки аксар вақт анҷом дода мешавад, балки каме дертар - дар охири ҷустуҷӯи аввалин Java Syntax меомӯзем. Ва он гоҳ мо тавассути омӯзиши OOP дар ҷустуҷӯи Java Core чӣ гуна навъҳои ғайриоддӣ (an objectҳо) партофтанро меомӯзем . Дар JavaRush чунин вазифаҳо зиёданд; ба шумо лозим нест, ки чизи иловагӣ ҷустуҷӯ кунед.Вазифаҳо барои фаҳмидани OOP
OOP мавзӯи душвортарин нест, аммо он хеле муҳим аст. Илова бар ин, он нозукиҳои зиёдеро дар бар мегирад, ки мусоҳибон мехоҳанд барои дастгир кардани "ҷавонҳои" оянда истифода баранд. Курси JavaRush дорои мушкилоти амалии барномасозӣ барои шурӯъкунандагон мебошад, ки ба шумо дар фаҳмидани равиши ба an object нигаронидашуда кӯмак мекунад. Бо вуҷуди ин, барои воқеан фаҳмидани OOP, мо тавсия медиҳем, ки адабиётро дар ин мавзӯъ хонед (масалан, Кей Хорстман, Китобхонаи касбии Гари Корнел, Таҳлил ва тарҳрезии ба an object нигаронидашудаи Маклафлин ё китобҳои дигар ).Вазифаҳо дар риштаҳои I/O
Мо истифодаи ҷараёнҳои I/O-ро хеле пеш аз фаҳмидани онҳо оғоз мекунем - ин Java аст, кӯдак, ва шарҳ додани System.out ва илова бар ин, System.in ба навгони сабз душвор аст ва дар марҳилаи аввал зарур нест. Аммо дар давоми ҷустуҷӯи Java Core , дониш барои фаҳмидани ин мавзӯи то ҳадде печида кофӣ аст ва мо на танҳо дар бораи вуруд/баромади консол, балки дар бораи кор бо системаи файлӣ ҳам гап мезанем. Хӯроки асосӣ ин аст, ки аз ин вазифаҳо гузаред (дар JavaRush хеле зиёданд) ва пайваста назарияро дарк кунед.Муаммоҳо
Бо "муаммоҳо" мо вазифаҳои мураккабии зиёдро дар назар дорем, ки на он қадар донишро, балки қобorяти татбиқи онро ба таври ғайристандартӣ талаб мекунанд. Инҳо вазифаҳои маъмулӣ барои Java Junior мебошанд - онҳо дар мусоҳибаҳо хеле маъмуланд, аммо дар кори воқеӣ муаммоҳо ба ин маъно чандон маъмул нестанд. Аз ин рӯ, онҳо дар JavaRush ҳастанд, аммо на он қадар зиёд (одатан дар синфҳои капитан Бобров).- http://acm.timus.ru/problemset.aspx?space=1&tag=tricky
- https://tproger.ru/category/problems/
- https://www.codechef.com/
- https://www.codewars.com/?language=java
Алгоритмҳо ва сохторҳои додаҳо
Дар бораи алгоритмҳо ва сохторҳои додаҳо баҳсҳои доимӣ вуҷуд доранд, ки то чӣ андоза ба барномасози оянда ба онҳо ниёз доранд. Мо бори дигар чавоб медихем: барои инкишофи тафаккур — онхо даркоранд, бевосита барои кор — кам. Зеро барои Java ва дигар забонҳо низ китобхонаҳо аллакай бо татбиқи ҳама навъбандӣ, ҷустуҷӯ ва дигар алгоритмҳои маълум навишта шудаанд. Бо вуҷуди ин, эҷоди амалисозии алгоритмҳои шахсии шумо хеле муфид аст, ба монанди таҳияи фаҳмиши мураккабии онҳо. Хусусан барои одамоне, ки танҳо дар мактаб математика омӯхтаанд. Аслан, ин вазифаҳо бо муаммоҳо печидаанд, ягона фарқият дар он аст, ки ҳамаи онҳо борҳо дар интернет тавсиф ва ҳал карда мешаванд. Шумо ҳатто барои тафтиш ба валидатор ниёз надоред. Ҳар гуна курсро интихоб кунед, масалан, аз Донишгоҳи Принстон , ҳамкорони онҳо аз Калифорния ё Степик . Дар омади гап, дар курси CS50 , ки тарҷумаи онро мо дар JavaRush ҷойгир кардем, якчанд алгоритмҳои муҳим ва сохторҳои додаҳо баррасӣ мешаванд. Мо тавсия медиҳем, ки видеоҳои сатҳҳои 2-5 ва иҷрои вазифаҳоро дар Java иҷро кунед. Проблемаҳои графикӣ: Вазифаҳои сохтори маълумот:Мултираи
Ҳар касе метавонад барномаеро нависад, ки "Hello World" -ро чоп мекунад... Чӣ тавр истифода бурдани API-и Java Thread, то ибораи машҳур аз риштаи иловагӣ чоп шавад? Ва ба тавре ки он аз панҷ риштаи гуногун панҷ маротиба “Салом ҷаҳон”-ро чоп кунад ва сатрҳо иваз нашаванд?.. Multithreading ҳангоми омӯзиши Java Core воқеии “озмоиши қавӣ” аст. Тамоми квест дар JavaRush ба ин мавзӯи хеле душвор бахшида шудааст, ки Java Multithreading номида мешавад ва он миқдори зиёди вазифаҳоро дар бар мегирад, то донишҷӯ “дард ва зебоӣ”-и равандҳои параллелро эҳсос кунад. Аксар вақт, лоиҳаҳои аввалини "воқеии" донишҷӯён ба андозаи бештар ё камтар мултипликатсияро дар бар мегиранд. Масалан, бозиҳои оддӣ.
Мушкилоти бисёр ришта Панҷ fileсуфи хомӯш дар сари мизи мудаввар нишастаанд. Дар назди хар кадоми онхо табак спагетти гузошта шудааст. Дар руи миз дар тарафи чапу рости хар fileсуф (байни онхо) чангакхо хобидаанд. Файласуф метавонад ё бихӯрад ё фикр кунад. Гузашта аз ин, ӯ метавонад танҳо дар сурате бихӯрад, ки ду чангак дошта бошад - яке аз тарафи рост ва чапаш. «Чаноқро бардор» ва «ҷилчаро гузор» амалҳои алоҳида мебошанд, ки пайдарпай иҷро мешаванд. |
Вазифаҳо оид ба Generics
Умумкунӣ худи моҳияти автоматикунонӣ, яъне ба маънои муайян барномасозӣ мебошад. Ҳамин тавр, мавзӯи умумӣ ё умумӣ дар Java набояд нодида гирифта шавад. JavaRush дорои вазифаҳои умумии барномасозӣ мебошад (асосан дар ҷустуҷӯи Java Collections, аз сатҳи 5 сар мешавад). Дар куҷо шумо метавонед машқҳо ва маводи муфидро оид ба генерикҳо пайдо кунед:- https://docs.oracle.com/javase/tutorial/java/generics/QandE/generics-questions.html
- https://www.geeksforgeeks.org/generics-in-java/
- http://www.angelikalanger.com/GenericsFAQ/FAQSections/ProgrammingIdioms.html
- Китоби "Ява самаранок" аз ҷониби Ҷошуа Блок
Вазифаҳои тарҳрезии намунаҳо
Дар баъзе марҳилаҳо (тақрибан 2/3 курси JavaRush), як барномасози навкор бояд бодиққат ба қоидаҳои одоби хуб дар барномасозӣ шурӯъ кунад. Мо дар бораи форматкунии дурусти code (ки осонтар аст) ва намунаҳои тарроҳӣ (ки мушкилтар аст) сухан меронем. JavaRush чунин вазифаҳоро дорад. Иловаҳо лозиманд - онҳоро, масалан, дар китоб (қисми 4) ёфтан мумкин аст " Java. Усулҳои барномасозӣ » Блинов ва Романчик. Ё дар бораи он фикр кунед, ки чӣ тавр шумо метавонед мушкилоти аллакай ҳалшударо дар қолаб ҷойгир кунед.Санҷиши воҳид
Маҳорати муҳими ҳама гуна барномасоз, ки аксар вақт иштибоҳан танҳо ба озмоишгарон нисбат дода мешавад, навиштани санҷишҳои воҳид (ё воҳиди) барои codeи шахсии шумо мебошад. JavaRush дорои якчанд вазифаҳои санҷиши воҳид мебошад, аммо шумо дар ҳақиқат набояд дар ҷустуҷӯи вазифаҳои нав ташвиш кашед. Пас аз он ки шумо фаҳмед, ки чӣ тавр навиштани тестҳо, одати пӯшонидани codeи худро (дар лоиҳаҳои худ, дар вазифаҳои таълимӣ) бо санҷишҳои воҳид ташаккул диҳед. Ин назар ба гузаронидани санҷишҳо бо истифода аз баромади консол, ки барномасозони донишҷӯ одатан аз он азоб мекашанд, муфидтар аст. Илова бар ин, аксар вақт аввалин коре, ки ширкатҳо ба "ҷавонон" бовар мекунанд, ин навиштани санҷишҳои воҳид барои рамзи ягон каси дигар аст.- Санҷиши воҳидҳо барои dummies - мақолаи муфид аз Habr, ки пас аз он маълум мешавад, ки чаро санҷиши воҳид лозим аст
- Junit - Java барои озмоишгарон - дастури видеоӣ аз ҷониби Юрий Ткач
Мушкилоти ифодаи муқаррарӣ
Ин як мавзӯи оддӣ аст, ки онро қариб ҳеҷ шурӯъкунандагон намефаҳманд, зеро он ғайриоддӣ ва танбалӣ аст. Дарвоқеъ, меарзад, ки чанд рӯз барои омӯзиши мавзӯъ, дарки "муқаррарҳо" ва ба даст овардани бартарӣ нисбат ба онҳое, ки ин корро накардаанд. Ин инчунин муфид аст, зеро онҳо қариб аз забони барномасозӣ мустақил нестанд: онро як маротиба омӯзед, шумо метавонед онро дар ҳама ҷо истифода баред. Дар JavaRush ягон мушкилоте вуҷуд надорад, ки ба ибораҳои муқаррарӣ тамаркуз мекунанд, гарчанде ки баъзеи онҳоро бо истифода аз онҳо ҳал кардан мумкин аст. Пас, дар ин ҷо баъзе захираҳои иловагӣ барои фаҳмидани мавзӯъ ҳастанд:- Ибораҳои муқаррарӣ дар Java - тарҷумаи мақолаи Ҷефф Фризен
- Санҷиши ибораҳои муқаррарӣ - захирае, ки дар он шумо метавонед ифодаҳои муқаррариро онлайн санҷед
- Майк Фитзҷералд Ифодаи муқаррарӣ як дастури кӯтоҳ ва оддӣ аст.
GO TO FULL VERSION