
Untuk memulai, saya akan memberi tahu Anda apa itu Google Code-in untuk mereka yang tidak tahu - ini adalah kontes online untuk siswa berusia 13-17, yang bertujuan untuk memperkenalkan mereka ke dunia Open Source, memberikan kesempatan untuk bekerja dengan organisasi yang mengembangkan perangkat lunak open source. Saya ambil bagian tahun ini dan menjadi salah satu pemenang.
Bagaimana kompetisi ini diadakan? 25 organisasi sumber terbuka dari kompetisi menciptakan tugas-tugas kecil (membutuhkan 3-5 jam untuk menyelesaikan) di mana para peserta harus bekerja. Tahun ini, organisasi semacam itu adalah: Wikimedia, Ubuntu, Zulip, FOSSASIA, Drupal, BRL-CAD, coala, Haiku, OSGeo, Apertium, Komunitas JBoss, dan lainnya. Mentor organisasi melakukan verifikasi dan, jika perlu, memberikan bantuan (setelah semua, bagi sebagian besar peserta, GCI adalah pengalaman pertama dengan proyek sumber terbuka). Kompetisi berlangsung 7 minggu (akhir November - awal Januari).
Hadiah tersedia. Untuk menyelesaikan 3 tugas, peserta menerima T-shirt. Setiap organisasi juga memilih 5 peserta terbaik untuk kontribusi keseluruhan terhadap proyek - mereka mendapatkan "hoodie", dan 2 terbaik dari mereka diberikan penghargaan dengan perjalanan ke markas Google (Mountain View, California, AS).
Publikasi pemenang tahun-tahun sebelumnya telah di Habré: Ilya Kovalevsky - 2012 (KDE) , Mikhail Ivchenko - 2013 (KDE) , Stanislav Krivenko - 2014 (Apertium)
Namun, kompetisi berubah dan semakin populer, jadi saya memutuskan untuk berbagi pengalaman berpartisipasi.

Jumlah kontestan bertambah setiap tahun - statistik dari Google Open Source Blog
Tahun ini, lebih dari 3,5 ribu siswa dari 78 negara ambil bagian (2,5 kali lebih banyak dari tahun lalu).

Usia Kontes - Statistik dari Google Open Source Blog
Pengalaman saya
Bagi saya, dunia open source selalu sangat menarik, tetapi saya tidak tahu harus mulai dari mana. Jadi ketika saya mengetahui tentang Google Code-in, saya memutuskan bahwa ini akan menjadi awal yang baik. Tugas dilakukan untuk Wikimedia. Mengapa tepatnya organisasi ini? Pertama, ini adalah proyek yang lebih besar daripada proyek lain, yang berarti itu harus menjadi hal yang paling menarik di sana. Selain itu, kita semua menggunakan Wikipedia - mengapa tidak membantunya dengan sesuatu sebagai balasannya?
Anda dapat membaca lebih lanjut tentang partisipasi organisasi ini di GCI pada halaman kontes di MediaWiki .
Wikimedia sedang mengembangkan MediaWiki (mesin yang digunakan Wikipedia) dan ekstensi serta alat lain yang terkait dengannya.
Misi
Langkah pertama di dunia open source sangat menarik! Sangat menyenangkan bertemu banyak orang yang menarik di IRC (digunakan oleh Wikimedia, dan juga di banyak organisasi lain untuk komunikasi) dan bekerja bersama mereka dalam tugas! Para mentor memberikan sambutan hangat dan membantu mengatur semua lingkungan pengembangan yang diperlukan, serta akses ke sistem tinjauan kode (Gerrit).
Melakukan tugas, saya dengan cepat jatuh ke "keadaan aliran": setelah saya menerima yang pertama, saya mengambil satu lagi, lalu yang lain dan yang lain - total 39 tugas. Sangat menyenangkan untuk melihat kapan tambalan Anda diterima oleh para pengembang, dan tugas ditandai telah selesai. Saya memastikan bahwa bahkan pemula seperti saya dapat melakukan bagian mereka.

Di Wikimedia, tugas mencakup penggunaan berbagai bahasa dan teknologi pemrograman. Bahasa utama di sini adalah PHP (karena ditulis di atasnya oleh MediaWiki), tetapi Python, C ++, C #, Java, NodeJS, Ruby, Objective-C, Lua juga digunakan. Itulah sebabnya GCI adalah kesempatan bagus untuk belajar sesuatu yang baru.
Saya melakukan berbagai tugas: dari yang sederhana (seperti memperbaiki bug sederhana, meningkatkan CI, meningkatkan cakupan unit test, refactoring kode lama) hingga yang lebih kompleks, termasuk menambahkan fungsi baru.
Sebagai contoh, salah satu tugas yang sulit, tetapi sangat menarik adalah untuk meningkatkan akurasi alat berdasarkan pembelajaran mesin untuk menentukan kualitas perubahan yang dilakukan pada artikel. Saya menambahkan pelacakan jumlah teks ke model tanpa referensi ke sumber (setelah semua, jika ada sangat sedikit atau tidak ada tautan ke sumber, apakah ini berarti sesuatu tentang kualitas artikel?).
Untuk fungsi baru, tes ditambahkan, dokumentasi ditulis. Peninjauan kode untuk setiap tambalan juga wajib (prosesnya cukup berharga dalam hal pengetahuan dan pengalaman yang diperoleh. Saya juga memeriksa beberapa tambalan dari peserta lain dalam kompetisi).
Secara umum, selama seluruh kontes Wikimedia, lebih dari 300 peserta, dipimpin oleh 50 mentor, menyelesaikan sekitar 760 tugas sambil mengerjakan: inti Mediawiki, ekstensi, API, Kiwix, dan aplikasi seluler Wikipedia, serta alat lainnya, seperti Pywikibot dan Huggle.
Contoh tugas
Daftar singkat tugas paling menarik yang saya kerjakan - dengan tautan ke tambalan, tugas di Wikimedia Phabricator, dan halaman tugas terkait di situs web GCI.
- Mengevaluasi kualitas pengeditan pada artikel ( tarik permintaan , Phabricator , GCI )
- Tambahkan dukungan untuk lebih banyak bahasa penulisan catatan ke ekstensi Skor ( patch , Phabricator , GCI )
- Tambahkan halaman layanan baru ke MediaWiki untuk mencari file yang tidak digunakan ( patch , Phabricator , GCI )
- Kami menambahkan kemampuan untuk bekerja dengan Gerrit di CLI untuk bekerja dengan layanan
git-repo
( permintaan tarik , Phabricator , GCI ) - Tambahkan
pytest-flask
untuk menguji layanan Wikilabels ( permintaan tarik , Phabricator , GCI ) - Perbaiki masalah keamanan kecil dengan parser MediaWiki ( patch , Phabricator , GCI )
- Tambahkan
VCR.py
untuk menjalankan tes Pywikibot offline ( patch , Phabricator , GCI ) - Tingkatkan cakupan dengan uji ekstensi Newsletter ( tambalan , Phabricator , GCI )
Ada tugas yang sangat sederhana yang dapat dengan mudah ditangani bahkan tanpa pengalaman sebelumnya dengan open source: nyalakan CI untuk salah satu ekstensi ( tambalan , tugas ), perbaiki bug kecil dalam desain halaman kesalahan ( tambalan , tugas ), tambahkan analisis statis ke CI Gaya vektor ( tambalan , tugas )
Dua bulan kompetisi dipenuhi dengan pekerjaan yang menarik dan banyak komunikasi dengan orang-orang dari seluruh dunia. Saya sangat bersemangat sehingga saya mulai sedikit bolos sekolah dan menghabiskan lebih sedikit waktu untuk mempersiapkan ujian. Mentor melakukan pekerjaan yang luar biasa, menulis tugas baru dan memeriksa tambalan kami bahkan untuk Natal dan Tahun Baru. Saya juga berhasil keluar dari kompetisi: Saya mengambil tugas sederhana dari pelacak bug ketika ada waktu luang (misalnya, sambil menunggu tugas untuk diverifikasi). Setelah kontes, ia juga terus memberikan kontribusi.
Setelah menyelesaikan GCI, saya menerima surat dari Google yang mengatakan bahwa Wikimedia memilih saya sebagai pemenang dan saya mendapatkan "hadiah utama" - kunjungan ke kantor pusat Google di Mountain View.
Naik
Perjalanan dijadwalkan untuk Juni - sehingga semua pemenang bisa mendapatkan visa dan tidak terganggu dari belajar di sekolah, mempersiapkan dan lulus ujian.

Perjalanan itu penuh dengan kesan yang tak terlupakan. Organisasi berada pada level tertinggi: setiap momen dipikirkan.
Pada hari pertama, ketika semua pemenang berkumpul di kantor Google di San Francisco, kami diberitahu tentang apa yang akan kami lakukan di hari-hari berikutnya dan sebuah pertandingan kecil diadakan untuk saling mengenal. Kami diberi banyak hadiah. Perjalanan ini juga dihadiri oleh mentor dari organisasi. Sangat menyenangkan bertemu seseorang dari orang-orang yang bekerja dengan saya beberapa bulan sebelumnya.
Pada hari kedua, kami pergi ke Kantor Pusat Google di Mountain View - "Googleplex". Upacara penghargaan diadakan dengan Direktur Sumber Terbuka Google Chris DiBona.

Setelah itu kami diberitahu banyak hal menarik tentang perusahaan, kami mengunjungi Pusat Pengunjung Google, tempat kami membeli oleh-oleh dan mengambil banyak foto.
Penyelenggara perjalanan juga menyiapkan kejutan yang sangat menyenangkan: mereka mengundang karyawan Google dari masing-masing negara pemenang - kami memiliki kesempatan untuk berbicara dan mengajukan pertanyaan. Selain itu, "googler" datang kepada kami dengan presentasi: salah satu karyawan berbicara tentang bagaimana ia menyelesaikan tugas kriptografi yang sulit, yang lain berbicara tentang proyek open source-nya, yang diciptakan sekitar 20% dari waktu kerja, SDM - tentang cara menulis yang baik Lanjutkan, Hubungan Pengembang - tentang berbagai program di Google untuk "tetap berhubungan" dengan pengembang.

Pembicara dari Waymo (anak perusahaan kendaraan tak berawak) bahkan tidak punya waktu untuk menjawab pertanyaan! Sangat menarik untuk mendengarkannya, terutama melihat mobil-mobil Waymo yang melewati jendela.
Keesokan harinya, kami berkeliling kota mengunjungi tempat-tempat wisata utama. Itu menyenangkan, mengambil banyak foto.

Tentu saja, kami mengunjungi Gerbang Emas.

Di malam hari, mereka berlayar di teluk San Francisco.
Pada hari terakhir, ada beberapa presentasi yang sangat menarik oleh karyawan Google. Kami diberitahu tentang Kubernetes dan menunjukkannya dalam pekerjaan.

Wadah sangat bermanfaat - tetapi itu tidak berarti bahwa wadah tersebut harus digunakan untuk semuanya.
Kami juga belajar tentang melisensikan perangkat lunak open source (sangat berguna, karena apa yang saya kesulitan coba cari tahu sebelumnya dijelaskan di sini dalam bahasa yang jelas). Ada juga presentasi yang menarik tentang Project Fi (operator jaringan virtual Google).
Selain itu, Wikimedia memiliki kantor di San Francisco. Jadi saya memutuskan untuk mengambil kesempatan mengunjunginya.

Perjalanan itu meninggalkan banyak kenangan indah. Saya sangat senang bertemu dengan tim Sumber Terbuka Google, mentor dan anggota GCI.
Kesimpulan

Statistik Negara - Google Open Source Blog
Sayangnya, tahun ini, selain saya, tidak ada pemenang dari Ukraina atau negara lain dari ruang pasca-Soviet. Saya berharap bahwa posting saya akan membantu menarik perhatian pada Google Code-in di antara pemirsa berbahasa Rusia.
Jika ada anak-anak sekolah di antara para pembaca (atau anak-anak mereka) - letakkan catatan di kalender untuk pertengahan Oktober - pada saat itu organisasi yang akan berpartisipasi dalam GCI 2018 sudah akan diketahui .. Kompetisi itu sendiri akan dimulai di suatu tempat pada akhir November. Saya berencana untuk menjadi mentor di Wikimedia - jika Anda memilih organisasi ini, tulis - saya akan dengan senang hati membantu dan menjawab pertanyaan.
Untuk siswa, saya sarankan memperhatikan Google Summer of Code (diselenggarakan oleh tim Google yang sama yang sedang mengerjakan GCI), yang merupakan peluang bagus untuk berkontribusi ke open source.

Pemenang, Orang Tua Mereka, dan Mentor - Foto oleh Stephanie Taylor, CC-BY-SA
Sebagai kesimpulan, saya ingin mengatakan bahwa open source memainkan peran penting dalam dunia modern pengembangan perangkat lunak. Fungsi dasar kerja Internet berkat Open Source (Linux, Apache, MySQL, Mozilla Firefox, Chromium, PHP, Python, NodeJS, Go ... - semua ini adalah open source), dan ini adalah masa depan.
Terima kasih dan permintaan tarik berhasil!