Fundamental Programming Books
Fundamentals of Algorithms and Data Structures
- Introduction to Algorithms, by Thomas H. Cormen, et al. 4th edition. (2022)
- Structure and Interpretation of Computer Programs, by Abelson, et al. 2nd edition. (1996)
- Competitive Programming 3, by Steven Halim. (2013)
Practical C Programming in Linux systems
- The C Programming Language, by Kernighan and Ritchie. 2nd edition. (1988)
- The Linux Programming Interface, by Michael Kerrisk. (2010)
Design Patterns
- Design Patterns, by Gamma, Helm, Johnson and Vlissides. (1994)
- Game Programming Patterns, by Robert Nystrom. (2014)
Data-layer
- Designing Data-Intensive Applications, by Martin Kleppman. (2017)
Practical Advice
- The Pragmatic Programmer, by Hunt and Thomas. 2nd edition. (2019)
Mathematics-related
- Probability and Statistics for Engineering and the Sciences, by Jay L. Devore. 9th edition. (2015)
- Linear Algebra Done Right, by Sheldon Axler. 3rd ed. (2015)
Tools
- Pro Git, by Chacon and Straub. 2nd edition. (2014).