Personal library
Books I’ve read
Each of these taught me something new about programming, software design, or data science. I hope you find some inspiration here!
Click a cover for a short summary and key takeaways.
# Programming Languages

The C Programming Language
Brian W. Kernighan
Programming Languages
Classic book teaching C fundamentals, idiomatic C programming, and foundational programming concepts.
Takeaways
Pointers, memory management, structured programming, and clean coding practices.
The C++ Programming Language
Bjarne Stroustrup
Programming Languages
Comprehensive guide covering C++ syntax, object-oriented programming, templates, and the STL.
Takeaways
OOP principles, templates, STL, memory management, RAII, and idiomatic C++ patterns.
Java: A Beginner’s Guide
Herbert Schildt
Programming Languages
Beginner-friendly introduction to Java covering core syntax, object-oriented concepts, and basic libraries.
Takeaways
Java syntax, OOP principles, basic GUI development, exception handling, and standard libraries.
Effective Java
Joshua Bloch
Programming Languages
Advanced guide on writing robust, maintainable, and high-performance Java code with best practices.
Takeaways
Design patterns, API usage, performance optimization, and writing clean, efficient Java code.
C#: The Complete Reference
Herbert Schildt
Programming Languages
In-depth reference covering C# language features, .NET integration, and practical programming examples.
Takeaways
C# syntax, LINQ, collections, .NET frameworks, and practical backend application development.
JavaScript & jQuery
Jon Duckett
Programming Languages
Guide to JavaScript basics, DOM manipulation, event handling, and creating interactive web applications.
Takeaways
JavaScript syntax, DOM API, event handling, asynchronous programming, and basic web interactivity.
# Web Development

HTML & CSS
Jon Duckett
Web Development
Introduction to building web pages with HTML structure and styling them with CSS, including responsive design.
Takeaways
HTML semantics, CSS layout techniques, styling, responsive design, and web design best practices.
# Software Development

Git Magic
Ben Lynn
Software Development
Concise guide to using Git for version control, branching, merging, and collaborative workflows.
Takeaways
Git commands, branching strategies, conflict resolution, and efficient version control practices.
Grokking Algorithms
Aditya Bhargava
Software Development
Illustrated guide for learning algorithms and problem-solving with visual examples and exercises.
Takeaways
Sorting, searching, recursion, Big O notation, and algorithmic thinking for coding challenges.
Design Patterns
Erich Gamma
Software Development
Classic book introducing design patterns for reusable, maintainable, and modular object-oriented software.
Takeaways
Key patterns such as Singleton, Observer, and Factory, and strategies for clean software architecture.
# AI

Deep Reinforcement Learning with Python
Sudharsan Ravichandiran
AI
Practical guide to reinforcement learning algorithms and agent-based models using Python.
Takeaways
Q-learning, policy gradients, neural network integration, environment design, and agent training.
Python Machine Learning
Sebastian Raschka
AI
Guide to implementing machine learning algorithms and understanding models using Python libraries.
Takeaways
Supervised and unsupervised learning, scikit-learn, model evaluation, and feature engineering.
Hands-On Intelligent Agents with OpenAI Gym
Praveen Palanisamy
AI
Hands-on reinforcement learning projects using OpenAI Gym, Python, and practical exercises.
Takeaways
Environment creation, agent training, policy evaluation, and applying RL concepts to practical tasks.
# Backend & Databases

Node.js Web Development
David Herron
Backend & Databases
Guide to building server-side applications using Node.js, Express, and asynchronous programming.
Takeaways
Server-side JavaScript, REST APIs, routing, middleware, async programming, and the Node.js ecosystem.
Designing Data-Intensive Applications
Martin Kleppmann
Backend & Databases
Guide to building scalable, reliable, and maintainable data systems for modern applications.
Takeaways
Distributed system principles, data modeling, consistency models, and fault-tolerant architectures.
PostgreSQL
Pavel Luzanov
Backend & Databases
Comprehensive guide to PostgreSQL covering queries, indexing, transactions, and database design.
Takeaways
SQL queries, indexing, transactions, performance tuning, and database best practices.
SQL Antipatterns
Bill Karwin
Backend & Databases
Guide to common SQL mistakes and how to avoid them in schema design and queries.
Takeaways
Pitfalls in database design, query optimization, and maintaining data integrity.
# Embedded & Operating Systems

Arduino Microcontrollers Programming
Ulli Sommer
Embedded & Operating Systems
Practical guide to programming Arduino microcontrollers and building electronics projects.
Takeaways
Microcontroller programming, working with sensors and actuators, and small electronics projects.
Modern Operating Systems
Andrew S. Tanenbaum
Embedded & Operating Systems
Comprehensive guide to operating system design: processes, memory, scheduling, and file systems.
Takeaways
Process management, CPU scheduling, memory handling, file systems, and OS architecture concepts.