além desses aplicativos muito simples, olá mundo, que outros programas devo tentar desenvolver para aprender? estou entrando na uni ano que vem e me pergunto que tipo de programa será desenvolvido nesse ambiente.
isso não é realmente uma coisa específica da linguagem, mas se você quiser saber o que eu uso atualmente, principalmente
- windows: C # / WPF - estudei java / vb etc em poly, mas acho que c # é o caminho a percorrer, talvez até f #
- web: PHP / MySQL, Zend Framework / Doctrine, + HTML / CSS / JS (jQuery), é claro. olhando para experimentar o google app engine com python também.
por enquanto, estou pensando em
- listas de tarefas
- aplicativos que se integram à API, por exemplo. twitter / tumblr que eu uso
editor de texto - Atualmente, estou tentando desenvolver um editor de texto que use descontos e gere arquivos html para visualização (link para a entrada do blog). não é muito prático depois que comecei a desenvolvê-lo. porque ao editar não há formatação e no formato HTML, não consigo editar diretamente
software de blog (para web)
fonte
Atualmente estou escrevendo um regex analisador / correspondência e seu ensino me uma enorme quantidade sobre análise e máquinas de estados finitos e as próprias expressões regulares, entre outras coisas. A razão pela qual particularmente acho que um analisador de expressões regulares é útil é porque a linguagem regex é pequena e é bastante limitada no que pode fazer.
Outra coisa que fiz foi escrever um intérprete para Ook! , que é uma tarefa simples, mas mais uma vez, ensina uma tonelada.
fonte
O CodePlex.com lista muitos projetos de código aberto que foram criados usando C #. Você pode dar uma olhada no site para obter algumas idéias.
fonte
Você também pode olhar para o TopCoder . Este site tem ótimos algoritmos para aprender e eles conduzem a concorrência de tempos em tempos. A vantagem importante deste site é que você pode ver o código-fonte de outras pessoas para um problema específico e aprender mais.
E mesmo nos sites da SE, você deve consultar o CodeGolf .
fonte
(Esta é principalmente uma resposta mata, em vez de uma lista de projetos.)
Pense por que você está escrevendo o programa: será útil por si só ou será apenas para aprender um aspecto de uma ferramenta / API / linguagem?
No último caso, há um benefício para o programa resultante ser o mais curto possível e, em seguida, mantido apenas para referência.
No primeiro caso, por que não estender o aprendizado às boas práticas em todos os aspectos: suponha que você precisará mantê-lo e estendê-lo. Portanto, use controle de origem, rastreamento de problemas, refatoração, teste de unidade, ... pois todas essas coisas são pelo menos tão importantes para um desenvolvedor quanto conhecer outra API.
Que tal um integrador de feeds:
(A idéia é se concentrar na integração de diferentes implementações do mesmo paradigma: obtenção HTTP agendada de um feed RSS versus API do Twitter vs. ... todos os quais estão abaixo de um fluxo de entradas com registro de data e hora, fonte e conteúdo.
fonte
Eu aprendi muito trabalhando nesse tipo de meus projetos de hobby:
Sem mencionar - esse tipo de projeto é incrivelmente divertido de se trabalhar :-).
fonte
Programe um jogo pequeno: é divertido e você aprende muito.
Algumas ideias:
E quando estiver pronto, por que não implementar um site de recordes ...
fonte
Desenvolva um aplicativo de livro de receitas .
fonte
Spyrograph. Especifique as dimensões de um anel externo, um disco interno e um ponto de caneta ao longo de seu diâmetro. Traçar o caminho da caneta à medida que o disco interno rola ao longo do interior do anel externo.
Alterar fabricante. Custo e valor de entrada fornecidos ao caixa. Calcule o ideal para o caixa fazer alterações. Existe uma maneira lenta e rápida de resolver isso. Encontre o caminho mais rápido.
Simulação OO-Life. Procure o algoritmo de vida. Faça um estado inicial aleatório e produza as etapas subseqüentes, usando o design do OO para separar a lógica da apresentação. Dê saída de texto e saída gráfica.
Solucionador de missionários / canibais, procure este famoso quebra-cabeça. Escreva um programa para resolvê-lo usando as árvores de pesquisa. Compare o BFS ao DFS.
fonte