Soft skills
Algorithms and data structures
Online judges
Resources
- LeetCode The Hard Way
- Algorithms for Competitive Programming
- TopCoder Thrive
- HackerEarth Notes
- Intro to Algorithms (Udacity)
- Design of Computer Programs
- Crack the coding interview problem sets
- LeetCode compilation article
YouTube channels
Topics
- Arrays
- Stacks
- Queues
- Linked lists
- Hash table
- Trees
- Graphs
- Tries
- Segment Tree
- Binary-Index Tree
- Suffix array
- Heap/Priority queue
- Binary search
- Two pointers
- Sliding window
- Intervals
- String matching
- Greedy
- Backtracking
- Dynamic programming
- Math and geometry
- Bit manipulation
System design
- System design primer
- Grokking the System Design Interview
- Cloud Design Patterns (Microsoft)
- Application architecture fundamentals (Microsoft)
- Software engineering blogs
- Engineering articles I’ve read
- ByteByteGo
- 6.824: Distributed Systems