“Most programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program” — Linus Torvalds
Dasturlash bo’yicha ko’nikmalarni oshirish va mustahkamlashning eng yaxshi usullaridan biri dasturlashga oid masalalarni ishlash va ularni online checkerlar orqali tekshirib ko’rishdir. Bunday tizimlarda muntazam tarzda masalalarni ishlash dasturlash olimpiadalarida muvaffaqiyatli qatnashishni ham ta’minlab berish ehtimoli yuqori. Lekin, dasturlashni endi boshlagan dasturchilar buning uchun yaxshi manbalarni topa olmay qiynalishlari turgan gap.
Shularni inobatga olgan holda bugun biz Eng yaxshi deb hisoblagan manbalardan bir nechtasini ko’rsatib va tahlil qilib o’tmoqchimiz. Bunda biz ularning darajasi, sayt qay darajada qulay tashkil qilinganligi, musobaqalarning doimiy o’tkazilib turishi va til kabi faktorlarni e’tiborga olganmiz.
1-o’rin: HackerRank
Balki, birinchi o’ringa HackerRankni joylashtirganim uchun Codeforces asoschisi Mike Mirzayanov meni kechirmas ), lekin bunga bir nechta sabab mavjud.
Tili: Ingliz
Kimlar uchun: Barcha darajadagi dasturchilar
Afzalliklari:
Algoritmlar, Matematika va Ma’lumotlar tuzilmalari uchun alohida bo’limlari mavjudligi
Dasturlash tillari va paradigmalarini o’rgatishga qaratilgan darslar va masalalar mavjudligi (C/C++, Java, Python, Ruby, JavaScript, Linux Shell va Funksional dasturlash)
Boshqa yo’nalishlardagi darslar (SQL, Ma’lumotlar bazasi, RegEx) va eng asosiysi Sun’iy intellekt
Masalalarni mavzusi va qiyinlik darajasi bo’yicha saralash imkoniyati
Masalalarni ishlay olmagan taqdiringizda uning muhokamasini ko’rishingiz, uni yechimini o’rganishingiz (Educational) yoki uning testini ochib ko’rishingiz mumkin
Eyler proyekti masalalarini online ishlash mumkinligi
Kamchiliklari:
- Yagona kamchilik sifatida dasturlash musobaqalari va olimpiadalarini muntazam ravishda o’tkazib turilmasligini keltirish mumkin
2-o’rin. Codeforces
Codeforces hozirgi paytda dasturlash musobaqalari va olimpiadalarini tashkillashtiruvchi eng katta va aktiv manbalardan biri. Ayniqsa, sifat va tashkiliy masalalarni alohida ta’kidlash joiz
Tili: Rus va Ingliz
Kimlar uchun: Barcha darajadagi dasturchilar (Yaqinda Div3 qo’shilganligi sababli)
Afzalliklari:
Muntazam ravishda, deyarli har hafta, musobaqalarning o’tkazib turilishi
Masalalarning katta arxivi
Masalalarni qiyinlik darajasi va mavzusi bo’yicha saralash imkoniyati mavjudligi
Darajaga ko’ra musobaqalar tashkillashtirilishi (Div1, Div2, Div3)
Kamchiliklari:
- Interfeysdagi ba’zi kamchiliklar (ingliz saytlarichalik zamonaviy ko’rinmaydi)
3-o’rin. TopCoder
TopCoder sayti bu ro’yhatimizdagi eng “nuroniy”laridan hisoblanadi. Aslida Codeforces yaratuvchilari bo’lgan Mike Mirzayanov boshchiligidagi Belorus dasturchilari ham o’z oldilariga Amerikalik TopCoderdan o’zib ketishni maqsad qilishgan bo’lishsa ham ajab emas va aytish mumkinki ular buni uddalashgan ham.
Tili: Ingliz
Kimlar uchun: Asosan tajribali dasturchilar uchun, lekin yangi va o’rta darajadagi dasturchilar ham o’zlari uchun foydali narsalar topishlari mumkin
Afzalliklari:
Faqatgina qisqa musobaqalar emas, bir necha kun davom etadigan katta musobaqalar ham tashkil etib turiladi
Masalalarning katta arxiviga ega ekanligi
Ularni qiyinlik darajasi bo’yicha saralash mumkinligi
va boshqa men bilmagan afzalliklar (saytni to’liq o’rganib chiqishning iloji bo’lmadi)
Kamchiliklari:
- Masalalarni mavzu bo’yicha saralab bo’lmasligi
4-o’rin. LeetCode
Yana bir ajoyib sayt, juda yaxshi va qiziqarli tarzda tashkillashtirilgan. Albatta, yuqoridagi saytlardan mashhurlik darajasi bo’yicha ancha ortda bo’lsa ham kirib ko’rishga arziydi.
Tili: Ingliz
Kimlar uchun: Barcha darajalar (ayniqsa, yangi boshlovchilar uchun)
Afzalliklari:
Ko’p masalalarda batafsil tushuntirilgan yechimni ko’rish mumkinligi
Masalalarni qiyinlik darajasi va mavzusi bo’yicha oson saralash imkoniyati
System Design, OO Design, Operating System, Database va Shell kabi mavzular va ularga tegishli masalalar ham mavjudligi
Har hafta musobaqalar tashkillashtirib turilishi
Kamchiliklari:
- Masalani yechimini jo’natishdagi noodatiyroq yo’l boshida noqulay tuyilishi mumkin
Tavsiya qilamiz: Bepul Leetcode’da masalalar yechish kursimizga yoziling
5-o’rin. CodeChef
Hindistonlik dasturchilarning ajoyib loyihalaridan biri. Yana bir juda yaxshi tashkillashtirilgan dasturchilik masalalariga bag’ishlangan saytlardan biri
Tili: Ingliz, (ba’zi masalalarning Rus va Xitoy tillaridagi shartlari ham mavjud)
Kim uchun: Barcha darajadagi dasturchilar uchun
Afzalliklari:
Faqatgina o’z bazasiga bo’g’lanib qolmaganligi, ya’ni TopCoder, Codeforces va boshqa saytlardan ham mavzuga oid masalalar linkini taqdim qiladi
Keng va faol communityga ega ekanligi (hindlar uchun odatiy hol
)
Vaqti vaqti bilan boshqa saytlarda o’tkazilgan olimpiadalar tushuntirilgan videolar va materiallar joylanib turilishi
O’zining Algoritmlar va Ma’lumotlar tuzilmasiga oid kurslari mavjudligi (o’rganish bepul, sertifikat olish pullik)
Kamchiliklari:
- Oddiyroq interfeysi (ochig’i bu narsa kamchilik ham bo’la olmasa kerak)
Maqolamizning bu qismida asosan, ingliz tilida yuritiladigan manbalarga to’xtalib o’tdik. Keyingi qismda Rus va O’zbek tillaridagi manbalarni ham tahlil qilishga harakat qilamiz.
Maqolani foydali deb hisoblasangiz uni do’stlaringizga ham ulashing.
Muallif: Qudratxo’ja Musayev