Sugestões de projetos faça você mesmo para aprimorar as habilidades de programação ou aprender um novo idioma [fechado]

10

Como a melhor maneira de aprender é trabalhar em projetos, quais são alguns bons softwares para tentar se aprimorar com o objetivo de aprimorar certas habilidades de programação ou aprender um novo idioma?

zhenka
fonte
3
Clone este site.

Respostas:

11

Encontrei os seguintes programas para começar bem com novos idiomas:

Jogo da vida de Conway

Fácil de implementar. Dá um bom começo com o uso simples de classes de contêiner. Não precisa necessariamente de gráficos para obter resultados.

Além disso, você pode escrever uma versão 3D e usar um mecanismo de jogo como saída (por exemplo, algo simples como o Panda3D)

Solucionador de Sudoku

Um pouco mais complexo. A complexidade pode ser ajustada às suas necessidades. Apenas cancele os números e pare quando isso não for mais possível ou continue e implemente uma árvore de pesquisa para resolver problemas mais complexos. Problemas e soluções para o Sudokus em todos os níveis de dificuldade para testar seu programa estão disponíveis na Web em abundância. O mesmo para o material sobre possíveis estratégias.

Projeto Euler

Problemas em todos os níveis de dificuldade que você pode desejar. E compare suas soluções com as de programadores experientes em todas as principais linguagens de programação.

thorsten müller
fonte
Você pode tentar implementar o Jogo da Vida em várias plataformas. Eu fiz isso na tela HTML5 / Javascript. Foi INCRÍVEL!
mauris
5

Não sei ao certo o que você quer dizer com 'quais são alguns bons softwares para experimentar ...', mas posso recomendar o livro 'sete idiomas em sete semanas'

É um bom ponto de partida para experimentar novos idiomas.

Michiel Overeem
fonte
Acabei de adquirir este livro, e a resolução do meu ano novo é segui-lo.
Tangurena
5

Basta acessar qualquer um dos sites a seguir e verificar se você está enfrentando os desafios de codificação que eles apresentam: SPOJ , TOPCODER etc.

A maioria desses sites oferece a opção de codificar em várias linguagens de programação, para que você possa usar a que você está familiarizado.

E se você é um mestre no seu jogo, sempre há ICPC .

Fanatic23
fonte
3

Eu diria que qualquer projeto que atenda aos três requisitos a seguir:

  • Algo que você acha interessante
  • Algo em que você pode ter uma noção do progresso muito rápido (por exemplo, tente evitar algo como criar um jogo em 3D)
  • Algo que se encaixa no paradigma de programação dessa linguagem. Por exemplo, se é uma linguagem funcional, então um projeto onde você faria alguma manipulação de dados, matemática ou algo assim.
Pete
fonte
2
Seu primeiro ponto é a chave. Se você não estiver interessado no projeto, será mais difícil manter o progresso e o entusiasmo que você precisa para aprender.
ChrisF
2
  • Vá para Sourceforge.net ou GitHub, pesquise projetos nesse idioma e veja quais os intrigam.
  • Pense nas bibliotecas com as quais você trabalha com mais frequência na "vida real". Você escreve muitos serviços da web? Tente escrever uma estrutura de serviços da web para o novo idioma. Faz muita programação gráfica? Tente escrever um mecanismo de renderização simples. Faça análise de dados? Implemente um pacote de estatísticas básicas. Etc., etc. Isso tem o benefício de que você já verá o utilitário (porque usa algo semelhante no dia a dia) e já terá algum conhecimento de domínio. Esses tipos de projetos também tendem a ser aqueles em que você pode gastar uma quantidade infinita de tempo aprimorando (ou seja, aprendendo mais coisas), que talvez queira abrir código-fonte eventualmente e que o manterá envolvido no idioma se eles se tornarem um passatempo em andamento; A desvantagem disso é que ele pode nunca parecer realmente "terminado" e que "
  • Dependendo do domínio de desenvolvimento, pode haver livros especificamente destinados a guiá-lo nos projetos. Isso tende a ser especialmente verdadeiro nas plataformas de desenvolvimento de jogos (iOS, XNA).
Arkaaito
fonte
1

Para iniciantes

Manipulação de String:

  • Jogo da forca.

Base de dados:

  • lista de afazeres
  • algum tipo de treino ou diário pessoal

Manipulação de número aleatório:

  • Gire a roda

Matriz e gráficos básicos

  • Tetris
zhenka
fonte
1

Qualquer coisa que você gosta o suficiente para continuar fazendo. O máximo de aprendizado é realizado nos últimos 1%, geralmente ignorados em um projeto paralelo, mas é uma parte muito importante de um produto de trabalho.

Como resultado, é uma escolha muito pessoal qual poderia ser o projeto. É por isso que existem tantos projetos de SO excelentes por aí, e por que todo mundo diz que é tão importante quando está no seu currículo / currículo: essa pessoa trabalhou duro e aprendeu muito trabalhando nos últimos 1% para criar utilizável por outros e desfruta do que eles fazem.

Steven Evers
fonte