Apprentissage par projet
Une liste de didacticiels de programmation dans lesquels les futurs développeurs de logiciels apprennent à créer une application à partir de zéro. Ces didacticiels sont divisés en différents langages de programmation principaux. Les didacticiels peuvent impliquer plusieurs technologies et langages.
Pour commencer, forkez simplement ce dépôt. Veuillez vous référer à CONTRIBUTING.md pour les directives de contribution.
Table des matières:
- C#
- C/C++
- Clojure
- Dard
- Élixir
- Erlang
- Fa#
- Aller
- Haskell
- HTML/CSS
- Java
- Javascript
- Kotlin
- Lua
- OCaml
- PHP
- Python
- R.
- Rubis
- Rouiller
- Échelle
- Rapide
- Ressources supplémentaires
C/C++ :
- Construire un interprète (le chapitre 14 est écrit en C)
- Allocateurs de mémoire 101 - Écrire un allocateur de mémoire simple
- Écrire un shell en C
- Écrire un système de fichiers FUSE
- Créez votre propre éditeur de texte
- Construisez votre propre Lisp
- Comment programmer un jeu NES en C
- Écrire un système d'exploitation à partir de zéro
- Comment créer un système d'exploitation à partir de zéro
- Construire un émulateur CHIP-8
- Débuter la programmation de jeux avec C++ et SDL
- Implémentation d'un magasin de valeurs-clés
- Petits projets graphiques 3D
- Tiny Renderer ou comment fonctionne OpenGL : logiciel de rendu en 500 lignes de code
- RayTracing compréhensible en 256 lignes de C++ nu
- KABOOM ! en 180 lignes de C++ brut
- 486 lignes de C++ : des FPS old-school en un week-end
- Écrire un compilateur JIT x86-64 minimal en C++
- Créer une bibliothèque Live Code-reloader pour C++
- Écrire une table de hachage en C
- Créons une base de données simple
- Écrivons un noyau
- Écrire un chargeur de démarrage en C
- Conteneur Linux en 500 lignes de code
- Écrivez votre propre machine virtuelle
- Apprendre KVM - Implémentez votre propre noyau Linux
- Créez votre propre Redis avec C/C++
- Écrire un compilateur C
- Partie 1 : Entiers, Lexing et génération de code
- Partie 2 : Opérateurs unaires
- Partie 3 : Opérateurs binaires
- Partie 4 : Encore plus d'opérateurs binaires
- Partie 5 : Variables locales
- Partie 6 : Conditions
- Partie 7 : Déclarations composées
- Partie 8 : Boucles
- Partie 9 : Fonctions
- Partie 10 : Variables globales
- Implémentation d'un langage avec LLVM
- Meta Crush Saga : un jeu en compilation C++17
- Multiplication matricielle haute performance
- Space Invaders à partir de zéro
- Partie 1
- Partie 2
- Partie 3
- Partie 4
- Partie 5
- Tutoriel Tetris en plate-forme C++ indépendante
- Écrire un débogueur Linux
- Partie 1 : Configuration
- Partie 2 : Points d'arrêt
- Partie 3 : Registres et mémoire
- Partie 4 : Elfes et nains
- Partie 5 : Source et signaux
- Partie 6 : étape au niveau de la source
- Partie 7 : Points d'arrêt au niveau de la source
- Partie 8 : Déroulement de la pile
- Partie 9 : Gestion des variables
- Partie 10 : Sujets avancés
- Écrivons un compilateur
- Partie 1 : Introduction, sélection d'une langue et planification
- Partie 2 : Un lexer
- Partie 3 : Un analyseur
- Partie 4 : Tests
- Partie 5 : Un générateur de code
- Partie 6 : Entrée et sortie
- Partie 7 : Tableaux
- Partie 8 : chaînes, références avancées et conclusion
Programmation réseau
OpenGL :
- Création d'un clone de jeu 2D Breakout en C++ avec OpenGL
- Éclater
- Mise en place
- Rendu des sprites
- Niveaux
- Collisions
- Balle
- Détection des collisions
- Résolution des collisions
- Particules
- Post-traitement
- Mises sous tension
- Audio
- Rendre le texte
- Réflexions finales
- Héros fait à la main
- Comment créer Minecraft en C++/OpenGL (vidéo)
C# :
- Apprenez le C# en créant un jeu RPG simple
- Créer un jeu de type Rogue en C#
- Créer une application vierge avec C# et Xamarin (travail en cours)
- Créez une application de bibliothèque de photos iOS avec Xamarin et Visual Studio
- Construire le CoreWiki Il s'agit d'un système de gestion de contenu de style Wiki qui a été entièrement écrit en C# avec ASP.NET Core et Razor Pages. Vous pouvez trouver le code source ici.
Clojure :
- Créez un robot Twitter avec Clojure
- Construire un correcteur orthographique
- Construire une intégration JIRA avec Clojure et Atlassian Connect
- Prototypage avec Clojure
- Tetris dans ClojureScript
Dard:
Battement:
- Amazon Clone avec panneau d'administration
- Application de livraison de nourriture
- Cloner Google Docs
- Cloner Instagram
- Jeu TicTacToe multijoueur
- Cloner TikTok
- Application de réservation de billets
- Application de voyage
- Clone Twitch
- Cloner WhatsApp
- Clone de mots
- Cloner le zoom
- Cloner Netflix
Élixir
- Créer une application de chat simple avec Elixir et Phoenix
- Comment écrire un raccourcisseur de lien ultra rapide avec Elixir, Phoenix et Mnesia
Erlang
- ChatBus : créez votre première application de chat multi-utilisateurs avec Erlang/OTP
- Créer une application de chat avec Erlang, Rebar, Cowboy et Bullet
Fa# :
- Écrivez votre propre Excel en 100 lignes de F#
Java:
- Construire un interprète (les chapitres 4 à 13 sont écrits en Java)
- Construisez un serveur HTTP simple avec Java
- Créer une application Android Flashlight (vidéo)
- Créer une application Spring Boot avec authentification utilisateur
Javascript :
- Construisez 30 choses en 30 jours avec 30 tutoriels
- Créer une application dans Pure JS
- Créer une extension de bloc-notes Jupyter
- Créez un jeu TicTacToe avec JavaScript
- Créez une application météo simple avec Vanilla JavaScript
- Créer une application de liste de tâches en JavaScript
HTML et CSS :
- Construire un écran de chargement
- Construire une calculatrice HTML avec JS
- Construisez Snake en utilisant uniquement JavaScript, HTML et CSS
Application mobile :
- Créer une application Todo native React
- Créez une application native React avec Redux Thunk
Applications Web :
Réagir:
- Créer des applications React.js sans serveur
- Créer un clone Trello
- Créez une application de vote de personnages avec React, Node, MongoDB et SocketIO
- Tutoriel React : Clonage de Yelp
- Créez une application de vote de films Full Stack avec un développement Test-First à l'aide de Mocha, React, Redux et Immutable
- Créez un flux Twitter avec React et Node
- Créez un clone moyen simple à l'aide de React.js et Node.js
- Intégrer MailChimp dans JS
- Créez une extension Chrome avec React + Parcel
- Créez une application ToDo avec React Native
- Créer une application de chat
- Créez une application d'actualités avec React Native
- Apprenez Webpack pour React
- Test de l'application React avec Puppeteer et Jest
- Créez votre propre passe-partout React
- Codez le jeu de la vie avec React
- Un didacticiel d'introduction de base à React+Redux
- Créer un planificateur de rendez-vous
- Créez une application de chat avec analyse des sentiments
- Créer une configuration d'application Web Full Stack
- Créer un clone de Todoist avec React et Firebase
- Construisez une machine à devis aléatoire
- Partie 1
- Partie 2
- Partie 3
- Partie 4
- Partie 5
- Partie 6
- Partie 7
- Projet de commerce électronique React Phone (vidéo)
Angulaire:
Créer un clone Instagram avec Angular 1.x
Créez un client Hacker News compatible hors ligne avec Angular 2+
Créez un clone Google+ avec Django et AngularJS (Angular 1.x)
Créez une belle application du monde réel avec Angular 8 :
- Première partie
- Deuxième partie
Créez une mise en page réactive avec BootStrap 4 et Angular 6
Application ToDo avec Angular 5
- Introduction à Angulaire
- Partie 1
Nœud:
- Créez un éditeur Markdown en temps réel avec NodeJS
- Développement piloté par les tests avec Node, Postgres et Knex
- Écrivez un robot Twitter dans Node.js
- Créez un robot de recherche simple en 30 minutes
- Créer une application Web de Job Scraping
- Créer une application GitHub
- Comment créer votre propre application Uber-for-X à l'aide de JavaScript, Node.JS, MongoDB et Web Sockets
Vue
- Vue 2 + Firebase : Comment créer une application Vue avec le système d'authentification Firebase en 15 minutes
- Tutoriel d'application Vue.js - Création d'une application de budgétisation simple avec Vue
- Créez un blog avec Vue, GraphQL et Apollo
- Créez une application Web complète à l'aide de la pile MEVN (MongoDB, Express, Vue, Node)
- Tutoriel sur la liste de tâches Vue.js (vidéo)
- Vue 2 + Pub/Sub : créez une plate-forme multi-utilisateurs peer to peer pour les jeux
Autres (Hapi, Express...) :
- Créer une application Web progressive (PWA)
- Partie 1
- Partie 2
- Partie 3
- Créez une application de bureau native avec JS
- Créez une API puissante avec NodeJs, GraphQL et Hapi
D3.js
- Apprenez le D3 à l'aide d'exemples
- Apprenez à créer un graphique linéaire
Développement de jeux :
- Créez un jeu en petits groupes en 2D à l'aide de Phaser
- Créez Flappy Bird en HTML5 et JavaScript avec Phaser
Application de bureau :
- Créez une application de chat de bureau avec React et Electron
Divers:
- Comment créer un framework Web en moins de 20 lignes de code
- Construisez-vous un Redux
- Comment écrire votre propre DOM virtuel
- Créez une API GraphQL sans serveur en temps réel avec WebSockets sur AWS
Kotlin :
- Keddit - Apprenez Kotlin tout en développant une application Android
Lua :
AMOUR:
- BYTEPATH : Création d'un jeu complet avec Lua et LÖVE
- Partie 0 : Introduction
- Partie 1 : Boucle de jeu
- Partie 2 : Bibliothèques
- Partie 3 : Pièces et zones
- Partie 4 : Exercices
- Partie 5 : Bases du jeu
- Partie 6 : Bases du joueur
- Partie 7 : Statistiques et attaques des joueurs
- Partie 8 : Ennemis
- Partie 9 : Réalisateur et boucle de gameplay
- Partie 10 : Pratiques de codage
- Partie 11 : Passifs
- Partie 12 : Plus de passifs
- Partie 13 : Arbre de compétences
- Partie 14 : Console
- Partie 15 : Finale
Python:
Grattage Web :
- Extraction de données Twitter avec Python
- Scraper un site Web avec Scrapy et MongoDB
- Comment gratter avec Python et Selenium WebDriver
- Quel film dois-je regarder avec BeautifulSoup
Applications Web :
- Créer un microblog avec Flask
- Créer une application Web de blog dans Django
- Choisissez vos propres présentations d'aventure
- Créez une liste de tâches avec Flask et RethinkDB
- Créez une liste de tâches avec Django et le développement piloté par les tests
- Créer un microservice RESTful en Python
- Microservices avec Docker, Flask et React
- Créez une application Web simple avec Flask
- Créez une API Django en moins de 20 minutes
- Créez une application de livraison pilotée par la communauté avec Django, Postgres et JavaScript
- Application de chat en temps réel avec Vue, django-notifs, RabbitMQ et uWSGI
- Partie 1
- Partie 2
- Partie 3
- Partie 4
- Partie 5
- Partie 6
Bots :
- Créer un robot Reddit
- Comment créer un bot Reddit - YouTube (vidéo)
- Créer un robot Facebook Messenger
- Créer un robot Reddit + Facebook Messenger
- Comment créer un robot Telegram à l'aide de Python
- Créer un robot Twitter en Python
Science des données :
- Apprenez Python pour la science des données en réalisant plusieurs projets (vidéo) :
- Partie 1 : Introduction
- Partie 2 : Analyse des sentiments sur Twitter
- Partie 3 : Systèmes de recommandation
- Partie 4 : Prédire les cours des actions
- Partie 5 : Rêve profond dans TensorFlow
- Partie 6 : Algorithmes génétiques
Apprentissage automatique :
- Écrire une régression linéaire à partir de zéro en Python (vidéo)
- Apprentissage automatique étape par étape en Python
- Prédire la qualité du vin
- Résoudre un problème de classification des fruits
- Apprenez l'apprentissage non supervisé avec Python
- Créez votre propre réseau neuronal à partir de zéro en Python
- Régression linéaire en Python sans sklearn
- Régression linéaire multivariée sans sklearn
- Recommandeur de musique utilisant KNN
- Trouver des questions Quora similaires -
- Utilisation de BOW, TFIDF et Xgboost
- Utiliser Word2Vec et Xgboost
- Détection des fausses nouvelles avec Python et l'apprentissage automatique
OuvrirCV :
- Construire un scanner de documents
- Créez un détecteur de visage en utilisant OpenCV et Deep Learning
- Créez le système de détection d'objets personnalisé le plus rapide en utilisant YOLOv3 (liste de lecture vidéo)
- Créez un système de reconnaissance faciale en utilisant OpenCV, Python et Deep Learning
- Détecter les caractéristiques saillantes d'une image
- Construire un lecteur de codes-barres
- Apprenez le clustering de visages avec Python
- Suivi d'objets avec Camshift
- Segmentation sémantique avec OpenCV et Deep Learning
- Détection de texte dans les images et les vidéos
- Compteur de personnes utilisant OpenCV
- Suivi de plusieurs objets avec OpenCV
- Transfert de style neuronal avec OpenCV
- OpenCV OCR et reconnaissance de texte
- Tutoriel de correction de l'inclinaison du texte
- Tutoriel sur la détection de points de repère faciaux
- Détection d'objets à l'aide de Mask-R-CNN
- Tutoriel de détection automatique de cible
- EigenFaces utilisant OpenCV
- Tutoriel de détection de points de repère faciaux plus rapide (5 points)
- Détection des points clés de la main
- Suivi des objets de corrélation Dlib -
- Suivi d'objet unique
- Suivi d'objets multiples
- Assemblage d'images avec OpenCV et Python
- Segmentation d'instances avec OpenCV
- Détecteur de masque facial
Apprentissage profond :
- Utilisation de réseaux neuronaux convolutifs pour détecter les points clés du visage
- Générer un visage moyen en utilisant Python et OpenCV
- Briser un système Captcha à l'aide de CNN
- Utiliser le modèle Inception pré-entraîné pour fournir des prédictions d'images
- Créez votre premier CNN
- Construire un pipeline de reconnaissance faciale
- Créer un générateur de légendes d'images
- Créez votre propre système de reconnaissance faciale
- Former une IA de détection de langage en 20 minutes
- Détection d'objets avec les réseaux de neurones
- Apprenez l'analyse des sentiments sur Twitter -
- Partie I - Nettoyage des données
- Partie II - EDA, visualisation des données
- Partie III - Loi de Zipf, visualisation des données
- Partie IV - Extraction de fonctionnalités (vecteur de comptage)
- Partie V - Extraction de fonctionnalités (vecteur Tfidf)
- Partie VI - Doc2Vec
- Partie VII - Modélisation de phrases + Doc2Vec
- Partie VIII - Réduction de la dimensionnalité
- Partie IX - Réseaux neuronaux avec vecteurs Tfdif
- Partie X - Réseaux neuronaux avec word2vec/doc2vec
- Partie XI - CNN avec Word2Vec
- Utiliser Transfer Learning pour une classification d’images personnalisée
- Apprenez à coder un réseau de neurones simple en 11 lignes de Python
- Construire un réseau neuronal en utilisant l'approche de descente de gradient
- Entraîner un modèle Keras pour générer des couleurs
- Premiers pas avec Keras sur un ensemble de données personnalisé
- Utiliser EigenFaces et FisherFaces sur l'ensemble de données Faces94
- Tutoriel de reconnaissance de chiffres Kaggle MNIST
- Tutoriel Mode MNIST avec tf.keras
- CNN utilise Keras pour classer automatiquement la santé des racines
- Keras et Tensorflow
- Apprentissage profond et analyse d’images médicales pour la détection du paludisme
- Transfert d'apprentissage pour la classification d'images à l'aide de Keras
- Coder un classificateur de sourire en utilisant CNNS en Python
- Traitement du langage naturel à l'aide de scikit-learn
- Coder un générateur de paroles de Taylor Swift
- Détection de masque à l'aide de PyTorch Lightning
Divers:
- Construire un interprète simple
- Construire une blockchain simple en Python
- Écrire une base de données NoSQL en Python
- Construire un scanner de pompe à essence avec OpenCV/Python/iOS
- Créez un système de streaming distribué avec Python et Kafka
- Écrire un compilateur JIT x86-64 de base à partir de zéro en Python d'origine
- Créer un débogueur de bas niveau (Linux)
- Implémentation d'un moteur de recherche
- Partie 1
- Partie 2
- Partie 3
- Construisez le jeu de la vie
- Créer une illustration ASCII du terminal
- Écrire une IA Tic-Tac-Toe
- Créer de l'art photomosaïque
- Construisez le jeu "Snake" dans le terminal
- Écrivez-vous un Git
- Une implémentation Python d'un exécuteur de bytecode Python
- Créer un assistant vocal avec Python
Aller:
- Créez une application de chat en temps réel avec Golang, Angular 2 et WebSocket
- Création d'applications Web et de microservices Go à l'aide de Gin
- Comment utiliser Godog pour le développement axé sur le comportement dans Go
- Construire une blockchain dans Go
- Partie 1 : Prototype de base
- Partie 2 : Preuve de travail
- Partie 3 : Persistance et CLI
- Partie 4 : Transactions 1
- Partie 5 : Adresse
- Partie 6 : Transactions 2
- Partie 7 : Réseau
- Construire un conteneur à partir de zéro dans Go - Liz Rice (Microscaling Systems)(vidéo)
- Créer une application Web avec GoLang
- Créer une application de chat en Go avec ReactJS
- Partie 1 : Configuration initiale
- Partie 2 : Communication simple
- Partie 3 : Concevoir notre frontend
- Partie 4 : Gestion de plusieurs clients
- Partie 5 : Améliorer le frontend
- Partie 6 : Dockeriser votre backend
- Aller au didacticiel WebAssembly - Création d'un didacticiel de calculatrice
- Serveurs REST en Go
- Partie 1 - bibliothèque standard
- Partie 2 - utiliser un package de routeur
- Partie 3 - utiliser un framework Web
- Partie 4 - utiliser OpenAPI et Swagger
- Partie 5 - middleware
- Partie 6 - authentification
- Partie 7 - GraphQL
- Créons un raccourcisseur d'URL dans Go - avec Gin & Redis
- Partie 1 - Configuration du projet
- Partie 2 - Couche de stockage
- Partie 3 - Générateur de liens courts
- Partie 4 - Transfert
- Créer un chat TCP dans Go (vidéo)
- Créer un client BitTorrent à partir de zéro dans Go
- Masterclass API REST avec Go, PostgreSQL et Docker (playlist vidéo)
in progress
PHP :
- Comment créer un blog avec Laravel (vidéo)
- Créez votre propre blog (en PHP pur)
- Créer un exemple de site Web immobilier avec SilverStripe
- Création d'une application de chat en temps réel avec Laravel 5.4 et VueJS (vidéo)
- Construire un réseau social : Laravel 5 - Youtube (vidéo)
- Créez une application multi-tenant complète avec Laravel
- Partie 0 : Introduction
- Partie 1 : Configuration
- Partie 2 : Rôles et autorisations
- Partie 3 : Invitation
- Partie 4 : Authentification
- Partie 5 : Tests
- Partie 6 : Profil utilisateur
- Partie 7 : Déploiement
- Créer une application Laravel CRUD à partir de zéro
OCaml :
- Implémenter un langage avec LLVM dans OCaml
- Écrire un émulateur Game Boy en OCaml
Rubis:
- Construisez une pile réseau avec Ruby
- Créez votre propre Redis
- Partie 0 : Introduction
- Partie 1 : Serveur TCP Barebones
- Partie 2 : PING <-> PONG
- Partie 3 : Clients simultanés
- Partie 4 : ÉCHO
- Reconstruire Git en Ruby
Ruby sur Rails :
- Le didacticiel Ruby on Rails
- Créez Instagram à partir de zéro avec Ruby on Rails
- Construire un réseau social en utilisant Rails
- Comment créer une application Ruby on Rails
Haskel :
- Écrivez-vous un Haskell - Créez un compilateur fonctionnel moderne
- Écrivez-vous un schéma en 48 heures
- Écrivez-vous un schéma, version 2
- Lancez votre propre robot IRC
- Faire une monade de film
- Créer un site Web avec Haskell (obsolète)
R :
- Créez des applications Web avec Shiny
- Construire un robot de crypto-monnaie
- Apprenez l’exploration de règles associées dans R
Rouiller:
- Une application Web simple dans Rust
- Partie 1
- Partie 2a
- Partie 2b
- Écrire un système d'exploitation en Rust pur
- Construire un moteur de navigateur dans Rust
- Écrire un microservice dans Rust
- Apprendre Rust avec trop de listes liées
- Rust en détail : écrire un service de discussion évolutif à partir de zéro
- Partie 1 : Implémentation de WebSocket. Introduction.
- Partie 2 : Envoi et réception de messages
- Écrire un Rust Roguelike pour le bureau et le Web
- Applications à page unique utilisant Rust
- Écrire un émulateur NES dans Rust
- Créer une simulation d'évolution à l'aide d'un réseau neuronal et d'un algorithme génétique, et compiler l'application sur WebAssembly
- Partie 1
- Partie 2
- Partie 3
- Partie 4
Échelle :
- Blockchain simple basée sur les acteurs
- Pas de magie : expressions régulières
Rapide:
- Hacker avec Swift - Apprenez Swift en réalisant 39 projets
- Jeu de tir rétro à la première personne à partir de zéro
Ressources supplémentaires
- Liens React Redux
- Udemy.com
- Python complet
- École de nœud
- ScotchIO
- Exercice
- Egghead.io
- Le blog de Michael Herman
- Thinkster.io
- Éclairer
- Ateliers Hack Club
- CodeCrafters