
Para comenzar, les diré cuál es el Código de Google para aquellos que no saben: este es un concurso en línea para estudiantes de 13 a 17 años de edad, cuyo objetivo es presentarles el mundo del Código Abierto, brindando la oportunidad de trabajar con organizaciones que desarrollan software de código abierto. Participé este año y me convertí en uno de los ganadores.
¿Cómo se celebra esta competencia? 25 organizaciones de código abierto de la competencia crean tareas pequeñas (que requieren 3-5 horas para completar) en las que los participantes deben trabajar. Este año, tales organizaciones fueron: Wikimedia, Ubuntu, Zulip, FOSSASIA, Drupal, BRL-CAD, coala, Haiku, OSGeo, Apertium, JBoss Community y otras. Los mentores de las organizaciones llevan a cabo la verificación y, si es necesario, brindan asistencia (después de todo, para la mayoría de los participantes, GCI es la primera experiencia con proyectos de código abierto). La competencia dura 7 semanas (finales de noviembre - principios de enero).
Los premios están disponibles. Por completar 3 tareas, los participantes reciben una camiseta. Cada organización también elige a los 5 mejores participantes para la contribución general al proyecto: reciben una "sudadera con capucha", y los 2 mejores reciben un viaje a la sede de Google (Mountain View, California, EE. UU.).
Las publicaciones de los ganadores de años anteriores ya han estado en Habré: Ilya Kovalevsky - 2012 (KDE) , Mikhail Ivchenko - 2013 (KDE) , Stanislav Krivenko - 2014 (Apertium)
Sin embargo, la competencia está cambiando y ganando popularidad, así que decidí compartir mi experiencia de participación.

El número de concursantes crece cada año: estadísticas del blog de código abierto de Google
Este año, participaron más de 3.5 mil estudiantes de 78 países (2.5 veces más que el año pasado).

Edades del concurso: estadísticas del blog de código abierto de Google
Mi experiencia
Para mí, el mundo del código abierto siempre ha sido muy interesante, pero no sabía por dónde empezar. Entonces, cuando me enteré de Google Code-in, decidí que este sería un buen comienzo. Tareas realizadas para Wikimedia. ¿Por qué exactamente esta organización? En primer lugar, este es un proyecto más grande que otros proyectos, lo que significa que debería ser lo más interesante allí. Además, todos usamos Wikipedia, ¿por qué no ayudarla con algo a cambio?
Puede leer más sobre la participación de esta organización en el GCI en la página del concurso en MediaWiki .
Wikimedia está desarrollando MediaWiki (el motor en el que se ejecuta Wikipedia) y otras extensiones y herramientas relacionadas con él.
Misiones
¡Los primeros pasos en el mundo del código abierto fueron emocionantes! ¡Fue muy agradable conocer a muchas personas interesantes en IRC (utilizado por Wikimedia, así como en muchas otras organizaciones para la comunicación) y trabajar con ellos en tareas! Los mentores dieron una cálida bienvenida y ayudaron a configurar todos los entornos de desarrollo necesarios, así como el acceso al sistema de revisión de código (Gerrit).
Realizando tareas, rápidamente caí en el "estado del flujo": después de recibir el primero, tomé uno más, luego otro y otro, un total de 39 tareas. Es muy agradable ver cuándo los desarrolladores aceptan su parche y la tarea se marca como completada. Me aseguré de que incluso los principiantes como yo puedan hacer su parte.

En Wikimedia, las tareas incluyeron el uso de varios lenguajes y tecnologías de programación. El lenguaje principal aquí es PHP (porque está escrito en él por MediaWiki), pero también se usan Python, C ++, C #, Java, NodeJS, Ruby, Objective-C, Lua. Es por eso que GCI es una buena oportunidad para aprender algo nuevo.
Realicé varias tareas: desde simples (como corregir errores simples, mejorar CI, mejorar la cobertura de pruebas unitarias, refactorizar código antiguo) hasta otras más complejas, incluida la adición de nuevas funciones.
Por ejemplo, una de las tareas difíciles pero muy interesantes fue aumentar la precisión de una herramienta basada en el aprendizaje automático para determinar la calidad de los cambios realizados en el artículo. Agregué el seguimiento de la cantidad de texto al modelo sin referencia a las fuentes (después de todo, si hay muy pocos o ningún enlace a las fuentes, ¿significa esto algo sobre la calidad del artículo?).
Para nuevas funciones, se agregaron pruebas, se escribió la documentación. La revisión del código de cada parche también era obligatoria (el proceso es bastante valioso en términos del conocimiento y la experiencia adquirida. También verifiqué algunos parches de otros participantes en la competencia).
En general, durante todo el concurso de Wikimedia, más de 300 participantes, liderados por 50 mentores, completaron alrededor de 760 tareas mientras trabajaban en: el núcleo de Mediawiki, sus extensiones, API, aplicaciones móviles Kiwix y Wikipedia, así como otras herramientas, como Pywikibot y Huggle.
Ejemplos de tareas.
Una breve lista de las tareas más interesantes en las que trabajé, con enlaces al parche, tarea en Wikimedia Phabricator y la página de tareas correspondiente en el sitio web de GCI.
- Evaluar la calidad de las ediciones del artículo ( solicitud de extracción , Phabricator , GCI )
- Agregue soporte para más idiomas de escritura de notas a la extensión Score ( parche , Phabricator , GCI )
- Agregue una nueva página de servicio a MediaWiki para buscar archivos no utilizados ( parche , Phabricator , GCI )
- Agregamos la capacidad de trabajar con Gerrit en la CLI para trabajar con los servicios
git-repo
( solicitud de extracción , Phabricator , GCI ) - Agregue
pytest-flask
para probar el servicio Wikilabels ( solicitud de extracción , Phabricator , GCI ) - Solucione problemas de seguridad menores con el analizador MediaWiki ( parche , Phabricator , GCI )
- Agregue
VCR.py
para ejecutar las pruebas de Pywikibot fuera de línea ( parche , Phabricator , GCI ) - Aumente la cobertura con las pruebas de extensión del boletín ( parche , Phabricator , GCI )
Hubo tareas muy simples que se pueden abordar fácilmente incluso sin experiencia previa con código abierto: active CI para una de las extensiones ( parche , tarea ), solucione un pequeño error en el diseño de la página de error ( parche , tarea ), agregue análisis estático al CI Estilo vectorial ( parche , tarea )
Dos meses de la competencia estuvieron llenos de trabajo interesante y mucha comunicación con personas de todo el mundo. Estaba tan apasionado que comencé a faltar un poco a la escuela y pasé menos tiempo preparándome para los exámenes. Los mentores hicieron un gran trabajo, escribiendo nuevas tareas y revisando nuestros parches incluso para Navidad y Año Nuevo. También trabajé fuera de la competencia: tomé tareas simples del rastreador de errores cuando había tiempo libre (por ejemplo, mientras esperaba que se verificara una tarea). Después del concurso, también continuó haciendo una contribución.
Después de completar el GCI, recibí una carta de Google que decía que Wikimedia me eligió como el ganador y recibí un "gran premio": una visita a la sede de Google en Mountain View.
Paseo
El viaje estaba programado para junio, para que todos los ganadores pudieran obtener una visa y no distraerse de estudiar en la escuela, preparar y aprobar exámenes.

El viaje estuvo lleno de impresiones inolvidables. La organización está al más alto nivel: cada momento está pensado.
El primer día, cuando todos los ganadores se reunieron en la oficina de Google en San Francisco, nos informaron sobre lo que haremos en los próximos días y se realizó un pequeño juego para conocernos. Nos dieron una gran cantidad de regalos. Al viaje también asistieron mentores de organizaciones. Fue increíblemente agradable conocer a alguien de las personas con las que trabajé mucho unos meses antes.
El segundo día, fuimos a la sede de Google en Mountain View - "Googleplex". Se realizó una ceremonia de premiación con el director de Google Open Source, Chris DiBona.

Después de eso, nos contaron muchas cosas interesantes sobre la compañía, visitamos el Centro de visitantes de Google, donde compramos recuerdos y tomamos una gran cantidad de fotos.
Los organizadores del viaje también prepararon una sorpresa muy agradable: invitaron a un empleado de Google del país de cada ganador; tuvimos la oportunidad de hablar y hacer preguntas. Además, los "googlers" vinieron a nosotros con presentaciones: uno de los empleados habló sobre cómo resolvió una tarea criptográfica difícil, otro habló sobre su proyecto de código abierto, que se creó en algún momento en el 20% del tiempo de trabajo, RRHH, sobre cómo escribir bien Currículum vitae, Relaciones con desarrolladores: acerca de varios programas en Google para "mantenerse en contacto" con los desarrolladores.

¡El orador de Waymo (una subsidiaria de vehículos no tripulados) ni siquiera tuvo tiempo de responder preguntas! Fue muy interesante escucharlo, especialmente mirando los autos Waymo que pasaban por la ventana.
Al día siguiente, recorrimos la ciudad visitando las principales atracciones. Fue divertido, tomó muchas fotos.

Por supuesto, visitamos el Golden Gate.

Por la noche, navegaron en la bahía de San Francisco.
El último día, hubo algunas presentaciones muy interesantes de los empleados de Google. Nos contaron sobre Kubernetes y lo demostramos en el trabajo.

Los contenedores son muy útiles, pero eso no significa que deban usarse para todo.
También aprendimos sobre la licencia de software de código abierto (muy útil, porque lo que tuve dificultades para resolver antes se explicó aquí en un lenguaje claro). También hubo una presentación interesante sobre Project Fi (operador de red virtual de Google).
Además, Wikimedia tiene una oficina en San Francisco. Entonces decidí aprovechar la oportunidad para visitarlo.

El viaje dejó muchos recuerdos agradables. Estaba muy feliz de reunirme con el equipo de Google Open Source, mentores y miembros de GCI.
Conclusión

Estadísticas del país - Blog de código abierto de Google
Desafortunadamente, este año, aparte de mí, no hubo ganadores de Ucrania u otros países del espacio postsoviético. Espero que mi publicación ayude a llamar la atención sobre Google Code-in entre la audiencia de habla rusa.
Si hay niños en edad escolar entre los lectores (o sus hijos), ponga una nota en el calendario para mediados de octubre, en ese momento las organizaciones que participarán en el GCI 2018 ya se conocerán. La competencia comenzará en algún lugar a fines de noviembre. Planeo ser un mentor en Wikimedia. Si elige esta organización, escriba. Estaré encantado de ayudarlo y responder preguntas.
Para los estudiantes, recomiendo prestar atención al Google Summer of Code (organizado por el mismo equipo de Google que está trabajando en GCI), que es una buena oportunidad para contribuir al código abierto.

Ganadores, sus padres y mentores - Foto de Stephanie Taylor, CC-BY-SA
En conclusión, quiero decir que el código abierto juega un papel crucial en el mundo moderno del desarrollo de software. Las funciones fundamentales de Internet funcionan gracias a Open Source (Linux, Apache, MySQL, Mozilla Firefox, Chromium, PHP, Python, NodeJS, Go ... - todo esto es de código abierto), y es el futuro.
¡Gracias y solicitudes de extracción exitosas!