JavaRush qismi 2

All lectures for UZ purposes
Daraja, Dars
Mavjud

1. Amaliyot asosidagi o'rgatish

Amaliyot asosidagi Java o'rgatish

JavaRushni yurakdan yaxshi ko'radiganlar bor, yurakdan yomon ko'radiganlar ham bor. Ammo JavaRushni hatto eng ashaddiy tanqidchilar ham biladiki, bu yerda juda ko'p vazifalar bor. Ularning ko'pligi sabab, JavaRushdagi barcha ta'lim amaliyot asosida.

Dasturlash — bu ko'nikma. Hech kim "men dasturlashni bilaman" demaydi: hamma dasturchilar "men dasturlashni bilaman" deyishadi. Bu ko'nikma xuddi suzish yoki shaxmat o'ynash kabi. Uni rivojlantirish faqat muntazam amaliyot bilan mumkin.

Shuning uchun JavaRushdagi barcha o'quv kursi murakkablik darajasiga ega bo'lgan vazifalar ketma-ketligidan iborat. Juda oson va oddiy vazifalardan boshlaysiz, eng murakkab va qiziqarli bilan tugatasiz. Har bir darajada murakkablik biroz oshadi va bu yo'l sizni dasturchiga aylantirish maqsadini amalga oshiradi.


2. Vazifa turlari

JavaRushda sizni rang-barang topshiriqlar kutmoqda. Asosiylarini sanaymiz:

Dastur yozish topshiriqlari

Bu kursdagi eng muhim topshiriqlar. Ular darajasi juda turli bo'lishi mumkin: eng oddiy vazifalardan tortib miyani qizdiradiganlarigacha.

Bu vazifalarning maqsadi — shart va maxsus talablariga mos keladigan dastur yozish. Bu eng katta topshiriqlar guruhi. JavaRush talabalari uchun qulaylik yaratish uchun, biz ushbu topshiriqlarni murakkablik darajalariga ajratamiz: EASY, MEDIUM, HARD va EPIC.

EPIC vazifalar ko'pincha keyingi, hali ochilmagan darslarda bo'ladi. Ular JavaRush talabalarga yoqadi, chunki ular uchun kurs juda oson. Boshqa talabalarga esa, bu vazifalarni o'tib ketish va keyin mos nazariya bilan tanishganlarida qaytib kelish olajaksi.

Loyihalar

Kichik vazifalar minus tomoni, ularning kichikligi. Bajarding — va unutding, deganlaricha. Shuning uchun ularda juda qiziqarli bo'lishi qiyin. Katta dasturni tekshirish esa qiyin: uni juda ko'p usullar orqali amalga oshirish mumkin.

Shu sababli JavaRushda loyiha-vazifalar paydo bo'ldi — katta vazifalar, 5 dan 35 gacha kichik vazifalarga bo'lingan. Siz ketma-ket barcha kichik vazifalarni bajarib, katta dasturga ega bo'lasiz.

20-dan yuqori bo'lgan har bir darajaning oxirida katta loyiha-vazifa bor, ikki o'nlab kichik vazifalarga bo'lingan. Boshqa 6 o'yin-vazifalar ham loyihalar hisoblanadi. Va bitta loyiha-vazifa onlayn amaliyot uchun test vazifasi sifatida. Jami — butun kursda 27 loyiha-vazifa mavjud.

Testlar

JavaRushda testlar uzoq vaqt davomida mavjud emas edi: JavaRush yaratuvchisi to'g'ri o'tilgan testlar odamlar uchun "bilim illyuziyasini" yaratadi deb hisoblaydi. Odamlar haqiqiy dasturlashni bilmasalar ham, testlarni topshirishlariga amin bo'lishadi. Bunday odamlar o'rganishni to'xtatishadi, chunki "ular hammasini biladi".

Keyinchalik testlar qo'shildi, shunda JavaRush talabalari o'z o'quvlaridagi bo'shliqlarni oson topishlari mumkin bo'ldi. Dasturchiga o'z ishida har kuni foydalanadigan narsalar qanday ishlashini bilish foydali.


3. Vazifalar statuslari

Har bir JavaRush vazifasida maxsus status bor. Bu statuslar vazifani yechish jarayonida o'zgarishi mumkin.

Har bir vazifa muayyan darsga biriktirilgan. Dastlab, barcha vazifalar siz uchun mavjud emas, va siz ulardan foydalana olmaysiz.

Keyin, navbatdagi darsni ochganingizda, ushbu darsdagi barcha vazifalar mavjud bo'lsa, ularni yechish uchun mavjud bo'ladi: ularning statusi "Yechiladi" ga o'zgaradi.

Agar siz bir marta vazifani tekshirish uchun yuborgan bo'lsangiz, uning statusi "Yechiladi" dan "Jarayonda" ga o'zgaradi.

Va nihoyat, agar siz barcha talablarni muvaffaqiyatli bajarsangiz va validator vazifangizni qabul qilsa, uning statusi "Yechilgan" ga o'zgaradi.

Premium Mentor obuna egalari uchun boshqa echimlar yozishni sinab ko'rish uchun yana 3 kun beriladi. Ushbu vaqt o'tganidan so'ng, vazifa "Yopildi" statusiga o'tadi va bu status boshqa o'zgarmaydi.


4. Talablar

JavaRushning dastlabki yillarida har bir vazifani tekshirish yagona oddiy natijani berdi: ha yoki yo'q. Dastur barcha testlardan o'tdi yoki o'tmadi. Juda oddiy, lekin juda foydali emas.

O'qish jarayonida odamlar uchun aynan nima noto'g'ri ekanini va buni qanday to'g'ri qilishni tushunish juda muhim. Shuning uchun, serveringiz yechimingizni qabul qilmaganidan so'ng, unda nima noto'g'ri ekanini bilmoqchisiz.

Ushbu savolga javob olish uchun birov sizning yechimingizni ko'rib chiqishi, tahlil qilishi va unga nima noto'g'ri ekanini aytishi kerak. Bu uzoq va qimmatga tushadi. Vazifalarni tezkor tekshirishning go'zalligi shundaki, siz kechasi soat 2 da o'qishingiz va hamma narsa boshqa vaqtlardagi kabi ishlashi mumkin.

Shuning uchun biz JavaRushda barcha vazifalarni qayta yozdik. Endi har bir vazifa nafaqat shart, balki shart asosidagi 5-10 talablar ro'yxati ham mavjud. Va eng muhimi: har bir talab alohida tekshiriladi.

Shuning uchun bugungi kunda siz vazifani tekshirish uchun yuborganingizdan so'ng, kengaytirilgan natijani olasiz: har bir vazifa talabida maxsus belgi ko'rsatiladi, bu dasturingizning ushbu talabni o'tib-o'tmaganini bildiradi. Misol:

Bunday yondashuv bir nechta sinflar yoki metodlarni yozishni talab qiladigan vazifalarni hal qilishda hayotni ancha yengillashtiradi. Siz doim o'zingiz yozgan metod yoki siniflar qaysi biri to'g'ri yoki noto'g'ri ekanini ko'rasiz.


5. Tavsiyalar

Vazifalarni yana qanday yaxshilash mumkinmi? Har bir tekshirishdan so'ng, sizga dasturingizda aynan nimasi noto'g'ri ekanini aytib turishsa, ajoyib bo'lardi. Ha, bu juda zo'r bo'lar edi! Va bilasizmi nima? Biz JavaRushda buni qildik 🙂

Har bir talabni tekshirishda biz o'nlab tipik xatolarni ushlab turamiz. Agar dasturingiz validatorga ma'lum xatoni qilsa, u sizga tavsiyani yuboradi – yechimingizni qanday tuzatishingiz kerakligi haqida ishora beruvchi matn.

O'ylab ko'ring. Hozir JavaRushda taxminan 1200 ta vazifa bor va ularda jami 10,000 ta talab mavjud. Va har bir talabga bir nechta tavsiyalar bor. Ba'zi talablarning o'nlab tavsiyalari bor. JavaRush validatorida foydalanuvchilar yechimlariga nisbatan 50,000 dan ortiq tavsiyalar mavjud.

Bundan tashqari, bu barcha narsa ko'p hollarda bir soniyadan kam vaqt davom etadigan yechimingizni tekshirish jarayonida sodir bo'ladi. Inson buni qila olmas edi. Haqiqiy virtual mentor.


6. Jamiyat

JavaRush katta amaliyotga yo'naltirilgan: u o'rganish jarayonining 80% dan ko'pini tashkil qiladi. Biz uni katta va qiziqarli kvestga aylantirdik (hatto bir qator kvestlarga).

Lekin barcha odamlar har xil: kimdir tezroq o'rganadi, kimdir esa sekinroq. Kimdir yangi materialni osonroq qabul qiladi, kimdir esa qiyinroq. Bizning maqsadimiz shundan iboratki, har bir talaba maqsadga erishsin. Unga intilamiz.

Bu dunyoda dasturchilar - bu faqat bir necha million kishi emas, ular turli tillarda kod yozadilar va bo'sh vaqtlarida startaplar yaratadilar. Ular global tarmoqdir, unda doimo bilim almashiladi, savollarga javob berishga va qiyin mavzularda tushuntirishga tayyor.

Dunyodagi eng katta ishlab chiqaruvchilar jamoasi - StackOverflow sayti — dasturchilar bir-birlaridan bilim olish ehtiyojidan kelib chiqqan. Uning g'oyasi oddiy: siz savol berasiz, va dunyoning istalgan joyidagi dasturchi unga javob berishi mumkin. Quvonch, to'g'rimi? 🙂

Biz JavaRushda talabalar orasida bilim almashishni juda qimmatli deb hisoblaymiz. Boshqalarga yordam berish orqali, dasturchi o'zi rivojlanadi. Nimani tushunish uchun eng yaxshi usul bu boshqa insonga tushuntirish. Shu sababli, biz saytda maxsus bo'limlar yaratdik, ular barcha talabalarimizga bilim almashish va o'qish jarayonida bir-birlariga yordam berish imkoniyatini bermoqchi.

Xo'sh, agar siz navbatdagi vazifada to'xtab qolsangiz, nima qilish kerak? Internetdan tayyor echim izlash - yomon fikr. Ha, vazifa hisoblanadi, agar siz faqat birovning yechimini nusxa ko'chirsangiz yoki bizning To'g'ri yechimdan foydalansangiz. Lekin bilimsizlik bo'shligi yana bir bor kelajakda o'zini sezdiradi.


7. Vazifalar bo'yicha savollar

Talablar, tavsiyalar va virtual mentor — bu, albatta, ajoyib. Lekin validator sizning yechimingizni qabul qilmasa, xato qaerda ekanini bilmasa, nima qilish kerak?

Bu holda ham bizda yechim bor. Tanishib olish – Yordam Bo'limi. Ushbu bo'limda JavaRush talabalari vazifalar bo'yicha savollar berishlari, bir-birlarining yechimlarini tahlil qilishlari, shuningdek, maslahat va ko'rsatmalar berishlari mumkin. To'g'ri echimlarni e'lon qilish taqiqlanadi.

Juda oddiy va sodda tuyuladi, lekin aslida hammasi aksincha.

Birinchidan, har bir savolda u bog'langan vazifani ko'rsatish mumkin. Shuning uchun, agar siz faqat ma'lum bir vazifaga tegishli savollarni qiziqtirayotgan bo'lsangiz, barcha savollarni ko'rishga hojati yo'q. Siz har doim sizni qiziqtirgan vazifa bo'yicha faqat savollarni osongina filtrlashingiz mumkin. Faqat vazifa nomini qidiruv satriga kiriting:

Ikkinchidan, agar siz vazifani hal qilish davomida "Jamiyat yordam" tugmasini bossangiz, faqat siz hal qilayotgan vazifa bo'yicha savollar filtrlashgan Yordam bo'limiga o'tasiz. Agar vazifa tekshirishga jo'natilib, sinovdan o'tmagan bo'lsa - savollar ma'lum tartibda to'planadi: ushbu talabni o'tmagan savollar yuqori ko'rinadi.

Uchinchidan, mavhum xususiyat IntelliJ IDEA plaginida ham mavjud. Ko'rsatma yoki Ctrl+Alt+W kombinatsiyasi tugmasini bosishingiz mumkin, va brauzer Yordam bo'limini ochadi. Va, albatta, unda siz hal qilayotgan vazifa bo'yicha faqat savollar tasniflangan bo'ladi IntelliJ IDEA.


8. O'zingizni savolingizni yaratish

Agar Yordam bo'limida xatongizni yaxshi tahlil etish topilmasa, siz har doim o'zingizni savolingizni yaratishingiz mumkin. Bu juda oson amalga oshiriladi: "Savol berish" tugmasini bosish va kerakli maydonlarni to'ldirish kifoya:

StackOverflow, Toster kabi ko'pgina boshqa xizmatlardan farqli o'laroq, JavaRush savolingizning sarlavhasida barcha muhim ma'lumotlarni joylashtirishni talab qilmaydi. Savolingizni sizga qulay bo'lgan tarzda yozing.

Va bilasizmi, WebIDE yoki IntelliJ IDEAdan yechimingizning kodini nusxalashingiz va uni savolingizga qo'shishingiz shart emas. Savol yaratishda, unga avtomatik ravishda yechimingizning kodi va talablarning statuslari qo'shiladi: yechimingiz o'tgan talablar va o'tmaganlar.

Natijada, barcha JavaRush foydalanuvchilari darhol foydalanuvchi yechimiga tegishli barcha ma'lumotlarni ko'radi va unga foydali maslahat berish ancha oson bo'ladi.


9. Yechim kodlari

Ko'pgina saytlarda kod bo'yicha savol yaratishda savolga dastur fayllarini arxiv shaklida qo'shish yoki barcha fayllarni savolingiz matniga qo'shish talab qilinadi. Natijada, ko'rib chiqilmaydigan yoki imkoniyati bo'lmagan katta "portyan" hosil bo'ladi.

Tez va sifatli savol berish — bu san'at. Oddiy saytlarda siz savolni tayyorlash uchun yarim soat sarflashingiz yoki hech kim javob bermayotganiga ko'nikishingiz kerak bo'ladi. Yaxshi vazifa bo'yicha savol quyidagi ma'lumotni o'z ichiga olgan bo'lishi shart:

  • Foydalanuvchi hal qilayotgan vazifaga havola
  • Vazifa sharti, uni izlash uchun hech qaerga o'tishga hojat yo'q
  • Yechim kodi: ko'p fayllar bo'lishi mumkin
  • Yechimning talablar holatlari: nima ishlaydi, nima — yo'q.
  • Savol matni: odatda hammasi tushunarli — ishlamaydi, nima uchun — noma'lum.

JavaRushda ushbu ma'lumotni ko'rsatish uchun WebIDE vidjetiga juda o'xshash maxsus vidjet ishlatiladi. U allaqachon barcha yuqoridagi ma'lumotlarni ko'rsatish uchun mo'ljallangan. Balki faqat foydalanuvchi savolini ko'rmasligi mumkin.

Ha, biz maxsus vidjet yozdik shu maqsadda, boshqa foydalanuvchilarning yechimlarini o'rganishingiz oson bo'lishi uchun. Va boshqalarning sizning savollaringizda yechimlaringizni o'rganishini oson va qulay qilish uchun.

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION