Ini bukan hackathon pertama yang saya menangkan, bukan yang pertama saya tulis , dan ini jauh dari pos pertama di hub yang didedikasikan untuk Digital Breakthrough. Tetapi saya tidak bisa menulis. Saya menganggap pengalaman saya cukup unik untuk dibagikan. Saya mungkin satu-satunya orang di hackathon ini yang memenangkan panggung regional dan final sebagai bagian dari tim yang berbeda. Ingin tahu bagaimana ini terjadi? Selamat datang di kucing.
Tahap regional (Moskow, 27 - 28 Juli, 2019).
Saya pertama kali melihat iklan Digital Breakout di suatu tempat di bulan Maret - April tahun ini. Secara alami, saya tidak bisa melewati hackathon sebesar itu dan mendaftar di situs. Saya juga berkenalan dengan kondisi dan program kompetisi. Ternyata untuk sampai ke hackathon, perlu menjalani pengujian online, yang dimulai pada 16 Mei. Dan, mungkin, saya akan dengan aman melupakannya, karena surat dengan pengingat tentang awal pengujian tidak datang. Dan, saya harus mengatakan, di masa depan SEMUA SURAT yang datang kepada saya dari CPU terus masuk ke folder spam. Meskipun saya menekan tombol "tidak diinginkan" setiap waktu. Saya tidak tahu bagaimana mereka berhasil mencapai hasil seperti itu, itu tidak berhasil bagi saya dengan mengirim surat ke MailGun. Dan para lelaki sepertinya tidak tahu tentang keberadaan layanan seperti isnotspam.com pada prinsipnya. Tapi kami tersesat.
Saya diingatkan akan awal pengujian di salah satu pertemuan klub startup , di mana kami juga membahas pembentukan tim. Setelah membuka daftar tes, saya pertama kali duduk untuk tes Javascript. Secara umum, tugasnya kurang lebih memadai (seperti apa hasilnya jika Anda menambahkan 1 + '1' di konsol). Tapi dari pengalaman saya sendiri, saya akan menggunakan tes tersebut ketika memilih untuk pekerjaan atau sebagai tim dengan pemesanan yang sangat besar. Faktanya adalah bahwa dalam pekerjaan nyata programmer jarang menemukan hal-hal seperti itu, dengan kemampuannya untuk menyelesaikan kode dengan cepat - pengetahuan ini tidak berkorelasi dengan cara apa pun, dan Anda dapat berlatih hal-hal seperti itu dengan mudah (saya tahu sendiri). Secara umum, saya mengklik tes cukup cepat, dalam beberapa kasus saya memeriksa diri sendiri di konsol. Dalam tes python, tugas-tugasnya dari jenis yang sama, saya juga memeriksa diri saya di konsol, dengan kejutan saya mencetak lebih banyak poin daripada di JS, meskipun saya tidak pernah diprogram secara profesional dalam python. Kemudian, dalam percakapan dengan para peserta, saya mendengar cerita tentang seberapa kuat programmer mencetak skor tes rendah, bagaimana beberapa orang menerima surat yang menyatakan bahwa mereka belum lulus seleksi untuk CPU, dan kemudian mereka tetap diundang ke sana. Jelas bahwa pencipta tes ini kemungkinan besar tidak mendengar apa pun tentang teori pengujian , atau tentang keandalan dan validitasnya, atau tentang cara mengujinya, dan gagasan dengan tes pada awalnya akan gagal, bahkan jika kita tidak memperhitungkan tujuan utama hackathon. Dan tujuan utama peretasan, seperti yang saya ketahui kemudian, adalah untuk membuat rekor Guinness, dan tes-tes itu bertentangan dengannya.
Pada suatu titik setelah lulus tes, mereka memanggil saya, bertanya apakah saya akan berpartisipasi, mengklarifikasi detail dan mengatakan bagaimana masuk ke obrolan untuk memilih tim. Segera, saya masuk ke obrolan dan menulis singkat tentang diri saya. Sampah lengkap dibuat dalam obrolan, kesan dibuat bahwa penyelenggara telah terjebak dengan iklan banyak orang acak yang tidak ada hubungannya dengan IT. Banyak manajer produk dari "tingkat Steve Jobs" (frasa nyata dari presentasi satu peserta) memposting cerita tentang diri mereka sendiri, dan pengembang normal bahkan tidak terlihat. Tetapi saya beruntung, dan saya segera bergabung dengan tiga programmer JS yang berpengalaman. Kami sudah bertemu satu sama lain di hackathon, lalu kami menambahkan seorang gadis ke tim untuk inspirasi dan memecahkan masalah org. Saya tidak ingat mengapa, tetapi kami mengambil topik "Pendidikan Keamanan Siber" dan masuk ke jalur "Sains dan Pendidikan 2" bersamanya. Pertama kali saya berada dalam tim yang terdiri dari 4 programmer kuat dan untuk pertama kalinya saya merasakan betapa mudahnya untuk menang dalam komposisi seperti itu. Kami datang tidak siap dan berdebat sebelum makan malam dan tidak bisa memutuskan apa yang akan kami lakukan: aplikasi seluler atau web. Dalam situasi lain, saya akan berpikir bahwa ini adalah kegagalan. Yang paling penting bagi kami adalah untuk memahami bagaimana kami akan lebih baik daripada pesaing, karena ada banyak tim di sekitarnya yang melakukan tes gergaji, permainan keamanan siber, dan sejenisnya. Melihatnya dan tutorial dan aplikasi google, kami memutuskan bahwa fitur utama kami akan menjadi pelatihan alarm kebakaran. Kami memilih sejumlah chip yang kami temukan menarik untuk diimplementasikan (pendaftaran dengan memeriksa email dan kata sandi pada basis peretas, mengirimkan surat phishing (dalam bentuk surat dari bank terkenal), pelatihan rekayasa sosial dalam obrolan). Setelah memutuskan apa yang kami lakukan dan memahami bagaimana kami bisa menonjol, kami dengan cepat menulis aplikasi web yang lengkap, dan saya berperan sebagai backend pengembang yang tidak biasa bagi saya. Jadi, kami dengan percaya diri memenangkan lintasan kami dan, sebagai bagian dari tiga tim lagi, kami memilih untuk final di Kazan. Kemudian, di Kazan, saya mengetahui bahwa seleksi ke final adalah fiksi, saya bertemu banyak wajah-wajah akrab dari tim yang tidak lolos seleksi ini. Kami bahkan mewawancarai wartawan dari Channel 1. Benar, aplikasi kami hanya ditampilkan 1 detik dalam laporan darinya.

Tim salju, di mana saya memenangkan panggung regional
Final (Kazan, 27 - 29 September 2019)
Tetapi kemunduran lebih lanjut dimulai. Semua programmer dari tim Snowed selama sekitar satu bulan, satu demi satu, melaporkan bahwa mereka tidak bisa pergi ke Kazan untuk final. Dan saya berpikir tentang menemukan tim baru. Pada awalnya saya menjerit dalam obrolan umum Tim Peretas Rusia, dan meskipun di sana saya menerima beberapa tanggapan dan undangan kepada tim, tetapi tidak ada yang mengaitkan saya. Ada tim yang tidak seimbang, seperti produk, pengembang ponsel, front-end, yang mengingatkan pada angsa, kepiting, dan tombak dari dongeng. Ada juga tim yang tidak cocok dengan saya dalam teknologi (misalnya, dengan pengembangan aplikasi seluler di Flutter). Akhirnya, dalam obrolan, yang saya anggap sampah (VKontakte yang sama, tempat tim dipilih untuk pentas regional), mereka memposting pengumuman tentang pencarian penyaji depan dalam tim, dan saya menulis secara acak. Orang-orang itu ternyata adalah mahasiswa pascasarjana Skoltech dan segera menawarkan untuk bertemu dan saling mengenal. Saya suka itu, tim yang lebih suka mengenal hackathon segera biasanya mengganggu saya dengan kurangnya motivasi mereka. Bertemu di "Rake" di Pyatnitskaya. Orang-orang itu tampak masuk akal, termotivasi, percaya diri dalam diri mereka sendiri dan dalam kemenangan, dan saya membuat keputusan di sana. Kami tidak tahu apa trek dan tugas di final nanti, tetapi kami berasumsi bahwa kami akan memilih sesuatu yang terkait dengan Pembelajaran Mesin. Dan tugas saya adalah menulis panel admin untuk bisnis ini, jadi saya menyiapkan blank berdasarkan antd-admin untuk ini.
Saya pergi ke Kazan secara gratis, dengan mengorbankan penyelenggara. Saya harus mengatakan bahwa dalam obrolan dan blog banyak ketidakpuasan telah diungkapkan tentang pembelian tiket dan, secara umum, organisasi final, saya tidak akan menceritakan kembali semuanya.
Sesampainya di Kazan Expo, mendaftar (pada saat yang sama saya punya masalah mendapatkan lencana) dan sarapan, kami pergi untuk memilih trek. Kami pergi ke upacara pembukaan, di mana para pejabat berbicara, hanya selama 10 menit. Faktanya, kami sudah memiliki trek pilihan kami, tetapi kami tertarik pada detailnya. Di jalur No. 18 (Rostelecom), misalnya, ternyata perlu untuk mengembangkan aplikasi seluler, meskipun ini tidak dalam deskripsi singkat. Kami membuat pilihan utama antara jalur No 8 inspeksi Pipa, PJSC Gazprom Neft dan melacak No 13 pusat Perinatal, Ruang Akun Federasi Rusia. Baik di sana maupun di sana diperlukan Ilmu Data, dan di sana, dan di sana mungkin untuk mempercepat web. Di jalur No. 13, kami terhenti oleh fakta bahwa tugas Ilmu Data agak lemah di sana, perlu untuk mengurai Rosstat dan tidak jelas apakah panel admin diperlukan. Dan nilai tugas itu sangat diragukan. Sebagai hasilnya, kami memutuskan bahwa sebagai tim kami lebih fokus pada trek 8, terutama karena mereka sudah memiliki pengalaman dalam memecahkan masalah seperti itu. Kami mulai dengan memikirkan skenario di mana aplikasi kami akan digunakan oleh pengguna akhir. Ternyata kami akan memiliki dua jenis pengguna: teknisi yang tertarik pada informasi teknis dan manajer yang membutuhkan indikator keuangan. Ketika ide skrip muncul, menjadi jelas apa yang harus dilakukan di depan, apa yang harus ditarik untuk desainer, dan metode apa yang dibutuhkan di backend, menjadi mungkin untuk mendistribusikan tugas. Tanggung jawab dalam tim adalah sebagai berikut: dua orang menyelesaikan ML dengan data yang diterima dari pakar teknis, satu orang menulis backend dengan python, saya menulis bagian depan pada reaksi dan antd, perancang menggambar antarmuka. Kami bahkan duduk sehingga lebih nyaman bagi kami untuk berkomunikasi sambil menyelesaikan masalah kami.
Hari pertama berlalu hampir tanpa terasa. Dalam komunikasi dengan para ahli teknis, ternyata mereka (Gazprom Neft) telah menyelesaikan masalah ini, mereka hanya bertanya-tanya apakah itu dapat diselesaikan dengan lebih baik. Saya tidak akan mengatakan bahwa ini mengurangi motivasi, tetapi endapan tetap ada. Mengejutkan bahwa pada malam hari moderator seksi mencatat tim kerja (seperti yang mereka katakan untuk statistik), biasanya ini tidak dilakukan di hackathons. Pada pagi hari, kami memiliki prototipe dari depan, beberapa awal dari belakang, solusi ML pertama. Secara umum, sudah ada sesuatu untuk ditunjukkan para ahli. Pada hari Sabtu sore, perancang menggambar lebih banyak antarmuka daripada yang bisa saya lakukan untuk kode dan beralih ke membuat presentasi. Sabtu dialokasikan untuk mendaftarkan catatan, dan di pagi hari, semua pekerja di aula ditendang keluar ke koridor, kemudian pintu masuk dan keluar dari aula dilakukan menggunakan lencana, dan dimungkinkan untuk pergi pada hari itu tidak lebih dari satu jam. Saya tidak bisa mengatakan bahwa itu menyebabkan ketidaknyamanan yang signifikan bagi kami, hampir sepanjang hari kami masih duduk dan bekerja. Makanannya, memang, sangat langka, untuk makan siang kami menerima segelas kaldu, pai, dan apel, tetapi sekali lagi ini tidak membuat kami kesal, kami fokus pada yang lain.
Banteng merah yang dikeluarkan secara berkala, dua kaleng per tangan, itu sangat berguna. Resep energetik + kopi, yang sudah diuji pada hackathons, memungkinkan pengkodean sepanjang malam dan hari berikutnya, menjadi ceria seperti gelas. Pada hari kedua, kami, pada kenyataannya, sudah cukup menggulung chip baru pada aplikasi, membuat perhitungan indikator keuangan, dan mulai menampilkan grafik pada statistik cacat di jalan raya. Dengan demikian, tidak ada ulasan kode di trek kami, para ahli mengevaluasi solusi untuk masalah dalam gaya kaggle.com, sesuai dengan keakuratan perkiraan, dan front-end dievaluasi secara visual. Solusi ML kami ternyata yang paling akurat, mungkin inilah yang memungkinkan kami untuk masuk ke dalam memimpin. Pada malam hari Sabtu hingga Minggu, kami bekerja sampai jam 2 pagi, dan kemudian tidur di apartemen, yang digunakan sebagai markas. Kami tidur selama sekitar 5 jam, pada hari Minggu pukul 9 pagi. Kami sudah berada di Kazan Expo. Saya buru-buru mengunggah sesuatu, tetapi sebagian besar waktu untuk mempersiapkan prapengertian. Predefenses terjadi dalam 2 aliran, sebelum dua tim ahli, kami diminta untuk berbicara terakhir, karena kedua tim ahli ingin mendengarkan kami. Kami menganggapnya sebagai pertanda baik. Aplikasi ditunjukkan dari laptop saya, dari server dev yang sedang berjalan, kami tidak berhasil menerapkan aplikasi dengan benar, namun kami melakukan semuanya dengan cara itu.
Secara umum, semuanya berjalan dengan baik, mereka menunjukkan kepada kami poin di mana kami dapat meningkatkan aplikasi kami, dan bahkan sebelum pertahanan, kami bahkan mencoba menerapkan salah satu dari komentar ini. Pertahanan juga berjalan dengan lancar. Menurut hasil pra-pertahanan, kami tahu bahwa kami unggul dalam hal poin, kami memimpin dalam akurasi keputusan, kami memiliki tampilan depan yang bagus, desain yang baik dan, pada umumnya, memiliki firasat yang baik. Tanda lain yang menguntungkan adalah bahwa gadis moderator dari bagian kami, sebelum memasuki aula konser, berfoto selfie dengan kami, saya kemudian curiga bahwa ia mungkin tahu sesuatu))). Tapi kami tidak tahu poin kami setelah pertahanan, jadi waktu sampai pengumuman tim kami dari panggung agak menegangkan. Di atas panggung mereka menyerahkan kardus dengan tulisan 500.000 rubel dan masing-masing tas dengan cangkir dan baterai untuk ponsel. Kami tidak menikmati kemenangan dan tidak merayakannya secara normal, kami dengan cepat makan malam dan naik taksi dengan kereta api.

Final Tim WAICO Menang
Sekembalinya ke Moskow, wartawan dari NTV mewawancarai kami. Mereka memfilmkan satu jam penuh di lantai dua kafe Kvartal 44 di Polyanka, tetapi dalam berita mereka menunjukkan 10 detik.Setelah semua, ada kemajuan yang kuat dibandingkan dengan tahap regional.
Untuk meringkas kesan umum dari Terobosan Digital, mereka adalah sebagai berikut. Acara ini dihabiskan hanya uang gila, saya belum pernah melihat hackathon sebesar ini. Tetapi untuk mengatakan bahwa itu dibenarkan, dan itu benar-benar terbayar, saya tidak bisa. Sebagian besar peserta yang tiba di Kazan hanyalah penonton pesta yang tidak tahu bagaimana melakukan sesuatu dengan tangan mereka sendiri, dan yang diangkat untuk membuat catatan. Saya tidak bisa mengatakan bahwa kompetisi di final lebih tinggi daripada di panggung regional. Juga, nilai dan kegunaan tugas beberapa trek diragukan. Beberapa tugas telah lama diselesaikan di tingkat industri. Ternyata kemudian, beberapa organisasi yang memimpin jejak tidak tertarik untuk menyelesaikannya. Dan cerita ini belum berakhir, tim pemimpin dari setiap trek dipilih sebagai pra-akselerator, dan diasumsikan bahwa mereka akan membuat startup BREAKTHROUGH. Tetapi saya belum siap untuk menulis tentang itu, mari kita lihat apa yang terjadi.