Sugestões para programas a serem desenvolvidos para aprendizado [fechado]


12

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)

Respostas:


18

Dê uma olhada no Project Euler. Não há nada parecido para aprimorar suas habilidades básicas de programação.


2
+1. A vantagem do Project Euler é que você pode implementar as soluções em qualquer idioma e compará-las / contrastá-las.
Thomas Owens

1
+1 - Ótima resposta! Você abriu uma academia para nossos cérebros.
Karthik Sreenivasan

6

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.


+1 A SC Kleene não foi a inventora da regex sem nenhum motivo.
ixtmixilix

2

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.


2

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 .


1

(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:

  • Fontes RSS / Atom
  • Manipule o twitter usando sua API (e faça a redução do link)
  • Com base na fonte, permite pós-processamento conectável (por exemplo, baixar mp3s de um feed de podcast)

(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.


obrigado. Eu acho que isso está na linha do que eu estou pensando, integre com serviços da web. Também estou pensando em aplicativos ABT aplicativos diferentes que usam recursos diferentes do idioma. por exemplo. com o editor de texto, eu tentei integrar fita WPF
Jiew Meng

1

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

  • Jogos simples (clone de cobra, clone de Tic Tac Toe, etc.)
  • Protetores de tela

Sem mencionar - esse tipo de projeto é incrivelmente divertido de se trabalhar :-).


1

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

Algumas ideias:

  • Campo Minado
  • Tetris
  • Um jogo de cartas
  • Serpente

E quando estiver pronto, por que não implementar um site de recordes ...



0

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.