Kejayaan digital - bagaimana ia berlaku

Ini bukan hackathon pertama yang saya menangi, bukan hackathon pertama menulis, dan ini bukan siaran pertama di HabrΓ© yang didedikasikan untuk "Penerobosan Digital". Tetapi saya tidak dapat membantu tetapi menulis. Saya menganggap pengalaman saya cukup unik untuk dikongsi. Saya mungkin satu-satunya orang di hackathon ini yang memenangi peringkat serantau dan perlawanan akhir sebagai sebahagian daripada pasukan yang berbeza. Ingin tahu bagaimana ini berlaku? Selamat datang ke kucing.

Peringkat serantau (Moscow, 27 - 28 Julai 2019).

Saya pertama kali melihat iklan untuk "Terobosan Digital" di suatu tempat pada bulan Mac-April tahun ini. Sememangnya, saya tidak boleh melepaskan hackathon yang begitu besar dan mendaftar di laman web ini. Di sana saya berkenalan dengan syarat dan program pertandingan. Ternyata untuk sampai ke hackathon, anda perlu lulus ujian dalam talian, yang bermula pada 16 Mei. Dan, mungkin, saya dengan mudah melupakannya, kerana saya tidak menerima surat yang mengingatkan saya tentang permulaan ujian. Dan, saya mesti katakan, pada masa hadapan SEMUA HURUF yang datang kepada saya daripada CPU secara konsisten berakhir dalam folder spam. Walaupun saya mengklik butang "tidak menyenangkan" setiap kali. Saya tidak tahu bagaimana mereka berjaya mencapai keputusan sedemikian; ia tidak berjaya untuk saya dengan mel di MailGun. Dan mereka nampaknya tidak tahu sama sekali tentang kewujudan perkhidmatan seperti isnotspam.com. Tetapi kita menyimpang.

Saya diingatkan tentang permulaan ujian di salah satu mesyuarat kelab permulaan, di sana kami juga membincangkan pembentukan pasukan. Setelah membuka senarai ujian, saya mula-mula duduk ke ujian Javascript. Secara umum, tugasan adalah lebih kurang mencukupi (seperti hasil yang akan berlaku jika anda menambah 1 + '1' dalam konsol). Tetapi dari pengalaman saya, saya akan menggunakan ujian sedemikian apabila merekrut untuk pekerjaan atau pasukan dengan tempahan yang sangat besar. Hakikatnya adalah bahawa dalam kerja sebenar, seorang pengaturcara jarang menemui perkara seperti itu, dengan keupayaannya untuk menyahpepijat kod dengan cepat - pengetahuan ini tidak berkaitan dengan apa-apa cara, dan anda boleh melatih perkara sedemikian untuk temu duga dengan mudah (saya tahu dari diri saya sendiri). Secara umum, saya mengklik ujian dengan cepat, dalam beberapa kes saya menyemak sendiri dalam konsol. Dalam ujian python, tugasan adalah lebih kurang jenis yang sama, saya juga menguji diri saya dalam konsol, dan terkejut mendapat lebih banyak mata daripada dalam JS, walaupun saya tidak pernah memprogramkan secara profesional dalam Python. Kemudian, dalam perbualan dengan peserta, saya mendengar cerita tentang bagaimana pengaturcara yang kuat mendapat markah rendah pada ujian, bagaimana sesetengah orang menerima surat yang mengatakan bahawa mereka tidak lulus proses pemilihan untuk CPU, dan kemudian mereka dijemput untuk melakukannya. Jelas sekali bahawa pencipta ujian ini berkemungkinan besar tidak mendengar apa-apa tentangnya teori ujian, bukan tentang kebolehpercayaan dan kesahihannya, mahupun tentang cara mengujinya, dan idea dengan ujian akan menjadi kegagalan sejak awal, walaupun kita tidak mengambil kira matlamat utama hackathon itu. Dan matlamat utama penggodaman, seperti yang saya pelajari kemudian, adalah untuk menetapkan rekod Guinness, dan ujian-ujian itu bercanggah dengannya.

Pada satu ketika selepas lulus ujian, mereka menghubungi saya, bertanya sama ada saya akan mengambil bahagian, menjelaskan butiran dan memberitahu saya cara masuk ke dalam sembang untuk memilih pasukan. Tidak lama kemudian, saya memasuki sembang dan menulis secara ringkas tentang diri saya. Terdapat sampah lengkap yang berlaku dalam sembang; nampaknya penganjur mengiklankan kepada ramai orang rawak yang tidak ada kaitan dengan IT. Banyak pengurus produk "di peringkat Steve Jobs" (frasa sebenar daripada penyerahan seorang peserta) menyiarkan cerita tentang diri mereka sendiri, dan pembangun biasa tidak kelihatan. Tetapi saya bernasib baik dan tidak lama kemudian menyertai tiga pengaturcara JS yang berpengalaman. Kami sudah bertemu antara satu sama lain di hackathon, dan kemudian kami menambah seorang gadis kepada pasukan untuk inspirasi dan menyelesaikan isu organisasi. Saya tidak ingat mengapa, tetapi kami mengambil topik "Latihan Keselamatan Siber" dan memasukkannya dalam runut "Sains dan Pendidikan 2". Buat pertama kalinya saya mendapati diri saya berada dalam pasukan yang terdiri daripada 4 pengaturcara yang kuat dan buat kali pertama saya merasakan betapa mudahnya untuk menang dalam komposisi sedemikian. Kami datang dalam keadaan tidak bersedia dan bertengkar sehingga makan tengah hari dan tidak dapat memutuskan apa yang akan kami lakukan: aplikasi mudah alih atau web. Dalam keadaan lain saya akan fikir ia adalah kegagalan. Perkara yang paling penting bagi kami ialah memahami bagaimana kami akan menjadi lebih baik daripada pesaing kami, kerana terdapat banyak pasukan di sekeliling yang melakukan ujian pemotongan, permainan keselamatan siber dan sebagainya. Selepas melihat program dan apl latihan ini dan googling, kami memutuskan bahawa pembeza utama kami ialah latihan latihan kebakaran. Kami memilih beberapa ciri yang kami dapati menarik untuk dilaksanakan (pendaftaran dengan pengesahan e-mel dan kata laluan terhadap pangkalan data penggodam, menghantar e-mel pancingan data (dalam bentuk surat daripada bank terkenal), latihan kejuruteraan sosial dalam sembang). Setelah memutuskan perkara yang kami lakukan dan memahami cara kami boleh menonjol, kami dengan pantas menulis aplikasi web lengkap dan saya memainkan peranan luar biasa sebagai pembangun bahagian belakang. Oleh itu, kami dengan yakin memenangi trek kami dan, sebagai sebahagian daripada tiga pasukan lain, layak ke pusingan akhir di Kazan. Kemudian, di Kazan, saya mengetahui bahawa pemilihan untuk perlawanan akhir adalah fiksyen; Saya bertemu di sana ramai muka biasa dari pasukan yang tidak lulus pemilihan. Kami juga ditemu bual oleh wartawan dari Saluran 1. Walau bagaimanapun, dalam laporan daripadanya, permohonan kami ditunjukkan hanya selama 1 saat.

Kejayaan digital - bagaimana ia berlaku
Pasukan bersalji, di mana saya memenangi peringkat serantau

Akhir (Kazan, 27 – 29 September 2019)

Tetapi kemudian kegagalan bermula. Semua pengaturcara dari pasukan Snowed dalam masa kira-kira sebulan, satu demi satu, melaporkan bahawa mereka tidak akan dapat pergi ke Kazan untuk peringkat akhir. Dan saya berfikir tentang mencari pasukan baru. Mula-mula, saya membuat panggilan dalam sembang umum Pasukan Hack Rusia, dan walaupun di sana saya menerima banyak jawapan dan jemputan untuk menyertai pasukan, tiada satu pun daripada mereka menarik perhatian saya. Terdapat pasukan yang tidak seimbang, seperti produk, pembangun mudah alih, bahagian hadapan, mengingatkan angsa, udang karang dan pike daripada dongeng. Terdapat juga pasukan yang tidak sesuai untuk saya dari segi teknologi (contohnya, dengan pembangunan aplikasi mudah alih dalam Flutter). Akhirnya, dalam sembang yang saya anggap sampah (VKontakte yang sama di mana pemilihan pasukan untuk peringkat serantau berlaku), satu iklan telah disiarkan mengenai pencarian frontender untuk pasukan, dan saya menulis secara rawak semata-mata. Lelaki itu ternyata pelajar siswazah di Skoltech dan segera menawarkan diri untuk bertemu dan berkenalan. Saya menyukainya; pasukan yang lebih suka mengenali satu sama lain dengan segera di hackathon biasanya mencemaskan saya dengan kekurangan motivasi mereka. Kami bertemu di "Rake" di Pyatnitskaya. Mereka kelihatan bijak, bermotivasi, yakin dengan diri mereka sendiri dan dalam kemenangan, dan saya membuat keputusan di sana. Kami masih belum mengetahui trek dan tugasan yang akan dilakukan pada perlawanan akhir, tetapi kami mengandaikan bahawa kami akan memilih sesuatu yang berkaitan dengan Pembelajaran Mesin. Dan tugas saya adalah untuk menulis pentadbir untuk perkara ini, jadi saya menyediakan templat untuk ini terlebih dahulu berdasarkan antd-admin.
Saya pergi ke Kazan secara percuma, atas perbelanjaan penganjur. Saya mesti mengatakan bahawa banyak rasa tidak puas hati telah dinyatakan dalam sembang dan blog mengenai pembelian tiket dan, secara umum, penganjuran perlawanan akhir, saya tidak akan menceritakan semuanya.

Setelah tiba di Kazan Expo, mendaftar (saya mengalami sedikit masalah untuk mendapatkan lencana) dan bersarapan, kami pergi memilih trek. Kami hanya pergi ke pembukaan besar, di mana pegawai bercakap, selama kira-kira 10 minit. Sebenarnya, kami sudah mempunyai trek pilihan kami, tetapi kami berminat dengan butirannya. Dalam trek No. 18 (Rostelecom), sebagai contoh, ternyata perlu untuk membangunkan aplikasi mudah alih, walaupun ini tidak dalam penerangan ringkas. Kami membuat pilihan utama antara trek No. 8 Defectoscopy saluran paip, Gazprom Neft PJSC dan trek No. 13 pusat Perinatal, Dewan Akaun Persekutuan Rusia. Dalam kedua-dua kes, Sains Data diperlukan dan dalam kedua-dua kes, web boleh ditambah. Dalam trek No. 13, kami dihalang oleh fakta bahawa tugas Sains Data di sana agak lemah, ia perlu untuk menghuraikan Rosstat dan tidak jelas sama ada panel pentadbir diperlukan. Dan nilai tugas itu diragui. Pada akhirnya, kami memutuskan bahawa sebagai satu pasukan kami lebih sesuai untuk menjejaki 8, terutamanya kerana mereka sudah mempunyai pengalaman dalam menyelesaikan masalah yang sama. Kami bermula dengan memikirkan senario di mana aplikasi kami akan digunakan oleh pengguna akhir. Ternyata kami akan mempunyai dua jenis pengguna: juruteknik yang berminat dengan maklumat teknikal dan pengurus yang memerlukan penunjuk kewangan. Apabila idea senario itu muncul, menjadi jelas apa yang perlu dilakukan di bahagian hadapan, apa yang perlu dilukis oleh pereka, dan kaedah yang diperlukan di bahagian belakang, ia menjadi mungkin untuk mengagihkan tugas. Tanggungjawab dalam pasukan diagihkan seperti berikut: dua orang menyelesaikan ML dengan data yang diterima daripada pakar teknikal, seorang menulis bahagian belakang dalam Python, saya menulis bahagian hadapan dalam React dan Antd, pereka bentuk melukis antara muka. Kami pun duduk supaya lebih senang untuk kami berkomunikasi sambil menyelesaikan masalah kami.

Hari pertama berlalu hampir tanpa disedari. Dalam komunikasi dengan pakar teknikal, ternyata mereka (Gazprom Neft) telah menyelesaikan masalah ini, mereka hanya tertanya-tanya sama ada ia boleh diselesaikan dengan lebih baik. Saya tidak akan mengatakan bahawa ini mengurangkan motivasi saya, tetapi ia meninggalkan sisa. Saya terkejut bahawa pada waktu malam moderator bahagian mencatat pasukan kerja (seperti yang mereka katakan untuk statistik); ini biasanya tidak diamalkan di hackathon. Menjelang pagi kami mempunyai prototaip bahagian hadapan, beberapa asas di bahagian belakang, dan penyelesaian ML pertama telah sedia. Secara umum, sudah ada sesuatu untuk ditunjukkan kepada pakar. Pada petang Sabtu, pereka bentuk jelas menarik lebih banyak antara muka daripada saya akan mempunyai masa untuk kod dan beralih kepada membuat pembentangan. Hari Sabtu telah diketepikan untuk pendaftaran rekod, dan pada waktu pagi, semua orang yang bekerja di dalam dewan telah ditendang keluar ke koridor, kemudian keluar masuk dari dewan dilakukan menggunakan lencana, dan tidak mungkin untuk pergi lagi. daripada sejam setiap hari. Saya tidak akan mengatakan bahawa ini menyebabkan kami sebarang kesulitan yang ketara; kebanyakan hari kami masih duduk dan bekerja. Makanan, sememangnya, sangat sedikit; untuk makan tengah hari kami menerima segelas sup, pai dan epal, tetapi sekali lagi ini tidak mengganggu kami, kami memberi tumpuan kepada sesuatu yang lain.

Mereka secara berkala memberikan lembu jantan merah, dua tin setiap tangan, yang sangat membantu. Resipi minuman tenaga + kopi, yang telah lama diuji di hackathon, membolehkan saya membuat kod sepanjang malam dan keesokan harinya, ceria seperti gelas. Pada hari kedua, kami, sebenarnya, hanya menambah ciri baharu pada aplikasi, mengira penunjuk kewangan, dan mula memaparkan graf mengenai statistik kecacatan di lebuh raya. Tiada semakan kod seperti itu dalam trek kami; pakar menilai penyelesaian masalah dalam gaya kaggle.com, berdasarkan ketepatan ramalan dan bahagian hadapan dinilai secara visual. Penyelesaian ML kami ternyata paling tepat, mungkin inilah yang membolehkan kami menjadi pemimpin. Pada malam dari Sabtu hingga Ahad kami bekerja sehingga 2 pagi, dan kemudian tidur di pangsapuri yang kami gunakan sebagai pangkalan. Kami tidur selama lebih kurang 5 jam, pada hari Ahad jam 9 pagi kami sudah berada di Ekspo Kazan. Saya tergesa-gesa menyiapkan sesuatu, tetapi kebanyakan masa dihabiskan untuk persiapan pra-pertahanan. Pra-pertahanan berlaku dalam 2 aliran, di hadapan dua pasukan pakar; kami diminta untuk bercakap terakhir, kerana kedua-dua pasukan pakar mahu mendengar kami. Kami mengambil ini sebagai petanda yang baik. Aplikasi itu ditunjukkan dari komputer riba saya, dari pelayan dev yang sedang berjalan; kami tidak mempunyai masa untuk menggunakan aplikasi dengan betul, bagaimanapun, semua orang melakukan perkara yang sama.

Secara umum, segala-galanya berjalan lancar, kami telah menunjukkan perkara di mana kami boleh menambah baik aplikasi kami, dan pada masa sebelum pembelaan kami juga cuba melaksanakan beberapa komen ini. Pertahanan juga berjalan dengan lancar. Berdasarkan keputusan pra-pertahanan, kami tahu bahawa kami berada di hadapan dari segi mata, kami mendahului dari segi ketepatan penyelesaian, kami mempunyai bahagian hadapan yang baik, reka bentuk yang baik dan, secara umum, kami mempunyai yang baik. perasaan. Satu lagi tanda yang menggalakkan ialah moderator gadis dari bahagian kami mengambil swafoto dengan kami sebelum memasuki dewan konsert, dan kemudian saya mengesyaki bahawa dia mungkin tahu sesuatu))). Tetapi kami tidak tahu markah kami selepas pertahanan, jadi masa sehingga pasukan kami diumumkan dari pentas berlalu sedikit tegang. Di atas pentas mereka menyerahkan kadbod dengan tulisan 500000 rubel dan setiap orang diberikan beg dengan mug dan bateri telefon bimbit. Kami tidak berjaya menikmati kemenangan dan meraikannya dengan betul; kami cepat-cepat makan malam dan menaiki teksi ke kereta api.

Kejayaan digital - bagaimana ia berlaku
Pasukan WAICO memenangi perlawanan akhir

Apabila kembali ke Moscow, wartawan dari NTV menemu bual kami. Kami membuat penggambaran selama sejam di tingkat dua kafe Kvartal 44 di Polyanka, tetapi berita itu hanya menunjukkan kira-kira 10 saat. Lagipun, kemajuan yang kukuh berbanding peringkat serantau.

Jika kita meringkaskan tanggapan umum Terobosan Digital, ia adalah seperti berikut. Banyak wang telah dibelanjakan untuk acara itu; Saya tidak pernah melihat hackathon sebesar itu sebelum ini. Tetapi saya tidak boleh mengatakan bahawa ini adalah wajar dan ia akan benar-benar membuahkan hasil. Sebahagian besar peserta yang datang ke Kazan hanyalah pengunjung parti yang tidak tahu melakukan apa-apa dengan tangan mereka sendiri, dan yang terpaksa membuat rekod. Saya tidak boleh mengatakan bahawa persaingan di peringkat akhir lebih tinggi daripada di peringkat serantau. Selain itu, nilai dan kegunaan tugasan beberapa lagu juga boleh dipersoalkan. Beberapa masalah telah lama diselesaikan di peringkat perindustrian. Ternyata kemudian, beberapa organisasi yang mengendalikan trek tidak berminat untuk menyelesaikannya. Dan cerita ini belum berakhir, pasukan terkemuka dari setiap trek telah dipilih untuk pra-pemecut, dan diandaikan bahawa mereka akan menjadi pemula BREAKTHROUGH. Tetapi saya belum bersedia untuk menulis tentang ini, kita akan lihat apa yang akan terjadi.

Sumber: www.habr.com

Tambah komen