Learn from everyone. Follow no one.
Books serve to show a man that those original thoughts of his aren't very new at all.
What we think, we become.
- Clean Code : A Handbook of Agile Software Craftsmanship (2008) by Robert C. Martin, Prentice Hall
- Code Complete (2nd, 2004) by Steve McConnell
- The Practice of Programming by Brian W. Kernighan
- Hacker's Delight by Henry S. Warren Jr.
- Writing Solid Code by Steve Maguire
- The Art of Readable Code by Dustin Boswell, Trevor Foucher
- Think Like a Programmer: An Introduction to Creative Problem Solving by V. Anton Spraul
- 码出高效:Java开发手册 by 杨冠宝, 高海慧
- 码农翻身 (2018) by 刘欣
Refactoring
- Refactoring : Improving the Design of Existing Code (2nd, 2018) by Martin Fowler, Kent Beck
- Refactoring to Patterns by Joshua Kerievsky
- Working Effectively with Legacy Code by Michael C. Feathers
- Test Driven Development: By Example (2002) by Kent Beck
- Growing Object-Oriented Software, Guided by Tests by Steve Freeman
- Effective Unit Testing by Lasse Koskela
- xUnit Test Patterns: Refactoring Test Code by Gerard Meszaros
- The RSpec Book by David Chelimsky
- The Art of Unit Testing: With Examples in .NET by Roy Osherove
Jenkins
- Jenkins 2: Up and Running: Evolve Your Deployment Pipeline for Next Generation Automation by Brent Laster
- Jenkins: The Definitive Guide by John Smart
- Learning Continuous Integration with Jenkins by Nikhil Pathania
Container
- Docker in Action
- Continuous Delivery with Docker and Jenkins by Rafal Leszko
- Kubernetes in Action by Marko Luksa
- Pro Git by Ben Straub and Scott Chacon
- Version Control with Git: Powerful Tools and Techniques for Collaborative Software Development by Jon Loeliger
- Professional Git by Brent Laster
- Git Pocket Guide: A Working Introduction by Richard E. Silverman
- Maven: The Definitive Guide
- Apache Maven Cookbook by Raghuram Bharathan
- Software Engineering (10th, 2015) by Ian Sommerville
- The Essence of Software Engineering by Volker Gruhn and Rüdiger Striemer
- UML distilled by Martin Fowler
- Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development by Craig Larman
- Design Patterns: Elements of Reusable Object-Oriented Software (1994) by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
- Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin
- A Philosophy of Software Design by John Ousterhout
- Head First Design Patterns (2004) by Elisabeth Freeman
- Head First Object-Oriented Analysis and Design (2006) by Brett D. McLaughlin
- Object-Oriented Analysis and Design with Applications by Grady Booch
- Object-Oriented Software Construction by Bertrand Meyer
- Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans
- Patterns of Enterprise Application Architecture by Martin Fowler
- Beautiful Code: Leading Programmers Explain How They Think by Andy Oram, Greg Wilson
Tutorials
- Site Reliability Engineering: How Google Runs Production Systems by Betsy Beyer
- The Site Reliability Workbook: Practical Ways to Implement SRE
- Seeking SRE: Conversations About Running Production Systems at Scale by David N. Blank-Edelman
- The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations
- Infrastructure as Code: Managing Servers in the Cloud by Kief Morris
- Systems Performance: Enterprise and the Cloud by Brendan Gregg
- Web Operations: Keeping the Data On Time by Jesse Robbins and John Allspaw
- Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems by Martin Kleppmann
- Database Reliability Engineering: Designing and Operating Resilient Database Systems by Charity Majors and Laine Campbell
- Practical Monitoring: Effective Strategies for the Real World by Mike Julian
- Building Microservices: Designing Fine-Grained Systems by Sam Newman
- Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services by Brendan Burns
- Patterns of Enterprise Application Architecture by Martin Fowler
- Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans
- Enterprise Integration Patterns by Gregor Hohpe
- Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems by Martin Kleppmann
- Implementing Domain-Driven Design by Vaughn Vernon
- Clean Architecture by Robert Cecil Martin
- Building Evolutionary Architectures: Support Constant Change by Neal Ford, Patrick Kua, and Rebecca Parsons
- The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise by Martin L. Abbott, Michael T. Fisher
- Web Application Architecture: Principles, Protocols and Practices by Leon Shklar
- Software Architecture: Foundations, Theory, and Practice by Richard N. Taylor
- Java Application Architecture: Modularity Patterns with Examples Using OSGi by Kirk Knoernschild
- System Architecture: Strategy and Product Development for Complex Systems by Bruce Cameron, Daniel Selva, and Edward F. Crawley
- Just Enough Software Architecture: A Risk-Driven Approach by George Fairbanks
- Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives by Nick Rozanski and Eoin Woods
- Building Scalable Web Sites by Cal Henderson
- Web Scalability for Startup Engineers by Artur Ejsmont
- Scalability Rules: Principles for Scaling Web Sites by Martin L. Abbott, Michael T. Fisher
- Scalability Rules: 50 Principles for Scaling Web Sites by Martin L. Abbott, Michael T. Fisher
- 企业IT架构转型之道:阿里巴巴中台战略思想与架构实战 by 钟华
- 大型网站技术架构 by 李智慧
- 大型网站系统与JAVA中间件实践 by 曾宪杰
- 分布式服务架构:原理、设计与实战 by 李艳鹏 / 杨彪
- 亿级流量网站架构核心技术 by 张开涛
- 架构修炼之道——亿级网关、平台开放、分布式、微服务、容错等核心技术修炼实践 by 王新栋
- Building Microservices: Designing Fine-Grained Systems by Sam Newman
- Production-Ready Microservices by Susan J. Fowler
- Site Reliability Engineering: How Google Runs Production Systems by Betsy Beyer
- Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation by Jez Humble, David Farley
- Release It!: Design and Deploy Production-Ready Software by Michael T.Nygard
- 进化 - 运维技术变革与实践探索 by 赵成
- The Site Reliability Workbook: Practical Ways to Implement SRE by Betsy Beyer
- DevOps: A Software Architect's Perspective by Len Bass
- Essential Skills for Software Architects by Dave Hendricksen
Articles
- What is Web Application Architecture? How It Works, Trends, Best Practices and More
- Fundamentals of web application architecture
- WEB APPLICATION ARCHITECTURE: THE BASICS
- Web Application Architecture
Must Read
- Extreme Programming Explained: Embrace Change by Kent Beck
- The Mythical Man-Month: Essays on Software Engineering by Jr·Frederick P·Brooks
- Peopleware: Productive Projects and Teams by Tom DeMarco
- Scrum and XP from the Trenches by Henrik Kniberg
- Scrum: The Art of Doing Twice the Work in Half the Time by Jeff Sutherland
- The Goal: A Process of Ongoing Improvement by Eliyahu M. Goldratt
- Lean from the Trenches by Henrik Kniberg
- Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency by Tom DeMarco
- The Software Craftsman: Professionalism, Pragmatism, Pride by Sandro Mancuso
- Implementing Lean Software Development: From Concept to Cash by Mary Poppendieck
- The Art of Agile Development by James Shore, Shane Warden
- The Agile Samurai by Jonathan Rasmusson
- Rapid Development: Taming Wild Software Schedules by Steve McConnell
- Lean thinking banish waste and creat wealth in your corporation by James P.Womack
- Learning Agile by Andrew Stellman
- Ship It! by Jared Richardson
Some More
- Specification by Example by Gojko Adzic
- Agile Retrospectives:Making Good Teams Great by Esther Derby , Diana Larsen,Ken Schwaber
- Coaching Agile Teams: A Companion for ScrumMasters,Agile Coaches, and Project Managers in Transition by Lyssa Adkins
- Agile Project Management with Scrum by Ken Schwaber
- Succeeding with Agile:Software development using Scrum by Mike Cohn
- Agile Estimating and Planning by Mike Cohn
- Kanban: Successful Evolutionary Change for Your Technology Business by David J.Anderson
- User Stories Applied:For Agile Software Development by Mike Cohn
- User Story Mapping Building Better Products using Agile Software Design by Jeff Patton
- Manage Your Project Portfolio by Johanna Rothman
Programmer
- The Pragmatic Programmer: From Journeyman to Master (2nd, 2019) by Andrew Hunt, David Thomas
- Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman (2009) by Dave H. Hoover and Adewale Oshineye
- The Clean Coder: A Code of Conduct for Professional Programmers by Robert C. Martin
- Joel on Software (3rd, 2004) by Joel Spolsky
- More Joel on Software (2008) by Joel Spolsky
- Hackers and Painters: Big Ideas from the Computer Age by Paul Graham
- Soft Skills: The Software Developer's Life Manual by John Z. Sonmez
- The Cathedral and the Bazaar by Eric S. Raymond
- Coders at Work: Reflections on the Craft of Programming by Peter Seibel
- The Passionate Programmer by Chad Fowler
- Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt
- Effective Programming: More Than Writing Code by Jeff Atwood
- 97 Things Every Programmer Should Know: Collective Wisdom from the Experts by Kevlin Henney
- A Brief History of Hackerdom by Raymond. Eric S. Raymond
Tech Leader
- The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change by Camille Fournier
- A Elegant Puzzle: System of Engineering Management by Will Larson
- Accelerate: Building and Scaling High-Performance Technology Organizations by Nicole Forsgern
For Interview
- Cracking the Coding Interview: 189 Programming Questions and Solutions (2015) by Gayle Laakmann McDowell
- Programming Interviews Exposed by Eric Giguere, John Mongan, and Noah Kindler
- Elements of Programming Interviews: The Insiders' Guide by Adnan Aziz , Tsung-Hsien Lee
- Elements of Programming Interviews in Java: The Insiders' Guide by Adnan Aziz , Tsung-Hsien Lee
- Programming Pearl by Jon Bentley
- Java Programming Interviews Exposed by Noel Markham
- Coding Interview Questions by Narasimha Karumanchi
- Dynamic Programming for Coding Interviews by Meenakshi and Kamal Rawat
- Algorithms for Interviews by Adnan Aziz and Amit Prakash
- Joe Celko's SQL Puzzles and Answers by Joe Celkos
- 剑指Offer (2012) by 何海涛
- 编程之美 (2008) by 《编程之美》小组
- 程序员代码面试指南:IT名企算法与数据结构题目最优解 (2015) by 左程云
Some More
- The Complete Software Developer's Career Guide: How to Learn Programming Languages Quickly, Ace Your Programming Interview, and Land Your Software Developer Dream Job by John Z. Sonmez
- The Google Resume: How to Prepare for a Career and Land a Job at Apple, Microsoft, Google, Or Any Top Tech Company by Gayle Laakmann McDowell
- Cracking the Tech Career: Insider Advice on Landing a Job at Google, Microsoft, Apple, or any Top Tech Company by Gayle Laakmann McDowell
- Work Rules!: Insights from Inside Google That Will Transform How You Live and Lead by Laszlo Bock
- Cracking the PM Interview: How to Land a Product Manager Job in Technology by Gayle Laakmann McDowell and Jackie Bavaro
- What Color Is Your Parachute? 2020: A Practical Manual for Job-Hunters and Career-Changers by Richard N. Bolles
- The Elements of Style by William Strunk Jr
- The Visual Display of Quantitative Information by Edward R. Tufte