🧰 Data Structs & Algos
⚙️ System Design
🤝 Interviewing
Product Management
Java
Android
Python
Shell
Web
Javascript
C/C++
Version Control
📀 Database
🧹 Clean Code
📐 Design Patterns
🔬 Testing
🖼️ Frameworks
📚 More
🔩 ASM
💻 Operating Systems
🧮 Notable Languages
- Complexity:
- Best, worst and average case - Wikipedia
- Big-O Cheat Sheet
- Concurrency:
- The Deadlock Empire - Slay dragons, master concurrency!
- Dynamic Programming:
- General Prep:
- Coding Interview Prep - freeCodeCamp 🎓
- Coding Interview University - jwasham
- Facebook Interview Questions & Prep - 2021
- Data Structure and Algorithms - Tutorials Point
- Tech Interview Handbook 📕
- Computer Science: Algorithms - Khan Academy 🎓
- Introduction to Algorithms (playlist) - MIT 🎓
- Algorithms, 4th Edition - Princeton 📕
- Algorithms, Part I - Princeton/Coursera 🎓
- Algorithms, Part II - Princeton/Coursera 🎓
- Patterns:
- Practice:
- Reference:
- Data Structures - Wikibooks 📕
- Algorithms - Wikibooks 📕
- Dictionary of Algorithms and Data Structures - NIST
- Outline of Computer Science - Wikipedia
- Sorting:
- Sorting algorithms - Wikipedia
- Sorting Algorithm Animations - Toptal
- Part 1: A Simple Framework For Mobile System Design Interviews
- Part 2: Additional Topics For Mobile System Design Interviews
- Best practices for REST API design
- Object-Oriented Reengineering Patterns 📕
- Resume Tips - CareerCup
- Craft A Solid Resume - Anthony D. Mays
- Ace Your Interview Behavioral Questions - Alex Chiou
- Sample Strengths & Weaknesses
- 6 Things Absolutely Needed for Google Interview - Anthony D. Mays []
- Preparing for the Google Tech Interview - Anthony D. Mays
- Example Coding/Engineering Interview - Google
- Preparing for Your Software Engineering Interview - Facebook
- Top Interview Questions - LinkedIn (engineering)
- Interview Questions and Answers - LinkedIn (behavioral)
- SDE Interview Prep - Amazon
- Cracking the Frontend Interview - freeCodeCamp
- Frontend Interview Prep Handbook 📕
- The STAR Method
- Engineering Interviews: Grading Rubric - Medium
- Planning a project... - Microsoft
- How to Prepare for PM Interviews
- Getting Real - Basecamp
- Making Sense of Minimum Viable Products (MVPs)
- Agile Product Ownership in a Nutshell
- Agile/Scrum Training (Playlist) - CollabNet
- Agile Management - Google Project Management Certificate
- No Estimates - Allen Holub
- Fail Fast, Move On - Michael Küsters
- Feasibility Study - Wikipedia
- Program Management - Wikipedia
- Project Manager - Wikipedia
- Tuckman's Stages of Group Development - Wikipedia
- The Wall of Technical Debt - Mathias Verraes
- With Goals, FAST Beats SMART - MIT Sloan
- Oblique Leadership Style - Tackboom Shift
- Java Tutorial - Oracle 🎓
- Java Tutorials - Jakob Jenkov
- Java API Docs - Oracle (Collections: overview ; reference)
- Java Style Guide - Google
- Java Language Spec - Oracle
- Programming Methodology - Stanford 🎓
- Software Construction in Java - MIT 🎓
- Advanced Software Construction in Java - MIT 🎓
- Computer Sc - Data Structures and Algorithms - IIT Delhi 🎓
- Introduction to Computer Science in Java - Princeton 🎓
- Design Patterns in Java Tutorial - Tutorials Point
- Coding Standard for Java - SEI
- Java Design Patterns & Principles
- Android Cliffnotes - CodePath
- Docs - Android 4.2 (API Level 17 - Jelly Bean MR1) - MIT
- Docs - Android 4.4 (API Level 19 - Kitkat)
- Docs - Android 6.0 (API Level 23 - Marshmallow)
- Docs - Android (Current / Latest - Not Greatest )
- Learn Android - Tutorials Point
- Android Programming Succinctly - Syncfusion 📕
- Android Books - CommonsWare 📚
- GUI Design for Android Apps - Apress 📕
- AOSP
- Android Secure Coding Standard - SEI
- Android Development Tutorials - Vogella
- Time Complexities - CPython
- Python Style Guide - Google
- PEP-8 Style Guide - python.org
- Python API Docs - python.org
- Dive Into Python 3 📕
- Python 3 Patterns, Recipes and Idioms 📕
- The Python Tutorial - python.org 🎓
- Python for Everybody 🎓 📕
- Tkinter GUI Reference - New Mexico Tech
- Pytest
- UNIX Documentation - Stanford
- Shell Style Guide - Google
- System Administration - ArchWiki
- Environment Variables - Wikipedia
- Bash Guide for Beginners - tldp.org
- BASH Programming - Introduction HOW-TO - tldp.org
- Advanced Bash-Scripting Guide - tldp.org
- GNU/Linux Command-Line Tools Summary - tldp.org
- Linux Dictionary - tldp.org
- Essentials of Linux Network Administration - ActualTech
- Using the Terminal - Linode
- Using Linux - Raspberry Pi Documentation
- Windows Batch Scripting - Wikibooks
- Bash Shell Scripting - Wikibooks
- Bourne Shell Scripting - Wikibooks
- Guidance on Web Accessibility and the ADA - DOJ
- HTML — Living Standard - whatwg
- HTML/CSS Style Guide - Google
- Medium's CSS
- HTTP Headers - MDN
- Introduction to Progressive Web Apps (PWAs) - MDN
- Security Considerations - W3C (RFC 2616)
- 21 Server Security Tips to Secure Your Server - Phoenix NAP
- Recommended Server Side TLS Configurations - Mozilla wiki
- JMeter - Apache
- ECMAScript spec (latest)
- ECMAScript spec (ES5)
- ECMAScript spec (ES3)
- Javascript Style Guide - Google
- Javascript Tutorial - W3Schools 🎓
- JavaScript Algorithms and Data Structures - freeCodeCamp 🎓
- The Modern Javascript Tutorial - javascript.info
- Eloquent Javascript 📕
- You Don't Know JS (book series) 📚
- Functional-Light JavaScript 📕
- Structure and Interpretation of Computer Programs (SICP) - Comparison Edition 📕
- What every JavaScript developer should know about Unicode
- RegEx101 playground
- References
- C Reference Card (ANSI)
- C++ Reference Card
- C/C++ Reference - cppreference.com
- C Language Reference - Open Watcom 📕
- C++ Standard Library Containers - Microsoft
- STL Quick Reference
- The GNU C Library Reference Manual - gnu.org []
- C++23 Standard (final draft)
- Tutorials
- A Tour of C++ - isocpp.org
- A Tour of C++ Containers - stroustrup.com
- C++ Tutorial (0x/11) - cplusplus.com [ (98/03)]
- Google's C++ Class
- The GNU C Reference Manual - gnu.org []
- Welcome back to C++ (Modern C++) - Microsoft
- Guidelines
- C++ Core Guidelines - Stroustrup / Sutter
- C++ Tips - abseil.io
- Guidelines for the use of the C++14 language in critical and safety-related systems - Autosar
- JSF Air Vehicle C++ Coding Standards
- HIC++ Coding Standard - Perforce
- C Coding Standard - SEI
- C++ Coding Standard - SEI
- Style Guides
- C++ Style Guide - Google
- Coding Conventions - Qt
- LLVM Coding Standards - LLVM
- PPP Style Guide - Stroustrup
- OOP in C
- Object-Oriented Programming in C - Dr. Dobb's Journal
- Object-Oriented Programming (OOP) in C - Michael Safyan
- Object-Oriented Programming With ANSI-C - Axel-Tobias Schreiner 📕
- Courses
- Programming Abstractions - Stanford 🎓
- Programming Paradigms - Stanford 🎓
- Performance Engineering of Software Systems - MIT 🎓
- Advanced Programming in Unix 🎓
- Other Guides
- C++ Programming - Wikibooks
- Optimizing C++ - Wikibooks
- From Source to Binary: The Inner Workings of GCC - Redhat
- Modern C - Jens Gustedt 📕
- Quick Guide to GDB - Beej
- TC++PL4 Exercises - Stroustrup
- Teach Yourself C++ in 21 Days 📕
- The C Book - gbdirect 📕
- Git Tutorial - W3Schools 🎓
- Pro Git 📕
- Git Succintly 📕
- SQL Tutorial - W3Schools 🎓
- SQL Indexing and Tuning
- SQLite Command Line Shell
- SQL Dialects Reference - Wikibooks
- SQL Exercises - Wikibooks
- Summary of Clean Code
- C³: Common Coding Conventions
- Clean Code: Smells and Heuristics
- Rules for Variable and Class Naming - Tim Ottinger
- Software Development People & Patterns - WikiWikiWeb
- How to Make a Good Pull Request
- Clean Code (playlist) - Robert Cecil Martin, Sandi Metz, et al
- An Introduction to Object-Oriented Design
- Design Patterns (GoF) - Wikipedia
- Design Patterns - a4m33nms
- Implementation Patterns (sample chapter) - Kent Beck
- Pattern Digest
- Portland Pattern Repository
- How to Design Programs 📕
- MVC Pattern - Trygve Reenskaug
- The Three Laws of TDD
- Testability
- Mutation Testing with Python
- Snapshot Testing with Git - Karl Bartel
- Don’t Use Frameworks - Victor's Blog
- A framework author's case against frameworks - Adrian Holovaty
- Guides: Principles and standards - 18F
- Techniques for WCAG 2.1 - w3c
- Build an Effective Dev Portfolio 📕
- Tech Dev Guide - Google 🎓
- Software Engineering at Google 📕
- Mathematics for Computer Science - MIT 🎓
- Flame Graphs and How to Read Them - RubyConf
- Joel on Software - Joel Spolsky
- UML 2.5.1 (2017) spec - OMG
- UML Basics - Umbrello
- Contextual Design: Evolved (HCI) - holtzblatt 📕
- Elements of Programming - Stepanov / McJones 📕
- CS143: Compilers - Stanford (based on dragon book) 🎓
- References
- IA-32 Tutorials
- x86-64 Tutorials
- Optimization Guides
- Optimizing Assembly - Agner Fog
- Software Optimization Guide - AMD
- Optimization Reference Manual - Intel
- General Guides
- Computer Organization and Design Fundamentals 📕
- Operating Systems: Three Easy Pieces 📕
- Wiki - OSDev
- Linux Insides
- The Linux Kernel Documentation - kernel.org
- The Linux Kernel (2.0.33) - tldp.org
- Operating Systems From 0 to 1 - Tu, Do Hoang 📕
- GNU Octave - Matlab
- Lua
- Racket ( Lisp / Scheme )
- Write Yourself a Scheme in 48 Hours - Wikibooks
- Scheme Programming - Wikibooks
- Self
- Squeak - Smalltalk