Data Structures and Algorithms
Software Engineering
Clean Code
Code Complete
NoSQL Distilled
Designing Data-Intensive Applications
Head First Design Patterns
Design Patterns: Elements of Reusable Object-Oriented Software
Programming Languages
A Tour of C++
Learning Python
Effective C++
More Effective C++
Effective Modern C++
Effective Python
Effective Java
Coding Interviews
Cracking the Coding Interview
Elements of Programming Interviews: in Python, Java and C++