- Notes below (down).
- A. Development Environment (go).
- B. Physics, Mathematics, Computer Architecture, Data Structures & Algorithms, Design Patterns, and Competitive Programming (go).
- C. Networking, Back-end Development, Security, Operations, and Automation (go).
- D. Front-end, Mobile, Game, AI, and Web Development (go).
- E. Avoid Atrophy, Constant Job Seeking, Resume, and Interview (go).
- Non-free Resources (Books & Udemy courses, wait for sales) (go).
- Ubuntu LTS; Git, GitHub CLI, LazyGit; ZSH, Oh-my-ZSH; LinuxBrew.
- GCC, Java, Go, Rust, NodeJS, Python, DotNet, OCaml.
- Docker, Docker Compose, Kubectl, Minikube, Terraform.
- Neovim, Lazy, Mason, Codeium, WakaTime; (VSCode, IntelliJ).
- Kreya, DbGate; (Flutter, Android Studio, Android Toolchain SDK).
- Chrome, Ublock Origin, Bard/Harpa AI; LibreOffice, OBS, Signal/Telegram;
- (A non-14-eyes trusted VPN, or free WARP for bypassing region lock, Tor network, proper OPSEC, and reconnaissance).
- Developer Tools secrets that shouldn’t be secrets (up).
- GNU Parallel videos (up).
- Curate and Optimize your own Dotifles, example, so that you can bring your environment everywhere with you (up).
B. Physics, Mathematics, Computer Architecture, Data Structures & Algorithms, Design Patterns, and Competitive Programming.
- English Practice (up).
- The birth, life and death of the universe – Public lecture by Dr. Don Lincoln (up).
- The Mosaic Problem - How and Why to do Math for Fun (up).
- The Mathematician’s Weapon | An Introduction to Category Theory, Abstraction and Algebra (up).
- Bayes theorem, the geometry of changing beliefs (up).
- Towers of Hanoi: A Complete Recursive Visualization (up).
- 5 Simple Steps for Solving Dynamic Programming Problems (up).
- Using Fractals to Deliver Babies (up).
- The Fast Fourier Transform (FFT) (up).
- Watching Neural Networks Learn (up).
- What You Need To Learn 2023 (as a software engineer) (up).
- Software Engineering is Overwhelming (up).
- On solving hard problems (up).
- Simple Made Easy (up).
- Design in Practice (up).
- How to -10x Engineer Correctly (up).
- Pre-Algebra/Introductory Algebra (up).
- Algebra I/Intermediate Algebra (up).
- Algebra II/College Algebra (up).
- Essence of linear algebra (up).
- Linear Algebra (Entire Course) (up).
- Abstract Algebra - Entire Course (up).
- Trig Review for Calculus in 10 Minutes or Less (up).
- Calculus I (Entire Course) (up).
- Calculus II (Entire Course) (up).
- Discrete Math I (Entire Course) (up).
- Discrete Math II/Combinatorics (entire course) (up).
- Applied Statistics (Entire Course) (up).
- Using Excel in Statistics (up).
- Hardware Basics (up).
- Exploring How Computers Work (up).
- Operating System Basics (up).
- CPU Scheduling Basics (up).
- Concurrency vs Parallelism (up).
- Every Programming Language in 15 Minutes (up).
- A Simple Programming Language (up).
- Programming Languages (up).
- Code Practices (up).
- C Programming (up).
- Arenas, strings and Scuffed Templates in C (up).
- Functional game logic with pauseless garbage collection (up).
- (Building A Maze Solver Robot) (up).
- Git for Professionals Tutorial - Tools & Concepts for Mastering Version Control with Git (up).
- 15 Lazygit Features In Under 15 Minutes (up).
- How to be a git expert (up).
- A zen manifesto for effective code reviews (up).
- Object-Oriented Programming (up).
- (The UNIX-HATERS Handbook) (up).
- Learn Java (up).
- Java 17 with Object Oriented Programming, Collections, and Concurrency (up).
- Functional programming - A general introduction (up).
- Java Functional Programming | Full Course (up).
- Programming with OCaml (up).
- Relational Databases (up).
- SQL (up).
- MySQL for Developers (up).
- Software Design Patterns and Principles (quick overview) (up).
- SOLID Principles (up).
- The C4 model for visualising software architecture (up).
- Design Patterns Video Tutorial (up).
- Design Patterns (up).
- RESTful web API design (up).
- Object-Oriented Programming is Bad (up).
- Object-Oriented Programming is Embarrassing: 4 Short Examples (up).
- Object-Oriented Programming is Garbage: 3800 SLOC example (up).
- Object-Oriented Programming is Good* (up).
- Abstraction Can Make Your Code Worse (up).
- Dependency Injection, The Best Pattern (up).
- The Flaws of Inheritance (up).
- “Clean” Code, Horrible Performance (up).
- A tour of the C# language (up).
- C# - Notes for Professionals (up).
- Advanced C# Programming Course (up).
- Learn X=Lua in Y minutes (up).
- JavaScript (up).
- TypeScript for JavaScript Programmers (up).
- Test-Driven Development // Fun TDD Introduction with JavaScript (up).
- How to build an event emitter in JavaScript (up).
- Inner workings of Map, Reduce & Filter in JavaScript (up).
- PubSub Design Pattern in JS (up).
- Learn Go with Tests (up).
- Go Class (up).
- (Go Struct Data Faker) (up).
- The Last Algorithms Course You’ll Need (up).
- Point-In-Polygon Algorithm (up).
- Bo Qian’s C++ Tutorials (up).
- Serialising/Deserialising Structured Memory To Disk, AKA Savin’ Stuff (up).
- Learn Rust Programming - Complete Course (up).
- Experiment: Improving the Rust Book (up).
- Rust By Practice (up).
- Crust of Rust (up).
- Johnson Trotter Algorithm - Generate Permutations (up).
- Graph Theory Playlist (up).
- Dynamic Programming (up).
- Stanford Algorithms 1 (up).
- Stanford Algorithms 2 (up).
- Principles of Algorithmic Problem Solving (up).
- Competitive Programmer’s Handbook (up).
- Algorithms for Competitive Programming (up). 100.(C++ Cheat Sheet for ACM ICPC) (up). 100.Advent of Code (up). 101.CSES Problem Set (up). 102.Blind 75 Must Do Leetcode (up). 103.CodeForces Sorted ProblemSet (up).
- How to Become a Good Backend Engineer (Fundamentals) (up).
- Each layer of the OSI model and TCP/IP explained (up).
- Computer Networking Introduction: Ethernet and IP (Heavily Illustrated) (up).
- The QUIC Protocol, HTTP3, and How HTTP Has Evolved (up).
- Cryptography (up).
- A complete overview of SSL/TLS and its cryptographic system (up).
- Create & sign SSL/TLS certificates with openssl (up).
- Quadratic Sieve - Factoring REALLY fast (up).
- Understanding AES Encryption Mechanics: BMPS (up).
- How Shor’s Algorithm running on a Quantum Computer Factors 314191 (up).
- HTTP caching (up).
- Zero-knowledge proof (up).
- The PLONK zero-knowledge proof system (up).
- Best practices for writing Dockerfiles (up).
- Docker Networking Crash Course (up).
- The smallest Docker image to serve static websites (up).
- CommonMistakes (up).
- Airbnb JavaScript Style Guide (up).
- Uber Go Style Guide (up).
- Go by Example (up).
- Spring Boot Complete Tutorial - Master Class (up).
- Simple Java Spring Boot RESTful API with Validator and Unit Testing (up).
- Rest API with JWT Access & Refresh Tokens | Spring Boot, MongoDB (up).
- Go REST API with NO DEPENDENCIES!?! - Go / Golang REST API Tutorial (up).
- Google I/O 2012 - Go Concurrency Patterns (up).
- Google I/O 2013 - Advanced Go Concurrency Patterns (up).
- 3 SIMPLE patterns to organize your goroutines! - Go / Golang Concurrency Patterns (up).
- Master Go Programming With These Concurrency Patterns (up).
- Controlling Concurrency: Advanced Go Programming (up).
- Go Semaphore Pattern Tutorial (up).
- Be Careful with Table Driven Tests and t.Parallel() (up).
- Go Concurrency: Fan-out, Fan-in (up).
- Go Message Queue using Concurrency, zero dependency (up).
- Go Concurrency Example - Let’s Build a Concurrent Download Manager - zero dependency (up).
- NodeJS Async Parallel with Worker Threads Example (up).
- Unity DOTS (Data-Oriented Technology Stack) overview (up).
- Concurrent write problem - Optimistic vs Pessimistic Locking (up).
- Learning Docker - The Easy Way (up).
- Learning Kubernetes - The Easy Way (up).
- How To Implement Domain-Driven Design (DDD) in Go (up).
- How To Structure Domain Driven Design (DDD) In Go (up).
- Free Secure Self-Hosting Using Cloudflare Tunnels (up).
- Adding A SSO Login To Cloudflare Application (up).
- Learn RabbitMQ for Event-Driven Architecture (EDA) (up).
- Structured Logging In Go Using Standard Library- Slogslog (up).
- The WebSocket Protocol (up).
- Implementing WebSocket Protocol in Go (up).
- Mastering WebSockets With Go - An in-depth tutorial (up).
- Backend master class [Golang + Postgres + Kubernetes + gRPC] (up).
- Load balancing gRPC service with NGINX (up).
- Distributed Systems - A free online class (up).
- Microservice | CQRS Design Pattern with SpringBoot & Apache Kafka (up).
- .NET Microservices: Architecture for Containerized .NET Applications (up).
- System Design for Beginners Course (up).
- High Available Microservices With Apache Kafka In Golang (up).
- System Design Interview – Step By Step Guide (up).
- Distributed Message Queue (up).
- Notification Service (up).
- Rate Limiting (local and distributed) (up).
- Distributed Cache (up).
- Top K Problem (Heavy Hitters) (up).
- System Design (up).
- PostgreSQL High-Availability (up).
- PostgreSQL: Nearest Neighbor Query Performance on Billions of Geolocation Records (up).
- What is a Log-Structured Merge Tree (LSM) Tree? (up).
- Modern Redis in 40 Minutes | Crash Course 2023 (up).
- Redis Glossary Terms (up).
- A Comprehensive Guide to Data Modeling (up).
- Building with Patterns: A Summary (up).
- Practical MongoDB Aggregations Book (up).
- (Go-Zero - Cloud-Native Go microservices framework with CLI tool) (up).
- Building Event-Driven Distributed Systems in Go with gRPC, NATS JetStream and CockroachDB (up).
- (Serverless Go Orchestration on AWS) (up).
- Create a modular blockchain from scratch (up).
- (RealWorld Demo Apps) (up).
- (Leptos - Rust Web Framework) (up).
- (Turso - Edge Database) (up).
- (Milvus - Vector Database) (up).
- (Locus - Load Testing Tool) (up).
- Solving distributed systems challenges in Rust (up).
- How we handle 80TB and 5M page views a month for under $400 (up).
- Kafka: The Definitive Guide (up).
- 100 Days Of Kubernetes (up).
- Go, EdgeX, Docker Compose, MQTT, Telegraf, InfluxDB, Grafana (up).
- (Dapr : The Ultimate Developer API for Authoring Microservices) (up).
- Go, Scala, Kafka, Kubernetes, Strimzi, Prometheus, and Grafana (up).
- Learn Jenkins! Complete Jenkins Course - Zero to Hero (up).
- Ansible (up).
- How to Create Helm Charts - The Ultimate Guide (up).
- Complete Terraform Course - From BEGINNER to PRO! (Learn Infrastructure as Code) (up).
- The ultimate CI/CD resource guide (up).
- Web3 is Going Just Great (up).
- The Public APIs List (up).
- Firebase Tutorial for Beginners – Build a Mobile App with HTML, CSS, JavaScript (up).
- Deleting all Firebase users (up).
- Add subscription payments to your web app with Firebase Extensions & Stripe (up).
- Understanding the Complexity of Modern Web Dev Stack (Webpack, Babel, TypeScript, React) (up).
- World’s shortest UI/UX design course (up).
- CSS Grid: Holy Grail Layout (up).
- Has Web Dev Gotten Worse? (up).
- JetBrains meets Codeium Chat (up).
- How I make science animations (up).
- (Figma Course - Web Design Tutorial for Beginners) (up).
- (Entity Component System (ECS) - Definition and Simple Implementation) (up).
- (JavaScript Game Development Course for Beginners) (up).
- (Gaming in Go) (up).
- (MODEL OF SYSTEM DESIGN) (up).
- (MODEL OF NARRATIVE DESIGN) (up).
- (MODEL OF QUEST DESIGN) (up).
- (MODEL OF LEVEL DESIGN) (up).
- (Bevy Engine) (up).
- Web Development In 2023 - A Practical Guide (up).
- Frontend Web Developer Guide 2023 - The Ultimate Edition (up).
- Learn React With This One Project (up).
- Những lỗi cơ bản khi sử dụng state trong React (up).
- Angular Tour of Heroes application and tutorial (up).
- Learn Svelte (up).
- The Odin Project - Fullstack Ruby on Rails, NodeJS, and React (up).
- How React 18 Improves Application Performance (up).
- Prisma Course: Zero To Hero (up).
- Drizzle ORM Comprehensive Course (up).
- Redux Toolkit Tutorial (up).
- Effect for Beginners (up).
- MERN Crash Course | JWT Authentication, Redux Toolkit, Deployment & More (up).
- Next.js Crash Course (up).
- Testing JavaScript with Cypress – Full Course (up).
- Next Auth (up).
- Save The User With Password Less Authentication In Next.JS (up).
- React Testing Crash Course with Next.js (up).
- GraphQL Crash Course With Full Stack MERN Project (up).
- N + 1 Query Problem, GraphQL, and Performance Woes (up).
- (Redwood - Opinionated, full-stack, JavaScript/TypeScript web application framework) (up).
- T3: TRPC, Prisma and NextAuth Done Right (up).
- The Complete Guide To Building A REST API With Node, Express, TypeScript & MongoDB + Authentication (up).
- Full Stack Food Delivery App with React Next.js (up).
- Tailwind CSS Full Course 2023 | Build and Deploy a Nike Website (up).
- Hướng dẫn xây Spotify clone với TypeScript, Next.js, React, Tailwind CSS và NextAuth (up).
- Next.js 13 Crash Course, Projects, and Tutorials (up).
- Learn Next & React and get Hired! (up).
- HTMX: The Game-Changing Alternative to React (up).
- Django Ecommerce Website - Htmx/Tailwind (up).
- (Flutter & Firebase App Build) (up).
- Large Language Models from scratch (up).
- How ChatGPT is Trained (up).
- (LangChain Explained in 13 Minutes) (up).
- (Let’s build GPT: from scratch, in code, spelled out) (up).
- (Scrape any website with OpenAI Functions & LangChain) (up).
- (Development with Large Language Models Tutorial – OpenAI, Langchain, Agents, Chroma) (up).
- If you’re following along this list, you need to have a
proof of work
, example, i.e. a document list all of your GitHub repos ordered by themes, this acts as a degree for when you go to interviews. - It’s essential to be able to read official documentations, search on Google, and prompt the AI. But be aware that AIs can hallucinate stuffs, last time I ask Bard it said its hallucination rate is 57%.
- Keep resume simple, condense, one single page if possible, don’t leak your picture or address, and don’t lie or add unnecessary things.
- Avoid scammy recruiters, offshore sweatshops, and dodgy domains like gambling, drugs, dating apps, weapon sellers, blockchain, property development, PR, quant.
- One applicant per day is a good rate, too much will lead to overwhelm and drop in quality of job and preparation.
- Practice makes perfect, just keep studying, building pet projects, implementing your practical ideas, and interviewing a lot & take notes.
- It’s just a number game, don’t take it personally if you constantly fail, keep up the grind.
- Even if you’re employed, don’t stop job seeking, or else you will get complacent, delusion, and atrophy. And you have zero leverage in case of laid off.
- Building your own knowledge base with tools like Obsidian, Joplin, or Notion.
- How I Would Get My First Job If I Started Over (up).
- 7 Tips for the Coding Resume (for Software Engineers) (up).
- Ex-Googler Resume Tips for software engineers (up).
- How To Succeed In Coding & Technical Interviews (up).
- How Much Google ACTUALLY Pays Their Software Engineers | My Real Six Figure Tech Salary (up).
- Equity 101 for Software Engineers at Big Tech and Startups (up).
- TAX BASICS: a Beginner’s Guide to Everything (up).
- How I Landed a Job at Google | Software Engineer Q&A (up).
- (Những kinh nghiệm làm Freelancer trên Upwork) (up).
- (Trải nghiệm làm việc từ xa (Remote software engineer)) (up).
- (Trải nghiệm làm việc từ xa – đời không như là mơ) (up).
- (Chia sẻ cách kiếm 1 tỷ 1 năm bằng nghề lập trình) (up).
- (Đóng thuế cho việc làm kiếm tiền từ nước ngoài – Cập nhật 2022) (up).
- (My Example Resume) (up).
- Book - Distributed Services with Go: Reliable, Scalable, & Maintainable Systems (up).
- Master Microservices with Java, Spring, and Kubernetes (up).
- The Complete Golang Bootcamp (up).
- Design Patterns in Go (up).
- Building Web Applications with Go (up).
- Backend Master Class (up).
- GRPC Master Class (up).
- Working with Concurrency in Go (up).
- Working with Microservices in Go (up).
- Docker and Kubernetes: The Complete Guide (up).
- Terraform for AWS (up).
- Infrastructure Automation with Terraform (up).
- The Complete JavaScript Course (up).
- The Ultimate React Course (up).
- React, NextJS, and NestJS: A Rapid Guide (up).
- Vue3, NuxtJS, and Golang: A Rapid Guide (up).
- Flutter & Dart: The Complete Guide (up).
My reference resources
and some experiences as a software engineer (60% backend, 30% frontend, 10% ops, working since 2007), it should be a good “birds-eye view” for someone who’re just learning programming, or an overwhelmed junior developer. This list is handcrafted and not generated by AI
. Some notes before proceeding with the list (up):
- This guide is based on
100% free and quality resources curated
by me. It’s not mean to be an exhaustive list. It aims to provide just a minimum skeleton that built from the ground up. - Avoid sinking time into pointless YouTube videos made by grifters and course/dream sellers, don’t let them exploit your emotions and insecurities for views and money.
- For someone who’s self-taught, it will take more than 12 months to thoroughly finish the whole list, assumes that you spend at least
8 hours everyday
working on it, there is no shortcut. - Remember the
80/20 rule
: you only need to do 20% (easy things first) to achieve 80% of results (good enough). The rest 20% is exponentially expensive, so tread carefully. - Have a Daily Routine (up) planed out in details and stick with it. Cultivate Good Habits (up) and drop bad habits gradually. A good mind will have a smooth life.
- Just go through the list in a top-down order, one-by-one, and you’re good to go. Stuffs inside parentheses mean optional.
- For YouTube videos, just blast through them in
2x speed
, enjoy the ride, and code along.Beware the fun-nel in some videos
. - All you need is a large sample size for a comprehensive mental model, so be diligent and keep training. Never stop explore new technologies.
- Regarding code editor, using whatever feels comfortable is good enough, but
Vim motions
is a must-have. I recommend Neovim, it’ll be much more enjoyable when you have full control.
(up).