Dijital atılım - nasıl oldu

Bu kazandığım ilk hackathon değil, ilk hackathon da değil yazıyorumve bu, Habré'nin “Dijital Atılım”a adanan ilk gönderisi değil. Ama yazmadan edemedim. Deneyimimin paylaşılacak kadar eşsiz olduğunu düşünüyorum. Muhtemelen bu hackathon'da farklı takımların bir parçası olarak bölgesel etabı ve finalleri kazanan tek kişi benim. Bunun nasıl olduğunu bilmek ister misin? Kedi'ye hoş geldiniz.

Bölgesel aşama (Moskova, 27 - 28 Temmuz 2019).

İlk kez bu yılın Mart-Nisan aylarında bir yerde “Dijital Atılım” reklamını gördüm. Doğal olarak bu kadar büyük bir hackathonu kaçıramadım ve siteye kayıt oldum. Orada yarışmanın koşullarını ve programını öğrendim. Hackathon'a katılabilmek için 16 Mayıs'ta başlayan çevrimiçi testi geçmeniz gerektiği ortaya çıktı. Ve belki de bana testin başladığını hatırlatan bir mektup almadığım için bunu rahatlıkla unutabilirdim. Ve şunu söylemeliyim ki, gelecekte CPU'dan bana gelen TÜM MEKTUPLAR sürekli olarak spam klasörüne düştü. Her seferinde “sakıncalı değil” butonuna basmama rağmen. Böyle bir sonuca nasıl ulaştıklarını bilmiyorum, MailGun'da posta göndermek benim için işe yaramadı. Ve adamların isnotspam.com gibi hizmetlerin varlığından hiç haberi yok gibi görünüyor. Ama konuyu saptırıyoruz.

Toplantılardan birinde testin başlayacağı hatırlatıldı başlangıç ​​kulübüOrada takımın oluşumunu da tartıştık. Test listesini açtıktan sonra önce Javascript testine oturdum. Genel olarak görevler aşağı yukarı yeterliydi (konsolda 1 + '1' eklerseniz sonucun ne olacağı gibi). Ancak deneyimlerime göre, çok büyük çekinceleri olan bir işe veya ekibe işe alım yaparken bu tür testleri kullanırdım. Gerçek şu ki, gerçek işte, bir programcı kodda hızlı bir şekilde hata ayıklama yeteneği sayesinde bu tür şeylerle nadiren karşılaşır - bu bilgi hiçbir şekilde birbiriyle ilişkili değildir ve röportajlar için bu tür şeyleri oldukça kolay bir şekilde eğitebilirsiniz (kendimden biliyorum). Genel olarak testi oldukça hızlı tamamladım, bazı durumlarda konsoldan kendimi kontrol ettim. Python testinde görevler yaklaşık olarak aynı türdendi, konsolda da kendimi test ettim ve Python'da hiçbir zaman profesyonel olarak programlamamış olmama rağmen JS'den daha fazla puan aldığım için şaşırdım. Daha sonra katılımcılarla yaptığım görüşmelerde, güçlü programcıların testlerde ne kadar düşük puan aldığına, bazı kişilerin CPU seçim sürecini geçemediklerini söyleyen mektuplar aldıklarına ve daha sonra yine de bu sürece davet edildiklerine dair hikayeler duydum. Bu testlerin yaratıcılarının büyük olasılıkla hakkında hiçbir şey duymadıkları açıktır. test teorisine güvenilirlikleri ve geçerliliği ne de bunların nasıl test edileceği hakkında ve hackathon'un ana amacını hesaba katmasak bile testlerle ilgili fikir en başından beri başarısız olurdu. Daha sonra öğrendiğime göre hacklemenin asıl amacı Guinness rekoru kırmaktı ve testler bununla çelişiyordu.

Testleri geçtikten bir süre sonra beni aradılar, katılıp katılmayacağımı sordular, detayları açıkladılar ve takım seçmek için sohbete nasıl gireceğimi söylediler. Kısa süre sonra sohbete girdim ve kendim hakkında kısaca yazdım. Sohbette tam bir saçmalık dönüyordu; organizatörler BT ile hiçbir ilgisi olmayan pek çok rastgele kişiye reklam veriyor gibi görünüyordu. "Steve Jobs düzeyindeki" çok sayıda ürün yöneticisi (bir katılımcının beyanından alınan gerçek bir ifade) kendileri hakkında hikayeler yayınladı ve normal geliştiriciler görünür bile değildi. Ancak şanslıydım ve kısa sürede üç deneyimli JS programcısına katıldım. Zaten hackathon'da tanıştık ve ardından ilham alması ve organizasyonel sorunları çözmesi için ekibe bir kız ekledik. Nedenini hatırlamıyorum ama “Siber Güvenlik Eğitimi” konusunu alıp “Bilim ve Eğitim 2” parkuruna dahil ettik. İlk defa kendimi 4 güçlü programcıdan oluşan bir takımın içinde buldum ve ilk defa böyle bir kompozisyonda kazanmanın ne kadar kolay olduğunu hissettim. Hazırlıksız geldik, öğle yemeğine kadar tartıştık ve ne yapacağımıza karar veremedik: mobil uygulama mı yoksa web uygulaması mı? Başka bir durumda bunun bir başarısızlık olduğunu düşünürdüm. Bizim için en önemli şey rakiplerimizden nasıl daha iyi olacağımızı anlamaktı çünkü etrafımızda testler, siber güvenlik oyunları ve benzeri şeyler yapan çok sayıda ekip vardı. Buna baktıktan ve eğitim programlarını ve uygulamalarını Google'da araştırdıktan sonra, ana farkımızın yangın tatbikatı olacağına karar verdik. Uygulamayı ilginç bulduğumuz bir dizi özelliği seçtik (hacker veritabanlarına karşı e-posta ve şifre doğrulama ile kayıt, kimlik avı e-postaları gönderme (tanınmış bankalardan mektuplar şeklinde), sohbette sosyal mühendislik eğitimi). Ne yaptığımıza karar verdikten ve nasıl öne çıkabileceğimizi anladıktan sonra hızla tam teşekküllü bir web uygulaması yazdık ve ben de sıra dışı bir arka uç geliştirici rolünü oynadım. Böylece parkurumuzu güvenle kazandık ve diğer üç takımla Kazan'daki finallere katılmaya hak kazandık. Daha sonra Kazan'da final seçiminin kurgu olduğunu öğrendim, orada elemeyi geçemeyen takımlardan pek çok tanıdık yüzle tanıştım. Hatta Kanal 1'den gazetecilerle röportaj bile yaptık. Ancak ondan gelen raporda uygulamamız sadece 1 saniye gösterildi.

Dijital atılım - nasıl oldu
Bölgesel etabı kazandığım karla kaplı takım

Final (Kazan, 27 – 29 Eylül 2019)

Ama sonra başarısızlıklar başladı. Snowed ekibinin tüm programcıları yaklaşık bir ay içinde birbiri ardına Kazan'a finallere gidemeyeceklerini bildirdiler. Ve yeni bir takım bulmayı düşündüm. Öncelikle Russian Hack Team'in genel sohbetinde bir arama yaptım ve orada çok sayıda yanıt ve ekiplere katılma daveti almama rağmen hiçbiri dikkatimi çekmedi. Ürün, mobil geliştirici, front-end, masaldan çıkmış kuğu, kerevit ve turna balığı gibi dengesiz ekipler vardı. Teknoloji açısından bana uygun olmayan ekipler de oldu (örneğin Flutter'da mobil uygulamanın geliştirilmesiyle). Son olarak, değersiz olduğunu düşündüğüm bir sohbette (bölgesel aşama için takım seçiminin yapıldığı aynı VKontakte), takım için bir ön oyuncu arayışıyla ilgili bir reklam yayınlandı ve ben tamamen rastgele yazdım. Adamların Skoltech'te yüksek lisans öğrencileri olduğu ortaya çıktı ve hemen tanışmayı ve tanışmayı teklif etti. Bu hoşuma gitti; birbirlerini bir hackathon'da hemen tanımayı tercih eden takımlar genellikle motivasyon eksikliğinden dolayı beni endişelendiriyor. Pyatnitskaya'daki Rake'te buluştuk. Adamlar akıllı, motive, kendilerine ve zafere güvenen görünüyordu ve ben de kararı orada verdim. Finalde hangi parkurların ve görevlerin olacağını henüz bilmiyorduk ama Makine Öğrenimi ile ilgili bir şey seçeceğimizi varsaymıştık. Ve benim görevim bu konuyla ilgili bir admin yazmak olacak o yüzden bunun için önceden antd-admin'e dayalı bir şablon hazırladım.
Organizatörlerin pahasına Kazan'a bedava gittim. Bilet alımı ve genel olarak finalin organizasyonu ile ilgili sohbetlerde ve bloglarda zaten pek çok memnuniyetsizliğin dile getirildiğini söylemeliyim, hepsini tekrar anlatmayacağım.

Kazan Expo'ya varıp kayıt yaptırdıktan (rozet almakta biraz zorlandım) ve kahvaltı ettikten sonra parkur seçmeye gittik. Yetkililerin konuştuğu büyük açılışa sadece 10 dakika kadar gittik, aslında tercih ettiğimiz parçalar zaten vardı ama detaylarla ilgileniyorduk. Örneğin 18 numaralı parçada (Rostelecom), kısa açıklamada bu olmasa da bir mobil uygulama geliştirmenin gerekli olduğu ortaya çıktı. Boru hatlarının 8 numaralı defektoskopisi, Gazprom Neft PJSC ve Rusya Federasyonu Muhasebe Odası 13 numaralı perinatal merkezler arasında ana seçimi yaptık. Her iki durumda da Veri Bilimine ihtiyaç vardı ve her iki durumda da web eklenebilirdi. 13 numaralı yolda Veri Bilimi görevinin oldukça zayıf olması, Rosstat'ı ayrıştırmanın gerekli olması ve bir yönetici paneline ihtiyaç olup olmadığının net olmaması nedeniyle durdurulduk. Ve görevin değeri şüpheliydi. Sonunda, ekip olarak 8. piste daha uygun olduğumuza karar verdik, özellikle de oyuncuların benzer sorunları çözme konusunda zaten deneyimi olduğu için. Uygulamamızın son kullanıcı tarafından kullanılacağı senaryoyu düşünerek başladık. İki tür kullanıcımız olacağı ortaya çıktı: teknik bilgilerle ilgilenen teknisyenler ve finansal göstergelere ihtiyaç duyan yöneticiler. Senaryo fikri ortaya çıktığında ön uçta ne yapılacağı, tasarımcının ne çizmesi gerektiği, arka uçta hangi yöntemlere ihtiyaç duyulduğu netleşti, görevleri dağıtmak mümkün hale geldi. Ekipteki sorumluluklar şu şekilde dağıtıldı: iki kişi ML'yi teknik uzmanlardan alınan verilerle çözdü, bir kişi arka ucu Python'da yazdı, ön ucu React ve Antd'de yazdım, tasarımcı arayüzleri çizdi. Hatta sorunlarımızı çözerken iletişim kurmamız daha kolay olsun diye oturduk.

İlk gün neredeyse fark edilmeden geçti. Teknik uzmanlarla iletişim halindeyken, onların (Gazprom Neft) bu sorunu zaten çözmüş oldukları ortaya çıktı, sadece sorunun daha iyi çözülüp çözülemeyeceğini merak ediyorlardı. Bu durum motivasyonumu düşürdü diyemem ama iz bıraktı. Geceleri bölüm moderatörlerinin çalışma ekiplerine dikkat çekmesine şaşırdım (istatistik için söyledikleri gibi); bu genellikle hackathon'larda uygulanmaz. Sabah ön tarafın bir prototipini, arka tarafın bazı temellerini ve ilk makine öğrenimi çözümünü hazır hale getirdik. Genel olarak uzmanlara gösterecek bir şey zaten vardı. Cumartesi öğleden sonra tasarımcı açıkça benim kodlamaya zamanım olmadığından daha fazla arayüz çizdi ve bir sunum oluşturmaya geçti. Cumartesi günü plak kaydına ayrılarak sabah salonda çalışan herkes koridora atıldı, ardından salona giriş-çıkışlar yaka kartıyla gerçekleştirildi ve bir daha dışarı çıkmamak mümkün oldu. günde bir saatten fazla. Bunun bize önemli bir rahatsızlık verdiğini söylemeyeceğim; günün büyük bir kısmında hâlâ oturup çalışıyorduk. Yemekler gerçekten çok azdı, öğle yemeğinde bir bardak et suyu, bir turta ve bir elma yedik ama yine bu da bizi pek üzmedi, başka bir şeye odaklanmıştık.

Periyodik olarak her el için iki kutu olmak üzere red bull dağıtıyorlardı ki bu çok yardımcı oldu. Uzun zamandır hackathon'larda test edilen enerji içeceği + kahve tarifi, bütün gece ve ertesi gün bardak gibi neşeli kod yazmamı sağladı. İkinci gün aslında uygulamaya yeni özellikler ekledik, finansal göstergeleri hesapladık, karayollarındaki kusur istatistiklerine dayalı grafikler göstermeye başladık. Bizim parkurumuzda böyle bir kod incelemesi yoktu, uzmanlar tahminin doğruluğuna göre sorunun çözümünü kaggle.com tarzında değerlendirdi ve ön uç görsel olarak değerlendirildi. ML çözümümüzün en doğru olduğu ortaya çıktı, belki de lider olmamızı sağlayan da buydu. Cumartesiyi pazara bağlayan gece saat 2'ye kadar çalıştık ve ardından üs olarak kullandığımız dairede uyuduk. Yaklaşık 5 saat uyuduk, pazar günü sabah 9'da zaten Kazan Expo'daydık. Aceleyle bir şeyler hazırladım ama zamanın çoğu savunma öncesi hazırlıklarla geçti. Ön savunmalar 2 kol halinde, iki uzman ekibin önünde yapıldı; her iki uzman ekibi de bizi dinlemek istediğinden en son konuşmamız istendi. Bunu iyiye işaret olarak algıladık. Uygulama, dizüstü bilgisayarımdan, çalışan bir geliştirme sunucusundan gösterildi; uygulamayı düzgün bir şekilde dağıtmak için zamanımız yoktu, ancak herkes aynısını yaptı.

Genel olarak her şey yolunda gitti, uygulamamızı geliştirebileceğimiz noktalar bize gösterildi ve hatta savunma öncesi dönemde bu yorumlardan bazılarını uygulamaya çalıştık. Savunma da şaşırtıcı derecede sorunsuz ilerledi. Ön savunmanın sonuçlarına göre puan olarak önde olduğumuzu, çözüm doğruluğu açısından önde olduğumuzu, iyi bir ön yüze, iyi bir tasarıma sahip olduğumuzu ve genel olarak iyi bir performans sergilediğimizi biliyorduk. duygular. Bir başka olumlu işaret de bizim bölümümüzdeki kız moderatörün konser salonuna girmeden önce bizimle bir selfie çekmesiydi ve sonra onun bir şeyler bildiğinden şüphelendim))). Ancak savunmadan sonra skorumuzu bilemediğimizden takımımızın sahneden anons edilmesine kadar geçen süre biraz gergin geçti. Sahnede üzerinde 500000 ruble yazan bir karton dağıtıldı ve herkese içinde kupa ve cep telefonu pili bulunan bir çanta verildi. Zaferin tadını çıkaramadık ve doğru dürüst kutlayamadık; hemen yemek yedik ve taksiye binip trene bindik.

Dijital atılım - nasıl oldu
WAICO takımı finali kazandı

Moskova'ya döndükten sonra NTV'den gazeteciler bizimle röportaj yaptı. Polyanka'daki Kvartal 44 kafenin ikinci katında tam bir saat çekim yaptık, ancak haberler yalnızca 10 saniye kadar gösterdi, sonuçta bölgesel sahneye göre güçlü bir ilerleme.

Dijital Atılımın genel izlenimlerini özetleyecek olursak bunlar şu şekildedir. Etkinliğe çok para harcandı, daha önce hiç bu ölçekte hackathon görmemiştim. Ancak bunun haklı olduğunu ve gerçekten işe yarayacağını söyleyemem. Kazan'a gelen katılımcıların önemli bir kısmı, kendi elleriyle hiçbir şey yapmayı bilmeyen ve rekor kırmak zorunda kalan parti müdavimlerinden oluşuyordu. Finallerdeki rekabetin bölgesel aşamadan daha yüksek olduğunu söyleyemem. Ayrıca bazı yolların görevlerinin değeri ve kullanışlılığı da sorgulanabilir. Endüstriyel düzeyde bazı sorunlar uzun zamandır çözülmüştür. Daha sonra ortaya çıktığı gibi, izleri yürüten bazı kuruluşlar bunları çözmekle ilgilenmiyordu. Ve bu hikaye henüz bitmedi, her pistin önde gelen takımları ön hızlandırıcı için seçildi ve bunların Çığır Açan startuplar olacağı varsayılıyor. Ama henüz bunun hakkında yazmaya hazır değilim, bakalım ne olacak.

Kaynak: habr.com

Yorum ekle