ti-enxame.com

Sugestões para programas para desenvolver para aprender

eu me pergunto à parte daqueles aplicativos muito simples do Hello World, que outros programas devo tentar desenvolver para a aprendizagem. Eu estou digitando uni no próximo ano e me pergunto que tipo de programas serão desenvolvidos nesse meio ambiente.

isso não é realmente uma coisa específica de linguagem, mas se você quiser saber o que eu uso atualmente principalmente

  • windows: C #/WPF - eu estudei Java/VB etc em poli, mas acho que C # é o caminho para ir, talvez até f #
  • web: PHP/MySQL, ZEND Framework/Doutrina, + HTML/CSS/JS (jQuery), é claro. Olhando para tentar o Google App Engine com python também.

por enquanto, estou pensando em

  • tODO LISTAS.
  • aplicativos que se integram com API, por exemplo. Twitter/Tumblr que eu uso
  • editor de texto - estou atualmente tentando desenvolver um editor de texto que use marcação e gera 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)

12
Jiew Meng

Dê uma olhada Project Euler. Não há mais nada como ele para afiar suas habilidades de programação fundamental.

18
Robert Harvey

Atualmente estou escrevendo um analisador/match regex e seu ensinamento me um enorme Quantia sobre a análise e as máquinas do estado finito e as próprias expressões regulares, entre outras coisas. A razão pela qual eu particularmente acho que um analisador regex é ú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-lhe uma tonelada.

6
Chinmay Kanchi

O CODEPLEX.com lista muitos projetos de código aberto que foram feitos usando C #. Você poderia dar uma olhada no site para obter algumas ideias.

2
Mamta D

Você também pode olhar topcoder . Este site tem grandes algoritmos para aprender e eles conduzem a concorrência de tempos em tempos. A vantagem importante deste site é que você pode ver outros código-fonte para um determinado problema e pode aprender mais.

E mesmo nos sites SE, você tem que olhar CODEGOLF .

2
Ant's

Eu aprendi muito trabalhando neste tipo de meus projetos de hobby:

  • Jogos simples (clone de cobra, clone de toe tic tac, etc.)
  • Economias de tela

Sem mencionar - esses tipos de projetos são incrivelmente divertidos de trabalhar :-).

1
sabiland

Programe um pequeno jogo: é divertido e você aprende muito.

Algumas ideias:

  • Minesweeper.
  • Tetris.
  • Um jogo de cartas
  • Cobra

E quando é feito, por que não implementar um site de highscore ...

1
Carra

(Este é principalmente uma resposta de Mata, em vez de uma lista de projetos.)

Pense por que você está escrevendo o programa: Será útil por si só, ou é puramente aprender um aspecto de uma ferramenta/API/idioma?

Neste último caso, há um benefício para o programa resultante sendo o mais curto possível, e depois apenas mantido para referência.

No primeiro caso, por que não prolongar a aprendizagem a boas práticas em todos os aspectos: suponha que você precise manter e estendê-lo. Portanto, use o controle de origem, o rastreamento de problemas, a refatoração, o teste unitário, ... como todas essas coisas são pelo menos tão importantes para um desenvolvedor como sabendo outra API.


Que tal um integrador de alimentação:

  • Fontes RSS/Átomo
  • Lidar com o Twitter usando sua API (e fazer ligação un-encurtamento)
  • Com base na fonte Permitir pós-processamento plugado (por exemplo, baixar MP3s de um feed de podcast)

(A ideia é se concentrar em integrar diferentes implementações do mesmo paradigma: HTTP programado Get de um feed RSS vs. API do Twitter vs. ... Todos estão abaixo de um fluxo de entradas com o carimbo de tempo, fonte e conteúdo.

1
Richard

Spyrograph. Especifique as dimensões de um anel externo, um disco interno e ponto de caneta ao longo de seu diâmetro. Lote o caminho da caneta enquanto o disco interno rola ao longo do interior do anel externo.

Alterar fabricante. Custo de entrada e quantidade dada ao caixa. Calcule o ideal para o caixa fazer a mudança. Há uma maneira lenta e uma maneira rápida de resolver isso. Encontre o caminho rápido.

Simulação do OO-Life. Olhe para o algoritmo de vida. Faça o estado inicial aleatório e as etapas subseqüentes de saída, usando OO design para dissipar a lógica da apresentação. Dê saída de texto e saída gráfica.

Solver missionário/canibal, procure este famosa quebra-cabeça. Escreva um programa para resolvê-lo usando árvores de pesquisa. Compare BFS para DFS.

0
Aaron Anodide
0
Jim G.