CodeGym /Blog Java /rawak /Pengekodan sebagai Sukan. Panduan Ringkas untuk Pengaturc...
John Squirrels
Tahap
San Francisco

Pengekodan sebagai Sukan. Panduan Ringkas untuk Pengaturcaraan Kompetitif

Diterbitkan dalam kumpulan
Kita, manusia, cenderung bersaing antara satu sama lain dalam setiap perkara yang kita lakukan, dan itu mungkin salah satu sebab utama kejayaan kita sebagai spesies. Pengaturcaraan tidak terkecuali. Memandangkan pengekodan adalah satu disiplin yang kompleks, berbilang lapisan dan menuntut, maka tidak hairanlah bahawa pengekod berminat untuk bersaing antara satu sama lain untuk mengetahui siapa yang paling berkebolehan. Pengekodan sebagai Sukan.  Panduan Ringkas untuk Pengaturcaraan Kompetitif - 1

Apakah pengaturcaraan kompetitif?

Pengaturcaraan kompetitif ialah sejenis sukan minda yang melibatkan peserta dalam menyelesaikan masalah pengekodan menggunakan kemahiran mereka dalam pengaturcaraan dan pengetahuan tentang disiplin CS seperti algoritma dan struktur data. Para peserta pertandingan tersebut, juga dipanggil pengaturcara sukan, perlu menulis kod di bawah pelbagai sekatan dan selaras dengan spesifikasi yang disediakan. Untuk menang, pengaturcara sukan perlu menghasilkan kod yang akan menjadi penyelesaian kepada tugas yang diberikan. Pemenang diisytiharkan berdasarkan beberapa kriteria seperti masa yang dihabiskan, kualiti kod akhir, masa pelaksanaan, saiz program, dll. Banyak syarikat teknologi besar, seperti Google, Facebook, Amazon, Microsoft dan lain-lain , menyokong pengaturcaraan kompetitif dan mengambil bahagian dalam penganjuran pertandingan, di samping mengambil pengaturcara sukan berbakat. Peraduan Pengaturcaraan Kolej Antarabangsa (ICPC), yang bermula pada tahun 1970-an, dikenali sebagai pertandingan pengaturcaraan kompetitif tertua.

Faedah pengaturcaraan kompetitif

Berikut ialah senarai pantas faedah yang anda boleh perolehi menyertai pengaturcaraan kompetitif sebagai pengekod profesional.
  • Kemahiran pengaturcaraan yang dipertingkatkan, seperti logik dan algoritma, matematik asas, struktur data, pemikiran pengiraan, penyahpepijatan dan sebagainya.
  • Tambahan hebat kepada portfolio profesional dan CV anda.
  • Peluang untuk mendapat perhatian oleh pemimpin pasaran dan mendapatkan beberapa tawaran kerja yang menarik.
  • Cara untuk mempraktikkan aspek pengekodan yang berbeza.
  • Hubungan sosial dan rangkaian dalam komuniti pembangun.
  • Pertandingan yang menarik dan kompetitif.

Platform pengaturcaraan yang kompetitif

Ini adalah beberapa platform pengaturcaraan kompetitif paling popular yang terdapat di Internet. CodeChef ialah komuniti pengaturcaraan yang kompetitif dengan beratus-ratus cabaran dan beberapa peraduan baharu setiap bulan. Codewars ialah komuniti dalam talian pengekodan dengan cabaran pengaturcaraan. Membolehkan anda menyerahkan cabaran anda sendiri, yang akan dinilai oleh pengguna lain. Salah satu platform pengaturcaraan kompetitif yang paling popular di luar sana. Ia menganjurkan maraton pengaturcaraan kompetitif biasa setiap tahun dan menawarkan berpuluh-puluh cabaran. HackerEarth mempunyai lebih 10,000 cabaran pengaturcaraan dengan pelbagai kesukaran yang tersedia untuk semua orang. Codeforces ialah platform pengaturcaraan kompetitif Rusia yang mempunyai ratusan cabaran pengaturcaraan dan kerap menganjurkan semua jenis peraduan. Menawarkan cabaran pengaturcaraan dalam domain sains komputer yang berbeza dan menganjurkan Codprints tahunan dan pertandingan pengaturcaraan kompetitif yang lain.

Pertandingan pengaturcaraan yang kompetitif

Terdapat berpuluh-puluh pertandingan pengaturcaraan yang kompetitif diadakan setiap tahun. Berikut adalah beberapa yang paling popular dan berprestij.
  1. Peraduan Pengaturcaraan ICFP
Pertandingan pengaturcaraan antarabangsa yang diadakan setiap tahun sekitar Jun atau Julai sejak 1998.
  1. Perlawanan Marathon Topcoder
Popular di kalangan pertandingan komuniti pengaturcaraan yang kompetitif dengan hadiah wang tunai yang besar. Marathon Topcoder biasanya berlangsung kira-kira dua minggu, memberi peluang kepada peserta untuk memperbaiki penyelesaian mereka. Setiap perlawanan mempunyai mekanisme pemarkahan berbeza yang akan menghasilkan kualiti setiap penyelesaian.
  1. Cabaran Panjang CodeChef
CodeChef Long Challenge ialah peraduan bulanan yang berlangsung sehingga 10 hari.
  1. Piala Penggodam Facebook
Piala Hacker ialah pertandingan pengaturcaraan terbuka tahunan Facebook. Terbuka kepada peserta di seluruh dunia, ia terdiri daripada berbilang pusingan dengan hadiah yang banyak dipertaruhkan.
  1. Google Code Jam
Google Code Jam ialah pertandingan pengaturcaraan antarabangsa yang dihoskan dan ditadbir oleh Google. Diadakan setiap tahun sejak 2003.
  1. Liga Sains Komputer Amerika (ACSL)
Liga Sains Komputer Amerika (ACSL) menganjurkan pertandingan sains komputer dan pengaturcaraan untuk pelajar sekolah menengah dan menengah.
  1. Peraduan Pengaturcaraan Kolej Antarabangsa (ICPC)
Peraduan Pengaturcaraan Kolej Antarabangsa ialah pertandingan pengaturcaraan algoritma untuk pelajar kolej. Salah satu pertandingan pengaturcaraan kompetitif tertua di luar sana.

Petua dan cadangan

Mari kita akhiri dengan beberapa petua dan cadangan yang mungkin berguna jika anda bersedia untuk menyertai pengaturcaraan kompetitif.
  • Pilih bahasa pengaturcaraan.
Ini agak jelas, tetapi masih patut disebut. Anda harus bermula dengan memilih bahasa pengaturcaraan yang anda paling selesa untuk menggunakannya dalam pengaturcaraan kompetitif. C++, Java, Python adalah yang paling biasa dan diterima secara universal merentas majoriti peraduan pengaturcaraan yang kompetitif.
  • Membangunkan pengetahuan yang baik tentang struktur data dan algoritma.
Mengetahui sekurang-kurangnya asas struktur data dan algoritma pada asasnya penting untuk berjaya menyelesaikan cabaran pengaturcaraan kompetitif. Semak artikel kami tentang algoritma dan struktur data untuk pautan kepada bahan pembelajaran mengenai topik ini.
  • Cari gaya pengekodan dan pendekatan anda terhadap cabaran pengaturcaraan.
Majoriti cabaran yang perlu diselesaikan oleh peserta cabaran pengaturcaraan kompetitif mempunyai lebih daripada satu penyelesaian. Matlamatnya adalah untuk menghasilkan penyelesaian yang optimum. Oleh itu, masuk akal untuk memberi tumpuan kepada membangunkan gaya pengekodan unik anda dan pendekatan kepada cabaran pengaturcaraan ini yang akan membolehkan anda mengekodkan penyelesaian terbaik dari segi masa dan memanjakan keperluan kod anda untuk pelaksanaan.
  • Cuba laman web dan pertandingan pengaturcaraan kompetitif yang berbeza.
Walaupun dalam semua pertandingan pengekodan dan cabaran yang kompetitif, anda perlu menyelesaikan masalah algoritma, gaya masalah ini dan keperluan kepada peserta mungkin berbeza dalam beberapa cara, daripada pendekatan kepada kesukaran dan kepekaan masa. Oleh itu, adalah disyorkan untuk mencuba sekurang-kurangnya beberapa masalah yang berbeza untuk mempunyai perasaan pengaturcaraan kompetitif yang lebih baik secara umum.
  • Teruskan menyelesaikan masalah pengaturcaraan dengan kerap.
Latihan tetap adalah penting untuk berjaya dalam hampir semua perkara, tetapi dalam pengaturcaraan kompetitif, ia adalah benar terutamanya. Pembangunan pemikiran dan pendekatan yang betul untuk masalah pengekodan memerlukan banyak latihan tetap. Anda tidak perlu mengehadkan diri anda kepada platform khusus yang disenaraikan di atas, terutamanya pada permulaan apabila masalah pengaturcaraan kompetitif mungkin terasa terlalu mencabar. Anda boleh menggunakan CodeGym dengan lebih 1200 tugas pengekodan Java untuk berlatih, serta permainan pengekodan atau platform persediaan temu duga teknikal .
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION