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.
fonte
Respostas:
+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.
fonte
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:
É 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!
fonte
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.
fonte
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).
fonte
Para participar de projetos de código aberto, dê uma olhada no OpenHatch - essa é sua missão inteira:
fonte
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.
fonte