Programming_Books_List
Programming_Books_List
–––––––––––––––––––––––––––––––––––––––––––––––
–––––––––––––––––––––––––––––––––––––––––––––––
2. Advanced C++ and Modern Techniques
2.1. The C++ Programming Language (4th Edition)
2.2. Effective C++ (Scott Meyers)
2.3. More Effective C++ (Scott Meyers)
2.4. Effective Modern C++ (Scott Meyers)
2.5. The C++ Standard Library (2nd Edition)
2.6. C++ Concurrency in Action
–––––––––––––––––––––––––––––––––––––––––––––––
3. Graphics and OpenGL
3.1. Learning OpenGL
3.2. OpenGL Programming Guide (Red Book)
3.3. OpenGL Shading Language
3.4. OpenGL SuperBible
3.5. Ray Tracing in One Weekend Series
3.6. Real-Time Rendering (4th Edition)
3.7. Physically Based Rendering (4th Edition)
3.8. Vulkan Programming Guide: The Official Guide to Learning Vulkan
3.9. Vulkan Cookbook
3.10. GPU Gems (Volumes 1 & 2)
3.11. Ray Tracing Gems
3.12. Numerical Methods for Engineers
3.13. Applied Computational Physics
3.14. Geometric Algebra for Computer Science
–––––––––––––––––––––––––––––––––––––––––––––––
4. Data Structures, Algorithms & Mathematics
4.1. Grokking Algorithms
4.2. Introduction to Algorithms (4th Edition)
4.3. Discrete Mathematics and Its Applications
4.4. Mathematics for Computer Science
4.5. Linear Algebra and Its Applications
4.6. Introduction to Probability
4.7. Algorithm Design
4.8. Graph Algorithms in a Nutshell
4.9. The Art of Computer Programming (Vol. 1)
4.10. Computational Complexity: A Modern Approach
–––––––––––––––––––––––––––––––––––––––––––––––
5. Computer Systems and Architecture
5.1. Operating Systems: Three Easy Pieces
5.2. Computer Systems: A Programmer's Perspective (2nd Edition)
5.3. Computer Organization and Design: The Hardware/Software Interface (5th
Edition)
5.4. Digital Design and Computer Architecture – RISC-V Edition
5.5. A Primer on Memory Consistency and Cache Coherence (2nd Edition)
5.6. Architectural and Operating System Support for Virtual Memory
5.7. Multi-Core Cache Hierarchies
5.8. Code: The Hidden Language of Computer Hardware and Software
–––––––––––––––––––––––––––––––––––––––––––––––
6. Compilers and Low-Level Programming
6.1. Jack Crenshaw – Let's Build a Compiler
6.2. Compilers: Principles, Techniques, and Tools
6.3. Engineering a Compiler
6.4. Modern Compiler Implementation in C
6.5. Advanced Compiler Design and Implementation
6.6. Linkers and Loaders
6.7. Programming from the Ground Up
–––––––––––––––––––––––––––––––––––––––––––––––
7. Network Programming and Concurrency
7.1. Boost.Asio C++ Network Programming
7.2. Beej's Guide to Network Programming
7.3. Computer Networking: A Top-Down Approach (8th Edition)
7.4. TCP/IP Illustrated
7.5. Network Routing: Algorithms, Protocols, and Architectures
7.6. High-Performance Browser Networking
–––––––––––––––––––––––––––––––––––––––––––––––
8. Artificial Intelligence, Game Development & Game Engines
8.1. Artificial Intelligence: A Modern Approach
8.2. Artificial Intelligence for Games
8.3. Game Engine Architecture
8.4. Physics for Game Developers (2nd Edition)
8.5. Deep Learning
8.6. Reinforcement Learning: An Introduction
8.7. Game Theory: An Introduction
8.8. Probability and Statistics for Engineers and Scientists
8.9. Game Programming Patterns
–––––––––––––––––––––––––––––––––––––––––––––––
9. Parallel and Multiprocessor Programming
9.1. Programming Massively Parallel Processors (3rd Edition)
9.2. Parallel Computer Organization and Design
9.3. Memory Consistency Models for Shared-Memory Multiprocessors
9.4. In-Near-Memory Computing
9.5. Patterns for Parallel Programming
9.6. Parallel Programming in C with MPI and OpenMP
–––––––––––––––––––––––––––––––––––––––––––––––
10. Additional Interdisciplinary & Advanced Topics
10.1. The Art of Computer Programming (Volumes 2–4 for further depth)
10.2. How to Solve It (George Pólya)
10.3. Thinking, Fast and Slow
10.4. Algorithmic Puzzles (Anany and Maria Levitin)
10.5. Design Patterns: Elements of Reusable Object-Oriented Software
10.6. Head First Design Patterns
10.7. Patterns of Enterprise Application Architecture
10.8. Security Engineering: A Guide to Building Dependable Distributed Systems
10.9. Designing Data-Intensive Applications
10.10. Database System Concepts
10.11. The Design of Everyday Things
10.12. Software Architecture in Practice
10.13. Types and Programming Languages
10.14. Computer Vision: Algorithms and Applications
10.15. Robotics: Modelling, Planning and Control
10.16. Embedded Systems: Real-Time Operating Systems for Arm Cortex-M
Microcontrollers
10.17. Learn You a Haskell for Great Good!
10.18. Building Microservices
–––––––––––––––––––––––––––––––––––––––––––––––