diff --git a/README.md b/README.md index 91de803..bb7ae4f 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) @@ -93,6 +99,8 @@ It's a great way to learn. * [**TypeScript**: _Naivecoin: a tutorial for building a cryptocurrency_](https://lhartikk.github.io/) * [**TypeScript**: _NaivecoinStake: a tutorial for building a cryptocurrency with the Proof of Stake consensus_](https://naivecoinstake.learn.uno/) +*[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) @@ -112,6 +120,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/) @@ -123,6 +133,7 @@ It's a great way to learn. * [**Rust**: _Command line apps in Rust_](https://rust-cli.github.io/book/index.html) * [**Rust**: _Writing a Command Line Tool in Rust_](https://mattgathu.github.io/2017/08/29/writing-cli-app-rust.html) +*[Back to Top](#table-of-contents-build-your-own-x)* #### Build your own `Database` @@ -137,6 +148,8 @@ It's a great way to learn. * [**Golang**: _Build Your Own Database from Scratch: Persistence, Indexing, Concurrency_](https://build-your-own.org/database/) * [**Ruby**: _Build your own fast, persistent KV store in Ruby_](https://dinesh.wiki/posts/build-your-own-persistent-kv-store/) +*[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) @@ -146,6 +159,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) @@ -162,6 +177,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/) @@ -180,6 +197,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/) @@ -218,6 +237,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/) @@ -228,12 +249,16 @@ 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/) * [**C**: _Let's code a TCP/IP stack_](http://www.saminiir.com/lets-code-tcp-ip-stack-1-ethernet-arp/) * [**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) @@ -251,6 +276,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) @@ -273,6 +300,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) @@ -283,6 +312,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://www.ibm.com/developerworks/library/wa-build2dphysicsengine/index.html) +*[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) @@ -328,6 +359,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) @@ -339,6 +372,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) @@ -348,6 +383,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/) @@ -357,6 +394,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) @@ -365,6 +404,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/) @@ -374,21 +415,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://blog.devcenter.co/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) @@ -402,6 +451,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/) @@ -465,6 +516,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"