Aprendizagem Baseada em Projetos
Uma lista de tutoriais de programação nos quais aspirantes a desenvolvedores de software aprendem como construir um aplicativo do zero. Esses tutoriais são divididos em diferentes linguagens de programação primárias. Os tutoriais podem envolver múltiplas tecnologias e idiomas.
Para começar, basta fazer um fork deste repositório. Consulte CONTRIBUTING.md para obter diretrizes de contribuição.
Índice:
- C#
- C/C++
- Clojure
- Dardo
- Elixir
- Erlang
- Fá#
- Ir
- Haskell
- HTML/CSS
- Java
- JavaScript
- Kotlin
- Lua
- OCaml
- PHP
- Pitão
- R
- Rubi
- Ferrugem
- escala
- Rápido
- Recursos adicionais
C/C++:
- Construa um intérprete (Capítulo 14 em diante está escrito em C)
- Alocadores de memória 101 - Escreva um alocador de memória simples
- Escreva um Shell em C
- Escreva um sistema de arquivos FUSE
- Crie seu próprio editor de texto
- Construa seu próprio Lisp
- Como programar um jogo NES em C
- Escreva um sistema operacional do zero
- Como criar um sistema operacional do zero
- Construindo um emulador CHIP-8
- Iniciando a programação de jogos com C++ e SDL
- Implementando um armazenamento de valor-chave
- Pequenos projetos gráficos 3D
- Tiny Renderer ou como funciona o OpenGL: renderização de software em 500 linhas de código
- RayTracing compreensível em 256 linhas de C++ simples
- KABUM! em 180 linhas de C++ simples
- 486 linhas de C++: FPS da velha escola em um fim de semana
- Escrevendo um compilador JIT x86-64 mínimo em C++
- Construa uma biblioteca Live Code-reloader para C++
- Escreva uma tabela hash em C
- Vamos construir um banco de dados simples
- Vamos escrever um kernel
- Escreva um bootloader em C
- Contêiner Linux em 500 linhas de código
- Escreva sua própria máquina virtual
- Aprendendo KVM - Implemente seu próprio kernel Linux
- Crie seu próprio Redis com C/C++
- Escreva um compilador C
- Parte 1: Inteiros, Lexing e Geração de Código
- Parte 2: Operadores Unários
- Parte 3: Operadores Binários
- Parte 4: Ainda Mais Operadores Binários
- Parte 5: Variáveis Locais
- Parte 6: Condicionais
- Parte 7: Declarações Compostas
- Parte 8: Loops
- Parte 9: Funções
- Parte 10: Variáveis Globais
- Implementando uma linguagem com LLVM
- Meta Crush Saga: um jogo em tempo de compilação C++17
- Multiplicação de matrizes de alto desempenho
- Invasores do espaço do zero
- Parte 1
- Parte 2
- Parte 3
- Parte 4
- Parte 5
- Tutorial de Tetris em plataforma C++ independente
- Escrevendo um depurador Linux
- Parte 1: Configuração
- Parte 2: Pontos de interrupção
- Parte 3: Registros e memória
- Parte 4: Elfos e Anões
- Parte 5: Fonte e sinais
- Parte 6: Revisão no nível de origem
- Parte 7: Pontos de interrupção no nível da fonte
- Parte 8: Desenrolamento da pilha
- Parte 9: Tratamento de variáveis
- Parte 10: Tópicos avançados
- Vamos escrever um compilador
- Parte 1: Introdução, seleção de um idioma e planejamento
- Parte 2: Um lexer
- Parte 3: Um analisador
- Parte 4: Teste
- Parte 5: Um gerador de código
- Parte 6: Entrada e saída
- Parte 7: Matrizes
- Parte 8: Strings, referências futuras e conclusão
Programação de rede
OpenGL:
- Criando clone do jogo 2D Breakout em C++ com OpenGL
- Saia
- Configurando
- Renderizando Sprites
- Níveis
- Colisões
- Bola
- Detecção de colisão
- Resolução de colisão
- Partículas
- Pós-processamento
- Power-ups
- Áudio
- Renderizar texto
- Considerações finais
- Herói Feito à Mão
- Como fazer Minecraft em C++/OpenGL (vídeo)
C#:
- Aprenda C# construindo um jogo de RPG simples
- Crie um jogo do tipo Rogue em C#
- Crie um aplicativo em branco com C# e Xamarin (trabalho em andamento)
- Crie um aplicativo de biblioteca de fotos para iOS com Xamarin e Visual Studio
- Construindo o CoreWiki Este é um sistema de gerenciamento de conteúdo estilo Wiki que foi completamente escrito em C# com ASP.NET Core e Razor Pages. Você pode encontrar o código fonte aqui.
Clojure:
- Crie um bot do Twitter com Clojure
- Construindo um corretor ortográfico
- Construindo uma integração JIRA com Clojure e Atlassian Connect
- Prototipagem com Clojure
- Tetris em ClojureScript
Dardo:
Vibração:
- Amazon Clone com painel de administração
- Aplicativo de entrega de comida
- Clone do Google Docs
- Clone do Instagram
- Jogo Multijogador TicTacToe
- Clone do TikTok
- Aplicativo de reserva de ingressos
- Aplicativo de viagens
- Clone de contração muscular
- Clonar WhatsApp
- Clone de palavras
- Clone de zoom
- Clone do Netflix
Elixir
- Construindo um aplicativo de bate-papo simples com Elixir e Phoenix
- Como escrever um encurtador de link super rápido com Elixir, Phoenix e Mnesia
Erlang
- ChatBus: crie seu primeiro aplicativo de sala de bate-papo multiusuário com Erlang/OTP
- Criando um aplicativo de bate-papo com Erlang, Rebar, Cowboy e Bullet
F#:
- Escreva seu próprio Excel em 100 linhas de F#
Java:
- Construa um intérprete (o capítulo 4-13 foi escrito em Java)
- Construa um servidor HTTP simples com Java
- Crie um aplicativo Android Flashlight (vídeo)
- Crie um aplicativo Spring Boot com autenticação de usuário
JavaScript:
- Construa 30 coisas em 30 dias com 30 tutoriais
- Crie um aplicativo em Pure JS
- Crie uma extensão de notebook Jupyter
- Crie um jogo TicTacToe com JavaScript
- Crie um aplicativo meteorológico simples com Vanilla JavaScript
- Crie um aplicativo de lista de tarefas em JavaScript
HTML e CSS:
- Crie uma tela de carregamento
- Construa uma calculadora HTML com JS
- Construa o Snake usando apenas JavaScript, HTML e CSS
Aplicativo móvel:
- Crie um aplicativo React Native Todo
- Crie um aplicativo React Native com Redux Tunk
Aplicativos da Web:
Reagir:
- Crie aplicativos React.js sem servidor
- Crie um clone do Trello
- Crie um aplicativo de votação de personagens com React, Node, MongoDB e SocketIO
- Tutorial React: clonando o Yelp
- Crie um aplicativo de votação de filmes Full Stack com desenvolvimento de teste primeiro usando Mocha, React, Redux e Immutable
- Crie um stream no Twitter com React e Node
- Construa um clone médio simples usando React.js e Node.js
- Integre MailChimp em JS
- Crie uma extensão do Chrome com React + Parcel
- Crie um aplicativo ToDo com React Native
- Faça um aplicativo de bate-papo
- Crie um aplicativo de notícias com React Native
- Aprenda Webpack para React
- Testando o aplicativo React com Puppeteer e Jest
- Construa seu próprio modelo de reação
- Codifique o jogo da vida com React
- Um tutorial introdutório básico do React + Redux
- Crie um agendador de compromissos
- Crie um aplicativo de bate-papo com análise de sentimento
- Crie uma configuração de aplicativo Web Full Stack
- Crie um clone do Todoist com React e Firebase
- Construa uma máquina de cotação aleatória
- Parte 1
- Parte 2
- Parte 3
- Parte 4
- Parte 5
- Parte 6
- Parte 7
- Projeto React Phone E-Commerce (vídeo)
Angular:
Crie um clone do Instagram com Angular 1.x
Crie um cliente Hacker News com capacidade off-line com Angular 2+
Crie um clone do Google+ com Django e AngularJS (Angular 1.x)
Crie um lindo aplicativo do mundo real com Angular 8:
Crie um layout responsivo com BootStrap 4 e Angular 6
Aplicativo ToDo com Angular 5
- Introdução ao angular
- Parte 1
Nó:
- Crie um editor Markdown em tempo real com NodeJS
- Desenvolvimento orientado a testes com Node, Postgres e Knex
- Escreva um bot do Twitter em Node.js
- Crie um bot de pesquisa simples em 30 minutos
- Crie um aplicativo da Web para eliminação de empregos
- Construindo um aplicativo GitHub
- Como construir seu próprio aplicativo Uber-for-X usando JavaScript, Node.JS, MongoDB e Web Sockets
Vista
- Vue 2 + Firebase: como construir um aplicativo Vue com sistema de autenticação Firebase em 15 minutos
- Tutorial do aplicativo Vue.js – Criando um aplicativo de orçamento simples com Vue
- Crie um blog com Vue, GraphQL e Apollo
- Construa um aplicativo web full stack usando pilha MEVN (MongoDB, Express, Vue, Node)
- Tutorial da lista de tarefas do Vue.js (vídeo)
- Vue 2 + Pub/Sub: Construa uma plataforma multiusuário ponto a ponto para jogos
Outros (Hapi, Express...):
- Crie um aplicativo da Web progressivo (PWA)
- Crie um aplicativo de desktop nativo com JS
- Crie uma API poderosa com NodeJs, GraphQL e Hapi
D3.js
- Aprenda D3 usando exemplos
- Aprenda a fazer um gráfico de linhas
Desenvolvimento de jogos:
- Faça um jogo Breakout 2D usando Phaser
- Faça Flappy Bird em HTML5 e JavaScript com Phaser
Aplicativo de área de trabalho:
- Crie um aplicativo de chat para desktop com React e Electron
Variado:
- Como construir uma estrutura da Web em menos de 20 linhas de código
- Construa um Redux para você
- Como escrever seu próprio DOM Virtual
- Crie uma API GraphQL sem servidor em tempo real com WebSockets na AWS
Kotlin:
- Keddit - Aprenda Kotlin enquanto desenvolve um aplicativo Android
Lua:
AMOR:
- BYTEPATH: Criação de um Jogo Completo com Lua e LÖVE
- Parte 0: Introdução
- Parte 1: Ciclo de Jogo
- Parte 2: Bibliotecas
- Parte 3: Salas e Áreas
- Parte 4: Exercícios
- Parte 5: Noções Básicas do Jogo
- Parte 6: Noções Básicas do Jogador
- Parte 7: Estatísticas e Ataques dos Jogadores
- Parte 8: Inimigos
- Parte 9: Diretor e Loop de Jogabilidade
- Parte 10: Práticas de Codificação
- Parte 11: Passivos
- Parte 12: Mais Passivos
- Parte 13: Árvore de Habilidades
- Parte 14: Console
- Parte 15: Final
Pitão:
Raspagem da Web:
- Minerando dados do Twitter com Python
- Raspe um site com Scrapy e MongoDB
- Como raspar com Python e Selenium WebDriver
- Qual filme devo assistir usando BeautifulSoup
Aplicativos da Web:
- Construa um microblog com Flask
- Crie um aplicativo da web para blog em Django
- Escolha suas próprias apresentações de aventura
- Crie uma lista de tarefas com Flask e RethinkDB
- Crie uma lista de tarefas com Django e desenvolvimento orientado a testes
- Construa um microsserviço RESTful em Python
- Microsserviços com Docker, Flask e React
- Crie um aplicativo da Web simples com Flask
- Crie uma API Django em menos de 20 minutos
- Crie um aplicativo de entrega voltado para a comunidade com Django, Postgres e JavaScript
- Aplicativo de chat em tempo real com Vue, Django-notifs, RabbitMQ e uWSGI
- Parte 1
- Parte 2
- Parte 3
- Parte 4
- Parte 5
- Parte 6
Robôs:
- Construa um bot Reddit
- Como fazer um bot Reddit - YouTube (vídeo)
- Crie um bot do Facebook Messenger
- Criando um Reddit + Facebook Messenger Bot
- Como criar um bot de telegrama usando Python
- Crie um bot do Twitter em Python
Ciência de Dados:
- Aprenda Python para ciência de dados realizando vários projetos (vídeo):
- Parte 1: Introdução
- Parte 2: Análise de sentimento do Twitter
- Parte 3: Sistemas de Recomendação
- Parte 4: Previsão dos preços das ações
- Parte 5: Deep Dream no TensorFlow
- Parte 6: Algoritmos Genéticos
Aprendizado de máquina:
- Escreva regressão linear do zero em Python (vídeo)
- Aprendizado de máquina passo a passo em Python
- Preveja a qualidade do vinho
- Resolvendo um problema de classificação de frutas
- Aprenda aprendizagem não supervisionada com Python
- Construa sua própria rede neural do zero em Python
- Regressão Linear em Python sem sklearn
- Regressão Linear Multivariada sem sklearn
- Recomendador de música usando KNN
- Encontre perguntas semelhantes do Quora-
- Usando BOW, TFIDF e Xgboost
- Usando Word2Vec e Xgboost
- Detectando notícias falsas com Python e aprendizado de máquina
OpenCV:
- Construa um scanner de documentos
- Construa um detector facial usando OpenCV e Deep Learning
- Crie um sistema de detecção de objetos personalizados mais rápido usando YOLOv3 (lista de reprodução de vídeo)
- Construa um sistema de reconhecimento facial usando OpenCV, Python e Deep Learning
- Detecte as características salientes em uma imagem
- Construa um leitor de código de barras
- Aprenda agrupamento facial com Python
- Rastreamento de objetos com Camshift
- Segmentação Semântica com OpenCV e Deep Learning
- Detecção de texto em imagens e vídeos
- Contador de pessoas usando OpenCV
- Rastreando Vários Objetos com OpenCV
- Transferência de estilo neural com OpenCV
- OCR OpenCV e reconhecimento de texto
- Tutorial de correção de distorção de texto
- Tutorial de detecção de marco facial
- Detecção de objetos usando Mask-R-CNN
- Tutorial de detecção automática de alvo
- EigenFaces usando OpenCV
- Tutorial de detecção de marco facial mais rápido (5 pontos)
- Detecção de ponto-chave manual
- Rastreamento de objetos de correlação Dlib -
- Rastreador de objeto único
- Rastreador de objetos múltiplos
- Costura de imagens com OpenCV e Python
- Segmentação de instâncias com OpenCV
- Detector de máscara facial
Aprendizado profundo:
- Usando redes neurais convolucionais para detectar pontos-chave faciais
- Gere uma face média usando Python e OpenCV
- Quebre um sistema Captcha usando CNNs
- Use o modelo Inception pré-treinado para fornecer previsões de imagens
- Crie sua primeira CNN
- Construa um pipeline de reconhecimento facial
- Crie um gerador de legenda de imagem
- Faça seu próprio sistema de reconhecimento facial
- Treine uma IA de detecção de idioma em 20 minutos
- Detecção de objetos com redes neurais
- Aprenda a análise de sentimento do Twitter -
- Parte I - Limpeza de Dados
- Parte II - EDA, Visualização de Dados
- Parte III - Lei de Zipf, Visualização de Dados
- Parte IV - Extração de recursos (vetorizador de contagem)
- Parte V - Extração de recursos (vetorizador Tfidf)
- Parte VI - Doc2Vec
- Parte VII - Modelagem de Frases + Doc2Vec
- Parte VIII - Redução da Dimensionalidade
- Parte IX - Redes Neurais com vetores Tfdif
- Parte X - Redes Neurais com word2vec/doc2vec
- Parte XI - CNN com Word2Vec
- Use o Transfer Learning para classificação de imagens personalizada
- Aprenda a codificar uma rede neural simples em 11 linhas de Python
- Construa uma rede neural usando abordagem gradiente descendente
- Treine um modelo Keras para gerar cores
- Introdução ao Keras em um conjunto de dados personalizado
- Use EigenFaces e FisherFaces no conjunto de dados Faces94
- Tutorial do reconhecedor de dígitos Kaggle MNIST
- Tutorial de moda MNIST com tf.keras
- CNN usando Keras para classificar automaticamente a integridade da raiz
- Keras x Tensorflow
- Aprendizado profundo e análise de imagens médicas para detecção de malária
- Transferir aprendizagem para classificação de imagens usando Keras
- Codifique um classificador Smile usando CNNS em Python
- Processamento de linguagem natural usando scikit-learn
- Codifique um gerador de letras Taylor Swift
- Detecção de máscara usando PyTorch Lightning
Variado:
- Construa um intérprete simples
- Construa um Blockchain Simples em Python
- Escreva um banco de dados NoSQL em Python
- Construindo um scanner de bomba de gás com OpenCV/Python/iOS
- Construa um sistema de streaming distribuído com Python e Kafka
- Escrevendo um compilador JIT x86-64 básico do zero em estoque Python
- Fazendo um depurador de baixo nível (Linux)
- Implementando um mecanismo de pesquisa
- Construa o Jogo da Vida
- Criar arte ASCII do terminal
- Escreva uma IA do jogo da velha
- Crie arte fotomosaica
- Construa o jogo "Snake" no terminal
- Escreva um Git para você
- Uma implementação Python de um executor de bytecode Python
- Crie um assistente de voz usando Python
Ir:
- Crie um aplicativo de bate-papo em tempo real com Golang, Angular 2 e WebSocket
- Construindo aplicações web e microsserviços Go usando Gin
- Como usar Godog para desenvolvimento baseado em comportamento em Go
- Construindo Blockchain em Go
- Parte 1: Protótipo Básico
- Parte 2: Prova de Trabalho
- Parte 3: Persistência e CLI
- Parte 4: Transações 1
- Parte 5: Endereço
- Parte 6: Transações 2
- Parte 7: Rede
- Construindo um contêiner do zero em Go - Liz Rice (Microscaling Systems)(vídeo)
- Crie um aplicativo da Web com GoLang
- Construindo um aplicativo de bate-papo em Go com ReactJS
- Parte 1: Configuração Inicial
- Parte 2: Comunicação Simples
- Parte 3: Projetando nosso Frontend
- Parte 4: Lidando com Vários Clientes
- Parte 5: Melhorando o Frontend
- Parte 6: Dockerizando seu Backend
- Tutorial Go WebAssembly - Tutorial Construindo uma Calculadora
- Servidores REST em Go
- Parte 1 – biblioteca padrão
- Parte 2 - usando um pacote de roteador
- Parte 3 – usando uma estrutura web
- Parte 4 – usando OpenAPI e Swagger
- Parte 5 - middleware
- Parte 6 – autenticação
- Parte 7 - GraphQL
- Vamos construir um encurtador de URL em Go - com Gin & Redis
- Parte 1 – Configuração do projeto
- Parte 2 – Camada de Armazenamento
- Parte 3 - Gerador de Link Curto
- Parte 4 - Encaminhamento
- Construindo um bate-papo TCP em Go (vídeo)
- Construindo um cliente BitTorrent do zero em Go
- Masterclass de API REST com Go, PostgreSQL e Docker (playlist de vídeos)
in progress
PHP:
- Como construir um blog com Laravel (vídeo)
- Faça seu próprio blog (em PHP puro)
- Crie um exemplo de site imobiliário com SilverStripe
- Construindo aplicativo de chat em tempo real com Laravel 5.4 e VueJS (vídeo)
- Construa uma rede social: Laravel 5 - Youtube (vídeo)
- Crie um aplicativo multilocatário completo com Laravel
- Parte 0: Introdução
- Parte 1: Configuração
- Parte 2: Funções e Permissinos
- Parte 3: Convite
- Parte 4: Autenticação
- Parte 5: Teste
- Parte 6: Perfil do Usuário
- Parte 7: Implantação
- Construa um aplicativo Laravel CRUD do zero
OCaml:
- Implemente uma linguagem com LLVM no OCaml
- Escrevendo um emulador de Game Boy em OCaml
Rubi:
- Construa uma pilha de rede com Ruby
- Crie seu próprio Redis
- Parte 0: Introdução
- Parte 1: Servidor TCP Barebones
- Parte 2: PING <-> PONG
- Parte 3: Clientes Simultâneos
- Parte 4: ECO
- Reconstruindo Git em Ruby
Ruby nos trilhos:
- O tutorial Ruby on Rails
- Construa o Instagram do zero com Ruby on Rails
- Construa uma rede social usando Rails
- Como construir um aplicativo Ruby on Rails
Haskel:
- Write You a Haskell - Construa um compilador funcional moderno
- Escreva um esquema para você mesmo em 48 horas
- Escreva um esquema para você, versão 2
- Crie seu próprio bot de IRC
- Fazendo filme mônada
- Fazendo um site com Haskell (desatualizado)
R:
- Crie aplicativos da Web com Shiny
- Construa um bot de criptomoeda
- Aprenda mineração de regras associadas em R
Ferrugem:
- Um aplicativo Web simples em Rust
- Parte 1
- Parte 2a
- Parte 2b
- Escreva um sistema operacional em Rust puro
- Construa um mecanismo de navegador em Rust
- Escreva um microsserviço em Rust
- Aprendendo Rust com muitas listas vinculadas
- Ferrugem em detalhes: escrevendo um serviço de bate-papo escalonável do zero
- Parte 1: Implementando WebSocket. Introdução.
- Parte 2: Envio e recebimento de mensagens
- Escrevendo um Rust Roguelike para desktop e web
- Aplicativos de página única usando Rust
- Escrevendo emulador NES em Rust
- Crie uma simulação de evolução usando rede neural e algoritmo genético e compile o aplicativo para WebAssembly
- Parte 1
- Parte 2
- Parte 3
- Parte 4
Escala:
- Blockchain simples baseado em ator
- Sem mágica: expressões regulares
Rápido:
- Hackeando com Swift - Aprenda Swift fazendo 39 projetos
- Jogo de tiro em primeira pessoa retrô do zero
Recursos Adicionais
- Links React Redux
- Udemy. com
- Pilha Completa Python
- Escola do Nó
- ScotchIO
- Exercício
- Egghead.io
- Blog de Michael Herman
- Thinkster.io
- Iluminar
- Oficinas do Hack Club
- CodeCrafters