The Pragmatic Programmer, The Mythical Man-Month, The Cathedral & the Bazaar - these are among the classic works that we are told should be on every programmer's bookshelf. Often, they make it to the shelf, but remain unread. Have you ever wondered why these books are considered such beacons to our community? Have you maybe even felt guilty for not reading them all? We'll go through the "cliff notes" edition of these classics, and even a few future classics to inspire you to check out what’s on your own bookshelf.
9. The Programmer's Bookshelf:
Abridged
The Agile Manifesto
The Pragmatic Programmer The Pragmatic Programmer
(revised)
Refactoring Refactoring (revised)
The Cathedral & The Bazaar
20191999 2000 2001
11. The Pragmatic Programmer
Care About Your Craft
Provide Options, Don't Make Lame Excuses
Don't Live with Broken Windows
Remember the Big Picture
Make Quality a Requirements Issue
Invest Regularly in Your Knowledge Portfolio
DRY - Don't Repeat Yourself
Eliminate Effects Between Unrelated Things
There are No Final Decisions
Refactor Early, Refactor Often
18. Your Knowledge Portfolio
Serious investors invest regularly - as a
habit.
Diversification is key to long-term success.
Smart investors balance their portfolios
between conservative and high-risk, high-
reward investments.
Investors try to buy low and sell high for
maximum return
Portfolios should be reviewed and
rebalanced periodically
19. "Every piece of knowledge must have a single, unambiguous,
authoritative representation within a system"
Photo by Tim de Groot, Unsplash
- The Evils of Duplication, The Pragmatic Programmer
DRY: Don't Repeat Yourself
20. Tip: There are No Final Decisions
Image by Alexas Fotos from Pixabay
23. By Rube Goldberg - The Duluth Herald (Nov. 1921) on the Internet Archive, Public Domain
Refactoring
24. "Programmers are
constantly in maintenance
mode. Our understanding
changes day by day."
- The Pragmatic Programmer
Photo by NeONBRAND on Unsplash
Refactoring
26. Refactoring
"Any fool can write code that a computer
can understand. Good programmers write
code that humans can understand."
Photo by Paolo Nicolello on Unsplash
27. Why Refactoring
Photo by Paolo Nicolello on Unsplash
To fix broken windows
To eliminate duplicated code
To make software easier to
understand
To find bugs
Add new features faster
29. When NOT to Refactor
Photo by Luke van Zyl on Unsplash
Code that you only use rather
than modify
Rarely touched code
Small feature, big refactor
Rewriting as a better option
48. The Programmer's Bookshelf
Design Patterns: "Gang of Four": Gamma,
Helm, Johnson, Vlissides
The Mythical Man Month: Fred Brooks
Clean Code: Robert "Uncle Bob" Martin
Code Complete: Steve McConnell
Domain Drive Design: Eric Evans
Test Driven Development: Ken Beck
xUnit Test Patterns: Gerard Meszaros
Growing Object-Oriented Software, Guided
by Tests: Steve Freeman, Nat Pryce
Masterminds of Programming: Frederico
Biancuzzi
Seven Languages in Seven Weeks: Bruce Tate
The Art of Computer Programming: Donald
Knuth
The Agile Manifesto
And so many others...