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?
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.
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.
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.
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.
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).
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.
Respostas:
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.
fonte
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.
fonte
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 .
fonte
Eu diria que qualquer projeto que atenda aos três requisitos a seguir:
fonte
fonte
Para iniciantes
Manipulação de String:
Base de dados:
Manipulação de número aleatório:
Matriz e gráficos básicos
fonte
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.
fonte