Advent of Code
Farrukh Atabekov / November 20, 2022
4 min read • ––– views
Advent Of Code
Advent Of Code har yili 1-dekabrdan 25-dekabrgacha davom etadigan sarguzashtlarga boy coding masalalari. Bu masalalarni hohlagan paytda yecha olishingiza qaramasdan, masalalar paydo bo’ladigan paytning o’zida yechish va butun dunyo bo’ylab masalalarni turli hil yo’llar bilan yechib borayotgan boshqa dasturchilarni kuzatib borish o’ziga yarasha zavqli. Bu coding masalalarni hohlagan tilda Python, Go, Dart va hokazolarda yechishingiz mumkin.
Yangi dasturlash tilini o’zlashtirmoqchi bo’layotganlar uchun o’sha tilini yaxshilab mashq qilib ko’rish uchun yaxshi imkoniyat.
Bu post quyidagilar haqida bo’ladi:
- Sarguzashtlarga boy jumboqlar nimaga kerak o'zi ?
- Advent Of Code qachon boshlangan ?
- Advent Of Code masalalarini Python da yechish.
Sarguzashtlarga boy jumboqlar nimaga kerak o'zi ?
Boshqotirma masalalarni (programming puzzles) yechayotgan dasturchi vaqtini zoya ketayotganga o'xshashi mumkin, har xolda hech qanday project yaratmayapdi yoki qandaydir hard skill ni o’rganmayapti. Lekin bunday masalar yechishning quyidagi afzalliklari bor:
- Bunday boshqotirmalar odatda dasturchining har kunlik ishlaridan farqli bo’laroq aniq yondashuv talab qiladigan hamda kuchliroq mahorat talab qiladi.
- Ko'pincha bir nechta shunga o'xshash jumboqlar bilan o'zingizni sinab ko'rishingiz mumkin. Bu sizga mushak xotirasi kabi protsessual xotirani yaratish va muayyan turdagi kodlarni tuzish bo‘yicha tajriba orttirish imkonini beradi.
- Ba'zi jumboq yechimlari uchun, agar algoritm samarasiz bo'lsa, hatto eng katta superkompyuterlar ham juda sekin va foydasiz bo'lishi mumkin. Siz yechimingizning ishlashini analiz qilishingiz va to'g'ri usul qanchalik tez va ko'proq optimallashtirilgan yechimga olib kelishini ko’rishingiz mumkin. Oddiy masalalar bunga ko’p e’tibor qaratmaydi va aynan shunday qiyinchiliklar dasturchiga to’gri data structure, efficient algorithmlar nega kerakligini ko’rsatishi mumkin
- Ko'pgina dasturlash tillari dasturlash boshqotirmalarini yechish uchun juda mos keladi. Bu sizga turli vazifalar uchun turli dasturlash tillarini solishtirish uchun ajoyib imkoniyat beradi. Jumboqlar yangi dasturlash tilini bilish yoki sevimli tilingizning eng yangi funksiyalarini sinab ko‘rishning ajoyib usuli hamdir.
Buning ustiga, dasturiy boshqotirma bilan o'zingizni sinab ko'rish ko'pincha juda qiziqarli. Bularning barchasini qo'shsangiz, jumboqlarga biroz vaqt ajratish yakunda sizning dasturchilik mahoratingiz yaxshilanishiga yaxshi xissa qo'shishi mumkin.
Advent of Code qachon boshlangan.
Advent of Code 2015 yilda Eric Wastl tomonidan 2015 yilda side project sifatida boshlangan. Websitening dasturchilar orasida keng tarqalib ketishi buni har yili o’tkaziladigan a’nanaga aylantirgan. Quyida Eric Wastl tomonidan Advent Of Code yaratilishi haqidagi nutqini ko’rishingiz mumkin.
Bu musoboqadagi masalalar yildan yilgan ommalashib kelgan va hozirga kunga qadar dunyo bo’ylab 235 000 dan ortiq dasturchilar tomonidan ko’rilgan. Bu dasturchilar orasida universitet talabalari (dars tarkibi sifatida), top Facebook, Google kabi kompaniyalarda ishlovchi dasturchilar ham mavjud.
Bu masalalar har yilning 1-dekabridan 25-dekabrigacha AQShning Sharqiy vaqti bilan yarim tunda (US Eastern Time) da adventofcode.com websitega ko’rinadi.
Bu masalalarning ba’zi hususiyatlari:
- Har bir jumboq ikki qismdan iborat, lekin ikkinchi qism birinchi qismni tugatmaguningizcha oshkor etilmaydi.
- Siz tugatgan har bir qism uchun bitta oltin yulduz (⭐) olasiz. Agar siz bir yil davomida barcha jumboqlarni hal qilsangiz, kuniga ikki yulduz va sarguzashtning yakunida ellik yulduzlik bo’lishingiz mumkin.
Esingizda bo'lsin, siz hech qanday kod topshirmaysiz - faqat jumboq javoblari. Bu esa Advent of Code jumboqlarini har qanday dasturlash tilida yechishingiz mumkin degani. Ko'pchilik yangi dasturlash tilini mashq qilish va o'rganish uchun Advent of Code dan foydalanadi. Bundan ham hayratlanarlisi ba'zi masalalar nafaqat coding orqali balki boshqa Excel, Unity, Real Engine, PhotoShop ka'bi dasturlar orqali ham ishlanishi mumkin.
Mana bu yerda esa 2018 yildagi Advent of Code ning 18 kunida tushgan cycle detection masalasiga ishlangan javob qay tarzda bo'lganini ko'rishingiz mumkin. Resource.
Advent of Code yechishga ba’zi yondashuvlar
Ushbu strategiyalarning ba'zilari juda umumiy va har qanday boshqotirma uchun qo'llanilishi mumkin. Agar jumboqda qolib ketganingizni aniqlasangiz, bu yondashuvlar orqali muammodan xalos bo'lishga harakat qilishingiz mumkin:
- Tavsifni qayta o'qing. Advent of Code jumboqlari odatda juda yaxshi aniqlangan, ammo ularning ba'zilari juda katta ma'lumotga ega bo'lishi mumkin. Jumboqning muhim qismini o'tkazib yubormaganingizga ishonch hosil qiling.
- Misol ma'lumotlaridan faol va ko’p foydalaning. Ushbu natijalarga qanday erishilganligini tushunganingizga ishonch hosil qiling va kodingiz ushbu misollarni takrorlay olishini tekshiring.Ba'zi jumboqlar biroz aralashib ketishi mumkin. Muammoni kichikroq bosqichlarga bo'ling va har bir qadamni individual ravishda amalga oshiring va sinab ko'ring.
Men qatnashayotgan private leaderborad ga bu kod 1544409-fc4c017c orqali qo’shilishingiz mumkin.
Musoboqada qatnashing va dasturlik mahoratingizni sarguzashtlarga boy masalalar bilan oshiring 🚀.
You can also subscribe to my telegram channel where I share new articles, tech-related posts and more.
- subscribers