Articles

42 projetos para praticar habilidades de programação

Posted by admin

Antes de ir mais longe, marcar este site:

ter um monte de ideias de projeto de programação é uma coisa ruim, não compartilhar aqueles com você é ainda pior. Então, é um desafio de um ano (algo que as crianças do Instagram adoram hoje em dia), marcado como #42SkillsChallenge. Aqui está como participar deste Desafio extremamente complexo, para cada um dos 42 projetos:

  1. escolha um projeto da lista.
  2. crie um repositório GitHub para o projeto.,
  3. comece a trabalhar, tente implementar tudo a partir do zero, reinvente a roda sempre que possível (às vezes você tem que).
  4. Quando terminar, testá-lo, postar a tag #42SkillsChallenge em algum lugar no repo (README ou algum lugar visível).partilha o teu acordo de recompra com o mundo.alguns projectos são simples. Alguns deles são difíceis. É uma ótima maneira de praticar suas habilidades, especialmente antes de importantes entrevistas técnicas.no entanto, existem projectos ridiculamente complexos. Pode demorar semanas ou meses a implementá-las. É onde as verdadeiras estrelas de rock sobrevivem., Aquele que completa todos os projetos primeiro, desbloqueia um novo nível de experiência. Olha para os projectos, eu sei do que estou a falar.além disso, alguns projetos podem servir como grandes ideias para os startupers (aqueles que odeiam trabalhar e amam ficar ricos rapidamente). Sugiro reunir uma equipe para alguns projetos abaixo (ou no site) e lançar um aplicativo ou serviço muito legal e conquistar o mundo.,

    A lista de projetos

    conceber e implementar um servidor web leve que os processos de pedidos de rede através do protocolo HTTP. Web server processa e entrega páginas web para clientes (geralmente, navegadores). As páginas são documentos HTTP. Enquanto a função principal é servir conteúdo, uma implementação completa do HTTP também inclui formas de receber conteúdo de clientes., Este recurso é usado para enviar formulários web, incluindo Upload de arquivos (fonte). Para uma inspiração, tente imitar o servidor Web Nginx.

    um Sniffer de Pacotes

    Um sniffer de pacotes (packet analyzer) é usado para monitorar o tráfego de rede ao examinar os fluxos de pacotes de dados que fluem entre computadores em uma rede. Para começar com o projeto, estude bem os protocolos de rede., Em seguida, mergulhe na implementação de uma aplicação que rastreia pacotes de rede e analisa seu conteúdo em uma forma legível humana.

    Static Analisador de Código

    Estática de código analisadores são usados para analisar (obviamente) o código-fonte sem executá-lo e descobrir problemas que podem levar a erros na execução da aplicação. Dessa forma, executar um analisador de código estático para o seu projeto pode economizar muito tempo em depuração., Projetos sérios ou sistemas críticos de missão utilizam analisadores estáticos comerciais para verificar a qualidade do Código.

    conceba e implemente o seu próprio analisador estático para qualquer língua da sua escolha.

    Detector de Spam

    Implementar uma biblioteca ou um serviço que analisa e-mails para detectar spam. Você é livre para implementá-lo como um plugin de navegador, ou como um produto SaaS. Tente usar algoritmos de aprendizagem automática para melhorar o seu sistema.,

    Motor de Xadrez

    Um motor de xadrez analisa o tabuleiro de xadrez e sugere a melhor jogada seguinte. Além disso, pode servir como um adversário em jogar com o computador. Implemente a próxima geração de motores de xadrez a IA. Para uma inspiração, dê uma olhada no Stockfish.,

    Mecanismo de Pesquisa da Web

    O meu favorito. Eu sempre quis implementar um Super-duper Web motor de busca que vai competir com o Google. Como podes adivinhar, não aconteceu nada. Talvez possa implementar tal motor?

    conceba e implemente um sistema que indexe milhares de milhões de documentos em todo o mundo, armazena-os de uma forma eficiente e responde às consultas dos utilizadores com a lista mais relevante de documentos.,

    Command-Line Terminal

    This one is easy to describe. Implement a terminal app that replicates all the main Linux commands. Try to make the interface as fancy as you can.

    Web Browser

    Sounds simple, but it’s not., Primeiro, é uma aplicação GUI. Em seguida, ele entende documentos HTTP, e é claro, ele entende e apropriadamente torna HTML e CSS. E sim, ele também executa JavaScript (pelo menos o material básico).por isso, não são permitidos motores de crómio. Um navegador web simples implementado do zero. Este é duro. Pelo menos para mim. Você pode saltar algumas partes desagradáveis e mantê-lo básico, mas ainda assim, é difícil.,

    Em Memória de Banco de dados

    Outro dos meus favoritos. O projeto está basicamente re-implementando o Redis. Uma base de dados de memória guarda tudo na memória. Se você adicionar um idioma de consulta a ele, alguma empresa séria definitivamente irá contratá-lo.,

    Minimalista OS

    Um sonho de muitos. Conheço muitos programadores que sonhavam implementar o seu próprio sistema operacional do zero. E uma das motivações para tais intenções suicidas é mergulhar nos níveis mais baixos de codificação e familiarizar-se com o metal. Toda a gente adora metal!

    Você pode mantê-lo simples, mas pelo menos implementar várias características críticas para o SO., E fazê-lo do zero, mas você pode dar uma olhada no kernel Linux. Afinal de contas, o Linus olhou para o Minix de certa forma.

    Vídeo Subtítulo Gerador

    Implementar um programa que pega um vídeo como uma entrada, analisa o conteúdo, faz algum processamento de voz e produz as legendas para o vídeo. É bom ter uma limitação no comprimento do vídeo (1 ou 2 minutos seria ótimo).,

    Personalizado de Codificação

    Lembre-se daqueles filmes sobre hackers? Alguma vez sonhaste em tornar-te um? Esta é a tua oportunidade de dar um passo em direcção a esse sonho infantil.

    desenhe uma cifra. Implemente uma aplicação que codifica e descodifica informações com base nessa sua cifra.

    seria ótimo se você escrevesse alguns testes automáticos para verificar a força de sua criação. Por outras palavras, invade a sua própria segurança.,

    P2P Messaging Application

    Implementar um aplicativo para conversar com um amigo. O desafio é fazê-lo de uma forma que omite um servidor centralizado e inicie uma conexão direta entre dois clientes de chat.,

    Tradução automática

    Algo como o Google Translate. Projetar e implementar um serviço (se você tiver algum tempo livre, implementar o aplicativo, bem) que traduz um monte de texto de um idioma para o outro.

    escolha as duas línguas que desejar. Tente tornar o Tradutor mais inteligente, treiná-lo ou corrigi-lo no caminho.,

    Automatizado de Notícias Apresentador

    Você vai gostar deste. Imagine os leitores de notícias regulares, como com fé. E agora, imagine o apresentador de notícias da CNN, falando sobre algumas notícias de última hora, coronavirus, etc. Agora, imagine um personagem de desenhos animados, que lê notícias para você (para o usuário) como os apresentadores reais fazem.,

    concebe e implementa um software que recolhe notícias (geralmente, subscreve os feeds RSS definidos pelo utilizador), e lê-os em voz alta como um apresentador de notícias animado.

    Sistema de Pagamento

    Você provavelmente já ouviu falar do PayPal ou de uma Faixa ou de qualquer outro sistema de pagamento. Agora, projetar uma nova (ou próxima geração?) sistema de pagamentos semelhante a um desses. Simular transações financeiras e provar que o sistema é infalível a ataques., Este é difícil de conseguir.

    Relacional de Gerenciamento de Banco de dados do Sistema

    Já se perguntou como os bancos de dados funcionam sob o capô? Agora tens a oportunidade de construir um. Projetar e implementar um DBM relacional semelhante ao MySQL ou PostgreSQL (não necessariamente suportando SQL). Não te esqueças da indexação. Será óptimo ter transacções, mas esta não é obrigatória.,

    Assistente Virtual

    Algo parecido com o Siri, mas sem controle de voz. Basta digitar um texto, criar lembretes, fazer perguntas, etc. O conjunto de recursos depende de você, mas o Usuário deve senti-lo como uma aplicação Assistente Virtual sólida.

    Este projeto é destinado para spartphones, ou seja, você deve escrevê-lo para Android, ou para iOS, ou para ambos usando alguma reação nativo/Flutter-like coisas.,

    Coletor de Lixo

    Pergunta rápida: qual a diferença entre C++ e C#? Uma das diferenças é que este último tem um coletor de lixo. Agora, Implemente um coletor de lixo que pode ser usado como um serviço separado ou um módulo integrado. A língua e o alvo são da sua escolha.,

    Dropbox Clone

    O Dropbox é um aplicativo de compartilhamento de arquivo. Consiste em clientes para quase todos os sistemas operacionais, incluindo Android e iOS. Também tem uma enorme infra-estrutura. Projetar e implementar sua própria versão de um aplicativo de compartilhamento de arquivos que funciona pelo menos para 10 usuários e fornece 100 Mb de espaço para cada um deles. Implemente tanto o servidor quanto o cliente (pelo menos para um SO).,

    Recipiente Sistema de Gestão

    Deixe-me colocar a descrição da janela de Encaixe.

    Docker é um conjunto de plataforma como um serviço (PaaS) produtos que usa virtualização de nível OS para entregar software em pacotes chamados containers. Os contentores são isolados uns dos outros e agrupam o seu próprio software, bibliotecas e ficheiros de configuração; podem comunicar uns com os outros através de canais bem definidos., Todos os recipientes são executados por um único kernel do sistema operacional e, portanto, são mais leves do que máquinas virtuais.

    implemente o seu próprio acoplador.

    Recipiente Orchestrator

    Fica mais difícil e mais difícil. Depois de terminar com o Docker, projetar e implementar um orquestrador.

    para inspiração, veja o enxame de Docker ou Kubernetes.,

    Software Antivírus

    Não importa o que você use Linux. Está em quarentena por todo o lado por causa dos vírus. Implementar um bom antivírus e testá-lo através da implementação de um par de vírus. Esta não é uma tarefa fácil, mas quando se acabar com a implementação de um SO minimalista, deverá ser mais fácil lidar com esta.,

    Firewall

    Firewalls monitor de pedidos de rede, abrir ou fechar portas no computador. Eles são basicamente o primeiro echelon no sistema de defesa. Projetar e implementar um software de firewall. Pelo menos tente algo como netstat que também tenha permissões para fechar portas ou alertar sobre solicitações de rede suspeitas.,

    Sistema de Controle de Versão

    Você provavelmente está usando o Git. Você pode ter usado SVN ou até mesmo CVS. De qualquer forma, a ideia é simples. Implemente um novo sistema de controle de versão. Aponta para algo melhor do que o Git.

    também, lembre-se, Linus escreveu a primeira versão do Git em duas semanas ou mais. Aceite o desafio, escreva o seu CVS em menos de 13 dias. Toma Lá, Torvalds!,

    Diagrama UML Gerador

    Tomar qualquer de sua preferência linguagens de programação que suportam OOP. Implementar uma ferramenta que leva o código fonte do projeto como uma entrada e gera diagramas UML para ele.,

    Tempo da Série de Banco de dados

    É um software de banco de dados que armazena e processa as séries de tempo de forma mais eficiente do que regular do banco de dados de sistemas de gestão. Descubra o que são séries cronológicas e, em seguida, projetar e implementar um sistema de banco de dados de séries cronológicas.,

    Bloqueio livre de Estruturas de Dados

    Bloqueio de programação livre é difícil de entender. Eu tentei, apenas entendi.

    implementa um conjunto de estruturas de dados sem bloqueio como uma biblioteca que pode ser usada em projetos de programação.,

    o Tráfego Notificador

    Implementar um aplicativo (ou serviço) que notifica o usuário sobre o congestionamento de trânsito.

    Mais do que isso, sugere uma melhor rota para algum destino (definido pelo Usuário).

    esta é uma daquelas aplicações que podem servir como uma boa ideia para uma inicialização. Implementar um serviço realmente de qualidade e o sucesso é garantido., Você pode combinar este com o assistente virtual introduzido anteriormente, e o resultado será maravilhoso.

    Música de Fusão

    Implementar um software que reúne duas ou mais faixas de música em conjunto para produzir um novo.,

    Gerador de Receita

    O app (ou serviço) gera novas receitas e aprende através da forma. Então, quando cozinhas pela receita, depois classificas para lhe dizer o quão bom era. Não é uma ideia nova, mas ainda pode ser útil.,

    Plugin para o Navegador para Cartões de memória Flash

    havia um monte de difícil projectos a implementar. Este é um pouco mais fácil. Implemente um plugin de navegador (para qualquer navegador) que permite armazenar cartões flash e, em seguida, mostra-os aleatoriamente para o usuário (pode ser configurado).,

    Chamada de Vídeo do Aplicativo

    Existem várias aplicações chamada de vídeo, Zoom, Skype e Google Hangouts.

    mas ainda assim, eles funcionam mal se a conexão à internet é pobre. Talvez você deva inventar um novo algoritmo de compressão (veja abaixo) e combiná-lo com esta aplicação para implementar uma nova aplicação de chamada de vídeo soberba? Não tenho a certeza., Basicamente, este projeto representa PiperChat, design e implementar a aplicação de vídeo chat de melhor qualidade lá fora.

    Aleatoriedade Testador

    Parece loucura, um amigo sugeriu um presente. Write a software( or a tool), or maybe devise a formula (not sure) that tests the results of a random number generator and verifies if those are really random.,

    Microservices Framework

    O desenho de um bem legal microservices framework que suporta os padrões básicos e fornece um conjunto de implementações de fora da caixa. Certifique-se de cobrir a descoberta de serviços e comunicação de micro-serviços.

    Quanto mais recursos você adicionar ao seu framework, melhores chances de ganhar o desafio.

    Escolha qualquer linguagem de programação que desejar.,

    Linguagem de Programação Funcional

    Inventar uma nova linguagem de programação funcional de paradigma. Seja sucinto, mas forneça todo o ambiente para implementar programas em seu idioma e executá-los sem dor.,

    Jogo de Estratégia do Motor

    Uma das melhores formas de estudar a OOP é através da criação de jogos. Os jogos geralmente são baseados em motores.

    conceba e implemente um motor de jogo para jogos de estratégia. Preferencialmente, Implemente um jogo baseado no motor para testá-lo.,

    Simulação do Mundo

    Westworld está chegando.

    implementa um serviço que permite simular mundos complexos com diferentes conjuntos de dados iniciais. Quanto mais detalhes, melhor é o sistema. Este é muito duro, pode demorar muito a terminá-lo. Mantém as coisas simples quando te sentires presa.,

    Recomendação de Filme de Sistema

    É uma mentira, Netflix sistema de recomendação é uma merda. Além de listas de filmes escolhidas a dedo, não vi um sistema de recomendações de filmes sólido em lado nenhum.por favor, resolva esta loucura. Projetar e implementar o melhor sistema de recomendação de filme lá fora.

    (Você pode precisar raspar um monte de bases de dados para coletar dados em filmes.,)

    Pied Piper

    Alguém deve fazer isso. Projetar e implementar um algoritmo de compressão que comprime arquivos grandes em pequenos. É verdade que alcançar o resultado perfeito é muito difícil, mas tente não se limitar por esses pensamentos. Objectivo para o impossível, https://en.wikipedia.org/wiki/Weissman_score

Leave A Comment