diff --git a/README.md b/README.md index 0c4d2d1..0f50c87 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,8 @@ It's a great way to learn. * [**JavaScript / Pseudocode**: _Computer Graphics from scratch_](http://www.gabrielgambetta.com/computer-graphics-from-scratch/introduction.html) * [**Python**: _A 3D Modeller_](http://aosabook.org/en/500L/a-3d-modeller.html) +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Build your own `Augmented Reality` * [**C#**: _How To: Augmented Reality App Tutorial for Beginners with Vuforia and Unity 3D_](https://www.youtube.com/watch?v=uXNjNcqW4kY) [video] @@ -61,6 +63,8 @@ It's a great way to learn. * [**C#**: _How to Augmented Reality AR Tutorial: ARKit Portal to the Upside Down_](https://www.youtube.com/watch?v=Z5AmqMuNi08) [video] * [**Python**: _Augmented Reality with Python and OpenCV_](https://bitesofcode.wordpress.com/2017/09/12/augmented-reality-with-python-and-opencv-part-1/) +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Build your own `BitTorrent Client` * [**C#**: _Building a BitTorrent client from scratch in C#_](https://www.seanjoflynn.com/research/bittorrent.html) @@ -69,6 +73,8 @@ It's a great way to learn. * [**Node.js**: _Write your own bittorrent client_](https://allenkim67.github.io/programming/2016/05/04/how-to-make-your-own-bittorrent-client.html) * [**Python**: _A BitTorrent client in Python 3.5_](http://markuseliasson.se/article/bittorrent-in-python/) +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Build your own `Blockchain / Cryptocurrency` * [**ATS**: _Functional Blockchain_](https://beta.observablehq.com/@galletti94/functional-blockchain) @@ -95,6 +101,8 @@ It's a great way to learn. * [**Rust**: _Building A Blockchain in Rust & Substrate_](https://hackernoon.com/building-a-blockchain-in-rust-and-substrate-a-step-by-step-guide-for-developers-kc223ybp) +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Build your own `Bot` * [**Haskell**: _Roll your own IRC bot_](https://wiki.haskell.org/Roll_your_own_IRC_bot) @@ -113,6 +121,8 @@ It's a great way to learn. * [**R**: _Build A Cryptocurrency Trading Bot with R_](https://towardsdatascience.com/build-a-cryptocurrency-trading-bot-with-r-1445c429e1b1) * [**Rust**: _A bot for Starcraft in Rust, C or any other language_](https://habr.com/en/post/436254/) +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Build your own `Command-Line Tool` * [**Go**: _Visualize your local git contributions with Go_](https://flaviocopes.com/go-git-contributions/) @@ -125,6 +135,7 @@ It's a great way to learn. * [**Rust**: _Writing a Command Line Tool in Rust_](https://mattgathu.dev/2017/08/29/writing-cli-app-rust.html) * [**Zig**: _Build Your Own CLI App in Zig from Scratch_](https://rebuild-x.github.io/docs/#/./zig/terminal/cli) +*[Back to Top](#table-of-contents-build-your-own-x)* #### Build your own `Database` @@ -141,6 +152,8 @@ It's a great way to learn. * [**Ruby**: _Build your own fast, persistent KV store in Ruby_](https://dineshgowda.com/posts/build-your-own-persistent-kv-store/) * [**Rust**: _Build your own Redis client and server_](https://tokio.rs/tokio/tutorial/setup) +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Build your own `Docker` * [**C**: _Linux containers in 500 lines of code_](https://blog.lizzie.io/linux-containers-in-500-loc.html) @@ -150,6 +163,8 @@ It's a great way to learn. * [**Python**: _A proof-of-concept imitation of Docker, written in 100% Python_](https://github.com/tonybaloney/mocker) * [**Shell**: _Docker implemented in around 100 lines of bash_](https://github.com/p8952/bocker) +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Build your own `Emulator / Virtual Machine` * [**C**: _Home-grown bytecode interpreters_](https://medium.com/bumble-tech/home-grown-bytecode-interpreters-51e12d59b25c) @@ -166,6 +181,8 @@ It's a great way to learn. * [**Python**: _Emulation Basics: Write your own Chip 8 Emulator/Interpreter_](http://omokute.blogspot.com.br/2012/06/emulation-basics-write-your-own-chip-8.html) * [**Rust**: _0dmg: Learning Rust by building a partial Game Boy emulator_](https://jeremybanks.github.io/0dmg/) +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Build your own `Front-end Framework / Library` * [**JavaScript**: _WTF is JSX (Let's Build a JSX Renderer)_](https://jasonformat.com/wtf-is-jsx/) @@ -183,6 +200,8 @@ It's a great way to learn. * [**JavaScript**: _Build your own React_](https://pomb.us/build-your-own-react/) * [**JavaScript**: _Building a Custom React Renderer_](https://youtu.be/CGpMlWVcHok) [video] +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Build your own `Game` * [**C**: _Handmade Hero_](https://handmadehero.org/) @@ -221,6 +240,8 @@ It's a great way to learn. * [**Rust**: _Adventures in Rust: A Basic 2D Game_](https://a5huynh.github.io/posts/2018/adventures-in-rust/) * [**Rust**: _Roguelike Tutorial in Rust + tcod_](https://tomassedovic.github.io/roguelike-tutorial/) +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Build your own `Git` * [**Haskell**: _Reimplementing “git clone” in Haskell from the bottom up_](http://stefan.saasen.me/articles/git-clone-in-haskell-from-the-bottom-up/) @@ -231,6 +252,8 @@ It's a great way to learn. * [**Python**: _ugit: Learn Git Internals by Building Git Yourself_](https://www.leshenko.net/p/ugit/) * [**Ruby**: _Rebuilding Git in Ruby_](https://robots.thoughtbot.com/rebuilding-git-in-ruby) +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Build your own `Network Stack` * [**C**: _Beej's Guide to Network Programming_](http://beej.us/guide/bgnet/) @@ -238,6 +261,8 @@ It's a great way to learn. * [**C / Python**: _Build your own VPN/Virtual Switch_](https://github.com/peiyuanix/build-your-own-zerotier) * [**Ruby**: _How to build a network stack in Ruby_](https://medium.com/geckoboard-under-the-hood/how-to-build-a-network-stack-in-ruby-f73aeb1b661b) +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Build your own `Neural Network` * [**C#**: _Neural Network OCR_](https://www.codeproject.com/Articles/11285/Neural-Network-OCR) @@ -255,6 +280,8 @@ It's a great way to learn. * [**Python**: _An Introduction to Convolutional Neural Networks_](https://victorzhou.com/blog/intro-to-cnns-part-1/) * [**Python**: _Neural Networks: Zero to Hero_](https://www.youtube.com/playlist?list=PLAqhIrjkxbuWI23v9cThsA9GvCAUhRvKZ) +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Build your own `Operating System` * [**Assembly**: _Writing a Tiny x86 Bootloader_](http://joebergeron.io/posts/post_two.html) @@ -277,6 +304,8 @@ It's a great way to learn. * [**Rust**: _Add RISC-V Rust Operating System Tutorial_](https://osblog.stephenmarz.com/) * [**(any)**: _Linux from scratch_](https://linuxfromscratch.org/lfs) +*[Back to Top](#table-of-contents-build-your-own-x)* + #### 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) @@ -287,6 +316,8 @@ It's a great way to learn. * [**JavaScript**: _Broad Phase Collision Detection Using Spatial Partitioning_](http://buildnewgames.com/broad-phase-collision-detection/) * [**JavaScript**: _Build a simple 2D physics engine for JavaScript games_](https://developer.ibm.com/tutorials/wa-build2dphysicsengine/?mhsrc=ibmsearch_a&mhq=2dphysic) +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Build your own `Programming Language` * [**(any)**: _mal - Make a Lisp_](https://github.com/kanaka/mal#mal---make-a-lisp) @@ -332,6 +363,8 @@ It's a great way to learn. * [**Swift**: _Building a LISP from scratch with Swift_](https://www.uraimo.com/2017/02/05/building-a-lisp-from-scratch-with-swift/) * [**TypeScript**: _Build your own WebAssembly Compiler_](https://blog.scottlogic.com/2019/05/17/webassembly-compiler.html) +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Build your own `Regex Engine` * [**C**: _A Regular Expression Matcher_](https://www.cs.princeton.edu/courses/archive/spr09/cos333/beautiful.html) @@ -344,6 +377,8 @@ It's a great way to learn. * [**Python**: _Build Your Own Regular Expression Engines: Backtracking, NFA, DFA_](https://build-your-own.org/b2a/r0_intro) * [**Scala**: _No Magic: Regular Expressions_](https://rcoh.svbtle.com/no-magic-regular-expressions) +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Build your own `Search Engine` * [**CSS**: _A search engine in CSS_](https://stories.algolia.com/a-search-engine-in-css-b5ec4e902e97) @@ -353,6 +388,8 @@ It's a great way to learn. * [**Python**: _Making text search learn from feedback_](https://medium.com/filament-ai/making-text-search-learn-from-feedback-4fe210fd87b0) * [**Python**: _Finding Important Words in Text Using TF-IDF_](https://stevenloria.com/tf-idf/) +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Build your own `Shell` * [**C**: _Tutorial - Write a Shell in C_](https://brennan.io/2015/01/16/write-a-shell-in-c/) @@ -363,6 +400,8 @@ It's a great way to learn. * [**Go**: _Writing a simple shell in Go_](https://sj14.gitlab.io/post/2018-07-01-go-unix-shell/) * [**Rust**: _Build Your Own Shell using Rust_](https://www.joshmcguigan.com/blog/build-your-own-shell-rust/) +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Build your own `Template Engine` * [**JavaScript**: _JavaScript template engine in just 20 lines_](http://krasimirtsonev.com/blog/article/Javascript-template-engine-in-just-20-line) @@ -371,6 +410,8 @@ It's a great way to learn. * [**Python**: _A Template Engine_](http://aosabook.org/en/500L/a-template-engine.html) * [**Ruby**: _How to write a template engine in less than 30 lines of code_](http://bits.citrusbyte.com/how-to-write-a-template-library/) +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Build your own `Text Editor` * [**C**: _Build Your Own Text Editor_](https://viewsourcecode.org/snaptoken/kilo/) @@ -380,21 +421,29 @@ It's a great way to learn. * [**Ruby**: _Build a Collaborative Text Editor Using Rails_](https://blog.aha.io/text-editor/) * [**Rust**: _Hecto: Build your own text editor in Rust_ ](https://www.flenker.blog/hecto/) +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Build your own `Visual Recognition System` * [**Python**: _Developing a License Plate Recognition System with Machine Learning in Python_](https://medium.com/devcenter/developing-a-license-plate-recognition-system-with-machine-learning-in-python-787833569ccd) * [**Python**: _Building a Facial Recognition Pipeline with Deep Learning in Tensorflow_](https://hackernoon.com/building-a-facial-recognition-pipeline-with-deep-learning-in-tensorflow-66e7645015b8) +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Build your own `Voxel Engine` * [**C++**: _Let's Make a Voxel Engine_](https://sites.google.com/site/letsmakeavoxelengine/home) * [**Java**: _Java Voxel Engine Tutorial_](https://www.youtube.com/watch?v=QZ4Vk2PkPZk&list=PL80Zqpd23vJfyWQi-8FKDbeO_ZQamLKJL) [video] +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Build your own `Web Browser` * [**Rust**: _Let's build a browser engine_](https://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html) * [**Python**: _Browser Engineering_](https://browser.engineering) +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Build your own `Web Server` * [**C#**: _Writing a Web Server from Scratch_](https://www.codeproject.com/Articles/859108/Writing-a-Web-Server-from-Scratch) @@ -409,6 +458,8 @@ It's a great way to learn. * [**Python**: _Implementing a RESTful Web API with Python & Flask_](http://blog.luisrei.com/articles/flaskrest.html) * [**Ruby**: _Building a simple websockets server from scratch in Ruby_](http://blog.honeybadger.io/building-a-simple-websockets-server-from-scratch-in-ruby/) +*[Back to Top](#table-of-contents-build-your-own-x)* + #### Uncategorized * [**(any)**: _From NAND to Tetris: Building a Modern Computer From First Principles_](http://nand2tetris.org/) @@ -472,6 +523,8 @@ It's a great way to learn. * [**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) +*[Back to Top](#table-of-contents-build-your-own-x)* + ## Contribute * Submissions welcome, just send a PR, or [create an issue](https://github.com/codecrafters-io/build-your-own-x/issues/new) * Help us review [pending submissions](https://github.com/codecrafters-io/build-your-own-x/issues) by leaving comments and "reactions"