SlideShare a Scribd company logo
The Programmer's Bookshelf
Lisa Backer, DockYard
REMOTE EDITION
Lisa Backer,
Senior Software
Engineer
Programmer's Bookshelf - Remote Edition
Programmer's Bookshelf - Remote Edition
Programmer's Bookshelf - Remote Edition
Programmer's Bookshelf - Remote Edition
Image by Mystic Art Design from Pixabay
The Programmer's Bookshelf
The Pragmatic Programmer
Refactoring
The Programmer's Bookshelf:
Abridged
The Agile Manifesto
The Pragmatic Programmer
Refactoring
The Cathedral & The Bazaar
1999 2000 2001
We are uncovering better ways of developing software by doing it and helping
others do it. Through this work we have come to value:

That is, while there is value in the items on the right, we value the items on the
left more.
https://agilemanifesto.org/
Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan
Manifesto for Agile Software Development
Manifesto for Agile Software Development
Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan
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 2020
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
The Cat Ate My Source Code
Photo by Shubhankar Sharma, Unsplash
Tip 3: You Have Agency
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
Software Entropy: 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
"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
DRY: Don't Repeat Yourself
Imposed duplication
Inadvertent duplication
Impatient duplication
Inter-developer duplication
Reversibility: 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
Refactoring
https://twitter.com/kentbeck/status/250733358307500032
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: Tests
Tests
Change Commit
"Don't let the fear that testing can't catch all bugs stop
you from writing the tests that will catch most bugs."
Photo by Zoltan Fekeshazi, Unsplash
Refactoring: Pattern Catalog
Refactoring
Refactoring
Refactoring
Refactoring
Photo by Ben Dumond on Unsplash
Is there a place for books?
Photo by Dan Gold, Unsplash
Books as mentors?
Get Happy
Photo by Andre Hunter on Unsplash
"Enjoyment predicts efficiency"
The Cathedral & The Bazaar
Keep Learning
Experience
Learning from Failure
Make Failure Fun
Diversification === newbie
Open source as mentor
Photo by Massimiliano Morosinotto on Unsplash
Tip 100:
It's Your Life.
Share it. Celebrate it. Build it.
AND HAVE FUN!
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
eshtadc

More Related Content

PDF
Overcome Your Mind: The Psychology of Better Product Decisions
PDF
Iterate. Calculate. Communicate.
PDF
Building the Right Product, The Right Way
PDF
Estimate and Measure. Minimize work, maximize value. Part 1
PDF
7 Best Quotes on DevOps
PPTX
DevOpsDays PGH: How to Fail With One Weird Trick
PPTX
Kattelo Presents Seven Lessons Learned SharePoint Migration & Upgrade
PDF
Making a Big Impact with a Small Web Team
Overcome Your Mind: The Psychology of Better Product Decisions
Iterate. Calculate. Communicate.
Building the Right Product, The Right Way
Estimate and Measure. Minimize work, maximize value. Part 1
7 Best Quotes on DevOps
DevOpsDays PGH: How to Fail With One Weird Trick
Kattelo Presents Seven Lessons Learned SharePoint Migration & Upgrade
Making a Big Impact with a Small Web Team

What's hot (11)

PDF
How To Run a 5 Whys (With Humans, Not Robots)
PDF
3 Tips For CIOs Facing Their First Cloud Transformation
PDF
Why We Can't Have Nice Things, A Tale of Woe and a Hope For the Future
PDF
How To Increase Research Productivity
PPTX
App smashing 2
PPTX
React Tune-up - ReactLive.nl
PDF
21 Ways to Awesome-ize Your Mobile Toolkit
PDF
Josh Clark: Mobil er mer - ikke mindre (Webdagene 2012)
PPTX
GoDataDriven & Xebia: Jurriaan Bernson & Giovanni Lanzani
PPTX
Information radiators
PDF
So You Want to Do a Startup!
How To Run a 5 Whys (With Humans, Not Robots)
3 Tips For CIOs Facing Their First Cloud Transformation
Why We Can't Have Nice Things, A Tale of Woe and a Hope For the Future
How To Increase Research Productivity
App smashing 2
React Tune-up - ReactLive.nl
21 Ways to Awesome-ize Your Mobile Toolkit
Josh Clark: Mobil er mer - ikke mindre (Webdagene 2012)
GoDataDriven & Xebia: Jurriaan Bernson & Giovanni Lanzani
Information radiators
So You Want to Do a Startup!
Ad

Similar to Programmer's Bookshelf - Remote Edition (20)

PDF
CascadiaJS: The Programmer's Bookshelf
PDF
Patterns, Code Smells, and The Pragmattic Programmer
PDF
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
PDF
Deliver Fast with Confidence
PPT
Principlesinrefactoring 090906230021-phpapp01
PPT
Principles in Refactoring
PDF
12 Things Every Programmer Should Know
PDF
Surviving a Hackathon and Beyond
ODP
Reversed Tests Pyramid - Agile Prague 2014
PPTX
Preocupações Desenvolvedor Ágil
PDF
Good programming
PPTX
Software Craftsmanship and Agile Code Games
PDF
Good Coding Practices with JavaScript
PDF
Little words of wisdom for the developer - Guillaume Laforge (Pivotal)
PPTX
Refactoring
PDF
IT Systems for Knowledge Management used in Software Engineering (2010)
PPTX
Code reviews
PDF
Guidelines to clean coding
PDF
Refactoring, Therapeutic Attitude to Programming.
ZIP
Introduction to software craftsmanship
CascadiaJS: The Programmer's Bookshelf
Patterns, Code Smells, and The Pragmattic Programmer
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Deliver Fast with Confidence
Principlesinrefactoring 090906230021-phpapp01
Principles in Refactoring
12 Things Every Programmer Should Know
Surviving a Hackathon and Beyond
Reversed Tests Pyramid - Agile Prague 2014
Preocupações Desenvolvedor Ágil
Good programming
Software Craftsmanship and Agile Code Games
Good Coding Practices with JavaScript
Little words of wisdom for the developer - Guillaume Laforge (Pivotal)
Refactoring
IT Systems for Knowledge Management used in Software Engineering (2010)
Code reviews
Guidelines to clean coding
Refactoring, Therapeutic Attitude to Programming.
Introduction to software craftsmanship
Ad

Recently uploaded (20)

PPT
Teaching material agriculture food technology
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
MYSQL Presentation for SQL database connectivity
PDF
cuic standard and advanced reporting.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Machine Learning_overview_presentation.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Encapsulation theory and applications.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Machine learning based COVID-19 study performance prediction
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Empathic Computing: Creating Shared Understanding
Teaching material agriculture food technology
“AI and Expert System Decision Support & Business Intelligence Systems”
Reach Out and Touch Someone: Haptics and Empathic Computing
Review of recent advances in non-invasive hemoglobin estimation
MYSQL Presentation for SQL database connectivity
cuic standard and advanced reporting.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Machine Learning_overview_presentation.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Encapsulation theory and applications.pdf
Chapter 3 Spatial Domain Image Processing.pdf
Machine learning based COVID-19 study performance prediction
20250228 LYD VKU AI Blended-Learning.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Encapsulation_ Review paper, used for researhc scholars
Network Security Unit 5.pdf for BCA BBA.
Empathic Computing: Creating Shared Understanding

Programmer's Bookshelf - Remote Edition