10 個GitHub庫開發者必看 [20200507-01]
10 個GitHub庫開發者必看 [20200507-01]
資料來源: https://mp.weixin.qq.com/s?__biz=MzAwNDc0MTUxMw==&mid=2649643717&idx=1&sn=bf07d1a4f085f6819fccd8636b9a4613&chksm=833dba23b44a33359b6723fe852ab13a8aaaf3d781ff9e95c6a82f9a0d3b1f5596a1a2e377c7&scene=126&sessionid=1588822866&key=d380ac17fe1e68e749a0dd9cfc79120a878b571e5ffe0799fa0752582acdfd27878f4adda61beef6b5b94df62252d5994c4854f9e3ca66fb53bcc337cedf591c087dca5fc7af44b8e63bd2465c2198a7&ascene=1&uin=MjIwODk2NDgxNw%3D%3D&devicetype=Windows+10+x64&version=62090070&lang=zh_TW&exportkey=AsGGUtVnp4znK%2FPzkr4nnu8%3D&pass_ticket=6EMnHONfG4zna6UxSx%2F8izfPblHff0SCTosru7qpWzBdBURupZil5ANHNAPJvoUo
1. Build Your Own X
GitHub 星數:61,300
GitHub 地址:https://github.com/danistefanovic/build-your-own-x
該庫囊括了大量教程,教你如何構建自己的技術。同時,這裡還有關於如何構建命令行工具、操作系統、搜索引擎、3D 渲染器等的示例。
想創建自己的編程語言,或屬於自己的Docker、Git 嗎?這個庫是你的不錯選擇。
Table of contents
- 3D Renderer
- Augmented Reality
- BitTorrent Client
- Blockchain / Cryptocurrency
- Bot
- Command-Line Tool
- Database
- Docker
- Emulator / Virtual Machine
- Front-end Framework / Library
- Game
- Git
- Network Stack
- Neural Network
- Operating System
- Physics Engine
- Programming Language
- Regex Engine
- Search Engine
- Shell
- Template Engine
- Text Editor
- Visual Recognition System
- Voxel Engine
- Web Search Engine
- Web Server
- Uncategorized
Tutorials
Build your
own 3D Renderer
-
C++: Introduction to Ray Tracing: a
Simple Method for Creating 3D Images -
C++: How OpenGL works: software
rendering in 500 lines of code -
C++: Raycasting engine of Wolfenstein
3D -
C++: Physically Based Rendering:From
Theory To Implementation -
C++: Rasterization: a Practical
Implementation -
C# /
TypeScript / JavaScript: Learning
how to write a 3D soft engine from scratch in C#, TypeScript or JavaScript -
Java /
JavaScript: Build your
own 3D renderer -
Java: How to create your own simple 3D
render engine in pure Java -
JavaScript
/ Pseudocode: Computer
Graphics from scratch - Python: A 3D Modeller
Build your
own Augmented Reality
-
C#: How To: Augmented Reality App
Tutorial for Beginners with Vuforia and Unity 3D - C#: How To Unity ARCore
- C#: AR Portal Tutorial with Unity
-
C#: How to create a Dragon in
Augmented Reality in Unity ARCore -
C#: How to Augmented Reality AR
Tutorial: ARKit Portal to the Upside Down -
Python: Augmented Reality with Python
and OpenCV
Build your
own BitTorrent Client
-
C#: Building a BitTorrent client
from scratch in C# -
Go: Building a BitTorrent client
from the ground up in Go - Nim: Writing a Bencode Parser
- Node.js: Write your own bittorrent client
-
Python: A BitTorrent client in Python
3.5
Build your
own Blockchain / Cryptocurrency
- ATS: Functional Blockchain
- C#: Programming The Blockchain in C#
-
Crystal: Write your own blockchain and
PoW algorithm using Crystal - Go: Building Blockchain in Go
-
Go: Code your own blockchain in less
than 200 lines of Go -
Java: Creating Your First Blockchain
with Java -
JavaScript: A cryptocurrency implementation
in less than 1500 lines of code -
JavaScript: Build your own Blockchain in
JavaScript -
JavaScript: Learn & Build a JavaScript
Blockchain -
JavaScript: Creating a blockchain with
JavaScript -
JavaScript: How To Launch Your Own
Production-Ready Cryptocurrency - JavaScript: Writing a Blockchain in Node.js
-
Kotlin: Let’s implement a cryptocurrency
in Kotlin -
Python: Learn Blockchains by Building
One -
Python: Build your own blockchain: a
Python tutorial -
Python: A Practical Introduction to
Blockchain with Python -
Python: Let’s Build the Tiniest
Blockchain -
Ruby: Programming Blockchains
Step-by-Step (Manuscripts Book Edition) -
Scala: How to build a simple
actor-based blockchain -
TypeScript: Naivecoin: a tutorial for
building a cryptocurrency -
TypeScript: NaivecoinStake: a tutorial for
building a cryptocurrency with the Proof of Stake consensus
Build your
own Bot
- Haskell: Roll your own IRC bot
-
Java: How To Make a Scary Russian
Twitter Bot With Java -
Node.js: Creating a Simple Facebook
Messenger AI Bot with API.ai in Node.js -
Node.js: How to make a responsive
telegram bot - Node.js: Create a Discord bot
- Node.js: gifbot – Building a GitHub App
-
Node.js: Building A Simple AI Chatbot
With Web Speech API And Node.js -
Python: Chatbot Fundamentals: An
interactive guide to writing bots in Python -
Python: How to Build Your First Slack
Bot with Python -
Python: How to build a Slack Bot with
Python using Slack Events API & Django under 20 minute - Python: Build a Reddit Bot
- Python: How To Make A Reddit Bot
-
Python: How To Create a Telegram Bot
Using Python -
Python: Create a Twitter Bot in Python
Using Tweepy -
Python: Creating Reddit Bot with Python
& PRAW -
R: Build A Cryptocurrency Trading
Bot with R -
Rust: A bot for Starcraft in Rust, C
or any other language
Build your
own Command-Line Tool
-
C: Rewriting the cat command from
scratch -
Go: Visualize your local git
contributions with Go -
Go: Build a command line app with
Go: lolcat -
Go: Building a cli command with Go:
cowsay - Go: Go CLI tutorial: fortune clone
-
Nim: Writing a stow alternative to
manage dotfiles
Build your
own Database
- C: Let’s Build a Simple Database
- C++: Implementing a Key-Value Store
- C#: Build Your Own Database
- Clojure: An Archaeology-Inspired Database
-
Crystal: Why you should build your own
NoSQL Database -
JavaScript: Dagoba: an in-memory graph
database - Python: DBDB: Dog Bed Database
-
Python: Write your own miniature Redis
with Python
Build your
own Docker
-
C: Linux containers in 500 lines of
code -
Go: Build Your Own Container Using
Less than 100 Lines of Go -
Go: Building a container from
scratch in Go -
Python: A workshop on Linux containers:
Rebuild Docker from Scratch -
Python: A proof-of-concept imitation of
Docker, written in 100% Python -
Shell: Docker implemented in around 100
lines of bash
Build your
own Emulator / Virtual Machine
- C: Virtual machine in C
- C: Write your Own Virtual Machine
-
C: Writing a Game Boy emulator,
Cinoop -
C++: How to write an emulator (CHIP-8
interpreter) -
C++: Emulation tutorial (CHIP-8
interpreter) -
C++: Emulation tutorial (GameBoy
emulator) -
C++: Emulation tutorial (Master
System emulator) - Common Lisp: CHIP-8 in Common Lisp
- JavaScript: GameBoy Emulation in JavaScript
-
Python: Emulation Basics: Write your own
Chip 8 Emulator/Interpreter
Build your
own Front-end Framework / Library
-
JavaScript: WTF is JSX (Let’s Build a JSX
Renderer) -
JavaScript: A DIY guide to build your own
React - JavaScript: Reverse Engineering React
- JavaScript: Building React From Scratch
-
JavaScript: Building Your Own React Clone in
Five Easy Steps -
JavaScript: Gooact: React in 160 lines of
JavaScript - JavaScript: React Internals
-
JavaScript: Learn how React Reconciler
package works by building your own lightweight React DOM - JavaScript: Build Yourself a Redux
- JavaScript: Let’s Write Redux!
-
JavaScript: Redux: Implementing Store from
Scratch -
JavaScript: Build Your own Simplified
AngularJS in 200 Lines of JavaScript - JavaScript: Make Your Own AngularJS
-
JavaScript: How to write your own Virtual
DOM -
JavaScript: Building a frontend framework,
from scratch, with components (templating, state, VDOM) - JavaScript: Build your own React
Build your
own Game
- C: Handmade Hero
- C: How to Program an NES game in C
- C: Chess Engine In C
- C: Let’s Make: Dangerous Dave
-
C: Learn Video Game Programming in
C - C: Coding A Sudoku Solver in C
- C: Coding a Rogue/Nethack RPG in C
- C: On Tetris and Reimplementation
- C++: Breakout
- C++: Beginning Game Programming v2.0
-
C++: Tetris tutorial in C++ platform
independent focused in game logic for beginners - C++: Remaking Cavestory in C++
- C++: Reconstructing Cave Story
- C++: Space Invaders from Scratch
-
C#: Learn C# by Building a Simple
RPG - C#: Creating a Roguelike Game in C#
- C#: Build a C#/WPF RPG
- Go: Games With Go
- Java: 3D Game Development with LWJGL 3
- JavaScript: 2D breakout game using Phaser
-
JavaScript: How to Make Flappy Bird in HTML5
With Phaser -
JavaScript: Developing Games with React,
Redux, and SVG -
JavaScript: Build your own 8-Ball Pool game
from scratch - JavaScript: How to Make Your First Roguelike
-
JavaScript: Think like a programmer: How to
build Snake using only JavaScript, HTML & CSS - Lua: BYTEPATH
- Python: Developing Games With PyGame
-
Python: Making Games with Python &
Pygame [pdf] - Python: The Complete Roguelike Tutorial
- Python: Roguelike Tutorial Revised
- Ruby: Developing Games With Ruby
- Ruby: Ruby Snake
-
Rust: Adventures in Rust: A Basic 2D
Game -
Rust: Roguelike Tutorial in Rust +
tcod
Build your
own Git
-
Haskell: Reimplementing “git clone” in
Haskell from the bottom up - JavaScript: Gitlet
- JavaScript: Build GIT – Learn GIT
-
Python: Just enough of a Git client to
create a repo, commit, and push itself to GitHub - Python: Write yourself a Git!
- Ruby: Rebuilding Git in Ruby
Build your
own Network Stack
-
C: Beej’s Guide to Network
Programming - C: Let’s code a TCP/IP stack
-
Ruby: How to build a network stack in
Ruby
Build your
own Neural Network
- C#: Neural Network OCR
- F#: Building Neural Networks in F#
-
Go: Build a multilayer perceptron
with Golang -
Go: How to build a simple artificial
neural network with Go -
Go: Building a Neural Net from
Scratch in Go -
JavaScript
/ Java: Neural
Networks – The Nature of Code -
JavaScript: Neural Network implementation in
JavaScript, by an example -
JavaScript: Neural networks from scratch for
JavaScript linguists (Part1 — The Perceptron) -
Python: A Neural Network in 11 lines of
Python -
Python: Implement a Neural Network from
Scratch -
Python: Optical Character Recognition
(OCR) -
Python: Traffic signs classification
with a convolutional network -
Python: Generate Music using LSTM Neural
Network in Keras -
Python: An Introduction to Convolutional
Neural Networks
Build your
own Operating System
- Assembly: Writing a Tiny x86 Bootloader
-
Assembly: Baking Pi – Operating Systems
Development -
C: Building a software and hardware
stack for a simple computer from scratch - C: Operating Systems: From 0 to 1
-
C: The little book about OS
development - C: Roll your own toy UNIX-clone OS
-
C: Kernel 101 – Let’s write a
Kernel -
C: Kernel 201 – Let’s write a
Kernel with keyboard and screen support -
C: Build a minimal multi-tasking
kernel for ARM from scratch - C: How to create an OS from scratch
- C: Malloc tutorial
- C: Hack the virtual memory
-
C: Learning operating system
development using Linux kernel and Raspberry Pi -
C: Operating systems development
for Dummies - C++: Write your own Operating System
- C++: Writing a Bootloader
- Rust: Writing an OS in Rust
Build your
own Physics Engine
- C: Video Game Physics Tutorial
-
C++: Game physics series by Allen
Chou -
C++: How to Create a Custom Physics
Engine - C++: 3D Physics Engine Tutorial
-
JavaScript: Build your own basic physics
engine in JavaScript - JavaScript: How Physics Engines Work
-
JavaScript: Broad Phase Collision Detection
Using Spatial Partitioning -
JavaScript: Build a simple 2D physics engine
for JavaScript games
Build your
own Programming Language
- (any): mal – Make a Lisp
- Assembly: Jonesforth
- C: Baby’s First Garbage Collector
-
C: Build Your Own Lisp: Learn C and
build your own programming language in 1000 lines of code -
C: Writing a Simple Garbage
Collector in C -
C: C interpreter that interprets
itself. -
C: A C & x86 version of the
“Let’s Build a Compiler” by Jack Crenshaw -
C++: Writing Your Own Toy Compiler
Using Flex - C++: How to Create a Compiler
-
C++: Kaleidoscope: Implementing a
Language with LLVM - F#: Understanding Parser Combinators
-
Elixir: Demystifying compilers by
writing your own - Go: The Super Tiny Compiler
- Go: Lexical Scanning in Go
- Haskell: Let’s Build a Compiler
- Haskell: Write You a Haskell
-
Haskell: Write Yourself a Scheme in 48
Hours - Haskell: Write You A Scheme
-
Java: Crafting interpreters: A
handbook for making programming languages - Java: Creating JVM Language
- JavaScript: The Super Tiny Compiler
- JavaScript: The Super Tiny Interpreter
- JavaScript: Little Lisp interpreter
-
JavaScript: How to implement a programming
language in JavaScript - OCaml: Writing a C Compiler
- OCaml: Writing a Lisp, the series
- Pascal: Let’s Build a Compiler
-
Python: A Python Interpreter Written in
Python -
Python: lisp.py: Make your own Lisp
interpreter - Python: Simple Iterator-based Parsing
-
Python: Simple Top-Down Parsing in
Python -
Python: How to Write a Lisp Interpreter
in Python - Python: Let’s Build A Simple Interpreter
-
Python: Make Your Own Simple Interpreted
Programming Language -
Racket: Beautiful Racket: How to make
your own programming languages with Racket - Ruby: A Compiler From Scratch
-
Ruby: Markdown compiler from scratch
in Ruby -
Rust: So You Want to Build a Language
VM -
Rust: Learning Parser Combinators With
Rust -
Swift: Building a LISP from scratch
with Swift -
TypeScript: Build your own WebAssembly
Compiler
Build your
own Regex Engine
- C: A Regular Expression Matcher
-
C: Regular Expression Matching Can
Be Simple And Fast -
JavaScript: Build a Regex Engine in Less
than 40 Lines of Code -
JavaScript: How to implement regular
expressions in functional javascript using derivatives - JavaScript: Implementing a Regular Expression Engine
- Perl: How Regexes Work
- Scala: No Magic: Regular Expressions
Build your
own Search Engine
- CSS: A search engine in CSS
-
Python: Building a search engine using
Redis and redis-py -
Python: Building a Vector Space Indexing
Engine in Python -
Python: Building A Python-Based Search
Engine -
Python: Making text search learn from
feedback -
Python: Finding Important Words in Text
Using TF-IDF
Build your
own Shell
- C: Tutorial – Write a Shell in C
- C: Let’s build a shell!
- C: Writing a UNIX Shell
- C: Build Your Own Shell
- Go: Writing a simple shell in Go
- Ruby: A Unix Shell in Ruby
- Rust: Build Your Own Shell using Rust
Build your
own Template Engine
-
JavaScript: JavaScript template engine in
just 20 lines -
JavaScript: Understanding JavaScript
Micro-Templating -
Python: Approach: Building a toy
template engine in Python - Python: A Template Engine
-
Ruby: How to write a template engine
in less than 30 lines of code
Build your
own Text Editor
- C: Build Your Own Text Editor
- C++: Designing a Simple Text Editor
-
Python: Python Tutorial: Make Your Own
Text Editor -
Python: Create a Simple Python Text
Editor! -
Ruby: Build a Collaborative Text
Editor Using Rails
Build your
own Visual Recognition System
-
Python: Developing a License Plate
Recognition System with Machine Learning in Python -
Python: Building a Facial Recognition
Pipeline with Deep Learning in Tensorflow
Build your
own Voxel Engine
Build your
own Web Search Engine
Build your
own Web Server
-
C#: Writing a Web Server from
Scratch -
Node.js: Let’s code a web server from
scratch with NodeJS Streams - Node.js: lets-build-express
- PHP: Writing a webserver in pure PHP
- Python: A Simple Web Server
- Python: Let’s Build A Web Server.
- Python: Web application from scratch
-
Python: Building a basic HTTP Server
from scratch in Python -
Python: Implementing a RESTful Web API
with Python & Flask -
Ruby: Building a simple websockets
server from scratch in Ruby
Uncategorized
-
(any): From NAND to Tetris: Building a
Modern Computer From First Principles - Alloy: The Same-Origin Policy
-
C: How to Write a Video Player in
Less Than 1000 Lines -
C: Learn how to write a hash table
in C -
C: The very basics of a terminal
emulator - C: Write a System Call
-
C: Sol – An MQTT broker from
scratch -
C++: Build your own VR headset for
$100 -
C++: How X Window Managers work and
how to write one - C++: Writing a Linux Debugger
- C++: How a 64k intro is made
-
C#: C# Networking: Create a TCP
chater server, TCP games, UDP Pong and more -
C#: Loading and rendering 3D
skeletal animations from scratch in C# and GLSL - Clojure: Building a spell-checker
-
Go, Let’s Create a Simple Load
Balancer -
Java: How to Build an Android Reddit
App -
JavaScript: Build Your Own Module Bundler –
Minipack -
JavaScript: Learn JavaScript Promises by
Building a Promise from Scratch -
JavaScript: Implementing promises from
scratch (TDD way) -
JavaScript: Implement your own — call(),
apply() and bind() method in JavaScript -
JavaScript: JavaScript Algorithms and Data
Structures -
JavaScript: How to Make an Evolutionary
Tetris AI -
JavaScript: Build a ride hailing app with
React Native - Kotlin: Build Your Own Cache
- Nim: Writing a Redis Protocol Parser
- Nim: Writing a Build system
- Nim: Writing a MiniTest Framework
- Nim: Writing a DMIDecode Parser
- Nim: Writing a INI Parser
- Nim: Writing a Link Checker
- Nim: Writing a URL Shortening Service
-
Node.js: Build a static site generator in
40 lines with Node.js -
Node.js: Building A Simple Single Sign
On(SSO) Server And Solution From Scratch In Node.js. -
Node.js: How to create a real-world Node
CLI app with Node -
PHP: Write your own MVC from scratch
in PHP - PHP: Make your own blog
- PHP: Modern PHP Without a Framework
- Python: Build a Deep Learning Library
-
Python: How to Build a Kick-Ass Mobile
Document Scanner in Just 5 Minutes - Python: Continuous Integration System
-
Python: Recommender Systems in Python:
Beginner Tutorial -
Python: Write SMS-spam detector with
Scikit-learn -
Python: A Simple Content-Based
Recommendation Engine in Python -
Python: Stock Market Predictions with
LSTM in Python -
Python: Build your own error-correction
fountain code with Luby Transform Codes -
Python: Building a simple Generative
Adversial Network (GAN) using Tensorflow -
Python: Learn ML Algorithms by coding:
Decision Trees - Python: JSON Decoding Algorithm
- Ruby: A Pedometer in the Real World
-
Ruby: Creating a Linux Desktop
application with Ruby - Rust: Let’s build a browser engine
- Rust: Building a DNS server in Rust
-
Rust: Writing Scalable Chat Service
from Scratch -
TypeScript: Tiny Package Manager: Learns how
npm or Yarn works