-
Preface
- Permissions
- About
- Acknowledgement
- Abstract Data Types
- Acknowledge (and Learn from) Failures
- Anomalies Should not Be Ignored
- Avoid Programmer Churn and Bottlenecks
- Balance Duplication, Disruption, and Paralysis
- Be Stupid and Lazy
- Become Effective with Reuse
- Better Efficiency with Mini-Activities, Multi-Processing, and Interrupted Flow
- Code Is Hard to Read
- Consider the Hardware
- Continuous Refactoring
- Continuously Align Software to Be Reusable
- Data Type Tips
- Declarative over Imperative
- Decouple that UI
- Display Courage, Commitment, and Humility
- Dive into Programming
- Don’t Be a One Trick Pony
- Don’t Be too Sophisticated
- Don’t Reinvent the Wheel
- Don’t Use too Much Magic
- Done Means Value
- Execution Speed versus Maintenance Effort
- Expect the Unexpected
- First Write, Second Copy, Third Refactor
- From Requirements to Tables to Code and Tests
- How to Access Patterns
- Implicit Dependencies Are also Dependencies
- Improved Testability Leads to Better Design
- In the End, It’s All Communication
- Integrate Early and Often
- Interfaces Should Reveal Intention
- Isolate to Eliminate
- Keep Your Architect Busy
- Know When to Fail
- Know Your Language
- Learn the Platform
- Learn to Use a Real Editor
- Leave It in a Better State
- Methods Matter
- The Programmer’s New Clothes
- Programmers Are Mini-Project Managers
- Programmers Who Write Tests Get More Time to Program
- Push Your Limits
- QA Team Member as an Equal
- Reap What You Sow
- Respect the Software Release Process
- Restrict Mutability of State
- Reuse Implies Coupling
- Scoping Methods
- Simple Is not Simplistic
- Small!
- Soft Skills Matter
- Speed Kills
- Structure over Function
- Talk about the Trade-offs
- There Is Always Something More to Learn
- There Is No Right or Wrong
- There Is No Such Thing as Self-Documenting Code
- The Three Laws of Test-Driven Development
- Understand Principles behind Practices
- Use Aggregate Objects to Reduce Coupling
- Use the Same Tools in a Team
- Using Design Patterns to Build Reusable Software
- Who Will Test the Tests Themselves?
- Work with a Star and Get Rid of the Truck Factor
- Write a Test that Prints PASSED
- Write Code for Humans not Machines
97 Things Every Programmer Should Know - Extended
With Membership
Free!
$7.99
You pay
$7.99Cause gets
$6.39About
About the Book
Welcome to the extended version of 97 Things Every Programmer Should Know - Collective Wisdom from the Experts.
97 Things Every Programmer Should Know (http://programmer.97things.oreilly.com) site contains amazing collection of essays about programming practices. Kevlin Henney has created a nice book "97 Things Every Programmer Should Know" of the selected 97 essays.
This books is a collection of additional 68 essays available at the site but doesn't appear in Kevlin's book.
The text in the book is taken from site **as is**. If you find any typographic error, please let us know and/or go ahead and update the original site.
Author
About the Author
Shirish Padalkar
I loved computers since I got introduced to computers in my school days. Started programming with QBasic, used WS4, Lotus-123, DOS and Windows 3.1.
Programming has been my passion. I work at ThoughtWorks and code for living. I love Java, Ruby, and I can read Python code. I had small time affairs with Haskell, LISP and Prolog as well.
Besides programming I like to find and report vulnerabilities in web applications.
I enjoy playing Tabla and love listening to Indian classical music.
Contents
Table of Contents
Get the free sample chapters
Click the buttons to get the free sample in PDF or EPUB, or read the sample online here
Causes
Causes Supported

Electronic Frontier Foundation
Defending your civil liberties in a digital world.
https://www.eff.org/The Leanpub 60 Day 100% Happiness Guarantee
Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.
You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!
So, there's no reason not to click the Add to Cart button, is there?
See full terms...
Earn $8 on a $10 Purchase, and $16 on a $20 Purchase
We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.
(Yes, some authors have already earned much more than that on Leanpub.)
In fact, authors have earned over $14 million writing, publishing and selling on Leanpub.
Learn more about writing on Leanpub
Free Updates. DRM Free.
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.
Learn more about Leanpub's ebook formats and where to read them
Write and Publish on Leanpub
You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!
Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.
Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.