Learning Resources
a curated list of "basic" knowledge that "good to know" by evilfactorylabs members. But feel free
to take a look and learn together!
We ship this with "checklist" format to make your life easier. Fork this and let's learn.
Table of Content
Fundamentals
- OSI Model
- What is TCP/IP?
- HTTP (Hypertext Transfer Protocol)
- HTTPS (HTTP Secure)
- HTTP/2
- How DNS Works
- JSON
- Gzip
- Brotli
- Web Security
- Web Security Basics
- Pro Git
- Everything curl
- Set Theory and Foundations of Mathematics
- Practical Cryptography for Developers
- The Missing Semester of Your CS Education
- How to Design Programs, First Edition
- How to Design Programs, Second Edition
- The XY Problem
- Ops School Curriculum
- A collection of learning resources for curious software engineers
Frontend
- HTML (Hyper Text Markup Language)
- The Document Object Model
- Semantics in HTML 5
- Accessibility Developer Guide
- CSS (Cascading Style Sheets)
- BEM 101
- JavaScript
- An introduction to how JavaScript package managers work
- Eloquent JavaScript
- You Don't Know JS Yet
- Functional-Light JavaScript
- Learning JavaScript Design Patterns
- Itsy Bitsy Data Structures
- The Cost of JavaScript
- JavaScript Start-up Performance
- Tasks, microtasks, queues and schedules
- SurviveJS - Webpack
- Essential Image Optimization
- SVG on the web
- Rendering Metrics
- How Browsers Work: Behind the scenes of modern web browsers
- Perf.rocks Articles
- A Comprehensive Guide to Font Loading Strategies
- Caching best practices & max-age gotchas
- The Front-End Test Pyramid: How to Rethink Your Testing
- Functional Programming (Fantasy Land JavaScript specification Guide)
Backend
- How Operating Systems Work: 10 Concepts you Should Know as a Developer
- Operating Systems Overview
- The Linux Directory Structure, Explained
- Introduction to Memory Management
- Back to basic: Series on dynamic memory management
- Inter Process Communication (IPC)
- Dining Philosophers Problem in OS
- A Quick and Dirty Guide to RAM: What You Need to Know
- Process Management in Operating System: PCB in OS
- Processes
- Linux Kernel Teaching
- Operating System: Threads and Concurrency
- What exactly is POSIX?
- POSIX Threads Programming
- Concurrent programming - communicationbetween processes
- An Introduction to Networking Terminology, Interfaces, and Protocols
- The Linux command line for beginner
- Database Fundamentals
- SQL Vs NoSQL: The Differences Explained
- The Pros and Cons of 8 Popular Databases
- What is an ORM and Why You Should Use it
- ACID
- Atomic Consistent Isolated Durable
- A Primer on ACID Transactions: The Basics Every Cloud App Developer Must Know
- The (Silver) Bullet for the N+1 Problem
- What is the "N+1 selects problem" in ORM (Object-Relational Mapping)?
- Use The Index, Luke!
- The Good, Bad, and Ugly of Data Replication
- Understanding Database Sharding
- Why I love databases
- How Sharding Works
- Four Data Sharding Strategies We Analyzed in Building a Distributed SQL Database
- An Illustrated Proof of the CAP Theorem
- CAP Twelve Years Later: How the "Rules" Have Changed
- The network is reliable
- Jepsen
- Understanding the basics of RESTful APIs
- The Fundamentals of REST API Design
- The Basics of Web Application Security
- Caching Fundamentals
- What is a web cache and what are the benefits of cached data?
- Caching Basics: Why? When? What? Where? Writing, replacement, and invalidation Strategies