Terobosan digital - bagaimana hal itu terjadi

Ini bukan hackathon pertama yang saya menangkan, bukan juga yang pertama menulis, dan ini bukan postingan pertama di Habré yang didedikasikan untuk “Terobosan Digital”. Tapi aku tidak bisa menahan diri untuk tidak menulis. Saya menganggap pengalaman saya cukup unik untuk dibagikan. Saya mungkin satu-satunya orang di hackathon ini yang memenangkan tahap regional dan final sebagai bagian dari tim yang berbeda. Ingin tahu bagaimana ini bisa terjadi? Selamat datang di kucing.

Tahap regional (Moskow, 27 - 28 Juli 2019).

Saya pertama kali melihat iklan “Terobosan Digital” pada bulan Maret-April tahun ini. Tentu saja, saya tidak bisa melewatkan hackathon sebesar itu dan mendaftar di situs tersebut. Di sana saya mengetahui kondisi dan program kompetisi. Ternyata untuk bisa mengikuti hackathon tersebut, Anda harus lulus tes online yang dimulai pada 16 Mei. Dan, mungkin, saya akan dengan mudah melupakannya, karena saya tidak menerima surat yang mengingatkan saya tentang dimulainya pengujian. Dan, harus saya katakan, di masa depan SEMUA SURAT yang datang kepada saya dari CPU selalu berakhir di folder spam. Meskipun saya selalu mengklik tombol “tidak berkeberatan”. Saya tidak tahu bagaimana mereka bisa mencapai hasil seperti itu, saya tidak berhasil dengan pengiriman surat di MailGun. Dan kawan-kawan sepertinya belum tahu sama sekali tentang keberadaan layanan seperti isnotspam.com. Tapi kami ngelantur.

Saya diingatkan tentang dimulainya pengujian di salah satu pertemuan klub pemula, disana kami juga membahas pembentukan tim. Setelah membuka daftar tes, saya pertama kali mengikuti tes Javascript. Secara umum, tugasnya kurang lebih memadai (seperti apa hasilnya jika Anda menambahkan 1 + '1' di konsol). Namun dari pengalaman saya, saya akan menggunakan tes seperti itu ketika merekrut suatu pekerjaan atau tim dengan reservasi yang sangat besar. Faktanya adalah bahwa dalam pekerjaan nyata, seorang programmer jarang menemukan hal-hal seperti itu, dengan kemampuannya untuk men-debug kode dengan cepat - pengetahuan ini tidak berkorelasi dengan cara apa pun, dan Anda dapat melatih hal-hal seperti itu untuk wawancara dengan cukup mudah (saya tahu dari diri saya sendiri). Secara umum, saya menyelesaikan tes dengan cukup cepat, dalam beberapa kasus saya memeriksa sendiri di konsol. Dalam tes python, tugasnya kira-kira sama, saya juga menguji diri saya sendiri di konsol, dan terkejut mendapatkan poin lebih banyak daripada di JS, meskipun saya belum pernah memprogram secara profesional dengan Python. Belakangan, dalam percakapan dengan para peserta, saya mendengar cerita tentang betapa programmer yang kuat mendapat nilai rendah dalam tes, bagaimana beberapa orang menerima surat yang mengatakan bahwa mereka tidak lulus proses seleksi untuk CPU, dan kemudian mereka tetap diundang ke sana. Jelas bahwa pembuat tes ini kemungkinan besar belum pernah mendengar apa pun tentangnya teori tes, baik tentang reliabilitas dan validitasnya, maupun tentang cara mengujinya, dan ide pengujian akan gagal sejak awal, bahkan jika kita tidak memperhitungkan tujuan utama hackathon. Dan tujuan utama peretasan ini, seperti yang saya ketahui kemudian, adalah untuk mencetak rekor Guinness, dan pengujian yang dilakukan bertentangan dengan hal tersebut.

Suatu saat setelah lulus tes, mereka menelepon saya, menanyakan apakah saya akan berpartisipasi, mengklarifikasi detailnya dan memberi tahu saya cara masuk ke obrolan untuk memilih tim. Segera, saya masuk ke obrolan dan menulis singkat tentang diri saya. Ada banyak sampah yang terjadi di obrolan; sepertinya penyelenggara beriklan ke banyak orang secara acak yang tidak ada hubungannya dengan IT. Banyak manajer produk “setingkat Steve Jobs” (frasa asli dari kiriman salah satu peserta) memposting cerita tentang diri mereka sendiri, dan pengembang normal bahkan tidak terlihat. Tapi saya beruntung dan segera bergabung dengan tiga programmer JS berpengalaman. Kami sudah bertemu satu sama lain di hackathon, dan kemudian kami menambahkan seorang gadis ke tim untuk mendapatkan inspirasi dan menyelesaikan masalah organisasi. Saya tidak ingat kenapa, tapi kami mengambil topik “Pelatihan Keamanan Siber” dan memasukkannya ke dalam jalur “Ilmu Pengetahuan dan Pendidikan 2”. Untuk pertama kalinya saya menemukan diri saya dalam tim yang terdiri dari 4 programmer yang kuat dan untuk pertama kalinya saya merasakan betapa mudahnya untuk menang dalam komposisi seperti itu. Kami datang tanpa persiapan dan berdebat hingga makan siang dan tidak dapat memutuskan apa yang akan kami lakukan: aplikasi seluler atau web. Dalam situasi lain apa pun, saya akan berpikir itu adalah sebuah kegagalan. Hal terpenting bagi kami adalah memahami bagaimana kami bisa lebih baik dari pesaing kami, karena ada banyak tim yang melakukan tes, permainan keamanan siber, dan sejenisnya. Setelah melihat ini dan mencari program dan aplikasi pelatihan di Google, kami memutuskan bahwa pembeda utama kami adalah latihan kebakaran. Kami memilih sejumlah fitur yang menurut kami menarik untuk diterapkan (pendaftaran dengan verifikasi email dan kata sandi terhadap database hacker, pengiriman email phishing (dalam bentuk surat dari bank ternama), pelatihan rekayasa sosial dalam chat). Setelah memutuskan apa yang kami lakukan dan memahami bagaimana kami bisa menonjol, kami segera menulis aplikasi web lengkap, dan saya memainkan peran yang tidak biasa sebagai pengembang backend. Dengan demikian, kami dengan percaya diri memenangkan lintasan kami dan, sebagai bagian dari tiga tim lainnya, lolos ke final di Kazan. Belakangan, di Kazan, saya mengetahui bahwa seleksi ke final hanyalah sebuah fiksi, di sana saya bertemu banyak wajah familiar dari tim yang tidak lolos seleksi. Kami bahkan diwawancarai oleh jurnalis dari Channel 1. Namun dalam laporannya, aplikasi kita hanya ditampilkan selama 1 detik.

Terobosan digital - bagaimana hal itu terjadi
Tim turun salju, tempat saya memenangkan tahap regional

Final (Kazan, 27 – 29 September 2019)

Tapi kemudian kegagalan dimulai. Semua programmer dari tim Snowed dalam waktu sekitar satu bulan, satu demi satu, melaporkan bahwa mereka tidak akan bisa pergi ke Kazan untuk final. Dan saya berpikir untuk mencari tim baru. Pertama, saya menelepon di obrolan umum Tim Hack Rusia, dan meskipun di sana saya menerima cukup banyak tanggapan dan undangan untuk bergabung dengan tim, tidak ada satupun yang menarik perhatian saya. Ada tim yang tidak seimbang, seperti produk, pengembang seluler, front-end, mengingatkan pada angsa, udang karang, dan tombak dari dongeng. Ada juga tim yang tidak cocok untuk saya dari segi teknologi (misalnya dengan pengembangan aplikasi seluler di Flutter). Terakhir, di chat yang saya anggap sampah (VKontakte yang sama tempat berlangsungnya pemilihan tim untuk tahap regional), dipasang iklan tentang pencarian frontender untuk tim, dan saya menulisnya murni asal-asalan. Orang-orang tersebut ternyata adalah mahasiswa pascasarjana di Skoltech dan langsung menawarkan diri untuk bertemu dan berkenalan. Saya menyukainya; tim yang lebih memilih untuk langsung mengenal satu sama lain di hackathon biasanya membuat saya khawatir karena kurangnya motivasi. Kami bertemu di "Rake" di Pyatnitskaya. Para pemain tampak cerdas, termotivasi, percaya diri pada diri mereka sendiri dan dalam kemenangan, dan saya mengambil keputusan saat itu juga. Kami belum tahu trek dan tugas apa yang akan ada di final, tapi kami berasumsi bahwa kami akan memilih sesuatu yang berhubungan dengan Machine Learning. Dan tugas saya adalah menulis admin untuk masalah ini, jadi saya menyiapkan template terlebih dahulu berdasarkan antd-admin.
Saya pergi ke Kazan secara gratis, dengan biaya penyelenggara. Saya harus mengatakan bahwa banyak ketidakpuasan telah diungkapkan dalam obrolan dan blog mengenai pembelian tiket dan, secara umum, penyelenggaraan final, saya tidak akan menceritakan kembali semuanya.

Setelah sampai di Kazan Expo, mendaftar (saya sedikit kesulitan mendapatkan badge) dan sarapan pagi, kami berangkat untuk memilih trek. Kami baru menuju grand opening, di mana para pejabat berbicara, sekitar 10 menit, sebenarnya kami sudah memiliki trek pilihan kami, tapi kami tertarik dengan detailnya. Pada track no 18 (Rostelecom), misalnya, ternyata perlu dikembangkan aplikasi mobile, meski tidak dijelaskan secara singkat. Kami membuat pilihan utama antara Defectoskopi jalur pipa No. 8, PJSC Gazprom Neft dan pusat Perinatal track No. 13, Kamar Akun Federasi Rusia. Dalam kedua kasus tersebut, Ilmu Data diperlukan, dan dalam kedua kasus tersebut, web dapat ditambahkan. 13, kami terhenti oleh fakta bahwa tugas Ilmu Data di sana cukup lemah, Rosstat perlu diurai dan tidak jelas apakah panel admin diperlukan. Dan nilai dari tugas itu diragukan. Pada akhirnya, kami memutuskan bahwa sebagai sebuah tim kami lebih cocok untuk trek 8, terutama karena para pemain sudah memiliki pengalaman dalam memecahkan masalah serupa. Kami mulai dengan memikirkan skenario di mana aplikasi kami akan digunakan oleh pengguna akhir. Ternyata kita mempunyai dua jenis pengguna: teknisi yang tertarik pada informasi teknis dan manajer yang membutuhkan indikator keuangan. Ketika ide skenario muncul, menjadi jelas apa yang harus dilakukan di bagian depan, apa yang harus digambar oleh desainer, dan metode apa yang diperlukan di bagian belakang, sehingga tugas dapat didistribusikan. Tanggung jawab dalam tim didistribusikan sebagai berikut: dua orang menyelesaikan ML dengan data yang diterima dari pakar teknis, satu orang menulis backend dengan Python, saya menulis front end di React dan Antd, desainer menggambar antarmuka. Kami bahkan duduk agar lebih nyaman bagi kami untuk berkomunikasi sambil menyelesaikan masalah kami.

Hari pertama berlalu hampir tanpa terasa. Saat berkomunikasi dengan pakar teknis, ternyata mereka (Gazprom Neft) sudah menyelesaikan masalah ini, mereka hanya bertanya-tanya apakah bisa diselesaikan dengan lebih baik. Saya tidak akan mengatakan bahwa hal ini mengurangi motivasi saya, tetapi meninggalkan residu. Saya terkejut bahwa pada malam hari moderator bagian mencatat tim kerja (seperti yang mereka katakan untuk statistik), ini biasanya tidak dilakukan di hackathon. Pagi harinya kami telah menyiapkan prototipe bagian depan, beberapa dasar bagian belakang, dan solusi ML pertama. Secara umum, sudah ada sesuatu yang ingin ditunjukkan kepada para ahli. Pada hari Sabtu sore, sang desainer jelas menggambar lebih banyak antarmuka daripada waktu yang saya punya untuk membuat kode dan beralih ke membuat presentasi. Hari Sabtu disisihkan untuk pendaftaran pencatatan, dan pada pagi harinya, semua orang yang bekerja di aula diusir ke koridor, kemudian keluar masuk aula dilakukan dengan menggunakan lencana, dan tidak boleh keluar lagi. dari satu jam per hari. Saya tidak akan mengatakan bahwa hal ini menyebabkan ketidaknyamanan yang berarti bagi kami; hampir sepanjang hari kami masih duduk dan bekerja. Makanannya memang sangat sedikit; untuk makan siang kami mendapat segelas kaldu, pai, dan apel, tetapi sekali lagi ini tidak terlalu membuat kami kesal, kami fokus pada hal lain.

Mereka secara berkala membagikan red bull, dua kaleng per tangan, yang sangat membantu. Resep minuman energi + kopi, yang telah lama diuji di hackathon, memungkinkan saya membuat kode sepanjang malam dan keesokan harinya, dengan ceria seperti segelas. Di hari kedua, kami sebenarnya cukup menambahkan fitur baru ke aplikasi, menghitung indikator keuangan, dan mulai menampilkan grafik berdasarkan statistik kerusakan jalan raya. Tidak ada peninjauan kode seperti itu di jalur kami; para ahli menilai solusi masalah dengan gaya kaggle.com, berdasarkan keakuratan perkiraan, dan bagian depan dinilai secara visual. Solusi ML kami ternyata paling akurat, mungkin inilah yang membuat kami bisa menjadi pemimpin. Pada malam Sabtu hingga Minggu kami bekerja hingga jam 2 pagi, kemudian tidur di apartemen yang kami gunakan sebagai markas. Kami tidur kurang lebih 5 jam, hari Minggu jam 9 pagi kami sudah berada di Kazan Expo. Saya buru-buru menyiapkan sesuatu, tetapi sebagian besar waktu dihabiskan untuk mempersiapkan pra-pertahanan. Pra-pertahanan berlangsung dalam 2 aliran, di hadapan dua tim ahli, kami diminta berbicara terakhir, karena kedua tim ahli ingin mendengarkan kami. Kami menganggap ini sebagai pertanda baik. Aplikasi ditampilkan dari laptop saya, dari server dev yang sedang berjalan; kami tidak punya waktu untuk menyebarkan aplikasi dengan benar, namun semua orang melakukan hal yang sama.

Secara umum, semuanya berjalan dengan baik, kami ditunjukkan poin-poin di mana kami dapat meningkatkan aplikasi kami, dan sebelum pembelaan kami bahkan mencoba menerapkan beberapa komentar ini. Pertahanannya juga berjalan sangat mulus. Berdasarkan hasil pra-pertahanan, kami tahu bahwa kami unggul dalam hal poin, kami memimpin dalam hal akurasi solusi, kami memiliki front-end yang bagus, desain yang bagus dan, secara umum, kami memiliki performa yang baik. perasaan. Tanda positif lainnya adalah gadis moderator dari bagian kami berfoto selfie dengan kami sebelum memasuki ruang konser, dan kemudian saya curiga dia mungkin mengetahui sesuatu))). Tapi kami tidak tahu skor kami setelah pembelaan, jadi waktu sampai tim kami diumumkan dari panggung berlalu dengan sedikit tegang. Di atas panggung mereka menyerahkan karton bertuliskan 500000 rubel dan setiap orang diberikan tas berisi mug dan baterai ponsel. Kami tidak berhasil menikmati kemenangan dan merayakannya dengan baik; kami segera makan malam dan naik taksi ke kereta.

Terobosan digital - bagaimana hal itu terjadi
Tim WAICO memenangkan final

Sekembalinya ke Moskow, jurnalis dari NTV mewawancarai kami. Kami syuting selama satu jam penuh di lantai dua kafe Kvartal 44 di Polyanka, tapi beritanya hanya ditayangkan sekitar 10 detik, lagipula kemajuannya pesat dibandingkan panggung regional.

Jika kita rangkum kesan umum dari Terobosan Digital adalah sebagai berikut. Banyak uang yang dihabiskan untuk acara tersebut; saya belum pernah melihat hackathon sebesar ini sebelumnya. Namun saya tidak bisa mengatakan bahwa hal ini dapat dibenarkan dan akan membuahkan hasil. Sebagian besar peserta yang datang ke Kazan hanyalah pengunjung pesta yang tidak tahu cara melakukan apa pun dengan tangan mereka sendiri, dan terpaksa membuat rekor. Saya tidak bisa mengatakan persaingan di final lebih tinggi daripada di tingkat regional. Selain itu, nilai dan kegunaan tugas beberapa trek juga dipertanyakan. Beberapa masalah telah lama diselesaikan di tingkat industri. Ternyata kemudian, beberapa organisasi yang melakukan penelusuran tidak tertarik untuk menyelesaikannya. Dan cerita ini belum berakhir, tim-tim terdepan dari setiap jalur dipilih untuk pra-akselerator, dan diasumsikan bahwa mereka akan menjadi startup-startup TEROBOSAN. Tapi saya belum siap untuk menulis tentang ini, kita lihat saja hasilnya.

Sumber: www.habr.com

Tambah komentar