Sunday, March 28, 2021

Competitive/Sport Programming гэж юу вэ?

 Сүүлийн үед нилээн тархаж хүчээ авч байга Competitive/Sport Programming (CP)-ийн талаар жоохон өөрийн бодолоо бичье. CP гэдэг нь програмчлалаар бодлого бодон уралдаж, хэр зөв бөгөөд хурдан прорам бичиж байгаа нь ялагч болдог уралдаан юм. 10 жилийн хүүхдүүдийн дунд мэдээлэл зүйн олимпиад гэж болдог, бас их сургуулын оюутнууд дунд ч бас ICPC гэж тэмцээн байдагтай бараг адилхан бөгөөд онлайн хэлбэрээр хэн ч оролцох эрхтэй гэдгээрээ онцлогтой юм.


CP-ийн талаар ямар сайт байдаг болон ямар төрлүүд байга талаар эндээс харчихвал илүү ойлгомжтой болох байх.

Competitive programming - Wikipedia

За тэгээд CP гэдэг үгийг мэддэг болсон юм чинь, энэ ер нь ямар хэрэгтэй юм бэ гэдэг талаар өөрийнхөө дүгнэж явдаг хэдэн зүйлээ хуваалцмаар санагдав. Миний хувьд CP-ээр 6 жил орчим оролдож байга бөгөөд жирийн ажилийн програмист -аар 2 жил орчиж ажиллаж үзсэн туршлага байга болхоор аль болох харьцуулж үзэхийг хичээсэн болно.


  •  Essential Training - Суурь бэлтгэл

Жишээ нь спортын төрлүүдийг авч үзэхэд нэгэн нийтлэг юм байдаг нь хүчний бэлтгэл билээ. Спорт дотор маш олон төрөл байдаг, усан спорт, атлэтик, хөлбөмбөг гээл тоолж баршгүй олон байга, гэвч бүгдээрээ ямар нэг хэмжээгээр хурд хүч шаарддаг. Тэр хамгийн чухал хэрэгтэй суурь бэлтгэл нь хүчний бэлтгэл гэж ойлгоход болно, тэрнээс гадна тус тусын спортынхоо тусгай бэлтгэл гэж орж ирэх байх. 

Энэн шиг програмчлал нь бас спорт шиг маш олон төрөлтэй болон хэлтэй бөгөөд, ихэнх програмист-ууд нь аль нэг салбарт нь голлон ажиллаж байдаг. Өөрөөр хэлбэл програмист нь аль нэг төрөлд нь төрөлжсөн тамирчин шиг байдаг. Гэвч эдгээр олон төрлийн дотор үндсэн хэдэн элемэнтүүдийг эхэлж сурсан байхад улам дээшээ ахиж дэвшихэд төхөм болно. Тэдгээрийн дотор нь алгоритм-ийн мэдлэг, өгөгдлийн сангын мэдлэг, үндсэн програм хэлний мэдлэг, debugging гэх мэт орно. Эдгээр нь аль ч програмлалын салбарт суурь мэдлэг болох бөгөөд, бүгдийг нь нэг дор эрчимтэй бэлдэж чадах салбар нь CP юм байна гэж боддог. Бодлого бодох явцад маш хурдан зөв програм бичих хэрэгтэй болдог тул, хэрэглэж байга хэлээ маш сайн сурдаг. Дээрээс нь нилээн өргөн хүрээний олон төрөлтөд алгоритм болон мэдээллийн сан судалж хэрэглэж сурдаг. Тэгээд бичсэн програмаа зөв ажилладаг болтол нь тэстлэж дебаг хийх хэрэгтэй болно. Тиймээс ажилд орхоосоо өмнө 10 жил болон оюутан байхдаа CP-ээр сайн хичээллэж байгаад ирвэл, маш сайн суурьтай болоод орж ирэх бөгөөд дээрээс нь домэйн мэдлэг гэж юмаа сураад л явчихад богино хугацаанд маш сайн инженер болох боломжтой.


  • Art - Урлаг

За тэгээд зөвхөн CP хөөгөөд байвал сайн програмист болох уу гэвэл бас учир дутагдалтай. CP нь жирийн программинг тай харьцуулахад илүү урлаг болон үзүүлбэр талруугаа хөгжсөн юм шиг харагддаг. Нэг төстэй жишээ татахад, Хөлбөмбөг болон Freestyle -ийн ялгаатай адилхан. Freestyle нь илүү үзүүлбэр талдаа хөгжсөн тул, маш олон ганган чамин техник, уран мэх, трик-тэй, гэхдээ жинхэнэ хөлбөмбөг дээр хэрэг болох нь байх ч ихэнх нь худлаа болвуу.  

Адилханаар, CP дээр маш гоё уран ганган бодолт техник зөндөө гарж ирдэг боловч, бодит амьдрал дээрх програм бичих үед хэрэглэх боломж гарж ирэх нь ховор байдаг, хааяа нэг ижил төстэй байдал дээр ганц нэг хялбар тэхник хэрэглэх нь бий. Тиймээс аль алинийх нь ялгаа болон онцлогыг нь ойлгож байж цаг заваа юунд нь зарцуулах талаар төлөвлөх хэрэгтэй санагдаж байна. Програмист ажил хийж эхлэхээр CP нь илүү чөлөөр цагаараа оролддог хобби болох нь их байдаг. Одоо ч гэсэн контэст-д орохоор зөндөө програмист залуучууд оролцож байга харагддаг.

Нэг мартаж болохгүй чухал зүйлийг сүүлд нь хэлэхэд, програмист -ийн ажилд орох үед авдаг кодинг ярилцлага дээр асуудаг бодлогууд бол ер нь CP ээс орж ирсэн юмуу ижил төстэй санаагаар бодох нь их, тиймээс аль хэдийн програмист -ийн ажил хийдэг болхоор CP хэрэгггүй гэж бас хэлж болохгүй, яваандаа ажилаа солих юмуу career up хийнэ гэж төлөвлөж байга бол CP-тэй сайхан найзалж байхад ер нь алзахгүй шүү. Миний хувьд ч гэсэн CP оролдох болсоноор кодинг ярилцлага-д бэлдэх явц улам сайржирсан бөгөөд, хэд хэдэн ярилцлага давж яваандаа програмист-ийн ажилд орж чадсан билээ.

Good luck! High rating!





No comments:

Post a Comment