Sou estudante do segundo ano da China e tenho paixão pelo desenvolvimento da Web. No meu primeiro ano, entrei em um clube técnico da faculdade. Esse clube foi minha introdução à programação e ao código aberto. No clube, conheci um grupo de parceiros com ideias semelhantes que adoram programar. Foi com eles que eu soube do Google Summer of Code no início de 2023. Esse programa global organizado pelo Google conecta estudantes a organizações de código aberto e os orienta a aproveitar o verão participando de atividades de código aberto.
Eu tentei e enviei minha inscrição. Felizmente, fui aceito. O verão que passei contribuindo para o repositório de amostras de extensões do Chrome foi memorável e precioso. Claro, também aprendi muito: comunicação eficaz, habilidades de programação e planejamento, entre outras coisas.
Como o GSoC 2023 está chegando ao fim, vale a pena compartilhar algumas das minhas experiências no GSoC. Esta postagem vai apresentar brevemente o processo geral do GSoC com base na minha participação. Espero que seja útil para você.
A história de como contribuí para o GSoC
Me inscrevi no projeto Chromium GSoC 2023, em que minha principal tarefa seria atualizar os exemplos de extensões do Chrome para funcionar no Manifest V3, incluindo alguns scripts e documentos relacionados.
No início
O GSoC foi anunciado em fevereiro de 2023, mas eu ainda não tinha certeza se queria me inscrever. Eu tinha algumas preocupações:
- Sou introvertido e o inglês não é meu idioma nativo, então a comunicação com os mentores pode ser um desafio.
- As comunidades do GSoC vêm de todo o mundo, e lidar com as diferenças de fuso horário pode ser difícil.
- O GSoC é um programa tão renomado que pode ser competitivo, o que faz minhas chances parecerem pequenas.
No entanto, posso dizer com segurança que nenhuma delas foi um problema.
Antes de contar minha história, gostaria de falar sobre algo que aconteceu comigo no início de 2022. Esse incidente também foi uma oportunidade para eu participar do GSoC. Eu queria migrar uma extensão de navegador baseada no Manifesto V2 para o Manifesto V3. Para concluir a migração, tive que consultar a documentação e entender cada mudança na API. Também precisei pesquisar se havia amostras relevantes para referência. Entender a nova API e transferir o código é bastante desafiador para mim.
Por isso, fiquei muito animado ao navegar pela lista de projetos do GSoC e ter a ideia relacionada ao MV3. Eu estava ansioso para contribuir com a melhoria dos exemplos de extensão do Manifest V3 e oferecer uma comodidade para futuros desenvolvedores.
Em março, enviei um breve e-mail a Oliver, um dos mentores responsáveis, sobre minha intenção:
A inscrição para participar do projeto GSoC
Olá,
Sou estudante de ciência da computação da China. Eu soube do projeto relacionado às amostras de extensões do Chrome no GSoC e queria melhorar as amostras do Manifest V3. Não tenho muita experiência anterior em trabalhar com exemplos de API, mas tenho experiência em desenvolvimento da Web e desenvolvimento de extensões MV3 (https://github.com/daidr/paimon-webext), o que me fez perceber a importância dos exemplos de API MV3. Gostaria de aprender e contribuir com isso. Ainda posso me inscrever para esse projeto?
Obrigado.
Pouco depois, recebi uma resposta de Oliver e Ali (o chefe de Oliver). Eles responderam às minhas perguntas e forneceram informações detalhadas sobre as regras e o cronograma específicos do GSoC. Eles também compartilharam muitos materiais de referência valiosos comigo.
Foi como uma injeção no braço, fortalecendo minha determinação de seguir em frente. Dar o primeiro passo é fundamental se você tem interesse em participar de eventos de código aberto futuros, seja o GSoC 2024 ou qualquer outro. Não hesite e tente.
Antes de me candidatar, verifiquei o código do projeto e li a documentação. Embora o GSoC ofereça um período de integração de quase um mês para os participantes se familiarizarem com a comunidade, o conhecimento prévio aliviou a pressão e me permitiu escrever uma proposta mais direcionada.
Tentei resolver os bugs iniciais fornecidos pelo projeto. Esses problemas eram relativamente simples e me ajudaram a entender rapidamente o projeto. Sou grata ao meu mentor, Oliver, embora ele não fosse meu mentor na época. Ele respondeu aos meus e-mails prontamente sempre que precisei de esclarecimentos e resolveu meus problemas com paciência. Se você tiver problemas ao escrever uma proposta, também poderá enviá-la ao seu mentor para saber se há áreas que precisam de melhoria.
Como ser aceito
Escrever uma proposta é a última coisa a fazer antes de se inscrever. A proposta deve incluir ideias, metas e uma programação, além do formulário de inscrição. Dependendo do projeto em que você quer trabalhar, talvez você receba um modelo extra para a proposta. Muitos exemplos de propostas prontas estão disponíveis on-line para referência.
Depois de concluir o rascunho, enviei para meu mentor para receber feedback. Depois que o aplicativo é enviado, há uma longa espera. No início de maio, recebi uma notificação de que fui aceita.
Trabalho com código
Durante o período inicial de vinculação, primeiro lidei com os bugs iniciais restantes e verifiquei se havia novas habilidades que eu precisava aprender. E passo o resto do tempo lendo a documentação.
Depois de uma conversa com meu mentor, ajustamos algumas metas para tornar o tempo alocado às tarefas mais razoável. Também discutimos a ideia de criar uma nova página em developer.chrome.com que liste todos os exemplos de API e forneça filtros básicos para ajudar os desenvolvedores a localizar os exemplos necessários rapidamente. Foi uma tarefa bastante complexa para mim, e levamos um tempo para definir o projeto e escrever um documento de requisitos do produto (PRD).
Para essa tarefa maior, decidimos que precisávamos de um script automatizado no repositório de amostras para percorrer o repositório e gerar um arquivo JSON com uma lista de amostras de extensões e as APIs usadas. O repositório de documentação de developer.chrome.com agora usa esse arquivo para criar uma página.
Primeiro, considerei usar o Babel para analisar a árvore de sintaxe abstrata do código de exemplo e identificar as APIs usadas. Depois de compartilhar essa ideia com meu mentor, descobri que ele já havia trabalhado em algo semelhante, confirmando a viabilidade dessa abordagem. Depois que terminei o código, meu mentor e outros membros da equipe dele deram sugestões valiosas, como prestar atenção à segmentação do código, padronizar o estilo do código e documentar as funções corretamente.
Depois de várias revisões grandes e pequenas, o código foi mesclado. Confira a conversa completa no GitHub ou a página ao vivo.
Conclusão
Se você me perguntar o que o GSoC me trouxe, em primeiro lugar, é claro, é entender o conhecimento relacionado às APIs de extensão do navegador. Ao ler a documentação e escrever novos exemplos, entendi em detalhes várias APIs de extensão de navegador.
Além disso, adquiri muitas habilidades que não tinha antes de ser aceito no GSoC, como seguir um processo abrangente de análise de código e criar um PRD. Também comecei a usar as ações do GitHub para automatizar fluxos de trabalho e aprendi a usar o Babel para percorrer todos os exemplos de extensão e rastrear as APIs usadas. Além disso, tive minha primeira experiência com o mecanismo de modelo Nunjucks. Essas habilidades são essenciais para a programação, e estou muito feliz por tê-las aprendido. Participar de comunidades de código aberto me traz alegria.
Este verão me trouxe muitas recordações inesquecíveis. A programação me deixa muito contente. Conheci mentores pacientes que me orientaram e ensinaram conhecimentos interessantes, enriquecendo minha experiência.
O conhecimento na área de ciência da computação é infinito. Quando me comparei com outras pessoas, percebi que meu conhecimento sobre código aberto era apenas a ponta do iceberg. No entanto, toda ajuda é válida. Acredito que o GSoC é um ótimo ponto de partida para participar do código aberto.
Também espero que minha experiência sirva de referência para futuras participações em atividades de código aberto.
Confira algumas sugestões para quem quer participar do Google Summer of Code:
- Escolha uma ideia que combine com você: na minha opinião, ao procurar ideias, o interesse deve ser sua prioridade, seguido pelas habilidades. Essa estratégia permite que você mantenha o entusiasmo durante todo o processo de contribuição.
- Qualidade em vez de quantidade: você pode enviar muitas propostas para aumentar as chances de ser aceito no GSoC. No entanto, acredito que a qualidade seja mais importante porque a energia humana é limitada. Concentre-se em duas ou três ideias, que podem ser mais úteis no final.
- Não tenha medo de coisas novas: não hesite em experimentar tecnologias com as quais você não trabalhou em um projeto. Você tem quase um mês de interação com a comunidade para se familiarizar com tecnologias desconhecidas e um verão inteiro para implementá-las. Vá em frente!
- Conheça o projeto com antecedência: por exemplo, leia a documentação de desenvolvimento, analise o histórico de confirmação e os problemas anteriores e leia as solicitações de pull anteriores. Ter uma compreensão geral do projeto com antecedência vai ajudar você a escrever uma proposta mais abrangente.
- Mantenha a comunicação: converse regularmente com seu mentor e não hesite em fazer perguntas quando enfrentar problemas, seja antes de se inscrever ou depois de ser aceito. A maioria dos mentores está disposta a ajudar você a resolver problemas. Dessa forma, eles também podem acompanhar seu progresso.
Agradecemos a atenção.