SlideShare ist ein Scribd-Unternehmen logo
1 von 53
Downloaden Sie, um offline zu lesen
The Programmer's Bookshelf
Lisa Backer, DockYard
REMOTE EDITION
Lisa Backer,
Senior Software
Engineer
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

Weitere ähnliche Inhalte

Was ist angesagt?

How To Increase Research Productivity
How To Increase Research ProductivityHow To Increase Research Productivity
How To Increase Research Productivity
Kyongsik Yun
 
App smashing 2
App smashing 2App smashing 2
App smashing 2
Anne Beck
 
Josh Clark: Mobil er mer - ikke mindre (Webdagene 2012)
Josh Clark: Mobil er mer - ikke mindre (Webdagene 2012)Josh Clark: Mobil er mer - ikke mindre (Webdagene 2012)
Josh Clark: Mobil er mer - ikke mindre (Webdagene 2012)
webdagene
 

Was ist angesagt? (11)

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

Ähnlich wie Programmer's Bookshelf - Remote Edition

Tim Mackinnon Agile And Beyond
Tim Mackinnon Agile And BeyondTim Mackinnon Agile And Beyond
Tim Mackinnon Agile And Beyond
deimos
 
Clean Code I - Best Practices
Clean Code I - Best PracticesClean Code I - Best Practices
Clean Code I - Best Practices
Theo Jungeblut
 
Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011
Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011
Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011
Noah Sussman
 
Clean Code Part i - Design Patterns and Best Practices -
Clean Code Part i - Design Patterns and Best Practices -Clean Code Part i - Design Patterns and Best Practices -
Clean Code Part i - Design Patterns and Best Practices -
Theo Jungeblut
 

Ähnlich wie Programmer's Bookshelf - Remote Edition (20)

CascadiaJS: The Programmer's Bookshelf
CascadiaJS: The Programmer's BookshelfCascadiaJS: The Programmer's Bookshelf
CascadiaJS: The Programmer's Bookshelf
 
Gluing it all together: How teams can build enterprise JavaScript application...
Gluing it all together: How teams can build enterprise JavaScript application...Gluing it all together: How teams can build enterprise JavaScript application...
Gluing it all together: How teams can build enterprise JavaScript application...
 
The real value of open source: ROI and beyond
The real value of open source: ROI and beyondThe real value of open source: ROI and beyond
The real value of open source: ROI and beyond
 
Working with Developers for Fun and Profit
Working with Developers for Fun and ProfitWorking with Developers for Fun and Profit
Working with Developers for Fun and Profit
 
Working with Developers for Fun and Profit
Working with Developers for Fun and ProfitWorking with Developers for Fun and Profit
Working with Developers for Fun and Profit
 
PM Connect - Agile Workshop
PM Connect - Agile WorkshopPM Connect - Agile Workshop
PM Connect - Agile Workshop
 
Tim Mackinnon Agile And Beyond
Tim Mackinnon Agile And BeyondTim Mackinnon Agile And Beyond
Tim Mackinnon Agile And Beyond
 
Adopting A Whole Team Approach To Quality
Adopting  A  Whole  Team  Approach  To  QualityAdopting  A  Whole  Team  Approach  To  Quality
Adopting A Whole Team Approach To Quality
 
Planning Agile Projects
Planning Agile ProjectsPlanning Agile Projects
Planning Agile Projects
 
WVC Case Study: eventScribe Boost Overview
WVC Case Study: eventScribe Boost OverviewWVC Case Study: eventScribe Boost Overview
WVC Case Study: eventScribe Boost Overview
 
Clean Code I - Best Practices
Clean Code I - Best PracticesClean Code I - Best Practices
Clean Code I - Best Practices
 
Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011
Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011
Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011
 
Shift Left. Wait, what? No, Shift Right!!!
Shift Left. Wait, what? No, Shift Right!!!Shift Left. Wait, what? No, Shift Right!!!
Shift Left. Wait, what? No, Shift Right!!!
 
DevOps and the Importance of Single Source Code Repos 
DevOps and the Importance of Single Source Code Repos DevOps and the Importance of Single Source Code Repos 
DevOps and the Importance of Single Source Code Repos 
 
Worse Is Better, for Better or for Worse
Worse Is Better, for Better or for WorseWorse Is Better, for Better or for Worse
Worse Is Better, for Better or for Worse
 
[EN] Great software development quotes
[EN] Great software development quotes[EN] Great software development quotes
[EN] Great software development quotes
 
Creating open culture bubbles - Red Hat Forum 2018
Creating open culture bubbles - Red Hat Forum 2018Creating open culture bubbles - Red Hat Forum 2018
Creating open culture bubbles - Red Hat Forum 2018
 
Clean Code Part i - Design Patterns and Best Practices -
Clean Code Part i - Design Patterns and Best Practices -Clean Code Part i - Design Patterns and Best Practices -
Clean Code Part i - Design Patterns and Best Practices -
 
Worse Is Better, for Better or for Worse
Worse Is Better, for Better or for WorseWorse Is Better, for Better or for Worse
Worse Is Better, for Better or for Worse
 
Product design for Non Designers - Montreal Digital Nomad Meetup
Product design for Non Designers - Montreal Digital Nomad MeetupProduct design for Non Designers - Montreal Digital Nomad Meetup
Product design for Non Designers - Montreal Digital Nomad Meetup
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

Programmer's Bookshelf - Remote Edition