Código do Google em 2017

Google Code-in 2017: Wikimedia


Para começar, vou lhe dizer qual é o código do Google para quem não conhece - este é um concurso on-line para estudantes de 13 a 17 anos, que visa apresentá-los ao mundo do código aberto, oferecendo uma oportunidade de trabalhar com organizações que desenvolvem software de código aberto. Eu participei deste ano e me tornei um dos vencedores.


Como é realizada esta competição? 25 organizações de código aberto da competição criam pequenas tarefas (que precisam de 3 a 5 horas para serem concluídas) nas quais os participantes devem trabalhar. Este ano, essas organizações foram: Wikimedia, Ubuntu, Zulip, FOSSASIA, Drupal, BRL-CAD, coala, Haiku, OSGeo, Apertium, Comunidade JBoss e outras. Os mentores das organizações realizam a verificação e, se necessário, prestam assistência (no entanto, para a maioria dos participantes, a GCI é a primeira experiência em projetos de código aberto). A competição dura 7 semanas (final de novembro - início de janeiro).


Prêmios estão disponíveis. Para completar 3 tarefas, os participantes recebem uma camiseta. Cada organização também escolhe os 5 melhores participantes para a contribuição geral ao projeto - eles recebem um "capuz" e os 2 melhores são premiados com uma viagem à sede do Google (Mountain View, Califórnia, EUA).


As publicações dos vencedores dos anos anteriores já foram publicadas em Habré: Ilya Kovalevsky - 2012 (KDE) , Mikhail Ivchenko - 2013 (KDE) , Stanislav Krivenko - 2014 (Apertium)
No entanto, a concorrência está mudando e ganhando popularidade, então decidi compartilhar minha experiência de participação.


O número de participantes cresce anualmente
O número de concorrentes cresce a cada ano - estatísticas do Blog de código aberto do Google


Neste ano, mais de 3,5 mil estudantes de 78 países participaram (2,5 vezes mais que no ano passado).


Idade dos competidores
Idades do concurso - Estatísticas do Blog de código aberto do Google


Minha experiência


Para mim, o mundo do código aberto sempre foi muito interessante, mas eu não sabia por onde começar. Então, quando eu descobri o Google Code-in, decidi que seria um bom começo. Tarefas executadas para Wikimedia. Por que exatamente essa organização? Primeiro, este é um projeto maior do que outros, o que significa que deve ser a coisa mais interessante lá. Além disso, todos nós usamos a Wikipedia - por que não ajudá-la com algo em troca?
Você pode ler mais sobre a participação desta organização no GCI na página do concurso no MediaWiki .
A Wikimedia está desenvolvendo o MediaWiki (o mecanismo no qual a Wikipedia é executada) e outras extensões e ferramentas relacionadas a ela.


Missões


Os primeiros passos no mundo do código aberto foram emocionantes! Foi muito bom conhecer muitas pessoas interessantes no IRC (usadas pela Wikimedia, assim como em muitas outras organizações para comunicação) e trabalhar com elas em tarefas! Os mentores deram boas-vindas calorosas e ajudaram a configurar todos os ambientes de desenvolvimento necessários, bem como o acesso ao sistema de revisão de código (Gerrit).


Ao executar tarefas, rapidamente caí no "estado do fluxo": depois de receber a primeira, assumi mais uma, depois outra e outra - um total de 39 tarefas. É muito bom ver quando seu patch é aceito pelos desenvolvedores e a tarefa é marcada como concluída. Garanti que mesmo iniciantes como eu pudessem fazer a parte deles.


A tarefa é aceita!


Na Wikimedia, as tarefas incluíam o uso de várias linguagens e tecnologias de programação. A linguagem principal aqui é PHP (porque é escrita pelo MediaWiki), mas também são usados ​​Python, C ++, C #, Java, NodeJS, Ruby, Objective-C e Lua. É por isso que a GCI é uma boa oportunidade para aprender algo novo.
Realizei várias tarefas: desde as mais simples (como corrigir bugs simples, melhorar o IC, melhorar a cobertura dos testes de unidade, refatorar o código antigo) até as mais complexas, incluindo a adição de novas funções.
Por exemplo, uma das tarefas difíceis, mas muito interessantes, foi aumentar a precisão de uma ferramenta baseada no aprendizado de máquina para determinar a qualidade das alterações feitas no artigo. Adicionei rastreamento da quantidade de texto ao modelo sem referência às fontes (afinal, se houver muito pouco ou nenhum link para fontes, isso significa algo sobre a qualidade do artigo?).


Para novas funções, testes foram adicionados, documentação foi escrita. Uma revisão de código de cada patch também era obrigatória (o processo é bastante valioso em termos de conhecimento e experiência adquirida. Também verifiquei alguns patches de outros participantes da competição).


Em geral, durante todo o concurso da Wikimedia, mais de 300 participantes, liderados por 50 mentores, concluíram cerca de 760 tarefas enquanto trabalhavam: o núcleo do Mediawiki, suas extensões, APIs, aplicativos móveis Kiwix e Wikipedia, além de outras ferramentas, como Pywikibot e Huggle.


Exemplos de tarefas


Uma pequena lista das tarefas mais interessantes nas quais trabalhei - com links para o patch, tarefa no Wikimedia Phabricator e a página de tarefa correspondente no site da GCI.



Havia tarefas muito simples que podem ser facilmente tratadas, mesmo sem a experiência anterior com código aberto: ativar o IC para uma das extensões ( patch , tarefa ), corrigir um pequeno bug no design da página de erro ( patch , tarefa ), adicionar análise estática ao CI Estilo de vetor ( patch , tarefa )


Dois meses de competição foram preenchidos com um trabalho interessante e muita comunicação com pessoas de todo o mundo. Eu era tão apaixonado que comecei a pular um pouco a escola e passei menos tempo me preparando para os exames. Os mentores fizeram um trabalho tremendo, escrevendo novas tarefas e verificando nossos patches até no Natal e no Ano Novo. Também trabalhei fora da competição: realizei tarefas simples do rastreador de bugs quando havia tempo livre (por exemplo, enquanto aguardava a verificação de uma tarefa). Após o concurso, ele também continuou a dar uma contribuição.


Após concluir o GCI, recebi uma carta do Google dizendo que a Wikimedia me escolheu como vencedor e recebo um "grande prêmio" - uma visita à sede do Google em Mountain View.


Passeio


A viagem estava marcada para junho - para que todos os vencedores pudessem obter um visto e não se distraírem dos estudos na escola, preparação e aprovação nos exames.


Escritório do Google


A viagem foi cheia de impressões inesquecíveis. A organização está no mais alto nível: todo momento é pensado.


No primeiro dia, quando todos os vencedores se reuniram no escritório do Google em São Francisco, fomos informados sobre o que faríamos nos próximos dias e um pequeno jogo foi realizado para nos conhecermos. Recebemos um grande número de presentes. A viagem também contou com a presença de mentores de organizações. Foi incrivelmente bom conhecer alguém das pessoas com quem trabalhei tanto alguns meses antes.


No segundo dia, fomos à sede do Google em Mountain View - "Googleplex". Uma cerimônia de premiação foi realizada com o diretor de código aberto do Google, Chris DiBona.


Cerimônia de premiação


Depois disso, fomos informados de muitas coisas interessantes sobre a empresa, visitamos o Google Visitor Center, onde compramos lembranças e tiramos um grande número de fotos.


Os organizadores da viagem também prepararam uma surpresa muito agradável: convidaram um funcionário do Google do país de cada vencedor - tivemos a oportunidade de conversar e fazer perguntas. Além disso, os "googlers" vieram até nós com apresentações: um dos funcionários falou sobre como ele resolveu uma tarefa criptográfica difícil, outro falou sobre seu projeto de código aberto, criado em 20% do tempo de trabalho, RH - sobre como escrever bem Currículo, Relações com o desenvolvedor - sobre vários programas no Google para "manter contato" com os desenvolvedores.


Alto-falante de Waymo


O orador da Waymo (uma subsidiária de veículos não tripulados) nem teve tempo de responder a perguntas! Foi muito interessante ouvi-lo, especialmente olhando os carros Waymo passando pela janela.


No dia seguinte, viajamos pela cidade visitando as principais atrações. Foi divertido, tirou muitas fotos.


Golden Gate
É claro que visitamos o Golden Gate.


San francisco bay
À noite, eles navegaram na baía de São Francisco.


No último dia, houve algumas apresentações muito interessantes de funcionários do Google. Fomos informados sobre o Kubernetes e demonstramos isso no trabalho.


Apresentação sobre Kubernetes
Os contêineres são muito úteis - mas isso não significa que devam ser usados ​​para tudo.


Também aprendemos sobre o licenciamento de software de código aberto (muito útil, porque o que eu tive dificuldade em descobrir antes foi explicado aqui em uma linguagem clara). Também houve uma apresentação interessante sobre o Project Fi (operador de rede virtual do Google).


Além disso, a Wikimedia tem um escritório em San Francisco. Então eu decidi aproveitar a oportunidade para visitá-lo.


Escritório da Wikimedia


A viagem deixou muitas lembranças agradáveis. Fiquei muito feliz em me encontrar com a equipe do Google Open Source, mentores e membros do GCI.


Conclusão


Estatísticas do país
Estatísticas do país - Google Open Source Blog


Infelizmente, este ano, além de mim, não houve vencedores da Ucrânia ou de outros países do espaço pós-soviético. Espero que meu post ajude a chamar a atenção para o Google Code-in entre o público que fala russo.
Se houver estudantes entre os leitores (ou seus filhos) - coloque uma nota no calendário de meados de outubro - naquele momento, as organizações que participarão do GCI 2018 já serão conhecidas.A competição começará em algum lugar no final de novembro. Pretendo ser um mentor da Wikimedia - se você escolher esta organização, escreva - terei prazer em ajudar e responder a perguntas.


Para os alunos, recomendo prestar atenção no Google Summer of Code (organizado pela mesma equipe do Google que trabalha na GCI), que é uma boa oportunidade para contribuir com o código aberto.


Foto geral
Vencedores, seus pais e mentores - Fotos por Stephanie Taylor, CC-BY-SA


Concluindo, quero dizer que o código aberto desempenha um papel crucial no mundo moderno do desenvolvimento de software. As funções fundamentais da Internet funcionam graças ao código aberto (Linux, Apache, MySQL, Mozilla Firefox, Chromium, PHP, Python, NodeJS, Go ... - tudo isso é código aberto) e é o futuro.


Obrigado e solicitações pull bem-sucedidas!

Source: https://habr.com/ru/post/pt417233/


All Articles