Desde que você é um estudante, eu vou assumir que você quer dizer aluno grande e não profissional grande. O último requer considerações adicionais de negócios e colaboração. Acabei de iniciar um novo projeto na semana passada, então o processo está fresco em minha mente.
A primeira coisa que faço é pesquisar soluções e bibliotecas existentes . Não gosto de reinventar a roda sempre que possível. Esta pesquisa também é um grande fator na escolha de um idioma para o projeto. Alguns idiomas têm um código existente melhor para determinadas tarefas.
A próxima coisa que faço é criar uma pasta e colocá-la sob controle de origem . Isso é tão simples quanto git init .
hoje em dia.
Em seguida, recebo o "olá mundo" funcionando . Isso me permite saber que meu ambiente de desenvolvimento está configurado corretamente.
Em seguida, recebo "olá mundo" para bibliotecas de terceiros funcionando . Este é o mínimo necessário para mostrar que estou vinculando e usando a biblioteca corretamente. Para uma biblioteca de banco de dados, é conectar e executar uma consulta simples, por exemplo. Para um kit de ferramentas da GUI, ele exibe uma janela.
Em seguida, configurei scripts de construção e estruturas de teste . Isso é form ou makefiles ou o que for, e é muito mais fácil de configurar quando seu projeto ainda é pequeno.
Em seguida, crio estruturas de dados . Também chamada de camada "modelo". Essa é a parte que armazena tudo o que seu programa precisa lembrar para realizar seu trabalho. Eu faço muito design em papel e depois adiciono stubs. Essa parte do design geralmente é a mais fácil. Por exemplo, um programa de xadrez precisará de objetos para armazenar a grade do jogo, os jogadores, as peças, as seqüências de movimentos etc.
Neste ponto, eu tenho uma boa base para um programa e geralmente é bastante óbvio qual será o próximo passo para esse projeto em particular. Depois, dou apenas um pequeno passo de cada vez, com um código que funciona até certo ponto ao longo do caminho.