Kami berbicara dengan Andrey tentang pemrograman olahraga, persiapan untuk kompetisi, dan pekerjaannya sebagai pelatih. Di bawah saran yang berguna dan berbahaya bagi peserta kompetisi, pertanyaan motivasi, cerita dari kompetisi, sikap terhadap Ujian Negara Bersatu dan sekolah program olahraga di Irkutsk.
Final Kontes Pemrograman Tim Mahasiswa ICPC 2016 (sumber: ICPC Live)
Andrey Chumachenko - pendiri dan pemimpin komunitas pemrograman di Irkutsk, seorang mahasiswa master di ISU di bidang informatika fundamental, pemenang semifinal kejuaraan dunia pelajar dalam pemrograman ICPC - 2018, 2019 (di antara negara-negara CIS), pemenang Olimpiade Seluruh Siberia dinamai berdasarkan I.V. Pottosina - 2018, 2019 (di antara negara-negara CIS), pemenang perempat final kejuaraan dunia siswa dalam pemrograman (di antara siswa Siberia Timur) - 2018, 2019, pemenang Altai Universiade dalam pemrograman - 2019 (di antara siswa dan anak sekolah Rusia), finalis kejuaraan pemrograman BSUIR - 2018, 2019. Andrei
menjadi perhatian radar kami ketika dia melakukan kursus intensif gratis tentang masalah pemrograman olahraga di Titik Didih Irkutsk... Karena topiknya panas, kami memutuskan untuk mencari tahu semuanya secara detail.
Dengan apa itu dimakan
- Apa itu "pemrograman olahraga" dan tugas apa yang mereka selesaikan di sana sekarang?
- Bagi saya, ini pada dasarnya adalah kompetisi, persiapan untuk mereka dan, tentu saja, komunitas orang yang spesial.
Bagaimanapun, pemrograman untuk seseorang seperti biathlon untuk Shipulin: olahraga nyata, gairah, api.
Adapun tugas-tugasnya, semuanya sederhana: mereka mengambil yang dapat diselesaikan dalam lima jam, terutama algoritmik, matematika, dan tugas untuk implementasi.

2016, siswa UrFU baru saja memenangkan kejuaraan pemrograman internasional Challenge 24 di Budapest. Kemudian tujuh tim dari Rusia masuk sepuluh besar (sumber: codeforces.com)
- Apa bahasa yang paling populer dalam pemrograman olahraga saat ini? Teman saya di Poli Moskow di Informatika Terapan (janka2330) mempelajari pemrograman olahraga sebagai subjek dan lulus ujian. Bilang itu keren. Mereka berkompetisi dengan sesama siswa dan mengirimkan tugas ke spoj.pl (spoj.com), dan menulis di Ruby on Rails.
- Bahasanya sangat kompetitif. Paling sering saya ketemu C ++, Java dan Python juga populer. Kotlin "pemula" lainnya mendapatkan momentum belakangan ini. Ruby on Rails, atau hanya Ruby, jarang digunakan, tetapi di beberapa kompetisi bahasa tersebut termasuk dalam daftar bahasa yang didukung. Saya sendiri selalu menulis dalam C ++, begitu pula siswa saya. Menurut saya ini paling nyaman ketika Anda perlu kode sesuatu dengan cepat.
Bahasa yang paling umum digunakan dalam kompetisi
Bagaimana mempersiapkan diri untuk menang
- Beri tahu kami tentang persiapan kompetisi. Anda mungkin memiliki rahasia Anda.
- Selama beberapa tahun dihabiskan di bidang ini, saya menyadari bahwa setiap orang memiliki cara pelatihannya sendiri. Bagi saya, ini adalah latihan, memecahkan masalah sepanjang tahun. Sebuah analogi dapat ditarik dengan belajar mengemudi: semakin banyak jam saya berseluncur, semakin banyak pengalaman yang saya peroleh. Begitulah cara kami berkendara dengan siswa. Ada pelanggaran aturan, belokan berbahaya, ngebut, tetapi pada akhirnya kami mencapai tujuan yang disayangi.
Untuk mengembangkan masalah, kami menggunakan codeforces.com , ada putaran online yang diadakan secara teratur, di mana Anda perlu menyelesaikan masalah yang membawa poin ke peringkat peserta.
Kemudian kami melacak kemajuan, membandingkan hasil, dan menyiapkan pembekalan agar lebih berhasil di babak berikutnya.

Arsip masalah Olimpiade codeforces.com
Kami juga melihat acm.timus.ru - arsip masalah pemrograman terbesar di Rusia dengan sistem pemeriksaan otomatis. Banyak hal telah muncul di YouTube sekarang, tetapi kami tidak menggunakannya secara berkelanjutan. Jika tertarik, saya dapat menyarankan programmer Polandia keren dengan nama panggilan Errichto dari sana, dia memiliki salurannya sendiri , di sana Anda dapat menggali banyak hal yang berguna.

Saluran kedua dari programmer Polandia dengan nama panggilan Errichto di YouTube
Nah, dan buku, tentu saja, seperti tanpa mereka: "The Art of Programming" oleh Donald Knuth, misalnya. Atau βMasalah pemrograman Olimpiade. Panduan Persiapan Kompetisi "oleh Steven Skiena dan Miguel Revilla.
Peretasan hidup untuk peserta
- Oke, apa yang bisa mencegah Anda memenangkan Olimpiade pemrograman olahraga?
- Mungkin musuh semua siswa adalah kemalasan (bercanda). Tapi serius, Anda perlu fokus pada tugas dan mematikan sebentar bagian otak yang bertanggung jawab atas segala macam urusan sehari-hari.
Ini juga sangat berbahaya untuk berlatih malam sebelum kompetisi, terutama jika Anda belum mempersiapkan diri selama setahun.
Sebaliknya, saya menyarankan untuk mengambil jeda selama seminggu dan tidak memutuskan apa pun. Jika Anda telah bekerja dengan baik untuk waktu yang lama, maka otak selama istirahat akan menata segala sesuatunya dalam arsip yang terkumpul.
Dalam kompetisi itu sendiri, adalah kesalahan besar untuk tidak mendengarkan perintah Anda dan berlari di depan lokomotif. Ini mengancam dengan denda dan masalah serupa. Nah, programmer perfeksionis berisiko mengotak-atik satu tugas dalam mengejar solusi sempurna dan kode yang bersih. Ini tidak berarti bahwa Anda harus melakukan semuanya, tetapi yang utama adalah jangan berlebihan.
- Apa yang perlu kamu lakukan untuk menang?
- Menurut perasaan saya, untuk sukses besar Anda perlu sedikit marah, tetapi di awal karier Anda - ambil sikap tenang, plus tetap berpegang pada rencana.
Kapan menjadi programmer
- Beri tahu kami tentang jalur Anda dalam pemrograman olahraga.
- Saya pikir saya mulai membenamkan diri dalam topik ini agak terlambat: hanya di sekolah menengah saya dengan serius mulai belajar C ++ dan berpartisipasi dalam Olimpiade yang diadakan oleh universitas Irkutsk. Kemudian, setelah masuk ISU, saya bertemu dengan seorang guru yang mendukung gerakan pemrograman olahraga, dan mulai belajar dengannya. Jadi, sedikit demi sedikit, program olahraga bagi saya tidak lagi hanya sekedar hobi, saya menganggapnya serius, mulai aktif mengikuti kompetisi dan tumbuh menjadi pelatih.

Andrey memeriksa salah satu soal Olimpiade di kamp pelatihan Agustus di Irkutsk
- menurut Anda apakah sudah terlambat untuk mulai masuk sekolah menengah? Dapatkah pemrograman benar-benar dibandingkan dengan olahraga profesional, di mana anak-anak diutus hampir sejak usia tiga tahun?
- Tentu saja, tidak cukup untuk menempatkan seorang anak dalam waktu tiga tahun untuk mempelajari algoritma, meskipun jika dia tiba-tiba menganggapnya menarik, maka selamat datang. Saya bahkan tahu beberapa tutorial pemrograman untuk anak-anak prasekolah.
Tetapi, selain siswa sekolah menengah, siswa, dan programmer yang sudah berprestasi, di kompetisi saya bertemu orang-orang dari kelas lima atau enam, yang tidak kalah pengetahuannya dengan siswa, dan bahkan memahami semuanya dengan cepat.
Karena itu, lebih cepat lebih baik.
Ujian adalah topik yang menyakitkan
- Sejak kita mulai berbicara tentang anak sekolah, bagaimana perasaan Anda tentang Ujian Negara Bersatu dan standar serupa yang mengukur pengetahuan? Bagaimanapun, pemrograman adalah spesialisasi kreatif, meskipun teknis murni.
- Saya yakin dengan fakta bahwa mata pelajaran di sekolah, dan terutama di universitas, adalah opsional, dan seseorang dapat memilih dari berbagai macam apa yang dia suka. Jauh lebih menyenangkan untuk belajar dengan cara ini, dan hasilnya jelas - Anda tidak dapat membandingkan ketika Anda melakukan semuanya di bawah tongkat.
Adapun Ujian Negara Bersatu, ini adalah topik yang menyakitkan. Di sini saya bisa menceritakan kisah artikel lain.
Ujian Negara Bersatu sebenarnya berisi beberapa tugas yang menarik dan berguna dalam hal ujian matematika atau ilmu komputer. Ya, memang tidak sempurna, ada kekurangan, eksperimen, tidak ada pendekatan individual, tetapi sebaliknya pengetahuan massal lulusan tidak bisa dihargai. Ujian Negara Terpadu memiliki kekurangan, tetapi belum ada yang lebih baik yang ditemukan.
Penerimaan ke universitas juga sebagian besar dirancang oleh para guru, tetapi ada objektivitas dan standar yang kurang, semuanya dikendalikan oleh sekelompok kecil orang. Dengan pendekatan ini, saya bahkan tidak ingin berbicara tentang korupsi, suap, dan penumpasan orang yang tidak diinginkan.
Sekarang Anda bisa masuk universitas berdasarkan hasil olimpiade. Dan itu keren untuk siswa terbaik, karena 10%. Bagaimana dengan sisanya? Hanya ujiannya.
Ya, ada Olimpiade tingkat ketiga sederhana dari daftar, tetapi seringkali bahkan lebih canggung atau berisi tugas dari ujian.
Hal lainnya adalah sikap dan presentasi ujian. Semua histeria yang ditangkap oleh orang tua, masyarakat, guru, di atas segalanya. Ini terlalu banyak. Guru yang sama seringkali sama sekali tidak kompeten dalam mempersiapkan anak sekolah untuk menghadapi ujian. Ini bukan tentang kesulitan ujian - tidak ada yang supernatural tentang itu. Intinya adalah tingkat guru yang lemah, gaji mereka, sikap negara terhadap mereka. Anak-anak sekolah juga menderita sepanjang rantai tersebut.
Tentang standar secara umum - tentu saja, pendidikan harus mengarah pada fleksibilitas. Seperti yang saya katakan, akan baik bagi anak sekolah untuk memilih sendiri mata pelajaran yang diminati. PENGGUNAANnya tidak buruk dalam hal ini: Anda dapat menggunakannya di sejumlah mata pelajaran. Tetapi idealnya seseorang harus belajar melihat siswa sebagai individu.
- Apakah Anda tidak melihat stereotip serupa dalam menilai pengetahuan di olimpiade pemrograman? Atau semuanya berbeda di sana?
- Inti dari masalah Olimpiade terletak pada ketidak-standarannya yang sangat besar. Ya, dari waktu ke waktu Anda menemukan tugas "tombol akordeon". Ada tugas untuk standar, teknik dasar dan algoritma. Tetapi hal terpenting dalam Olimpiade adalah untuk dapat menerapkan teknik-teknik ini, menggabungkannya, langsung menggunakannya, dan melihat ide matematika dari sebuah solusi. Ini jelas merupakan kemampuan unik yang melampaui semua templat.
Mengapa anak sekolah belajar pemrograman olahraga
- Apa motivasi siswa dan anak sekolah untuk bergabung dengan komunitas pemrograman olahraga dan berpartisipasi dalam olimpiade? Apa yang dapat diajarkan pemrograman olahraga kepada mereka, keterampilan apa yang bisa dikembangkannya?
- Motivasinya sangat berbeda: seseorang datang untuk belajar bahasa pemrograman dan mendapatkan lebih banyak latihan dan pengetahuan algoritmik, seseorang ingin mencoba dirinya sendiri dan tangannya (berpartisipasi dalam Olimpiade adalah ujian lain). Beberapa mengumpulkan portofolio untuk masuk ke universitas atau untuk pekerjaan di masa depan, mereka ingin diperhatikan oleh perusahaan IT selama kompetisi. Ada yang datang demi komunikasi, mendukung dan mengembangkan masyarakat.
. , , .
Dan, tentu saja, kerja tim, di sini semuanya seperti orang dewasa: untuk membawa proyek Anda ke implementasi, Anda harus dapat bekerja secara efektif dalam tim. Nah, pengembangan dalam pemrograman (pengetahuan tentang bahasa, algoritme) belum dibatalkan.
- Apa yang Anda lakukan dalam komunitas pemrograman olahraga Anda?
- Hari ini saya melatih siswa, dan kami pergi ke Olimpiade dan kompetisi dalam pemrograman olahraga. Di antara siswa saya adalah pemenang hadiah perempat final kejuaraan pemrograman dunia siswa (di antara siswa Siberia Timur) 2019, pemenang hadiah situs Siberia semifinal kejuaraan pemrograman dunia siswa ICPC 2019, pemenang hadiah Altai Universiade dalam pemrograman 2019, finalis Olimpiade Pottosin 2018 dan 2019.
Ada rencana untuk membuat sekolah pemrograman olahraga lengkap yang memungkinkan untuk belajar dengan anak-anak dari kelas lima. Mudah-mudahan kami akan meluncurkannya pada bulan Oktober.
Saya juga mencoba membangun koneksi dengan perusahaan IT untuk mendapatkan kesempatan kerja bagi siswa saya.
Ditambah lagi, kami mengadakan kompetisi pemrograman, dan belum lama ini kami mengadakan intensif, yang berlangsung selama 11 hari. Hampir setiap hari ada kompetisi lima jam, diikuti dengan analisis masalah - yang disebut pengerjaan kesalahan, dan ceramah (sedikit teori tentang algoritma). Saya dan teman saya dari MEPhI bertindak sebagai trainer. Peserta intensif adalah anak-anak sekolah dari pusat pelatihan Olimpiade ENTER dari Ulan-Ude (Republik Buryatia) dan siswa dari Irkutsk, yang secara teratur mengikuti olimpiade pemrograman olahraga.

β . , , . : , , . β β , , . : ? β , , β¦
- Saya pikir itu bagus. Ya, Anda perlu bekerja dengan cepat, tetapi pada saat yang sama jelas, karena jika tidak, sistem tidak akan menerima tugas tersebut. Ada juga hukuman untuk jawaban yang salah yang tidak ingin diterima oleh siapa pun. Anda harus memperhatikan detailnya, sehingga tingkat pemahaman masalah dipompa dengan sempurna di antara Olimpiade.
Kebersihan kode terkadang terganggu, karena siklus pemeliharaan hanya lima jam, tetapi semakin banyak pengalaman yang dimiliki peserta, semakin dekat mereka mengikuti kode.
- Bagikan cerita menarik dari kompetisi.
- Semua cerita lucu kami biasanya terkait dengan tugas. Misalnya, saya pernah bergumul dengan solusi untuk waktu yang lama, karena saya tidak memperhatikan bahwa frase tidak ada solusi yang perlu ditampilkan dengan huruf yang disusun ulang di satu tempat - tidak ada soluiton.
Atau, di perempat final Kejuaraan Dunia tahun lalu, kami mengirimkan masalah ke sistem untuk diverifikasi dua detik sebelum akhir kompetisi, dan pada akhirnya masalah berhasil diselesaikan. Hal seperti itu selalu terjadi pada emosi yang hanya menambah kegembiraan.
Satu menit beriklan tentang akselerator proyek AI kami
Kami telah mulai menerima aplikasi untuk Archipelago 20.35 - pendidikan intensif bagi mereka yang membuat proyek menggunakan metode pembelajaran mesin dan analisis data. Proyek tersebut dapat bersifat komersial, sosial, ilmiah - atau menulis versi Anda. Di 20.35 Archipelago, akan ada peluang besar untuk meningkatkan diri Anda dan proyek Anda, membentuk tim, mendapatkan hibah, mencari sponsor, karena dana pengembangan dan perusahaan yang menerapkan AI telah menyatakan minatnya pada pengembangan.
Seleksi dan program pelatihan pra-akselerasi gratis. Dan jika Anda menulis tentang proyek Anda di HabrΓ©, Anda mendapat nilai tambah di peringkat kualifikasi! Kami akan memberi tahu Anda tentang proyek paling menarik di blog kami.
