A curated list of books that have shaped my thinking as a software engineer. These cover everything from project management to algorithms, and I return to many of them regularly.
Software Project Management
| Book | Description |
|---|---|
| The Mythical Man Month (Fred Brooks) | Classic read on software engineering and project management, exploring the complexities and challenges of large-scale software projects. |
| An Elegant Puzzle: Systems of Engineering Management (Will Larson) | Offers insights into managing complex software systems and engineering teams, bridging theory and practice in engineering leadership. |
Data Engineering
| Book | Description |
|---|---|
| Designing Data Intensive Applications (Martin Kleppmann) | A detailed guide to building scalable and reliable systems that handle modern data processing challenges. |
| Fundamentals of Data Engineering (Joe Reis and Matt Housley) | Covers the essentials of data engineering, from architecture to practical implementations. |
| Data Pipeline Pocket Reference (James Densmore) | Provides quick references and solutions for designing and operating data pipelines. |
| Deciphering Data Architectures (James Serra) | Discusses various data architecture strategies and best practices to support analytics and business intelligence. |
Analytics Engineering
| Book | Description |
|---|---|
| The Data Warehouse Toolkit (Ralph Kimball and Marty Ross) | A comprehensive guide on designing data warehouses and business intelligence systems, using the Kimball methodology. |
Software Engineering
| Book | Description |
|---|---|
| Modern Software Engineering (Dave Farley) | Focuses on applying software engineering principles to achieve high-quality and maintainable code. |
| Software Engineering at Google (Titus Winters, Hyrax Wright, and Tom Manshrek) | Insights into the practices, tools, and culture that make software engineering effective at Google. |
Data Science
| Book | Description |
|---|---|
| Hands-On Machine Learning (Aurélien Géron) | A practical guide to machine learning with scikit-learn, Keras, and TensorFlow. |
Python
| Book | Description |
|---|---|
| Fluent Python (Luciano Ramalho) | Delivers a deep dive into Python’s core features and libraries. |
Design Patterns
| Book | Description |
|---|---|
| Design Patterns (Gang of Four) | The classic book on design patterns by the Go4. Still referenced extensively to this day. |
Algorithms and Data Structures
| Book | Description |
|---|---|
| The Algorithm Design Manual (Steven Skiena) | A practical handbook on algorithm design, providing a mix of theory, examples, and problem-solving tips. |