JavaRush /Java blogi /Random-UZ /Java vazifalarining qanday turlari mavjud?

Java vazifalarining qanday turlari mavjud?

Guruhda nashr etilgan
Biror kishi mustaqil ravishda yoki onlayn kurslarda dasturlashni o'rganishni boshlaganida , "faoliyat sohasi" ni aniqlash va hamma narsani tizimlashtirish juda muhimdir. Ushbu maqolada biz bunday tizimlashtirishni taqdim etamiz - yangi boshlanuvchilar uchun Java vazifalari, JavaRush dasturlashni o'rganish uchun onlayn kursda ma'lum bir tur qanchalik to'liq taqdim etilganligini va foydali havolalarni ko'rsatamiz. Java topshiriqlarining qanday turlari bor - 1

Til sintaksisi muammolari

Yangi boshlanuvchilar uchun asoslar, eng birinchi Java dasturlash vazifalari - "Salom dunyo" dan tsikllar va massivlargacha. JavaRush-da ularning ko'pi bor: ular, ayniqsa, birinchi olti darajadagi Java sintaksisi qidiruvida zich joylashgan. Ularni o'zlashtirish uchun qo'shimcha manbalarni izlash kerak emas - bu erda ularning soni etarli. Bundan tashqari, har qanday murakkab muammolarni hal qilishda siz avtomatik ravishda sintaksisni takrorlaysiz. Ammo agar sizga to'satdan kerak bo'lsa, yangi boshlanuvchilar uchun har qanday Java muammoli kitobida shunga o'xshash mashqlar mavjud. Faqatgina ushbu muammoli kitoblarda JavaRush-dagi kabi tezkor tekshiruv bo'lmaydi.

To'plam vazifalari

To'plamlar yangi boshlanuvchi dasturchi o'qish paytida duch keladigan birinchi "jiddiy" mavzudir. To'plamlarga bag'ishlangan yangi boshlanuvchilar uchun Java muammolari ham JavaRush-da keng tarqalgan - Java Syntax kvestining ettinchi va sakkizinchi darajalarida. Bu yerda talaba birinchi marta Java Collections Framework haqida eshitadi, Set, List va Map interfeyslari va ularning ba'zi ilovalari bilan ishlaydi. Biroq, bu bosqichda siz faqat ushbu foydali vosita va oddiy Java vazifalari bilan tanishasiz. To'plamlarni yanada chuqurroq o'rganish Java Collections qidiruvi davomida amalga oshiriladi . Bu ob'ekt qanchalik muhimligini ko'rasiz, chunki butun bir kvest uning nomi bilan atalgan!

Istisno muammolari

Java-da g'ayritabiiy vaziyatlar bilan ishlash uchun maxsus mexanizm javobgar bo'lib, bu dasturlardagi xatolarni "tutish" ni sezilarli darajada osonlashtiradi. Ammo uni to'liq ishlatish uchun Java-da istisnolardan foydalanish qanday ishlashini tushunishingiz kerak. JavaRush-da bunday vazifalar juda ko'p va ular hatto birinchi Java Syntax kvestida ham topiladi.
Java topshiriqlarining qanday turlari bor - 2

Turni o'zgartirish bilan bog'liq muammolar

Albatta, bu guruhni asosiy sintaksis vazifalari sifatida tasniflash mumkin. Biroq, bizning kamtarona fikrimizcha, bunday vazifalar ko'pincha e'tiborga olinmaydi va yangi boshlanuvchilar ularga shoshilishadi. Shuning uchun, shablonlardan uzoqlashaylik: biz yangi boshlanuvchilar uchun Java topshiriqlarini "Ibtidoiy turlarni o'zgartirish" mavzusida, odatda bajarilganidek, boshida emas, balki biroz keyinroq - birinchi Java sintaksisi kvestining oxirida o'rganamiz. Va keyin biz Java Core questida OOP ni o'rganish orqali ibtidoiy bo'lmagan turlarni (ob'ektlarni) qanday chiqarishni o'rganamiz . JavaRush-da bunday vazifalar juda ko'p, siz qo'shimcha narsa izlashingiz shart emas.

OOPni tushunish uchun vazifalar

OOP eng qiyin mavzu emas, lekin bu juda muhim. Bundan tashqari, u suhbatdoshlar kelajakdagi "yoshlar" ni qo'lga olish uchun foydalanishni yoqtiradigan juda ko'p nozik narsalarni o'z ichiga oladi. JavaRush kursida yangi boshlanuvchilar uchun amaliy dasturlash masalalari mavjud bo'lib, ular sizga ob'ektga yo'naltirilgan yondashuvni tushunishga yordam beradi. Biroq, OOPni chinakam tushunish uchun mavzu bo'yicha adabiyotlarni o'qishni tavsiya etamiz (masalan, Kay Horstmann, Gari Kornelning Professional kutubxonasi, Maklaflinning ob'ektga yo'naltirilgan tahlil va dizayn yoki boshqa kitoblar ).

Kiritish-chiqarish iplari bo'yicha vazifalar

Biz kiritish/chiqarish oqimlaridan ularni tushunishimizdan ancha oldin foydalanishni boshlaymiz - bu Java, chaqaloq va System.out-ni tushuntirish va bundan tashqari, System.in-ni yashil boshlovchiga tushuntirish qiyin va birinchi bosqichda kerak emas. Ammo Java Core kvestida bu biroz chalkash mavzuni tushunish uchun bilim yetarli va biz nafaqat konsol kiritish/chiqarish haqida, balki fayl tizimi bilan ishlash haqida ham gapiramiz. Asosiysi, bu vazifalarni o'tkazib yubormaslik (JavaRush-da ular juda ko'p) va nazariyani izchil tushunishdir.

Boshqotirmalar

"Yubbozlar" deganda biz ko'p bilimni emas, balki uni nostandart usulda qo'llash qobiliyatini talab qiladigan murakkablikdagi vazifalarni nazarda tutamiz. Bu Java Junior uchun odatiy vazifalar - ular intervyularda juda mashhur, ammo haqiqiy ishda bu ma'noda jumboqlar juda keng tarqalgan emas. Shuning uchun JavaRush-da ular bor, lekin unchalik ko'p emas (odatda kapitan Bobrovning darslarida).
Java topshiriqlarining qanday turlari bor - 3
Bulmacalarni qayerdan topishingiz mumkin:

Algoritmlar va ma'lumotlar tuzilmalari

Algoritmlar va ma'lumotlar tuzilmalari bo'yicha doimiy bahs-munozaralar mavjud bo'lib, ular kelajakdagi dasturchiga qanchalik muhtojligi haqida. Yana bir bor javob beramiz: fikrlashni rivojlantirish uchun - ular kerak, to'g'ridan-to'g'ri ish uchun - kamdan-kam hollarda. Chunki Java va boshqa tillar uchun kutubxonalar allaqachon ma'lum bo'lgan saralash, qidirish va boshqa algoritmlarni amalga oshirish bilan yozilgan. Biroq, algoritmlarning o'z ilovalarini yaratish juda foydali, chunki ularning murakkabligi haqida tushunchani rivojlantirish. Ayniqsa, faqat maktabda matematikani o'rgangan odamlar uchun. Asosan, bu vazifalar jumboqlar bilan aralashib ketgan, yagona farq shundaki, ularning barchasi ko'p marta Internetda tasvirlangan va hal qilingan. Tasdiqlash uchun sizga validator ham kerak emas. Har qanday kursni tanlang, masalan, Prinston universiteti , ularning Kaliforniyadagi hamkasblari yoki Stepik . Aytgancha, biz JavaRush-ga tarjimasini joylashtirgan CS50 kursida bir nechta muhim algoritmlar va ma'lumotlar tuzilmalari muhokama qilinadi. Biz 2-5-darajali videolarni tomosha qilishni va Java-da vazifalarni amalga oshirishni tavsiya qilamiz. Grafik muammolari: Ma'lumotlar tuzilishi vazifalari:

Ko'p tarmoqli

Har kim "Salom dunyo" ni chop etadigan dastur yozishi mumkin... Mashhur ibora qo'shimcha ipdan chop etilishi uchun Java Thread API dan foydalanishga nima deysiz? “Salom dunyo”ni besh xil ipdan besh marta chop etishi va qatorlar bir-birini almashtirmasligi uchunmi?.. Multithreading Java Core-ni o'rganishda haqiqiy “kuch sinovidir”. JavaRush-dagi butun kvest Java Multithreading deb nomlangan ushbu juda qiyin mavzuga bag'ishlangan bo'lib , u talaba parallel jarayonlarning "og'riq va go'zalligini" his qilishi uchun juda ko'p vazifalarni o'z ichiga oladi. Ko'pincha o'quvchilarning birinchi "haqiqiy" loyihalari ko'p yoki kamroq darajada ko'p oqimlarni o'z ichiga oladi. Masalan, oddiy o'yinlar.
Java topshiriqlarining qanday turlari bor - 4

Ko'p oqim muammosi

Beshta jim faylasuf davra stolida o'tirishadi. Ularning har birining oldida bir tovoq spagetti bor. Vilkalar stolda har bir faylasufning chap va o'ng tomonida yotadi (ular orasida). Faylasuf yo ovqatlanishi yoki o'ylashi mumkin. Bundan tashqari, agar u ikkita vilkani ushlab tursa, ovqatlanishi mumkin - biri o'ngga va chapga. "Sichqonchani oling" va "vilkani qo'ying" - ketma-ket bajariladigan alohida harakatlar.

Generics bo'yicha vazifalar

Umumlashtirish - bu avtomatlashtirishning, ya'ni ma'lum ma'noda dasturlashning mohiyatidir. Shunday qilib, Java-dagi umumlashtirish yoki generiklar mavzusini ham e'tiborsiz qoldirmaslik kerak. JavaRush umumiy dasturlash vazifalariga ega (asosan Java Collections kvestida, 5-darajadan boshlab). Jeneriklar bo'yicha foydali mashqlar va materiallarni qaerdan topishingiz mumkin:

Dizayn naqshlari bo'yicha vazifalar

Ba'zi bir bosqichda (JavaRush kursining 2/3 qismi) yangi boshlanuvchi dasturchi dasturlashda yaxshi xulq-atvor qoidalarini diqqat bilan ko'rib chiqishni boshlashi kerak. Biz kodni to'g'ri formatlash (bu osonroq) va dizayn naqshlari (bu qiyinroq) haqida gapiramiz. JavaRush-da bunday vazifalar mavjud. Qo'shimchalar kerak - ularni, masalan, kitobda topish mumkin (4-qism) " Java. Dasturlash usullari » Blinov va Romanchik. Yoki allaqachon hal qilingan muammolarni shablonga qanday joylashtirishingiz haqida o'ylab ko'ring.

Birlik sinovi

Har qanday dasturchining muhim mahorati ko'pincha noto'g'ri ravishda faqat sinovchilarga tegishli bo'lib, bu o'z kodingiz uchun birlik (yoki birlik) testlarini yozishdir. JavaRush-da bir nechta Unit Test topshiriqlari mavjud, ammo siz haqiqatan ham yangilarini izlamasligingiz kerak. Testlarni qanday yozishni tushunganingizdan so'ng, kodingizni (o'z loyihalaringizda, o'quv topshiriqlarida) Unit testlari bilan qoplash odatini shakllantiring. Bu konsol chiqishi yordamida tekshirishlarni amalga oshirishdan ko'ra ancha foydalidir, bu talaba dasturchilar odatda azoblanadi. Bundan tashqari, ko'pincha kompaniyalar "yoshlarga" ishonib topshiradigan birinchi narsa bu boshqa birovning kodi uchun birlik testlarini yozishdir.

Doimiy ifoda muammolari

Bu oddiy mavzu, uni deyarli hech bir boshlovchi tushunmaydi, chunki bu g'ayrioddiy va dangasalik. Darhaqiqat, mavzuni o'rganish uchun bir necha kun sarflash, "muntazam" ni tushunish va buni qilmaganlarga nisbatan ustunlikka ega bo'lishga arziydi. Bu ham foydali, chunki ular dasturlash tilidan deyarli mustaqil: uni bir marta o'rganing, uni hamma joyda ishlatishingiz mumkin. JavaRush-da oddiy iboralarga e'tibor qaratadigan hech qanday muammo yo'q, ammo ba'zilarini ulardan foydalanib hal qilish mumkin. Shunday qilib, mavzuni tushunish uchun qo'shimcha manbalar:
Java topshiriqlarining qanday turlari bor - 5

Hiyla bilan Java muammolari

Ushbu toifaga ko'pincha dasturchining haqiqiy ishi bilan bevosita bog'liq bo'lmagan murakkab vazifalar kiradi. Ular asosan intervyu paytida topiladi; ular nomzodning ma'lum bir texnologiyani tushunish/bilim chuqurligini tushunish yoki uning diqqatliligini tekshirish uchun ishlatiladi. Agar sizga bu kabi muammolar kerak bo'lsa, Google "Java Interview Problems" yoki shunga o'xshash narsalar. Ehtimol, siz turli forumlarda ko'plab to'plamlarni, shuningdek, savollar va javoblarni topasiz. Ularni tushunish foydalidir, lekin ularga ko'p vaqt sarflashga arziydimi? Kay Horstmann bir paytlar InformIT uchun tarjimasi yanvar oyida nashr etilgan maqolasida bunday muammolar haqida yaxshi gapirgan . Uning fikrini qisqacha ifodalash uchun, haqiqiy vazifalar mavjud va parallel koinot mavjud - "Intervyu muammolari".

Lambda ifodasi muammolari

Lambda ifodalarini qo'llab-quvvatlash Java 8 da paydo bo'ldi, ammo baribir hamma dasturchilar ulardan foydalanishni xohlamaydilar. Biroq, bugungi kunda "Java Junior uchun vazifalar" tushunchasi lambda iboralari bilan manipulyatsiyalarni o'z ichiga oladi, shuning uchun biz ular bilan tanishishingizni tavsiya qilamiz, masalan, " Java'da lambda ifodalari haqida mashhur " maqolasidan . Misollar va topshiriqlar bilan ."

Tarmoq vazifalari

JSON, RMI, HttpUrlConnection, rozetkada ketma-ketlashtirish... bular boshlang'ich dasturlash vazifalari emas. Ular qattiq bilim talab qiladi va o'z loyihalari, amaliyotlari va ishlari uchun o'ziga xos ko'prikdir. JavaRush (Java Collections quest) ning yuqori darajalarida ushbu texnologiyalar va yondashuvlarni o'zlashtirish uchun ko'plab mashqlar mavjud, ammo onlayn amaliyot davomida hamma narsa aniqroq bo'ladi.
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION