diff --git a/README.md b/README.md index ee4ed8880..61f25e9a9 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,10 @@ It's a great way to learn. * [**C++**: _Physically Based Rendering:From Theory To Implementation_](http://www.pbr-book.org/) * [**C++**: _Ray Tracing in One Weekend_](https://raytracing.github.io/books/RayTracingInOneWeekend.html) * [**C++**: _Rasterization: a Practical Implementation_](https://www.scratchapixel.com/lessons/3d-basic-rendering/rasterization-practical-implementation/overview-rasterization-algorithm) +* [**C++**: _Developing a Software Renderer (Part 1)_](https://trenki2.github.io/blog/2017/06/06/developing-a-software-renderer-part1/) +* [**C++**: _Developing a Software Renderer (Part 2)_](https://trenki2.github.io/blog/2017/06/06/developing-a-software-renderer-part2/) +* [**C++**: _Developing a Software Renderer (Part 3)_](https://trenki2.github.io/blog/2017/06/06/developing-a-software-renderer-part3/) +* [**C++**: _Developing a Software Renderer (Part 4)_](https://trenki2.github.io/blog/2017/06/06/developing-a-software-renderer-part4/) * [**C# / TypeScript / JavaScript**: _Learning how to write a 3D soft engine from scratch in C#, TypeScript or JavaScript_](https://www.davrous.com/2013/06/13/tutorial-series-learning-how-to-write-a-3d-soft-engine-from-scratch-in-c-typescript-or-javascript/) * [**Java / JavaScript**: _Build your own 3D renderer_](https://avik-das.github.io/build-your-own-raytracer/) * [**Java**: _How to create your own simple 3D render engine in pure Java_](http://blog.rogach.org/2015/08/how-to-create-your-own-simple-3d-render.html) @@ -105,7 +109,7 @@ It's a great way to learn. * [**Node.js**: _Building A Simple AI Chatbot With Web Speech API And Node.js_](https://www.smashingmagazine.com/2017/08/ai-chatbot-web-speech-api-node-js/) * [**Python**: _How to Build Your First Slack Bot with Python_](https://www.fullstackpython.com/blog/build-first-slack-bot-python.html) * [**Python**: _How to build a Slack Bot with Python using Slack Events API & Django under 20 minute_](https://medium.com/freehunch/how-to-build-a-slack-bot-with-python-using-slack-events-api-django-under-20-minute-code-included-269c3a9bf64e) -* [**Python**: _Build a Reddit Bot_](http://pythonforengineers.com/build-a-reddit-bot-part-1/) +* [**Python**: _Build a Reddit Bot_](https://new.pythonforengineers.com/blog/build-a-reddit-bot-part-1) * [**Python**: _How To Make A Reddit Bot_](https://www.youtube.com/watch?v=krTUf7BpTc0) [video] * [**Python**: _How To Create a Telegram Bot Using Python_](https://www.freecodecamp.org/news/how-to-create-a-telegram-bot-using-python/) * [**Python**: _Create a Twitter Bot in Python Using Tweepy_](https://medium.freecodecamp.org/creating-a-twitter-bot-in-python-with-tweepy-ac524157a607) @@ -115,6 +119,7 @@ It's a great way to learn. #### Build your own `Command-Line Tool` +* [**Dart**: _Make a weather app with Dart_](https://meamka.me/posts/make-a-weather-app-with-dart/) * [**Go**: _Visualize your local git contributions with Go_](https://flaviocopes.com/go-git-contributions/) * [**Go**: _Build a command line app with Go: lolcat_](https://flaviocopes.com/go-tutorial-lolcat/) * [**Go**: _Building a cli command with Go: cowsay_](https://flaviocopes.com/go-tutorial-cowsay/) @@ -132,6 +137,7 @@ It's a great way to learn. * [**C#**: _Build Your Own Database_](https://www.codeproject.com/Articles/1029838/Build-Your-Own-Database) * [**Clojure**: _An Archaeology-Inspired Database_](http://aosabook.org/en/500L/an-archaeology-inspired-database.html) * [**Crystal**: _Why you should build your own NoSQL Database_](https://medium.com/@marceloboeira/why-you-should-build-your-own-nosql-database-9bbba42039f5) +* [**Go**: _Build a NoSQL Database From Scratch in 1000 Lines of Code using Go_](https://betterprogramming.pub/build-a-nosql-database-from-the-scratch-in-1000-lines-of-code-8ed1c15ed924) * [**Go**: _Build Your Own Database from Scratch: Persistence, Indexing, Concurrency_](https://build-your-own.org/database/) * [**Go**: _Build Your Own Redis from Scratch_](https://www.build-redis-from-scratch.dev/) * [**JavaScript**: _Dagoba: an in-memory graph database_](http://aosabook.org/en/500L/dagoba-an-in-memory-graph-database.html) @@ -255,10 +261,14 @@ It's a great way to learn. * [**Python**: _Neural Networks: Zero to Hero_](https://www.youtube.com/playlist?list=PLAqhIrjkxbuWI23v9cThsA9GvCAUhRvKZ) #### Build your own `Operating System` +_For more general information, see OSDev.org and OSDev.wiki_ +* [**(any)**: _Making Simple Graphical Linux Distro from Scratch_](https://www.youtube.com/watch?v=guSDz5Iwgw0) [video] +* [**(any)**: _Linux from scratch_](https://linuxfromscratch.org/lfs) * [**Assembly**: _Writing a Tiny x86 Bootloader_](http://joebergeron.io/posts/post_two.html) * [**Assembly**: _Baking Pi – Operating Systems Development_](http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/index.html) * [**C**: _Building a software and hardware stack for a simple computer from scratch_](https://www.youtube.com/watch?v=ZjwvMcP3Nf0&list=PLU94OURih-CiP4WxKSMt3UcwMSDM3aTtX) [video] +* [**C**: _Building an OS_](https://www.youtube.com/playlist?list=PLFjM7v6KGMpiH2G-kT781ByCNC_0pKpPN) * [**C**: _Operating Systems: From 0 to 1_](https://tuhdo.github.io/os01/) * [**C**: _The little book about OS development_](https://littleosbook.github.io/) * [**C**: _Roll your own toy UNIX-clone OS_](http://jamesmolloy.co.uk/tutorial_html/) @@ -272,15 +282,16 @@ It's a great way to learn. * [**C**: _Operating systems development for Dummies_](https://medium.com/@lduck11007/operating-systems-development-for-dummies-3d4d786e8ac) * [**C++**: _Write your own Operating System_](https://www.youtube.com/playlist?list=PLHh55M_Kq4OApWScZyPl5HhgsTJS9MZ6M) [video] * [**C++**: _Writing a Bootloader_](http://3zanders.co.uk/2017/10/13/writing-a-bootloader/) +* [**Nim**: Fusion OS: Writing an OS in Nim](https://0xc0ffee.netlify.app/osdev/) * [**Rust**: _Writing an OS in Rust_](https://os.phil-opp.com/) * [**Rust**: _Add RISC-V Rust Operating System Tutorial_](https://osblog.stephenmarz.com/) -* [**(any)**: _Linux from scratch_](https://linuxfromscratch.org/lfs) #### Build your own `Physics Engine` * [**C**: _Video Game Physics Tutorial_](https://www.toptal.com/game/video-game-physics-part-i-an-introduction-to-rigid-body-dynamics) -* [**C++**: _Game physics series by Allen Chou_](http://allenchou.net/game-physics-series/) +* [**C++**: _Create a 2D Physics Engine_](https://thevoxium.github.io/posts/stellar-engine/) * [**C++**: _How to Create a Custom Physics Engine_](https://gamedevelopment.tutsplus.com/series/how-to-create-a-custom-physics-engine--gamedev-12715) +* [**C++**: _Game physics series by Allen Chou_](http://allenchou.net/game-physics-series/) * [**C++**: _3D Physics Engine Tutorial_](https://www.youtube.com/playlist?list=PLEETnX-uPtBXm1KEr_2zQ6K_0hoGH6JJ0) [video] * [**JavaScript**: _How Physics Engines Work_](http://buildnewgames.com/gamephysics/) * [**JavaScript**: _Broad Phase Collision Detection Using Spatial Partitioning_](http://buildnewgames.com/broad-phase-collision-detection/) @@ -412,6 +423,7 @@ It's a great way to learn. * [**(any)**: _From NAND to Tetris: Building a Modern Computer From First Principles_](http://nand2tetris.org/) * [**Alloy**: _The Same-Origin Policy_](http://aosabook.org/en/500L/the-same-origin-policy.html) +* [**C**: _Build an 8-bit computer from Scratch_](https://eater.net/8bit) * [**C**: _How to Write a Video Player in Less Than 1000 Lines_](http://dranger.com/ffmpeg/ffmpeg.html) * [**C**: _Learn how to write a hash table in C_](https://github.com/jamesroutley/write-a-hash-table) * [**C**: _The very basics of a terminal emulator_](https://www.uninformativ.de/blog/postings/2018-02-24/0/POSTING-en.html) @@ -455,6 +467,7 @@ It's a great way to learn. * [**PHP**: _Code a Web Search Engine in PHP_](https://boyter.org/2013/01/code-for-a-search-engine-in-php-part-1/) * [**Python**: _Build a Deep Learning Library_](https://www.youtube.com/watch?v=o64FV-ez6Gw) [video] * [**Python**: _How to Build a Kick-Ass Mobile Document Scanner in Just 5 Minutes_](https://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/) +* [**Python**: _How to build your first error-correction code in vanilla Python](https://quantum-for-the-confused.medium.com/building-your-first-error-correction-code-in-python-4c1da6d56876) * [**Python**: _Continuous Integration System_](http://aosabook.org/en/500L/a-continuous-integration-system.html) * [**Python**: _Recommender Systems in Python: Beginner Tutorial_](https://www.datacamp.com/community/tutorials/recommender-systems-python) * [**Python**: _Write SMS-spam detector with Scikit-learn_](https://medium.com/@kopilov.vlad/detect-sms-spam-in-kaggle-with-scikit-learn-5f6afa7a3ca2) @@ -464,12 +477,14 @@ It's a great way to learn. * [**Python**: _Learn ML Algorithms by coding: Decision Trees_](https://lethalbrains.com/learn-ml-algorithms-by-coding-decision-trees-439ac503c9a4) * [**Python**: _JSON Decoding Algorithm_](https://github.com/cheery/json-algorithm) * [**Python**: _Build your own Git plugin with python_](https://joshburns-xyz.vercel.app/posts/build-your-own-git-plugin) +* [**Python**: _Windowing Systems by Example_](https://jmarlin.github.io/wsbe/) * [**Ruby**: _A Pedometer in the Real World_](http://aosabook.org/en/500L/a-pedometer-in-the-real-world.html) * [**Ruby**: _Creating a Linux Desktop application with Ruby_](https://iridakos.com/tutorials/2018/01/25/creating-a-gtk-todo-application-with-ruby) * [**Rust**: _Building a DNS server in Rust_](https://github.com/EmilHernvall/dnsguide/blob/master/README.md) * [**Rust**: _Writing Scalable Chat Service from Scratch_](https://nbaksalyar.github.io/2015/07/10/writing-chat-in-rust.html) * [**Rust**: _WebGL + Rust: Basic Water Tutorial_](https://www.chinedufn.com/3d-webgl-basic-water-tutorial/) * [**TypeScript**: _Tiny Package Manager: Learns how npm or Yarn works_](https://github.com/g-plane/tiny-package-manager) +* [**React Native**: Build your own TV app ](https://github.com/AmazonAppDev/react-native-multi-tv-app-sample) ## Contribute * Submissions welcome, just send a PR, or [create an issue](https://github.com/codecrafters-io/build-your-own-x/issues/new)