Uma lista de projetos práticos de construção de conhecimento. Como os projetos visam aumentar sua base de conhecimento, eles são um pouco desafiadores. No entanto, existem alguns fáceis também. Muitos deles são dignos o suficiente para mostrar em seu portfólio.
Os projetos são divididos em várias categorias e marcados com alguns idiomas e estruturas/ferramentas sugeridas (ainda estou trabalhando nesta parte) para iniciar você.
Para começar com as idéias do projeto:
Projetos gerais da Web, desde a criação de um site simples até a criação de ferramentas para tarefas de rede complexas e difíceis, como farejando de pacotes.
Construir bots automatizados é algo que você realmente deseja experimentar em algum momento de sua carreira/vida.
Sugestões adequadas de software ou aplicativos que você pode até acabar usando em sua vida diária, como um editor de texto simples ou um jogador de música personalizado.
Projetos que lidam principalmente com inteligência artificial ou aprendizado de máquina. Ideal para mostrar em seu portfólio, se você estiver pensando em solicitar quaisquer empregos ou programas relacionados à IA.
Projetos que fornecem uma visão mais profunda do funcionamento interno de muitas coisas relacionadas ao CS que você pode estar usando consciente ou inconscientemente em sua vida diária.
Projetos que envolvem lidar com criptografia/descriptografia ou na segurança geral do computador.
Todo o trabalho e nenhum jogo fazem de Jack um garoto chato! Os jogos são obrigatórios para apreciar e aprender muitos dos conceitos de programação, incluindo OOPS.
Estes estavam sozinhos em suas próprias categorias e eu não queria que elas se sentissem sozinhas, então eu as juntei.
Alguns canais recomendados para trabalhar em mais problemas e aprimorar suas habilidades de codificação.
Um cliente simples de transferência de arquivos que usa o FTP (protocolo de transferência de arquivos). Como um desafio de bônus, adicione suporte para transferência segura de arquivos. Pode ser um aplicativo Web, desktop ou CLI.
Você pode tentar primeiro implementar o TFTP (Protocolo de Transferência de Arquivos Trivial), pois é mais fácil.
Linguagem sugerida : C/C ++
Estruturas/ferramentas sugeridas : use o Wireshark para observar pacotes e depurar -os
Exemplo de implementação : Filezilla está extremamente completa, aqui está uma implementação simples
Para entender melhor o HTTP, você precisa criar um servidor HTTP. Não é muito difícil hoje em dia (com a riqueza de informações ao nosso redor).
Idioma sugerido : python (ou qualquer outro idioma que você queira dominar)
Estruturas/ferramentas sugeridas : soquete (biblioteca Python)
Exemplo de implementação : post do blog por Ruslan
Crie um raspador da Web que consiga uma palavra -chave/URL como entrada e retorna os resultados correspondentes da Web relacionados à entrada. Você também pode construir um pesquisador de produtos ou algo assim.
Idioma sugerido : python (ou qualquer outro idioma que você queira dominar)
Estruturas/ferramentas sugeridas : BeautifulSoup (Biblioteca Python)
Exemplo de implementação :
Crie um aplicativo de scanner de porta que possa investigar um servidor ou host para portas abertas. Você precisará de algum conhecimento técnico sobre como as redes funcionam e como você pode digitalizar portas ou classificá -las.
Linguagem sugerida : java, c ++, python
Estruturas/ferramentas sugeridas : Socket Python Library
Exemplo de implementação : Piescan é uma implementação do Python
Um sniffer de pacote é usado para monitorar o tráfego de rede, examinando fluxos de pacotes de dados que fluem entre os computadores em uma rede. Para começar com o projeto, estuda protocolos de rede corretamente. Em seguida, mergulhe na implementação de um aplicativo que rastreia pacotes de rede e analisa seu conteúdo em um formulário legível por humanos.
Linguagem sugerida : java, c ++
Estruturas/ferramentas sugeridas :
Exemplo de implementação : o Wireshark é um sniffer de pacote extremamente completo, o Herbivore é uma implementação mais simples.
Crie um aplicativo que permitirá o compartilhamento de arquivos ponto a ponto na Internet. Isso ajudará você a transferir arquivos com segurança de um local para outro ou enviar algo para seu amigo.
Linguagem sugerida : java, c ++
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um mecanismo de pesquisa na web como Google ou Bing. Não copie deles
Idioma sugerido : idiomas da web. O trabalho real acontecerá no lado do back -end com idiomas como Python, PHP, SQL, Node ... Use o que você quiser para o front -end: HTML, CSS, JavaScript ...
Estruturas/ferramentas sugeridas : Django se você usar Python, MySQL para os bancos de dados se precisar de um
Exemplo de implementação : Searx é um mecanismo de pesquisa de código aberto codificado principalmente em Python e JavaScript
Crie uma ferramenta para rastrear quantos dados você baixou ou enviou para a Internet. Envie um e -mail para você relatórios semanais de seu uso (ou notificá -lo quando você estiver acima de um limite de uso especificado). Como um desafio de bônus, preveja os tempos de pico de uso.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Construa a página de destino do produto ideal de acordo com você. Escolha um produto, crie uma página e mostre isso em seu portfólio.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Um blog é essencial para todos (segundo mim). Combine esse fato com o fato de você aprender muitas coisas ao criar seu próprio blog a partir do zero e pronto!
Linguagem sugerida : JavaScript, Python, Ruby
Estruturas/ferramentas sugeridas : Jekyll (para Ruby), Django/Flask (Python)
Exemplo de implementação :
Se você está interessado em mostrar as coisas que você construiu, crie um site de portfólio! Construir um site para exibir todas as coisas ensinará muito sobre o design do site em geral (se você nunca criou um site antes).
Idioma sugerido : JavaScript, HTML, CSS
Estruturas/ferramentas sugeridas : gatsbyjs
Exemplo de implementação :
Embora possa parecer uma pequena tarefa, a criação de uma alternância de navegação animada ensinará muito sobre o desenvolvimento da web. Explore todas as idéias com as quais você pode brincar e ver se consegue construir algo verdadeiramente fascinante!
Linguagem sugerida : JavaScript, CSS
Estruturas/ferramentas sugeridas : -
Exemplo de implementação :
Você pode encontrar o país a partir de um endereço IP fornecido? Escreva um script que possa ajudá -lo com isso. Para pontos de bônus, tente descobrir um local mais local a partir do endereço IP.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um chatbot com o qual você possa conversar quando entediado. Para pontos de bônus, use o aprendizado de máquina/IA para torná -lo inteligente. Sugiro que você o implemente como um aplicativo CLI simples.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Descrição
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Construir um bot que seja
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Construa um bot para o Messenger que possa executar algumas tarefas servil também como girar uma moeda, enrolar um dado, apresentar as notícias e conversar com você quando entediado.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um bot para o WhatsApp que possa raspar informações da Internet, como notícias, entradas da Wikipedia e outras coisas. Faça com que acompanhe alguns eventos, como o aniversário de sua/outra pessoa, e envie uma mensagem automática desejando a você/a outra pessoa.
Idioma sugerido : estruturas/ferramentas sugeridas : Exemplo de implementação :
O usuário escolhe uma categoria e recebe um conjunto aleatório de perguntas da categoria fornecida. Implemente um aplicativo de múltipla escolha para evitar mais complicações.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um software de firewall que possa regular as conexões de rede para o usuário e também bloquear/notificar qualquer ação suspeita de qualquer site/software interno/agente externo.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um aplicativo para fazer que possa rastrear os vários estágios de um determinado trabalho (TODO, em andamento, concluído). Para pontos de bônus, faça -o funcionar com tarefas recorrentes e incorporar o agendamento de tarefas (quando fazer o que/um prazo para tarefas).
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um editor de texto simples que possa ajudá -lo a abrir, ler e gravar em arquivos de texto. Para pontos de bônus, incorporam recursos como a ferramenta e a pesquisa e substituição do REGEX.
Idioma sugerido : JavaScript, Java
Estruturas/ferramentas sugeridas : Electron (JavaScript Framework)
Exemplo de implementação : Editor de Atom, notepad ++
Este é provavelmente o mais difícil da lista e o mais vago também. Projete um sistema que use a entrada de texto e gera aplicativos (ou pelo menos interfaces de aplicativo) com base na descrição do texto. Você também pode usar um recurso de arrastar e soltar para permitir que os usuários criem o aplicativo.
Linguagem sugerida : -
Estruturas/ferramentas sugeridas : -
Exemplo de implementação : Appgyver é um bom exemplo de nenhum construtor de aplicativos de código
Crie um aplicativo que permita que o usuário desenhe qualquer coisa e salve -o como uma imagem. Para pontos extras, adicione coloração e outras coisas legais, como animações.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um aplicativo/aplicativo da Web que permitirá que qualquer pessoa crie perguntas da pesquisa e a divulgue por e -mail para registrar respostas e analisar os dados coletados.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um software que o ajudará a navegar em qualquer página HTML. Para pontos de bônus, adicione recursos adicionais como os do Chrome e Firefox.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um aplicativo que coloque o clima no seu local no horário atual. Você pode usar um raspador da web em segundo plano para coletar os dados ou usar uma API meteorológica.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um aplicativo que formate corretamente as equações que um usuário entra. Pessoalmente, acho realmente inconveniente trabalhar com um software especial para apenas escrever e exibir equações corretamente como o látex, portanto, se você criar algo que pode converter texto em inglês simples em equações adequadamente formatadas, me ping!
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um aplicativo de tocador de música que possa reproduzir músicas a partir de arquivos MP3 e também ter funcionalidade para avançar, retroceder, fazer uma pausa e reproduzir.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um aplicativo/aplicativo da Web StopWatch. Também deve ser capaz de voltar a tempo.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um aplicativo da Web que possa reduzir qualquer URL que o usuário forneça. Você pode codificar um algoritmo que reduz e armazena o usuário fornecer URL ou usar uma API.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie uma interface de pagamento que possa lidar com dinheiro falso (melhor se você puder lidar com a moeda real, embora eu não saiba se você precisa tomar medidas extras para isso). Os usuários devem poder receber e enviar dinheiro e também verificar seu saldo atual.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um aplicativo/aplicativo da Web que sobreponha texto sobre uma imagem, para que os usuários possam criar memes.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um cronômetro Pomodoro que o ajudará a fazer pausas nos momentos adequados enquanto faz uma tarefa. Para pontos de bônus incluem diferentes formatos de timer de pomodoro.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um aplicativo que permite praticar digitar. Faça -o gerar frases aleatórias e veja a rapidez com que você pode digitar as frases. A digitação é algo que muitos desenvolvedores ignoram completamente, mas é uma das habilidades mais importantes que alguém que trabalha com computadores deve ter.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um software que verifique e verifique erros gramaticais simples em qualquer texto que você escrever. Para pontos/complexidade adicionais, tente adivinhar o humor (texto feliz, carta formal, etc.) do texto e sugira alterações apropriadas.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um aplicativo que apresentará notícias diárias de fontes credíveis. Certifique -se de reunir informações exclusivas sobre uma determinada manchete de notícias de diferentes sites para remover qualquer viés que possa estar presente em uma determinada fonte.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um aplicativo que rastreie a quantidade de calorias que você come todos os dias. Tente também incorporar informações sobre outros macro e micro nutrientes para fornecer uma imagem mais completa.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Construa um aplicativo (aplicativo de telefone será melhor) que encontra o quão congestionado é uma rota e, em seguida, sugere um caminho melhor para seguir para o seu destino.
Linguagem sugerida : Java, Kotlin, Swift
Estruturas/ferramentas sugeridas : Android Studio
Exemplo de implementação :
Crie um assistente virtual que o ajudará a realizar tarefas como ligar para pessoas, agendar tarefas, criar listas de tarefas, anotar as anotações. Você entendeu o ponto.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um software antivírus que o protegerá de vírus e outros vermes e outras coisas do computador. Certifique -se de atualizá -lo com frequência para lidar com os vírus mais recentes.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um aplicativo que possa permitir que você ligue para qualquer pessoa em qualquer lugar pela Internet.
Idioma sugerido : python, java, c ++ para um aplicativo de desktop
Estruturas/ferramentas sugeridas :
Exemplo de implementação : o nextcloud Talk e Jitsi são o software de chamada de vídeo aberto
Crie um aplicativo para uma biblioteca hipotética (ou melhor, uma real perto de você) que ajudará na gerência. Você precisa acompanhar os livros que possui, livros para encomendar, pessoas com acesso à biblioteca, livros emprestados, devolvidos e outras tarefas relacionadas.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie seu próprio sistema de gerenciamento de banco de dados, como o MySQL ou o PostgreSQL. Não precisa ser compatível com eles, mas precisa ajudar os usuários a gerenciar seus dados com eficiência e criar tabelas relacionais.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um software que analise as imagens (ou melhor, o feed de câmera ao vivo) e marque as faces nas imagens como face ou com uma caixa.
Idioma sugerido : Python (ou qualquer outro idioma que você queira aprender)
Estruturas/ferramentas sugeridas : OpenCV
Exemplo de implementação :
Crie um classificador de spam que filtra anúncios e outros e -mails não exigidos de pessoas que você realmente não deseja ver.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie uma extensão do navegador que bloqueie os spoilers de filmes em sites. Coloquei -o na IA, pois você precisa pensar em um algoritmo em mudança que deve ser inteligente o suficiente para identificar spoilers de uma peça de texto.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Entediado das mesmas músicas, mas não sabe o que tentar a seguir? Construa uma IA para sugerir música com base no seu gosto que é mais provável que goste.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um aplicativo para traduzir o texto de um idioma para outro. Para pontos de bônus incluem um tradutor de imagem que pode obter texto da imagem e traduzi -lo.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um software que possa reconhecer gestos a partir de um vídeo da câmera e executar certas tarefas com base no gesto.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Insira um vídeo e obtenha uma legenda! Crie um software que cria automaticamente legendas a partir de um vídeo fornecido. Pode parecer difícil no começo, mas procure o processamento de linguagem natural ver até que ponto as máquinas já estão no que diz respeito à compreensão da linguagem humana.
Idioma sugerido : Python (como seria realmente fácil de implementar com as bibliotecas disponíveis)
Estruturas/ferramentas sugeridas : AUTOSUB
Exemplo de implementação : você pode consultar a documentação aqui ou verificar as etapas fornecidas aqui.
Crie um software que receba o nome de uma empresa e algumas palavras -chave relacionadas para gerar um novo logotipo para o usuário. Faça o logotipo editável para que o usuário possa fazer alterações se não gostar da saída gerada.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um sistema de recomendação que permita que você ou qualquer usuário escolha o próximo filme que deseja assistir. Em vez de copiar um recomendador de filme existente com um algoritmo bem estudado, tente criar seu próprio algoritmo e testá -lo.
Idioma sugerido : python (ou qualquer outro idioma com o qual você se sinta confortável)
Estruturas/ferramentas sugeridas : -
Exemplo de implementação : existem muitos, sistema de recomendação da Netflix, lente de filmes, etc.
Semelhante ao tradutor de vídeo, mas agora você precisa traduzir um áudio em linguagem de sinais. A parte da linguagem de sinais pode estar na forma de uma série de imagens ou um vídeo.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Este projeto será tecnicamente desafiador e aprofundará sua compreensão de como os computadores e os sistemas operacionais funcionam. Construir um sistema operacional desde o início é uma tarefa realmente assustadora, mas você certamente encontrará uma maneira de fazê -lo.
Idioma sugerido : idiomas de baixo nível como C/C ++.
Estruturas/ferramentas sugeridas : -
Exemplo de implementação : o LFS é um projeto que explica cada etapa para criar um sistema operacional Linux
Crie um aplicativo da Web para visualizar os diferentes algoritmos de embaralhamento que podem ser usados para embaralhar um baralho padrão de cartas.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie uma página/vídeo da Web que visualize os diferentes algoritmos de classificação. Você pode usar diferentes tipos de visualizações: pontos, barras, barras de cores, pontos espalhados circularmente e assim por diante.
Idioma sugerido : processamento, javascript
Estruturas/ferramentas sugeridas : p5.js (javascript)
Exemplo de implementação :
Faça um software que passará pelo seu código (sem executá -lo) e verifique se há inconsistências ou erros (erros de sintaxe, indentação etc.) que podem causar problemas durante a execução.
Idioma sugerido : qualquer idioma que você se sinta confortável com estruturas/ferramentas sugeridas :
Exemplo de implementação :
Se você estiver construindo o sistema operacional, certamente precisará de um terminal de linha de comando. Tente clonar o shell ou o Windows PowerShell como um projeto independente para facilitar o seu próprio sistema operacional.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Escreva um script que passa pelo código OOPS e cria um diagrama UML bem formado para o seu código.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Faça um visualizador para os diferentes algoritmos de busca de caminho. Adicione isso a um fabricante de labirinto e você terá um programa que pode gerar e resolver Mazes.
Idioma sugerido : processamento, javascript
Estruturas/ferramentas sugeridas : p5.js (javascript)
Exemplo de implementação :
Faça um sistema de controle de versão adequado, como o Git, que pode acompanhar as alterações que você fizer em seu projeto.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Code uma linguagem de programação do zero. Este projeto fornecerá ótimas idéias sobre por que os idiomas são estruturados da maneira que são e quais idiomas se adequam a quais tarefas melhor. Existem algumas linguagens de programação, portanto, incorporam alguns recursos realmente estranhos (ou úteis) para destacar seu idioma (por exemplo, confira o Brainfuck).
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um software que criptografa e descrique o texto para você. Incorpore alguns algoritmos para fornecer flexibilidade ao usuário.
Linguagem sugerida : C, C ++, Java, Python
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um software que possa gerenciar as diferentes senhas que você usa em sites diferentes. Para pontos de bônus incorporam um gerador de senha aleatória.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um software que possa criptografar e bloquear uma pasta selecionada. O conteúdo da pasta não deve ser acessível/copiado/movido sem a senha correta.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um site/aplicativo que verifique o quão forte é uma dada senha. Para torná -lo mais sofisticado, incorpore uma boa métrica de quão forte é uma senha (confira o exemplo).
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação : quão seguro é minha senha?
Codifique o jogo de Pong. Torne -o multiplayer e visualmente atraente.
Idioma sugerido : Python (ou qualquer outro idioma de escolha)
Estruturas/ferramentas sugeridas : pygame (python)
Exemplo de implementação :
Adicione ao programa Pong que você criou acima. Crie um oponente de IA para jogar no modo um único jogador.
Idioma sugerido : Python (ou qualquer outro idioma de escolha)
Estruturas/ferramentas sugeridas : Tensorflow, Pytorch, Openai/Gym
Exemplo de implementação :
Tente codificar o jogo de risco clássico de tabuleiro. Certifique -se de conhecer todas as regras e entender o jogo corretamente antes de codificá -lo.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Core o jogo de xadrez desde o início. Construa uma placa, as peças (você pode usar imagens para esta parte). Code nas regras e certifique -se de não permitir movimentos inválidos.
Idioma sugerido : JavaScript, Python, qualquer outro idioma que você queira dominar
Estruturas/ferramentas sugeridas :
Exemplo de implementação : Chessboard.js
Este é um dos itens mais simples da lista. Para um desafio adicional, tente gerar mapas diferentes para jogar.
Linguagem sugerida : qualquer idioma com o qual você se sinta confortável
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Code o jogo de Tetris, começando dos tetrominos até a interface do jogo. Um aplicativo da web é melhor, pois permitirá que você tocasse de qualquer lugar. Para um desafio adicional, tente implementar uma versão simples HTML e JavaScript sem estruturas ou bibliotecas adicionais para ajudar.
Idioma sugerido : JavaScript, HTML
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Agora que você provavelmente construiu o jogo de xadrez, construa uma IA com a qual você possa jogar. Para inspiração, procure os exemplos fornecidos. O desafio aqui é fazer uma IA que seja rápida o suficiente para jogar. O AIS mais simples para o xadrez é muito lento (leve cerca de um minuto ou mais para um movimento). Faça sua interface do motor de xadrez com outros programas como a interface universal de xadrez. Então você pode testá -lo contra outros bots/jogadores online.
Idioma sugerido : Python, JavaScript
Estruturas/ferramentas sugeridas : Chessboard.js (JavaScript) Exemplo de implementação : Stockfish AI, Leela Chess Zero
Construa uma AI de cobra simples que toca cobra. Para um desafio adicional, gere mapas aleatórios e treine sua IA para jogar em qualquer mapa aleatório que você gera.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um programa simples que gerará mapas de terrenos aleatórios através da geração processual com uma semente fornecida pelo usuário.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Construa o jogo clássico do navio de guerra. Você pode criar um aplicativo CLI ou um aplicativo muito melhor com gráficos usando qualquer módulo gráfico 2D.
Idioma sugerido : python (ou qualquer idioma que você queira aprender)
Estruturas/ferramentas sugeridas : pygame (python)
Exemplo de implementação :
Este é um dos jogos mais simples que você pode construir. Você pode usar imagens para tubos e o pássaro ou gerar seu próprio pássaro e tubos personalizados para o projeto.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie um aplicativo CLI para tic-tac-toe ou uma interface gráfica. Uma das idéias interessantes é deixar o usuário desenhar XS e OS e deixar a máquina identificar automaticamente se você desenhou um X ou um O.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Implemente um quebra -cabeça de memória clássico em que o usuário precisa clicar em dois cartões semelhantes para eliminá -los. Rasgue os cartões aleatoriamente no início e dê ao usuário um número fixo de chances ou um tempo fixo para limpar a placa.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Os videogames funcionam em mecanismos de física. Construir o seu próprio. Mais tarde, você pode usar este motor para criar jogos ou realizar simulações. Tente construir um motor de física 2D ou 3D que possa lidar com colisão, movimento, aceleração, gravidade e outras forças no sistema. Pode ser necessário primeiro entender um pouco de física para poder construir algo, então reserve um tempo para este.
Idioma sugerido : processamento (qualquer outro idioma que você se sinta confortável com obras também)
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Projete uma IA para o jogo de pássaros de Flappy. Experimente alguns algoritmos de aprendizado para treinar sua rede - q -learning, arrumado, etc. Crie a IA perfeita que tocará o Flappy Bird melhor do que você (ou qualquer outra pessoa).
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Construa uma IA que seja imbatível (ganha sempre ou pelo menos desenha) em tic-tac-toe. Em vez de apenas codificar o que se move para jogar quando, construa uma IA que aprenda a tocar e depois invente estratégias para vencer.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie uma simulação para um elevador. Isso pode parecer uma simulação aleatória, mas você precisa pensar muito antes de implementar algo sobre isso, para qual piso ir quando dois botões são pressionados? Existe alguma mudança se você adicionar uma preferência por subir ou descer? e assim por diante.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Construa uma simulação do mundo inteiro. Tente ser o mais detalhado possível. Mantenha -o simples quando você se sentir preso e melhorar lentamente. Trate-o como um jogo auto-sustentável se facilitar as coisas. Para pontos de bônus, adicione uma IA ao sistema para deixá -lo funcionar por conta própria.
Idioma sugerido : c ++ (ou c - você precisará de uma linguagem rápida para a simulação)
Estruturas/ferramentas sugeridas : Unidade (bom para visualizações)
Exemplo de implementação : The Bibites, simulando o ecossistema por Sebastian Lugue
Crie uma ferramenta que gerará caracteres aleatórios para jogos que você joga/constrói como Pathfinder ou Divinity: Original Sin. Primeiro implemente um gerador de caracteres aleatório e depois o ajuste para criar caracteres que você gostará (adicione uma IA).
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
O jogo da vida de Conway simula a vida de células simples que obedecem às leis algorítmicas. Você pode ler as regras algorítmicas da página da Wikipedia e implementá -las. Faça o programa capaz de renderização gráfica para exibir o produto final.
Idioma sugerido : processamento, javascript
Estruturas/ferramentas sugeridas : p5.js (javascript)
Exemplo de implementação :
Crie um aplicativo da Web simples para notificá -lo quando um item que você cobiça estar à venda por um bom preço. Você pode usar um raspador da web para puxar a página do produto do item e notificá -lo sobre qualquer alteração de preço.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie uma interface simples (aplicativo da web/aplicativo de telefone) que você pode usar para adicionar e categorizar sua despesa. Gere relatórios mensais com base nos insumos e escreva alertas personalizados para coisas como "Gastar muito no café ... como sempre".
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
O aplicativo (ou serviço) deve gerar novas receitas/recordes de receitas na web. Então, quando você cozinha pela receita, avalia -a para dizer o quão boa era a receita.
Linguagem sugerida :
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie uma extensão do navegador que traduzirá qualquer frase fornecida em uma combinação de emojis. Você pode usar a extensão para alterar automaticamente os textos que um usuário envia por meio de mensagens ou email ou até mesmo para ajudar na redação de postagens do blog.
Idioma sugerido : JavaScript
Estruturas/ferramentas sugeridas :
Exemplo de implementação :
Crie uma ferramenta de pesquisa que implemente expressões regulares. With it you can easily search for text matching a pattern in websites or documents that you may be writing or browsing.
Suggested Language : JavaScript
Suggested Frameworks/Tools :
Example Implementation :
Code a script that scrapes the currency conversion rate and then converts from a given currency to another suing the current market rate.
Suggested Language : Python, JavaScript
Suggested Frameworks/Tools :
Example Implementation :
Code a script that takes in a picture and then creates the Pixel Art from the image. You can achieve this by downsizing the image. You should also be able to generate random art using this script.
Suggested Language :
Suggested Frameworks/Tools :
Example Implementation :
Generate a tree like structure using the directories present in a given path by the user. This allows you to see the positioning of files and directories. We are visual animals and thus, visual depictions of directories are more understandable.
Suggested Language :
Suggested Frameworks/Tools :
Example Implementation :
Write a script to generate random usernames that you can use in games or various other places.
Suggested Language : Python or any other language
Suggested Frameworks/Tools : Random (Python Library)
Example Implementation :
Write a script that converts decimal numbers to roman numerals and vice versa. This may seem like an easy task but I assure you its not that easy. Experimente.
Suggested Language : Python or any other language
Suggested Frameworks/Tools :
Example Implementation :
Project Euler contains mathematical challenges that require programming tools to be solved. There are over 700 problems that you can solve, I urge you to document each solution in a properly organized way (probably build a repo for the solutions) so that you can showcase them online.
Suggested Language : Any language you want to practice
Advent of Code challenges occur every year in the days leading up to Christmas. They include lots of fun programming challenges that can help you develop your chops in a programming language that you want to master.
Suggested Language : Any language you want to master
Kaggle offers fascinating challenges to introduce you to the basics of machine learning with Python or R: Use a real dataset from the Titanic passenger log to predict which passengers were most likely to survive the disaster.
Suggested Language : Python or R