# Project Based Learning A list of programming tutorials in which learners build an application from scratch. These tutorials are divided into different primary programming languages. Some have intermix technologies and languages. To get started, simply fork this repo. Please refer to [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines. ## Table of Contents: * [C/C++](#cc) * [JavaScript](#javascript) * [Python](#python) * [Go](#go) * [Ruby](#ruby) * [Haskell](#haskell) * [Rust](#rust) * [Additional resources](#additional-resources) ## C/C++: * [Write a Shell in C](https://brennan.io/2015/01/16/write-a-shell-in-c/) * [Build Your Own Text Editor](http://viewsourcecode.org/snaptoken/kilo/) * [Build Your Own Lisp](http://www.buildyourownlisp.com/) * [Write an OS from scratch](https://github.com/tuhdo/os01) * [How to Make Minecraft in C++/OpenGL](https://www.youtube.com/playlist?list=PLMZ_9w2XRxiZq1vfw1lrpCMRDufe2MKV_) * [How to Write an Emulator (CHIP-8 interpreter)](http://www.multigesture.net/articles/how-to-write-an-emulator-chip-8-interpreter/) ## JavaScript: * [Create Serverless React.js Apps](http://serverless-stack.com/) * [Create a Trello Clone](http://codeloveandboards.com/blog/2016/01/04/trello-tribute-with-phoenix-and-react-pt-1/) * [Create a Charater Voting App with React, Node, MongoDB and SocketIO](http://sahatyalkabov.com/create-a-character-voting-app-using-react-nodejs-mongodb-and-socketio/) * [Build a URL Shortener with Node, MongoDB and Hapi.js](https://www.codetuts.tech/build-a-url-shortener-node-hapi-js/?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more) * [Build an Instagram Clone](https://hackhands.com/building-instagram-clone-angularjs-satellizer-nodejs-mongodb/) * [How to Build a Web Framework in Less Than 20 Lines of Code](https://www.pubnub.com/blog/build-yourself-a-web-framework-in-less-than-20-lines-of-code/) * [Build a real-time Markdown Editor with NodeJS](https://scotch.io/tutorials/building-a-real-time-markdown-viewer) * Build a Serverless MERN Story App with Webtask.io * [Part 1](https://scotch.io/tutorials/build-a-serverless-mern-story-app-with-webtask-io-zero-to-deploy-1) * [Part 2](https://scotch.io/tutorials/build-a-serverless-mern-story-app-with-webtask-io-zero-to-deploy-2) * [Make 2D Breakout Game using Phaser](https://developer.mozilla.org/en-US/docs/Games/Tutorials/2D_breakout_game_Phaser) * Make Flappy Bird in HTML5 and JavaScript with Phaser * [Part 1](http://www.lessmilk.com/tutorial/flappy-bird-phaser-1) * [Part 2](http://www.lessmilk.com/tutorial/flappy-bird-phaser-2) * Build a Music Player with React & Electron * [Part 1](https://scotch.io/tutorials/build-a-music-player-with-react-electron-i-setup-basic-concepts) * [Part 2](https://scotch.io/tutorials/build-a-music-player-with-react-electron-ii-making-the-ui) * [Part 3](https://scotch.io/tutorials/build-a-music-player-with-react-electron-iii-bringing-it-all-together) ## Python: * [Build a Reddit Bot](http://pythonforengineers.com/build-a-reddit-bot-part-1/) * [How to Make a Reddit Bot - YouTube](https://www.youtube.com/watch?v=krTUf7BpTc0) * [Build a Facebook Messenger Bot](https://blog.hartleybrody.com/fb-messenger-bot/) * [Making a Reddit + Facebook Messenger Bot](https://pythontips.com/2017/04/13/making-a-reddit-facebook-messenger-bot/) * [Build a Simple Interpreter](https://ruslanspivak.com/lsbasi-part1/) * [Build a Microblog with Flask](https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world) * [Choose Your Own Adventure Presentations](https://www.twilio.com/blog/2015/03/choose-your-own-adventures-presentations-wizard-mode-part-1-of-3.html) * [Mining Twitter Data with Python](https://marcobonzanini.com/2015/03/02/mining-twitter-data-with-python-part-1/) * [Write a NoSQL Database in Python](https://jeffknupp.com/blog/2014/09/01/what-is-a-nosql-database-learn-by-writing-one-in-python/) * [Scrape a Website with Scrapy and MongoDB](https://realpython.com/blog/python/web-scraping-with-scrapy-and-mongodb/) * [Build a Todo List with Flask and RethinkDB](https://realpython.com/blog/python/rethink-flask-a-simple-todo-list-powered-by-flask-and-rethinkdb/) * [Building a Gas Pump Scanner with OpenCV/Python/iOS](https://hackernoon.com/building-a-gas-pump-scanner-with-opencv-python-ios-116fe6c9ae8b) * [Create a blog webapp in Django](https://tutorial.djangogirls.org/en/) ## Go: * [Create a Real Time Chat App with Golang, Angular 2, and WebSocket](https://www.thepolyglotdeveloper.com/2016/12/create-real-time-chat-app-golang-angular-2-websockets/) * [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) * [How to Use Godog for Behavior-driven Development in Go et started with Godog](https://semaphoreci.com/community/tutorials/how-to-use-godog-for-behavior-driven-development-in-go) ## Ruby: * [Build Instagram From Scratch with Ruby on Rails](https://www.dropbox.com/s/9vq430e9s3q7pu8/Let%27s%20Build%20Instagram%20with%20Ruby%20on%20Rails%20-%20Free%20Edition.pdf?dl=0) ## Haskell: * [Write You a Haskell - Build a modern functional compiler](http://dev.stephendiehl.com/fun/) * [Write Yourself a Scheme in 48 hours](https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours) ## Rust: * A Simple Web App in Rust * [Part 1](http://joelmccracken.github.io/entries/a-simple-web-app-in-rust-pt-1/) * [Part 2a](http://joelmccracken.github.io/entries/a-simple-web-app-in-rust-pt-2a/) * [Part 2b](http://joelmccracken.github.io/entries/a-simple-web-app-in-rust-pt-2b/) * [Write an OS in Rust](http://os.phil-opp.com/) ## Additional Resources * [React Redux Links](https://github.com/markerikson/react-redux-links) * [Full Stack Python](https://www.fullstackpython.com/) * [Node School](https://nodeschool.io/) * [ScotchIO](https://scotch.io/) * [Exercism](http://www.exercism.io/)