Pergunta

Quando você está iniciando um projeto de programação pessoal, qual é o seu primeiro passo?Estou tentando iniciar um projeto que é apenas uma ideia no momento.Eu recebo muitos deles e mergulho direto no código e depois de um tempo perco completamente o interesse ou simplesmente esqueço o projeto.

Quando você está começando, qual é o seu primeiro passo?você planeja o projeto?fazer um diagrama?escrever algum código no papel?Como você inicia um projeto de uma maneira que sabe que terá sucesso?

Foi útil?

Solução

A única coisa que funciona para mim:Crie a menor implementação possível que seja de alguma forma utilizável e depois use-a.

Outras dicas

De 7 hábitos de pessoas altamente eficazes, Hábito 2:Comece com o fim em mente.

Com qualquer projeto você precisa de um objetivo claro, um ponto onde você possa dizer “Terminei”.Um resultado claro lhe dará orientação.Depois de fazer isso, você pode começar a planejar como chegar lá.O tamanho e a complexidade do projeto determinarão quantos detalhes seu plano precisa, mas em geral você desejará sentir seu progresso em relação ao seu plano com bastante regularidade.

Minha próxima etapa é esboçar um design dos módulos que serão necessários e as APIs entre cada módulo.Se as APIs estiverem limpas, os módulos provavelmente estão corretos.Então começo a implementar os módulos, testando conforme vou avançando.

Passo muito tempo pensando nos vários aspectos do projeto antes mesmo de tocar no teclado.

Examino o que aprendi em projetos anteriores e anoto em várias categorias ('técnico', 'promoção', etc.)

Projeto pessoal ou não, sempre configuro o controle do código-fonte.Git, Mercurial ou Bazaar são exemplos de ferramentas de controle de código fonte que não são intrusivas porque não é necessário configurar um servidor mestre.Basta digitar um comando simples para criar o projeto, fazer check-in de seus arquivos e confirmar.No futuro, quando você bagunçar um de seus arquivos, você poderá ‘desfazer’

Eu também configurei um sistema de ingressos leves para acompanhar 1.issões e 2.IDEAS por "leve", quero dizer que, se mantiver dois documentos de texto com essas listas funcionarem para você, isso é bom o suficiente.

Espero que isto ajude.

Concordo com o conselho já dado de:

  • Planejando uma implementação mínima que faça algo útil como um primeiro lançamento completo.
  • Tenha metas concretas sobre o que você deseja alcançar para ter algo com que comparar seu progresso.

Eu também recomendaria começar com um design leve de você em geral arquitetura para que você possa ter um roteiro de como construir seu produto.

Acho difícil começar a construir algo quando não tenho uma ideia clara de como deveria ficar, pelo menos num primeiro nível de decomposição.Pense no que você precisa além de funcionalidade:alto desempenho?, cenários de extensibilidade?, quais?, objetivos de usabilidade?, alta escalabilidade?, facilidade de implantação e instalação?, etc.Pergunte a si mesmo:Que componentes terei que construir para alcançar essas qualidades arquitetônicas?

E não me interpretem mal, sou um forte defensor do desenvolvimento ágil de software.Você não precisa gastar muito tempo projetando sua arquitetura (porque ela certamente terá que evoluir à medida que você constrói e obter feedback sobre o que funciona e o que não funciona), mas ter um plano de como construir seu produto com base em sua arquitetura deve ser útil para planejar seu progresso e estabelecendo metas realistas.

Defina o objetivo do projeto.Parece que você está olhando quase exclusivamente para a solução e não para o problema.

Um programa não é útil para você ou qualquer outra pessoa, a menos que resolva algum problema.Escrever código para avançar é ótimo, mas você parece perder o interesse e o foco depois de começar - porque está olhando para o código, não para o problema.

Passe algum tempo considerando o que o levou a escrever este código.Pense em como outras pessoas podem descobrir a mesma necessidade, que caminho pode levá-las à mesma frustração que você trabalhou para resolver.

Então, encontre algumas dessas pessoas e ofereça sua solução (parcial), e você gerará interesse e sugestões entre todas elas.

ISSO irá mantê-lo em seu projeto.O interesse mútuo, o compartilhamento e até mesmo as divergências – são as pessoas que precisam de software!Não crie soluções (software) procurando um problema (pessoas).Você começou com VOCÊ, com sua necessidade ou desejo, mas focou no código, e perdeu o ímpeto do projeto.

Programar é muito mais divertido quando você está resolvendo problemas.Mas você precisa manter o problema diante de você.Compartilhar o problema constrói uma comunidade.É disso que se trata, não é?

Para meus próprios projetos pessoais, eu simplesmente mergulho de cabeça.É claro que nenhum deles ainda foi suficientemente grande para exigir qualquer tipo de planejamento prévio.Se este for um projeto sério ou de escala relativamente grande, é sempre uma boa ideia detalhar pelo menos o que cada parte do programa precisa fazer e uma visão de alto nível de como o farão.

Assim como os demais, meus projetos pessoais sempre contam com:

  • Um objetivo final
  • Uma lista de tarefas
  • Pequenas unidades utilizáveis
  • Fonte de controle

Como motivador adicional, tento usar uma tecnologia que nunca usei antes.Aprender algo novo geralmente se torna o maior motivador para mim.

Fácil – não inicie todos os projetos nos quais você provavelmente perderá o interesse.Gaste mais tempo para ter certeza de que deseja se comprometer com uma ideia antes de iniciar qualquer trabalho.

Depende do projeto – qual é o seu tamanho?

Se eu estiver escrevendo o próximo clone do Bloco de Notas, posso simplesmente mergulhar, se eu quisesse lançar meu próprio sistema operacional, seria necessário muito mais trabalho sem codificação.

Gosto de fazer muitos diagramas, a ferramenta que utilizo para a maior parte do desenvolvimento é papel A4 limpo e lápis.Desenhe a interface do usuário, o fluxo de trabalho, as classes básicas e como você armazenará os dados - então a codificação é apenas uma maneira legível por computador de escrever o que você já desenhou.

Perna de controle de origem, por exemplo.O SVN consiste em algumas teclas/cliques, portanto a sobrecarga é baixa e o benefício é alto, é útil tentar coisas e simplesmente reverter para um estado anterior se não funcionarem.

Em seguida, basta fazer o protótipo mais básico que funcionará - uma vez que algo realmente está funcionando, é muito mais fácil ficar entusiasmado e adicionar mais.Se for opressor, descobrirei que acho que o problema está resolvido na minha cabeça, e isso é o suficiente.

Primeiro planeje o esboço básico da aplicação final.Recursos mais importantes, GUI básica, fluxo do programa, etc.Em seguida, refine isso para não assumir muito no início, remova recursos desnecessários e adicione o que mais quiser na primeira versão.Em seguida, use esse esboço para iniciar uma lista de tarefas para criar a menor versão funcional possível do seu aplicativo.Então é muito mais fácil adicionar recursos extras e torná-lo totalmente funcional.

Gosto da resposta de Maximillian.para expandir um pouco, meus projetos pessoais são desenvolvidos para resolver algo em que já estou trabalhando.Então, quando eu me cansar de repetir o trabalho, criarei um protótipo de uma solução.e então use-o.Se for semelhante o suficiente a um dos meus projetos anteriores, pegarei emprestado o máximo de código que puder e tentarei melhorar o nível do meu trabalho, tornando-o mais profissional.

O uso do controle de origem pelo Fusion também é importante.Leva 2 minutos para instalar o SVN.

Se você quiser transformá-lo em um projeto público de código aberto, Produzindo software de código aberto deve ser uma boa leitura (disponível online e impressa).

Se o seu projeto pessoal for semelhante a um projeto de código aberto existente, você deve considerar contribuir para esse projeto.Algumas pequenas contribuições (correções de bugs etc.) são mais valiosas do que meio projeto acabado.

Todas as opções acima, mas comece a consolidar o plano.

Vá para algumas ferramentas SmartSheet - mesmo se você estiver trabalhando por conta própria, você deve definir alguns estágios e data de Yed - e a grafidade em www.yworks.com

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top