Books for becoming great Software Engineer
- Algorithms & Data Structures
- Object Oriented Programming
- Testing
- Functional Programming
- Fundamentals
- Databases
- Interviews
- Distributed Systems
- Docker
- Kubernetes
- DevOps
- Kafka
- Software Engineering
- Project Management
- Software Architecture
- Grokking Algorithms - An illustrated guide for programmers and other curious people
- A Common-Sense Guide to Data Structures and Algorithms, Second Edition - Level Up Your Core Programming Skills
- Algorithmic Thinking
- Algorithms: For Competitive Programming
- Guide to Competitive Programming
- Implementation Patterns
- Clean Code - A Handbook of Agile Software Craftsmanship
- Clean Architecture - A Craftsman’s Guide to Software Structure and Design
- Design Patterns - Elements of Reusable Object-Oriented Software
- Effective Java, 3rd Edition
- Refactoring - Improving the Design of Existing Code
- Test Driven Development - By Example
- Growing Object-Oriented Software Guided by Tests
- Continuous Delivery - Reliable Software Releases through Build, Test, and Deployment Automation
- The Art of Software Testing, 3rd Edition
- Structure and Interpretation of Computer Programs
- SICP Distilled
- Pragmatic Scala - Create Expressive, Concise, and Scalable Applications
- Thinking with Types - Type-Level Programming in Haskell
- Category Theory for Programmers
- Inside the Machine
- Operating Systems - Principles and Practice
- Operating Systems - Three Easy Pieces
- The Design And Implementation Of The Freebsd Operating System, Second edition
- Computer Networking - A Top-Down Approach, 7th Edition
- Java Concurrency in Practice
- Database Concepts, 9th Edition
- An Introduction to Database Systems, 8th Edition
- Database Processing - Fundamentals, Design, and Implementation, 16th Edition
- Fundamentals of Database Systems, 7th Edition
- Designing Data-Intensive Applications
- Database Internals
- CRACKING the CODING INTERVIEW
- Ace the Programming Interview: 160 Questions and Answers for Success
- Cracking the Tech Career - Insider Advice on Landing a Job at Google, Microsoft, Apple, or any Top Tech Company
- System Design Interview – An insider's guide
- System Design Interview - Mastering Basic Introduction to System Analysis and Design
- System Design Interview – An Insider's Guide: Volume 2
- The System Design Interview, 2nd Edition
- Designing Data-Intensive Applications
- Understandin Distributed Systems
- Designing Distributed Systems
- Enterprise Integration Patterns - Designing, Building, and Deploying Messaging Solutions
- The Pragmatic Programmer, 20th Anniversary Edition
- Software Engineering at Google
- Code Complete, 2nd Edition
- Code That Fits in Your Head - Heuristics for Software Engineering
- The Clean Coder - A Code of Conduct for Professional Programmers
- Engineers Survival Guide - Advice, tactics, and tricks After a decade of working at Facebook, Snapchat, and Microsoft
- Clean Craftsmanship
- Clean Agile - Back to Basics
- Agile Testing
- The Unicorn Project
- Making Work Visible, 2nd Edition
- ACCELERATE
- The Manager's Path
- The Art of Leadership
- Fundamentals of Software Architecture
- Building Microservices, 2nd Edition
- Building Event-Driven Microservices
- Cloud Native Patterns - Designing change-tolerant software
- Microservices Patterns - With examples in Java
- Software Architecture - The Hard Parts
- Building Evolutionary Architectures
- The Software Architect Elevator