SlideShare a Scribd company logo
The Programmer's Bookshelf
Lisa Backer, DockYard
Lisa Backer,
Senior Software
Engineer
CascadiaJS: The Programmer's Bookshelf
CascadiaJS: The Programmer's Bookshelf
CascadiaJS: The Programmer's Bookshelf
CascadiaJS: The Programmer's Bookshelf
Image by Mystic Art Design from Pixabay
The Programmer's Bookshelf
The Pragmatic Programmer
Refactoring
The Cathedral & The Bazaar
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
Andy Hunt
Dave Thomas
The Pragmatic Programmer
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
https://www.merriam-webster.com/dictionary/pragmatic
The Pragmatic Programmer
The Cat Ate My Source Code
Photo by Shubhankar Sharma, Unsplash
Tip: Don't Live with Broken Windows
Photo by Maite Tiscar, Unsplash
Even if there's a fire raging, you don't
want to be the first one to make a mess
The Pragmatic Programmer
Photo by Maite Tiscar, Unsplash
"Striving to be better, oft we mar
what's well"
- King Lear 1.4
Image by Ahmad Ardity from Pixabay
Know When to Stop
Your Knowledge Portfolio
"An investment in knowledge always
pays the best interest"
- Benjamin Franklin
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
"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
Tip: There are No Final Decisions
Image by Alexas Fotos from Pixabay
https://pxhere.com/en/photo/444239
Martin Fowler
Kent Beck
By Rube Goldberg - The Duluth Herald (Nov. 1921) on the Internet Archive, Public Domain
Refactoring
"Programmers are
constantly in maintenance
mode. Our understanding
changes day by day."
- The Pragmatic Programmer
Photo by NeONBRAND on Unsplash
Refactoring
Refactoring
Tests
Change Commit
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
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
What to tell your Manager
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
Photo by Markus Spiske on Unsplash
Refactoring: Code Smells
"If it stinks, change it."
-- Grandma Beck,
discussing child-rearing philosophy
https://pxhere.com/en/photo/823055
Refactoring: Pattern Catalog
Refactoring
Refactoring
Refactoring
Refactoring
Photo by Ben Dumond on Unsplash
Eric Raymond
Photo by Léa V on Unsplash
The Cathedral & The Bazaar
Photo by MAX LIBERTINE on Unsplash
The Cathedral & The Bazaar
"Given enough eyeballs, all
bugs are shallow."
- The Cathedral & The Bazaar
Photo by Artem Beliaikin on Unsplash
Linus's Law
"Release early. Release often. And listen to your customers."
Photo by Denis Chick on Unsplash
Photo by Jeroen Bosch on Unsplash
Territorial
Photo by Jeroen Bosch on Unsplash Photo by Joel J. Martínez on Unsplash
Territorial or Egoless?
Photo by Andre Hunter on Unsplash
"Enjoyment predicts efficiency"
The Cathedral & The Bazaar
Brilliant leaders amplify their vision through open source
Photo by BRUNO CERVERA on Unsplash
https://twitter.com/_ericelliott/status/1186991102890565632
The Programmer's Bookshelf
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...
Thank you!
Lisa Backer, DockYard
eshtadc @eshtadc
Image by Alexas Fotos from Pixabay

More Related Content

PPTX
Testing software
PPTX
How to use 25pp
KEY
iOS Backgrounding - SLC Cocoaheads
PDF
Better than Google.
PDF
Could Microsoft Office be causing "Kernel Panic" on MacBook Air?
PPTX
Mobile twin cities
PDF
Failfast
PDF
How We Make Apps And Services
Testing software
How to use 25pp
iOS Backgrounding - SLC Cocoaheads
Better than Google.
Could Microsoft Office be causing "Kernel Panic" on MacBook Air?
Mobile twin cities
Failfast
How We Make Apps And Services

What's hot (6)

PDF
Better than google.
PDF
Pdf 20211029 121135_0000
PDF
better than google
PDF
better than google
PDF
Better than Google.
Better than google.
Pdf 20211029 121135_0000
better than google
better than google
Better than Google.
Ad

Similar to CascadiaJS: The Programmer's Bookshelf (20)

PDF
Programmer's Bookshelf - Remote Edition
PDF
Patterns, Code Smells, and The Pragmattic Programmer
PDF
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
PDF
Refactoring 2 The Max
PDF
Software Craftsmanship
PDF
Good programming
PDF
Little words of wisdom for the developer - Guillaume Laforge (Pivotal)
PDF
Deliver Fast with Confidence
PPTX
Refactoring
PDF
12 Things Every Programmer Should Know
ODP
Reversed Tests Pyramid - Agile Prague 2014
PDF
The Power Of Refactoring (4developers Krakow)
PDF
high performance mysql
ZIP
Introduction to software craftsmanship
PDF
Refactoring, Therapeutic Attitude to Programming.
PPTX
Clean Code
PPTX
Clean code presentation
PPT
Evolving as a professional software developer
PPTX
mehdi-refactoring.pptx
PDF
IT Systems for Knowledge Management used in Software Engineering (2010)
Programmer's Bookshelf - Remote Edition
Patterns, Code Smells, and The Pragmattic Programmer
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Refactoring 2 The Max
Software Craftsmanship
Good programming
Little words of wisdom for the developer - Guillaume Laforge (Pivotal)
Deliver Fast with Confidence
Refactoring
12 Things Every Programmer Should Know
Reversed Tests Pyramid - Agile Prague 2014
The Power Of Refactoring (4developers Krakow)
high performance mysql
Introduction to software craftsmanship
Refactoring, Therapeutic Attitude to Programming.
Clean Code
Clean code presentation
Evolving as a professional software developer
mehdi-refactoring.pptx
IT Systems for Knowledge Management used in Software Engineering (2010)
Ad

Recently uploaded (20)

PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Nekopoi APK 2025 free lastest update
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
assetexplorer- product-overview - presentation
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
history of c programming in notes for students .pptx
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PPTX
Computer Software and OS of computer science of grade 11.pptx
Which alternative to Crystal Reports is best for small or large businesses.pdf
wealthsignaloriginal-com-DS-text-... (1).pdf
VVF-Customer-Presentation2025-Ver1.9.pptx
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
Understanding Forklifts - TECH EHS Solution
Nekopoi APK 2025 free lastest update
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Wondershare Filmora 15 Crack With Activation Key [2025
assetexplorer- product-overview - presentation
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
How to Choose the Right IT Partner for Your Business in Malaysia
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Operating system designcfffgfgggggggvggggggggg
Softaken Excel to vCard Converter Software.pdf
history of c programming in notes for students .pptx
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Computer Software and OS of computer science of grade 11.pptx

CascadiaJS: The Programmer's Bookshelf