Envolvendo-se com um projeto de código aberto [fechado]


19

Estou entrando no meu último ano em engenharia da computação e consegui um estágio para este verão e outono. Como não vou fazer a lição de casa, adoraria aproveitar esta oportunidade para me envolver com um projeto de código aberto de algum tipo. Eu sou proficiente em C, C ++, Java e Python. Também estou razoavelmente familiarizado com o Linux, usando-o no meu laptop no momento e todas as minhas aulas neste semestre focadas nele.

Eu estava pensando em dar uma olhada no Android ou Ubuntu, mas no passado eu me senti um pouco sobrecarregado. Alguém tem algum conselho? Interessado no que seria um bom projeto para trabalhar, por onde começar e se poderei realmente contribuir muito.

E no final, com que frequência as mudanças das pessoas são realmente aceitas? Com que frequência eu escreveria código apenas para rejeitá-lo?

tl: dr Procurando mais experiência em programação, contribuindo para um projeto de código aberto. Novo na cena precisa de conselhos.


Eu diria que pousar aqui certamente vale a pena!
squillman

6
Parece uma boa idéia, mas verifique as regras de "luar" na empresa em que você está realizando seu estágio. Alguns lugares, especialmente se forem lojas de software, serão muito restritivos ao que você pode fazer - mesmo no seu tempo livre e no seu próprio PC.
28411 Steve

1
talvez considere aprender uma nova linguagem de programação mais declarativa do que as mencionadas. Como haskell ou scala. Em seguida, trabalhe em um projeto de código aberto.
mrsteve

Respostas:


15

+1 a Steve Haigh por mencionar o luar.

Se você trabalha em uma loja de software, pode se encontrar em uma situação em que seu empregador reivindica a propriedade do software em que trabalhou no seu próprio tempo. Antes de começar, consulte seu empregador para esclarecer a política de luar na sua empresa.

Um bom lugar para começar pode ser o OpenHatch . Eles são um site dedicado a ajudar as pessoas a se envolverem em projetos de código aberto. Eles poderão fornecer uma lista de bugs "pequenos" para iniciar qualquer um dos projetos que se inscreveram com eles, além de ajudar você a entrar em contato com outros colaboradores que desejam orientá-lo no site. projeto e / ou idioma de sua escolha.

A aceitação upstream de seus patches depende quase sempre da qualidade do patch e se ele tiver casos de teste que o acompanham. De fato, muitos projetos não aceitam patches, a menos que incluam um teste para verificar o patch.
Como a qualidade do seu código é algo que será julgado subjetivamente, esteja preparado para trabalhar com críticas construtivas dos mantenedores upstream para melhorar seu código.


1
A política deles sobre o luar é algo que eu nem sequer considerara. Também OpenHatch.org parece bastante legal. Inscreva-se agora para conferir.
Tarmon

2
Outra observação sobre o luar, se você perguntar ao seu empregador, poderá fazê-lo por e-mail para a trilha em papel. Caso contrário, o que os impedirá de mudar de idéia mais tarde e dizer que nunca renunciaram à reivindicação de seu projeto? Apenas um pensamento.
Jeff Welling

Não acredito que essa pergunta foi encerrada, principalmente porque ela tem muitas "respostas" ótimas, baseadas em opiniões ou não!
Dave Kanter

7

Como gerente de um projeto de código aberto (FireBreath), sugiro que você simplesmente encontre um projeto que use ou que lhe interesse e procure maneiras de ajudar. Há muitas coisas que você pode fazer sem escrever nenhum código. Em nosso projeto, precisamos de pessoas para ajudar:

  • Testar e relatar bugs
  • Atualizar documentação no site
  • Ajude a escrever ferramentas secundárias
  • Fique na sala de IRC e ajude novos usuários
  • Crie plugins de exemplo usando o FireBreath para novos usuários verem

É claro que eles são específicos para o meu projeto (e você pode ajudar! ;-) mas todos os projetos têm coisas assim que os novos usuários podem contribuir. Minha contribuição mais recente para outro projeto foi adicionar uma ferramenta para um melhor gerenciamento das permissões do repositório de curingas no gitolite. Fique com projetos que você achar interessante ou que possa usar!

Boa sorte!


Eu nem pensei em coisas assim. Obrigado pelas sugestões. Vou procurar um projeto mais recente que precise desses tipos de coisas.
Andrew

+1 para documentação. Como coordenador do SUSHI do SharePoint, uma das coisas mais tediosas e difíceis de escrever são os documentos, mas também são os mais importantes para os novos usuários. Ajudar lá também o familiarizará com os recursos do projeto e como ele funciona.
Ryan Hayes

3

Não posso dizer qual projeto você deve escolher - isso depende de você, na verdade. No entanto, posso lhe dizer como se envolver: se você sente paixão por algum projeto, ou seja, usa o aplicativo há um bom tempo (para o sistema operacional pode não ser tão fácil), sempre pode enviar patches com alterações sugeridas (aprimoramentos, correções de bugs) e solicite revisão / integração aos proprietários do projeto.
Isso é bastante fácil com projetos no GitHub - basta criar seu patch e enviar uma solicitação de recebimento.
De qualquer forma, os patches mais valiosos que você enviar, mais provável é que eles o recebam na equipe principal.


2

Se você não é especialista em um idioma específico, ainda existem muitas atividades que são altamente valorizadas. Eles incluem testes, elaboração de tutoriais, documentação de API, criação do site dos projetos etc. Se você tiver um interesse especial, encontre um projeto nessa área e contribua com o domínio. (Por exemplo, temos uma comunidade ativa de projetos de SO de química).


2

Para participar de projetos de código aberto, dê uma olhada no OpenHatch - essa é sua missão inteira:

um projeto de código aberto com o objetivo de diminuir as barreiras à entrada na contribuição de código aberto e aumentar a diversidade. Alcançamos esses objetivos por meio de várias iniciativas ...


2
você se importaria de explicar mais sobre o que faz e por que o recomenda como resposta à pergunta? "Respostas apenas para links" não são bem-vindas no Stack Exchange
gnat

1

Por exemplo, a Mozilla está sempre procurando programadores C ++ para desenvolver e testar seus projetos. É impressionante para um novato fazer o download da enorme base de códigos e passar horas construindo-a. Depois, leva cerca de seis meses em que você passa em média mais de 10 horas por semana para se familiarizar e entender um bug ou defeito ou algo assim. Então, em breve você deverá entender como reproduzir, isolar, corrigir, testar, testar a regressão, aplicar o patch. À medida que você faz isso mais, você pode obter acesso direto de gravação à base de código, supervisionar um recurso ou mais. Acredito que isso seja verdade para todos os projetos maduros, com muitas pessoas trabalhando nele.

Por outro lado, há muitos projetos morrendo porque não há ninguém para desenvolvê-los. Pode ser difícil encontrar pessoas que possam ajudá-lo ou documentação nesses tipos.

Para encontrar um equilíbrio entre esses extremos, você pode encontrar um programa que precisa usar com frequência ou todos os dias. Continue usando-o o suficiente para maximizar seu conjunto de recursos em breve. Talvez desenvolva algum tipo de afinidade para usá-lo sobre outras opções. Em seguida, você pode enviar uma solicitação de recurso ou assumi-la, pois é provável que você tenha mais entendimento do recurso que propõe. Na superfície, essa opção faz com que você sinta que nunca vai maximizar os recursos de um programa. Se você permanecer nele por tempo suficiente, será necessário que o programa faça mais do que aquilo que ele realmente pode fazer. Pode ser uma correção de segurança / privacidade, uma coisa sutil ou uma melhoria da usabilidade.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.