Programming Tutorials and Stuff
These links might be useful to programmers, both new and experienced.
(I'll learn to program properly... someday...)
Assorted Links
Free Code Camp (YouTube)
Teach Yourself Computer Science
Structure and Interpretation of Computer Programs
JavaScript SICP!?
Code Maven (Programming Tutor Waifu)
Consumer-Centric API Design (Github)
How To Design A Good API and Why it Matters (YouTube)
The Rust Book
Missing Semester (YouTube Channel)
SICP Lecture (Youtube - MIT)
Andrew Ng Machine Learning Lectures (YouTube)
Automate the Boring Stuff with Python (Al Sweigart)
The Architecture of Open Source Applications
Open source licenses: What, which, and why (Ars Technica)
Why would anybody use C over C++? (Stack Overflow)
Ask HN: Self-taught webdev with lots of free time. What should I learn? (HN Comments)
Ask HN: What language-agnostic programming books should I read? (HN Comments)
Principles for making things for the web (Github)
How Not To Sort By Average Rating (Evan Miller)
How to Write a Spelling Corrector (Peter Norvig)
Designing a web crawler (Stack Overflow)
Predicting Likes: Inside A Simple Recommendation Engine's Algorithms (Toptal)
A technical guide to SEO (Mattias Geniar)
Awesome Sysadmin (Github)
Cloud Computing without Containers (Cloudflare Blog)
Build your own X (Github)
Best open source Text to Speech networks? (/r/MachineLearning)
Electron Alternatives (Github)
Xbox app for PC gets speed boost, ditching Electron for React Native UWP (Windows Central)
Hosting SQLite databases on Github Pages (phiresky)
Programming Philosophy
20 Things I’ve Learned in my 20 Years as a Software Engineer (Simple Thread) [HN]
Going High, Going Wide, Going Deep (HN Comment)
Use One Big Server (Speculative Branches)
Fire And Motion (Joel Spolsky)
Programming Sucks (Still Drinking)
Spoiled by the Web (Tyler Sticka)
My Approach to Getting Dramatically Better as a Programmer (Michael Malis)
Second-guessing the modern web (Tom MacWright)
10 Things I Regret About Node.js - Ryan Dahl - JSConf EU (YouTube)
What We Left Behind - 10 Valuable Skills From The 1990s (YouTube)
Software has diseconomies of scale – not economies of scale
The boring technology behind a one-person Internet company (Listen Notes) [HN]
Choose Boring Technology (Dan McKinley) [HN]
Disaster Recovery plans (HN comment)
The right way to turn off your old APIs (HTTP toolkit)
Front End Stuff
How Browsers Work: Behind the scenes of modern web browsers (HTML5 Rocks)
High Performance Browser Networking
HTML attributes to improve your users' two factor authentication experience (Twilio Blog)
Understanding Brotli's Potential (Akamai Blog)
Old CSS, new CSS (Fuzzy Notepad) [HN]
Microbrowsers are Everywhere (24 ways)
Preloading content with rel="preload" (MDN)
Web Performance 101 (PerfPerfPerf)
Preload, prefetch and other <link> tags (PerfPerfPerf)
7 Principles of Rich Web Applications (Guillermo Rauch)
The Cache API: A quick guide
Lea Verou (Blog)
Frontend Feeds (Github)
Web Server Stuff
How we 30x'd our Node parallelism (Plaid Blog)
htop explained
How To Upgrade Nginx In-Place Without Dropping Client Connections (Justin Ellingwood)
DIY Video Hosting ( [HN]
Command-line Tools can be 235x Faster than your Hadoop Cluster (Adam Drake)
A complete guide to threads in Node.js (LogRocket Blog)
Updating a Node.js web application without downtime (Net Instructions)
Database Stuff
Ask HN: What are some examples of good database schema designs? (HN Comments)
Notes about FoundationDB
How Discord Stores Billions of Messages (Discord Blog)
Use the Index, Luke!
Stopword List
7 Database Paradigms (YouTube - Fireship)
Scaling Datastores at Slack with Vitess (Slack Blog)
Network Security Stuff
How To Secure A Linux Server (Github)
Facebook Fudges Your Password for Your Convenience (How-To Geek)
How to securely hash passwords (Stack Exchange)
Ask HN: Best resources on webapp security? (HN Comments)
Security Guide: How To Protect Your Infrastructure Against The Basic Attacker (Mailgun Blog)
My First 10 Minutes on a Server ( [HN]
Guide to User Data Security (FusionAuth)
Choosing 2FA authenticator apps can be hard. Ars did it so you don’t have to (Ars Technica)
Session Management Cheat Sheet (OWASP)
Sam Curry (Blog)
We Hacked Apple for 3 Months: Here’s What We Found (Sam Curry)
Javascript-Specific Stuff
A re-introduction to JavaScript (MDN)
You Don't Know JS (Github)
The Modern JavaScript Tutorial (
Modern JavaScript Explained For Dinosaurs (
Javascript Equality Table ("Do I need to use 3 equals?")
How to manage HTML DOM with vanilla JavaScript only
Build your own React (Rodrigo Pombo)
A little bit of plain Javascript can do a lot (Julia Evans) [HN]
The cost of JavaScript in 2019
Why JavaScript is Eating HTML (CSS-Tricks)
JavaScript got better while I wasn’t looking (Fuzzy Notepad)
How JavaScript Grew Up and Became a Real Language (
JavaScript Weekly (JS newsletter)
Writing WebAssembly By Hand (Scott Logic)
WebRTC Stuff
WebRTC for the Curious
Servers for WebRTC: It is not all Peer to Peer (YouTube)
WebRTC Video Chat App Development (
WebRTC in the real world: STUN, TURN and signaling (HTML5 Rocks)
How Discord Handles Two and Half Million Concurrent Voice Users using WebRTC (Discord Blog)
Distributed Systems Stuff
MIT Distributed Systems Lecture (YouTube Playlist)
What are some good blogs about distributed systems? (Quora)
All Things Distributed (Blog)
Learning to build distributed systems (Marc Brooker)
Learning about distributed systems: where to start? (Murat Demirbas)
Challenges with distributed systems (Amazon Builders' Library)
You Cannot Have Exactly-Once Delivery (Brave New Geek)
Ephemeral Port Exhaustion and Web Services at Scale
How to design large-scale systems (Github)
A Distributed Systems Reading List (Github)
Distributed state and network topologies in chat systems (eta)
Computer Graphics Stuff
WebGL Fundamentals
Discover three.js
Computational Geometry in C Second Edition (Book)
Techniques for rendering text in Three.js (CSS-Tricks)
Bézier Curves for your Games: A Tutorial (Dev.Mag)
Bézier Path Algorithms (Dev.Mag)
Brush Painting Algorithms
The Book of Shaders
How to calculate the volume of a 3D mesh object the surface of which is made up triangles (Stack Overflow)
Circle-circle intersection points (Stack Overflow)
Point in polygon algorithms (Wikipedia)
Even-odd Rule (Wikipedia)
How can I determine whether a 2D Point is within a Polygon? (Stack Overflow)
Demos : Ray Casting
Understanding point-in-polygon (Tom MacWright)
Ramer–Douglas–Peucker algorithm (Wikipedia)
How to emulate hand-drawn shapes / Algorithms behind RoughJS (Preet Shihn)
Marching squares algorithm (Wikipedia)
How do you detect where two line segments intersect? (Stack Overflow)
3 Simple Steps to Implement Inverse Kinematics (Gamasutra)
Unleash Your Inner Supercomputer (Compute GPU Acceleration with WebGL)
Hello world example of WebGL parallelism (Stack Overflow)
Drawing Lines is Hard (Matt DesLauriers)
How to create a vector brush tool in WebGL? (Stack Overflow)
Exploring canvas drawing techniques (Perfection Kills)
Weiler–Atherton clipping algorithm (Wikipedia)
Xiaolin Wu's line algorithm (Wikipedia)
Parallel Curve (Wikipedia)
Ditherpunk — The article I wish I had about monochrome image dithering (
Game Dev Stuff
Game Programming Patterns
Games aren’t always fair, the magic lies in making you think they are (Polygon)
VALORANT's 128-Tick Servers (Riot Games Blog)
Fighting Game Netcode
Half-Life and Team Fortress Networking: Closing the Loop on Scalable Network Gaming Backend Services (Gamasutra) [HN]
Fast-Paced Multiplayer (Part I): Client-Server Game Architecture
Making Fast-Paced Multiplayer Networked Games is Hard (Gamasutra) [HN]
They Said I Couldn't Make an Online Multiplayer Game... So I Made One! (YouTube - Dani)
How to make your game 2X as fun! - (In No Time.) (YouTube - Jonas Tyroller)
A first-person engine in 265 lines (PlayfulJS)
Game Development (MDN)
Linear algebra for game developers ~ part 1 (Wolfire Games)
Build New Games
Hexagonal Grids (Red Blob Games)
Game physics from scratch (
2d trajectory planning of a spaceship with physics (Stack Overflow)