CodeGym /Java Blog /Random /Pag-coding bilang isang Sport. Isang Maikling Gabay sa Co...
John Squirrels
Antas
San Francisco

Pag-coding bilang isang Sport. Isang Maikling Gabay sa Competitive Programming

Nai-publish sa grupo
Tayo, mga tao, ay may posibilidad na makipagkumpitensya sa bawat isa sa lahat ng ating ginagawa, at iyon marahil ang isa sa mga pangunahing dahilan para sa ating tagumpay bilang isang species. Ang programming ay walang pagbubukod. Dahil ang coding ay medyo kumplikado, multilayered at hinihingi na disiplina, hindi dapat nakakagulat na ang mga coder ay masigasig na makipagkumpitensya sa isa't isa upang malaman kung sino ang pinaka may kakayahan. Pag-coding bilang isang Sport.  Isang Maikling Gabay sa Competitive Programming - 1

Ano ang mapagkumpitensyang programming?

Ang mapagkumpitensyang programming ay isang uri ng mind sport na kinabibilangan ng mga kalahok sa paglutas ng mga problema sa coding gamit ang kanilang mga kasanayan sa programming at kaalaman sa mga disiplina ng CS tulad ng mga algorithm at istruktura ng data.. Ang mga kalahok sa naturang mga kumpetisyon, na tinatawag ding mga sport programmer, ay kailangang magsulat ng code sa ilalim ng iba't ibang mga paghihigpit at alinsunod sa ibinigay na mga pagtutukoy. Upang manalo, kailangang makabuo ang isang sport programmer ng code na magiging solusyon sa ibinigay na gawain. Ang nagwagi ay idineklara batay sa isang bilang ng mga pamantayan tulad ng oras na ginugol, kalidad ng huling code, oras ng pagpapatupad, laki ng programa, atbp. Maraming malalaking kumpanya ng tech, tulad ng Google, Facebook, Amazon, Microsoft at iba pa , sumusuporta sa mapagkumpitensyang programming at lumahok sa pag-oorganisa ng mga kumpetisyon, habang kumukuha din ng mga mahuhusay na programmer sa palakasan. Ang International Collegiate Programming Contest (ICPC), na nagmula noong 1970s, ay kilala bilang ang pinakalumang kompetisyon sa programming.

Mga benepisyo ng mapagkumpitensyang programming

Narito ang isang mabilis na listahan ng mga benepisyo na maaari mong makilahok sa mapagkumpitensyang programming bilang isang propesyonal na coder.
  • Mga pinahusay na kasanayan sa programming, gaya ng logic at algorithm, basic math, data structures, computational thinking, debugging, at iba pa.
  • Mahusay na karagdagan sa iyong propesyonal na portfolio at CV.
  • Mga pagkakataong mapansin ng mga pinuno ng merkado at makakuha ng ilang kaakit-akit na alok sa trabaho.
  • Paraan ng pagsasanay sa iba't ibang aspeto ng coding.
  • Mga social na koneksyon at networking sa komunidad ng mga developer.
  • Nakatutuwang at mapagkumpitensyang mga paligsahan.

Mga mapagkumpitensyang platform ng programming

Ito ang ilan sa mga pinakasikat na mapagkumpitensyang programming platform na magagamit sa Internet. Ang CodeChef ay isang mapagkumpitensyang komunidad ng programming na may daan-daang hamon at ilang bagong paligsahan bawat buwan. Ang Codewars ay isang coding online na komunidad na may mga hamon sa programming. Binibigyang-daan kang magsumite ng sarili mong mga hamon, na susuriin ng ibang mga user. Isa sa pinakasikat na mapagkumpitensyang mga platform ng programming out doon. Nagho-host ito ng mga regular na mapagkumpitensyang programming marathon bawat taon at nag-aalok ng dose-dosenang mga hamon. Ang HackerEarth ay may higit sa 10,000 mga hamon sa programming na may iba't ibang kahirapan na magagamit ng lahat. Ang Codeforces ay isang Russian competitive programming platform na may daan-daang hamon sa programming at madalas na nagho-host ng lahat ng uri ng mga paligsahan. Nag-aalok ng mga hamon sa programming sa iba't ibang domain ng mga computer science at nagho-host ng taunang Codesprints at iba pang mapagkumpitensyang paligsahan sa programming.

Competitive programming competitions

Mayroong dose-dosenang mga mapagkumpitensyang kumpetisyon sa programming na ginaganap bawat taon. Narito ang ilan sa mga pinakasikat at prestihiyoso.
  1. Paligsahan sa Programming ng ICFP
Isang internasyonal na kumpetisyon sa programming na ginaganap taun-taon sa paligid ng Hunyo o Hulyo mula noong 1998.
  1. Topcoder Marathon Matches
Sikat sa mga mapagkumpitensyang paligsahan sa komunidad ng programming na may malaking premyong salapi. Ang mga marathon ng Topcoder ay karaniwang tumatagal ng humigit-kumulang dalawang linggo, na nagbibigay ng pagkakataon sa mga kalahok na pahusayin ang kanilang mga solusyon. Ang bawat tugma ay may iba't ibang mekanismo ng pagmamarka na maglalabas ng kalidad ng bawat solusyon.
  1. Mahabang Hamon ng CodeChef
Ang CodeChef Long Challenge ay isang buwanang paligsahan na tumatagal ng hanggang 10 araw.
  1. Facebook Hacker Cup
Ang Hacker Cup ay taunang open programming competition ng Facebook. Bukas sa mga kalahok sa buong mundo, binubuo ito ng maraming round na may malaking premyo sa taya.
  1. Google Code Jam
Ang Google Code Jam ay isang internasyonal na kumpetisyon sa programming na hino-host at pinangangasiwaan ng Google. Ginaganap taun-taon mula noong 2003.
  1. American Computer Science League (ACSL)
Ang American Computer Science League (ACSL) ay nag-oorganisa ng computer science at mga paligsahan sa programming para sa mga estudyante sa middle at high school.
  1. International Collegiate Programming Contest (ICPC)
Ang International Collegiate Programming Contest ay isang algorithmic programming contest para sa mga mag-aaral sa kolehiyo. Isa sa mga pinakalumang mapagkumpitensyang kumpetisyon sa programming out doon.

Mga tip at rekomendasyon

Magtapos tayo sa ilang mga tip at rekomendasyon na maaaring makatulong kung handa kang pumasok sa mapagkumpitensyang programming.
  • Pumili ng isang programming language.
Ito ay medyo halata, ngunit nagkakahalaga pa rin ng pagbanggit. Dapat kang magsimula sa pagpili ng isang programming language na pinakakomportable mong gamitin ito sa mapagkumpitensyang programming. Ang C++, Java, Python ay ang pinakakaraniwan at pangkalahatang tinatanggap sa karamihan ng mapagkumpitensyang mga paligsahan sa programming.
  • Bumuo ng isang mahusay na kaalaman sa mga istruktura ng data at mga algorithm.
Ang pag-alam ng hindi bababa sa mga pangunahing kaalaman ng mga istruktura ng data at mga algorithm ay mahalagang mahalaga upang matagumpay na malutas ang mapagkumpitensyang mga hamon sa programming. Tingnan ang aming mga artikulo sa mga algorithm at istruktura ng data para sa mga link sa mga materyal sa pag-aaral sa mga paksang ito.
  • Hanapin ang iyong istilo ng coding at diskarte sa mga hamon sa programming.
Ang karamihan sa mga hamon na kailangang lutasin ng mga kalahok ng mapagkumpitensyang mga hamon sa programming ay mayroong higit sa isang solusyon. Ang layunin ay makabuo ng pinakamainam na solusyon. Kaya makatuwirang tumuon sa pagbuo ng iyong natatanging istilo ng coding at diskarte sa mga hamon sa programming na magbibigay-daan sa iyong i-code ang pinakamahusay na mga solusyon sa mga tuntunin ng oras at pagandahin ang kailangan ng iyong code para sa pagpapatupad.
  • Subukan ang iba't ibang mapagkumpitensyang mga website at paligsahan sa programming.
Kahit na sa lahat ng mapagkumpitensyang paligsahan at hamon sa coding na kakailanganin mong lutasin ang mga problema sa algorithm, ang istilo ng mga problemang ito at ang mga kinakailangan sa mga kalahok ay maaaring mag-iba sa ilang paraan, mula sa diskarte hanggang sa kahirapan at pagiging sensitibo sa oras. Kaya inirerekomenda na subukan ang hindi bababa sa ilang iba't ibang mga problema upang magkaroon ng isang mas mahusay na pakiramdam ng mapagkumpitensyang programming sa pangkalahatan.
  • Panatilihin ang paglutas ng mga problema sa programming nang regular.
Ang regular na pagsasanay ay mahalaga upang magtagumpay sa halos anumang bagay, ngunit sa mapagkumpitensyang programming, ito ay totoo lalo na. Ang pagbuo ng wastong pag-iisip at diskarte sa mga problema sa coding ay nangangailangan ng maraming regular na pagsasanay. Hindi mo kailangang limitahan ang iyong sarili sa mga dalubhasang platform na nakalista sa itaas, lalo na sa simula kapag ang mga problema sa mapagkumpitensyang programming ay maaaring maging napakahirap. Maaari mong gamitin ang CodeGym kasama ang mahigit 1200 Java coding na gawain nito para sanayin, pati na rin ang mga coding game o mga teknikal na platform ng paghahanda sa panayam .
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION